1 /*
2  * Libvirt notice: this file is derived from the VirtualBox SDK, with
3  * libvirt edits (fixing preprocessor indentation by cppi); do not
4  * regenerate in the context of libvirt.
5  */
6 /*
7  *  DO NOT EDIT! This is a generated file.
8  *
9  *  Header file which provides C declarations for VirtualBox Main API
10  *  (COM interfaces), generated from XIDL (XML interface definition).
11  *  On Windows (which uses COM instead of XPCOM) the native C support
12  *  is used, and most of this file is not used.
13  *
14  *  Source    : src/VBox/Main/idl/VirtualBox.xidl
15  *  Generator : src/VBox/Main/cbinding/capiidl.xsl
16  *
17  *  This file contains portions from the following Mozilla XPCOM files:
18  *      xpcom/include/xpcom/nsID.h
19  *      xpcom/include/nsIException.h
20  *      xpcom/include/nsprpub/prtypes.h
21  *      xpcom/include/xpcom/nsISupportsBase.h
22  *
23  * These files were originally triple-licensed (MPL/GPL2/LGPL2.1). Oracle
24  * elects to distribute this derived work under the LGPL2.1 only.
25  */
26 
27 /*
28  * Copyright (C) 2008-2016 Oracle Corporation
29  *
30  * This file is part of a free software library; you can redistribute
31  * it and/or modify it under the terms of the GNU Lesser General
32  * Public License version 2.1 as published by the Free Software
33  * Foundation and shipped in the "COPYING.LESSER" file with this library.
34  * The library is distributed in the hope that it will be useful,
35  * but WITHOUT ANY WARRANTY of any kind.
36  *
37  * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if
38  * any license choice other than GPL or LGPL is available it will
39  * apply instead, Oracle elects to use only the Lesser General Public
40  * License version 2.1 (LGPLv2) at this time for any software where
41  * a choice of LGPL license versions is made available with the
42  * language indicating that LGPLv2 or any later version may be used,
43  * or where a choice of which version of the LGPL is applied is
44  * otherwise unspecified.
45  */
46 
47 #ifndef ___VirtualBox_CXPCOM_h
48 # define ___VirtualBox_CXPCOM_h
49 
50 # ifdef _WIN32
51 #  pragma warning(push)
52 #  pragma warning(disable:4668 4255) /* -Wall and windows.h */
53 #  if _MSC_VER >= 1800 /*RT_MSC_VER_VC120*/
54 #   pragma warning(disable:4005) /* sdk/v7.1/include/sal_supp.h(57) : warning C4005: '__useHeader' : macro redefinition */
55 #  endif
56 #  undef COBJMACROS
57 #  define COBJMACROS
58 #  include "Windows.h"
59 #  pragma warning(pop)
60 # endif /* _WIN32 */
61 
62 # ifdef WIN32
63 #  ifdef IN_VBOXCAPI
64 #   define VBOXCAPI_DECL(type) extern __declspec(dllexport) type
65 #  else /* !IN_VBOXCAPI */
66 #   define VBOXCAPI_DECL(type) __declspec(dllimport) type
67 #  endif /* !IN_VBOXCAPI */
68 # endif /* WIN32 */
69 
70 # ifdef __cplusplus
71 /* The C++ treatment in this file is not meant for SDK users, it only exists
72  * so that this file can be used to produce the VBoxCAPI shared library which
73  * has to use C++ as it does all the conversion magic. */
74 #  ifdef IN_VBOXCAPI
75 #   include "VBox/com/VirtualBox.h"
76 #   ifndef WIN32
77 #    include "nsIEventQueue.h"
78 #   endif /* !WIN32 */
79 #  else /* !IN_VBOXCAPI */
80 #   error Do not include this header file from C++ code
81 #  endif /* !IN_VBOXCAPI */
82 # endif /* __cplusplus */
83 
84 # ifdef __GNUC__
85 #  define VBOX_EXTERN_CONST(type, name) extern const type name __attribute__((nocommon))
86 # else /* !__GNUC__ */
87 #  define VBOX_EXTERN_CONST(type, name) extern const type name
88 # endif /* !__GNUC__ */
89 
90 /* Treat WIN32 completely separately, as on Windows VirtualBox uses COM, not
91  * XPCOM like on all other platforms. While the code below would also compile
92  * on Windows, we need to switch to the native C support provided by the header
93  * files produced by the COM IDL compiler. */
94 # ifdef WIN32
95 #  include "ObjBase.h"
96 #  include "oaidl.h"
97 #  include "VirtualBox.h"
98 
99 #  ifndef __cplusplus
100 /* Skip this in the C++ case as there's already a definition for CBSTR. */
101 typedef const BSTR CBSTR;
102 #  endif /* !__cplusplus */
103 
104 #  define VBOX_WINAPI WINAPI
105 
106 #  define ComSafeArrayAsInParam(f) (f)
107 #  define ComSafeArrayAsOutParam(f) (&(f))
108 #  define ComSafeArrayAsOutTypeParam(f,t) (&(f))
109 #  define ComSafeArrayAsOutIfaceParam(f,t) (&(f))
110 
111 # else /* !WIN32 */
112 
113 #  include <stddef.h>
114 #  include "wchar.h"
115 
116 #  ifdef IN_VBOXCAPI
117 #   define VBOXCAPI_DECL(type) PR_EXPORT(type)
118 #  else /* !IN_VBOXCAPI */
119 #   define VBOXCAPI_DECL(type) PR_IMPORT(type)
120 #  endif /* !IN_VBOXCAPI */
121 
122 #  ifndef __cplusplus
123 
124 #   if defined(WIN32)
125 
126 #    define PR_EXPORT(__type) extern __declspec(dllexport) __type
127 #    define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
128 #    define PR_IMPORT(__type) __declspec(dllimport) __type
129 #    define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
130 
131 #    define PR_EXTERN(__type) extern __declspec(dllexport) __type
132 #    define PR_IMPLEMENT(__type) __declspec(dllexport) __type
133 #    define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
134 #    define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
135 
136 #    define PR_CALLBACK
137 #    define PR_CALLBACK_DECL
138 #    define PR_STATIC_CALLBACK(__x) static __x
139 
140 #   elif defined(XP_BEOS)
141 
142 #    define PR_EXPORT(__type) extern __declspec(dllexport) __type
143 #    define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
144 #    define PR_IMPORT(__type) extern __declspec(dllexport) __type
145 #    define PR_IMPORT_DATA(__type) extern __declspec(dllexport) __type
146 
147 #    define PR_EXTERN(__type) extern __declspec(dllexport) __type
148 #    define PR_IMPLEMENT(__type) __declspec(dllexport) __type
149 #    define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
150 #    define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
151 
152 #    define PR_CALLBACK
153 #    define PR_CALLBACK_DECL
154 #    define PR_STATIC_CALLBACK(__x) static __x
155 
156 #   elif defined(WIN16)
157 
158 #    define PR_CALLBACK_DECL        __cdecl
159 
160 #    if defined(_WINDLL)
161 #     define PR_EXPORT(__type) extern __type _cdecl _export _loadds
162 #     define PR_IMPORT(__type) extern __type _cdecl _export _loadds
163 #     define PR_EXPORT_DATA(__type) extern __type _export
164 #     define PR_IMPORT_DATA(__type) extern __type _export
165 
166 #     define PR_EXTERN(__type) extern __type _cdecl _export _loadds
167 #     define PR_IMPLEMENT(__type) __type _cdecl _export _loadds
168 #     define PR_EXTERN_DATA(__type) extern __type _export
169 #     define PR_IMPLEMENT_DATA(__type) __type _export
170 
171 #     define PR_CALLBACK             __cdecl __loadds
172 #     define PR_STATIC_CALLBACK(__x) static __x PR_CALLBACK
173 
174 #    else /* this must be .EXE */
175 #     define PR_EXPORT(__type) extern __type _cdecl _export
176 #     define PR_IMPORT(__type) extern __type _cdecl _export
177 #     define PR_EXPORT_DATA(__type) extern __type _export
178 #     define PR_IMPORT_DATA(__type) extern __type _export
179 
180 #     define PR_EXTERN(__type) extern __type _cdecl _export
181 #     define PR_IMPLEMENT(__type) __type _cdecl _export
182 #     define PR_EXTERN_DATA(__type) extern __type _export
183 #     define PR_IMPLEMENT_DATA(__type) __type _export
184 
185 #     define PR_CALLBACK             __cdecl __loadds
186 #     define PR_STATIC_CALLBACK(__x) __x PR_CALLBACK
187 #    endif /* _WINDLL */
188 
189 #   elif defined(XP_MAC)
190 
191 #    define PR_EXPORT(__type) extern __declspec(export) __type
192 #    define PR_EXPORT_DATA(__type) extern __declspec(export) __type
193 #    define PR_IMPORT(__type) extern __declspec(export) __type
194 #    define PR_IMPORT_DATA(__type) extern __declspec(export) __type
195 
196 #    define PR_EXTERN(__type) extern __declspec(export) __type
197 #    define PR_IMPLEMENT(__type) __declspec(export) __type
198 #    define PR_EXTERN_DATA(__type) extern __declspec(export) __type
199 #    define PR_IMPLEMENT_DATA(__type) __declspec(export) __type
200 
201 #    define PR_CALLBACK
202 #    define PR_CALLBACK_DECL
203 #    define PR_STATIC_CALLBACK(__x) static __x
204 
205 #   elif defined(XP_OS2) && defined(__declspec)
206 
207 #    define PR_EXPORT(__type) extern __declspec(dllexport) __type
208 #    define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
209 #    define PR_IMPORT(__type) __declspec(dllimport) __type
210 #    define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
211 
212 #    define PR_EXTERN(__type) extern __declspec(dllexport) __type
213 #    define PR_IMPLEMENT(__type) __declspec(dllexport) __type
214 #    define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
215 #    define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
216 
217 #    define PR_CALLBACK
218 #    define PR_CALLBACK_DECL
219 #    define PR_STATIC_CALLBACK(__x) static __x
220 
221 #   elif defined(XP_OS2_VACPP)
222 
223 #    define PR_EXPORT(__type) extern __type
224 #    define PR_EXPORT_DATA(__type) extern __type
225 #    define PR_IMPORT(__type) extern __type
226 #    define PR_IMPORT_DATA(__type) extern __type
227 
228 #    define PR_EXTERN(__type) extern __type
229 #    define PR_IMPLEMENT(__type) __type
230 #    define PR_EXTERN_DATA(__type) extern __type
231 #    define PR_IMPLEMENT_DATA(__type) __type
232 #    define PR_CALLBACK _Optlink
233 #    define PR_CALLBACK_DECL
234 #    define PR_STATIC_CALLBACK(__x) static __x PR_CALLBACK
235 
236 #   else /* Unix */
237 
238 #    ifdef VBOX_HAVE_VISIBILITY_HIDDEN
239 #     define PR_EXPORT(__type) __attribute__((visibility("default"))) extern __type
240 #     define PR_EXPORT_DATA(__type) __attribute__((visibility("default"))) extern __type
241 #     define PR_IMPORT(__type) extern __type
242 #     define PR_IMPORT_DATA(__type) extern __type
243 #     define PR_EXTERN(__type) __attribute__((visibility("default"))) extern __type
244 #     define PR_IMPLEMENT(__type) __attribute__((visibility("default"))) __type
245 #     define PR_EXTERN_DATA(__type) __attribute__((visibility("default"))) extern __type
246 #     define PR_IMPLEMENT_DATA(__type) __attribute__((visibility("default"))) __type
247 #     define PR_CALLBACK
248 #     define PR_CALLBACK_DECL
249 #     define PR_STATIC_CALLBACK(__x) static __x
250 #    else
251 #     define PR_EXPORT(__type) extern __type
252 #     define PR_EXPORT_DATA(__type) extern __type
253 #     define PR_IMPORT(__type) extern __type
254 #     define PR_IMPORT_DATA(__type) extern __type
255 #     define PR_EXTERN(__type) extern __type
256 #     define PR_IMPLEMENT(__type) __type
257 #     define PR_EXTERN_DATA(__type) extern __type
258 #     define PR_IMPLEMENT_DATA(__type) __type
259 #     define PR_CALLBACK
260 #     define PR_CALLBACK_DECL
261 #     define PR_STATIC_CALLBACK(__x) static __x
262 #    endif
263 #   endif
264 
265 #   if defined(_NSPR_BUILD_)
266 #    define NSPR_API(__type) PR_EXPORT(__type)
267 #    define NSPR_DATA_API(__type) PR_EXPORT_DATA(__type)
268 #   else
269 #    define NSPR_API(__type) PR_IMPORT(__type)
270 #    define NSPR_DATA_API(__type) PR_IMPORT_DATA(__type)
271 #   endif
272 
273 typedef unsigned char PRUint8;
274 #   if (defined(HPUX) && defined(__cplusplus) \
275         && !defined(__GNUC__) && __cplusplus < 199707L) \
276     || (defined(SCO) && defined(__cplusplus) \
277         && !defined(__GNUC__) && __cplusplus == 1L)
278 typedef char PRInt8;
279 #   else
280 typedef signed char PRInt8;
281 #   endif
282 
283 #   define PR_INT8_MAX 127
284 #   define PR_INT8_MIN (-128)
285 #   define PR_UINT8_MAX 255U
286 
287 typedef unsigned short PRUint16;
288 typedef short PRInt16;
289 
290 #   define PR_INT16_MAX 32767
291 #   define PR_INT16_MIN (-32768)
292 #   define PR_UINT16_MAX 65535U
293 
294 typedef unsigned int PRUint32;
295 typedef int PRInt32;
296 #   define PR_INT32(x)  x
297 #   define PR_UINT32(x) x ## U
298 
299 #   define PR_INT32_MAX PR_INT32(2147483647)
300 #   define PR_INT32_MIN (-PR_INT32_MAX - 1)
301 #   define PR_UINT32_MAX PR_UINT32(4294967295)
302 
303 typedef long PRInt64;
304 typedef unsigned long PRUint64;
305 typedef int PRIntn;
306 typedef unsigned int PRUintn;
307 
308 typedef double          PRFloat64;
309 typedef size_t PRSize;
310 
311 typedef ptrdiff_t PRPtrdiff;
312 
313 typedef unsigned long PRUptrdiff;
314 
315 typedef PRIntn PRBool;
316 
317 #   define PR_TRUE 1
318 #   define PR_FALSE 0
319 
320 typedef PRUint8 PRPackedBool;
321 
322 /*
323 ** Status code used by some routines that have a single point of failure or
324 ** special status return.
325 */
326 typedef enum { PR_FAILURE = -1, PR_SUCCESS = 0 } PRStatus;
327 
328 #   ifndef __PRUNICHAR__
329 #    define __PRUNICHAR__
330 #    if defined(WIN32) || defined(XP_MAC)
331 typedef wchar_t PRUnichar;
332 #    else
333 typedef PRUint16 PRUnichar;
334 #    endif
335 typedef PRUnichar *BSTR;
336 typedef const PRUnichar *CBSTR;
337 #   endif
338 
339 typedef long PRWord;
340 typedef unsigned long PRUword;
341 
342 #   define nsnull 0
343 typedef PRUint32 nsresult;
344 
345 #   if defined(__GNUC__) && (__GNUC__ > 2)
346 #    define NS_LIKELY(x)    (__builtin_expect((x), 1))
347 #    define NS_UNLIKELY(x)  (__builtin_expect((x), 0))
348 #   else
349 #    define NS_LIKELY(x)    (x)
350 #    define NS_UNLIKELY(x)  (x)
351 #   endif
352 
353 #   define NS_FAILED(_nsresult) (NS_UNLIKELY((_nsresult) & 0x80000000))
354 #   define NS_SUCCEEDED(_nsresult) (NS_LIKELY(!((_nsresult) & 0x80000000)))
355 
356 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
357 #    define PR_IntervalNow VBoxNsprPR_IntervalNow
358 #    define PR_TicksPerSecond VBoxNsprPR_TicksPerSecond
359 #    define PR_SecondsToInterval VBoxNsprPR_SecondsToInterval
360 #    define PR_MillisecondsToInterval VBoxNsprPR_MillisecondsToInterval
361 #    define PR_MicrosecondsToInterval VBoxNsprPR_MicrosecondsToInterval
362 #    define PR_IntervalToSeconds VBoxNsprPR_IntervalToSeconds
363 #    define PR_IntervalToMilliseconds VBoxNsprPR_IntervalToMilliseconds
364 #    define PR_IntervalToMicroseconds VBoxNsprPR_IntervalToMicroseconds
365 #    define PR_EnterMonitor VBoxNsprPR_EnterMonitor
366 #    define PR_ExitMonitor VBoxNsprPR_ExitMonitor
367 #    define PR_Notify VBoxNsprPR_Notify
368 #    define PR_NotifyAll VBoxNsprPR_NotifyAll
369 #    define PR_Wait VBoxNsprPR_Wait
370 #    define PR_NewMonitor VBoxNsprPR_NewMonitor
371 #    define PR_DestroyMonitor VBoxNsprPR_DestroyMonitor
372 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
373 
374 typedef PRUint32 PRIntervalTime;
375 
376 #   define PR_INTERVAL_MIN 1000UL
377 #   define PR_INTERVAL_MAX 100000UL
378 #   define PR_INTERVAL_NO_WAIT 0UL
379 #   define PR_INTERVAL_NO_TIMEOUT 0xffffffffUL
380 
381 NSPR_API(PRIntervalTime) PR_IntervalNow(void);
382 NSPR_API(PRUint32) PR_TicksPerSecond(void);
383 NSPR_API(PRIntervalTime) PR_SecondsToInterval(PRUint32 seconds);
384 NSPR_API(PRIntervalTime) PR_MillisecondsToInterval(PRUint32 milli);
385 NSPR_API(PRIntervalTime) PR_MicrosecondsToInterval(PRUint32 micro);
386 NSPR_API(PRUint32) PR_IntervalToSeconds(PRIntervalTime ticks);
387 NSPR_API(PRUint32) PR_IntervalToMilliseconds(PRIntervalTime ticks);
388 NSPR_API(PRUint32) PR_IntervalToMicroseconds(PRIntervalTime ticks);
389 
390 typedef struct PRMonitor PRMonitor;
391 
392 NSPR_API(PRMonitor*) PR_NewMonitor(void);
393 NSPR_API(void) PR_DestroyMonitor(PRMonitor *mon);
394 NSPR_API(void) PR_EnterMonitor(PRMonitor *mon);
395 NSPR_API(PRStatus) PR_ExitMonitor(PRMonitor *mon);
396 NSPR_API(PRStatus) PR_Wait(PRMonitor *mon, PRIntervalTime ticks);
397 NSPR_API(PRStatus) PR_Notify(PRMonitor *mon);
398 NSPR_API(PRStatus) PR_NotifyAll(PRMonitor *mon);
399 
400 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
401 #    define PR_CreateThread VBoxNsprPR_CreateThread
402 #    define PR_JoinThread VBoxNsprPR_JoinThread
403 #    define PR_Sleep VBoxNsprPR_Sleep
404 #    define PR_GetCurrentThread VBoxNsprPR_GetCurrentThread
405 #    define PR_GetThreadState VBoxNsprPR_GetThreadState
406 #    define PR_SetThreadPrivate VBoxNsprPR_SetThreadPrivate
407 #    define PR_GetThreadPrivate VBoxNsprPR_GetThreadPrivate
408 #    define PR_NewThreadPrivateIndex VBoxNsprPR_NewThreadPrivateIndex
409 #    define PR_GetThreadPriority VBoxNsprPR_GetThreadPriority
410 #    define PR_SetThreadPriority VBoxNsprPR_SetThreadPriority
411 #    define PR_Interrupt VBoxNsprPR_Interrupt
412 #    define PR_ClearInterrupt VBoxNsprPR_ClearInterrupt
413 #    define PR_BlockInterrupt VBoxNsprPR_BlockInterrupt
414 #    define PR_UnblockInterrupt VBoxNsprPR_UnblockInterrupt
415 #    define PR_GetThreadScope VBoxNsprPR_GetThreadScope
416 #    define PR_GetThreadType VBoxNsprPR_GetThreadType
417 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
418 
419 typedef struct PRThread PRThread;
420 typedef struct PRThreadStack PRThreadStack;
421 
422 typedef enum PRThreadType {
423     PR_USER_THREAD,
424     PR_SYSTEM_THREAD
425 } PRThreadType;
426 
427 typedef enum PRThreadScope {
428     PR_LOCAL_THREAD,
429     PR_GLOBAL_THREAD,
430     PR_GLOBAL_BOUND_THREAD
431 } PRThreadScope;
432 
433 typedef enum PRThreadState {
434     PR_JOINABLE_THREAD,
435     PR_UNJOINABLE_THREAD
436 } PRThreadState;
437 
438 typedef enum PRThreadPriority
439 {
440     PR_PRIORITY_FIRST = 0,      /* just a placeholder */
441     PR_PRIORITY_LOW = 0,        /* the lowest possible priority */
442     PR_PRIORITY_NORMAL = 1,     /* most common expected priority */
443     PR_PRIORITY_HIGH = 2,       /* slightly more aggressive scheduling */
444     PR_PRIORITY_URGENT = 3,     /* it does little good to have more than one */
445     PR_PRIORITY_LAST = 3        /* this is just a placeholder */
446 } PRThreadPriority;
447 
448 NSPR_API(PRThread*) PR_CreateThread(PRThreadType type,
449                      void (PR_CALLBACK *start)(void *arg),
450                      void *arg,
451                      PRThreadPriority priority,
452                      PRThreadScope scope,
453                      PRThreadState state,
454                      PRUint32 stackSize);
455 NSPR_API(PRStatus) PR_JoinThread(PRThread *thread);
456 NSPR_API(PRThread*) PR_GetCurrentThread(void);
457 #   ifndef NO_NSPR_10_SUPPORT
458 #    define PR_CurrentThread() PR_GetCurrentThread() /* for nspr1.0 compat. */
459 #   endif /* NO_NSPR_10_SUPPORT */
460 NSPR_API(PRThreadPriority) PR_GetThreadPriority(const PRThread *thread);
461 NSPR_API(void) PR_SetThreadPriority(PRThread *thread, PRThreadPriority priority);
462 
463 typedef void (PR_CALLBACK *PRThreadPrivateDTOR)(void *priv);
464 
465 NSPR_API(PRStatus) PR_NewThreadPrivateIndex(
466     PRUintn *newIndex, PRThreadPrivateDTOR destructor);
467 NSPR_API(PRStatus) PR_SetThreadPrivate(PRUintn tpdIndex, void *priv);
468 NSPR_API(void*) PR_GetThreadPrivate(PRUintn tpdIndex);
469 NSPR_API(PRStatus) PR_Interrupt(PRThread *thread);
470 NSPR_API(void) PR_ClearInterrupt(void);
471 NSPR_API(void) PR_BlockInterrupt(void);
472 NSPR_API(void) PR_UnblockInterrupt(void);
473 NSPR_API(PRStatus) PR_Sleep(PRIntervalTime ticks);
474 NSPR_API(PRThreadScope) PR_GetThreadScope(const PRThread *thread);
475 NSPR_API(PRThreadType) PR_GetThreadType(const PRThread *thread);
476 NSPR_API(PRThreadState) PR_GetThreadState(const PRThread *thread);
477 
478 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
479 #    define PR_DestroyLock VBoxNsprPR_DestroyLock
480 #    define PR_Lock VBoxNsprPR_Lock
481 #    define PR_NewLock VBoxNsprPR_NewLock
482 #    define PR_Unlock VBoxNsprPR_Unlock
483 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
484 
485 typedef struct PRLock PRLock;
486 
487 NSPR_API(PRLock*) PR_NewLock(void);
488 NSPR_API(void) PR_DestroyLock(PRLock *lock);
489 NSPR_API(void) PR_Lock(PRLock *lock);
490 NSPR_API(PRStatus) PR_Unlock(PRLock *lock);
491 
492 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
493 #    define PR_NewCondVar VBoxNsprPR_NewCondVar
494 #    define PR_DestroyCondVar VBoxNsprPR_DestroyCondVar
495 #    define PR_WaitCondVar VBoxNsprPR_WaitCondVar
496 #    define PR_NotifyCondVar VBoxNsprPR_NotifyCondVar
497 #    define PR_NotifyAllCondVar VBoxNsprPR_NotifyAllCondVar
498 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
499 
500 typedef struct PRCondVar PRCondVar;
501 
502 NSPR_API(PRCondVar*) PR_NewCondVar(PRLock *lock);
503 NSPR_API(void) PR_DestroyCondVar(PRCondVar *cvar);
504 NSPR_API(PRStatus) PR_WaitCondVar(PRCondVar *cvar, PRIntervalTime timeout);
505 NSPR_API(PRStatus) PR_NotifyCondVar(PRCondVar *cvar);
506 NSPR_API(PRStatus) PR_NotifyAllCondVar(PRCondVar *cvar);
507 
508 typedef struct PRCListStr PRCList;
509 
510 struct PRCListStr {
511     PRCList *next;
512     PRCList *prev;
513 };
514 
515 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
516 #    define PL_DestroyEvent VBoxNsplPL_DestroyEvent
517 #    define PL_HandleEvent VBoxNsplPL_HandleEvent
518 #    define PL_InitEvent VBoxNsplPL_InitEvent
519 #    define PL_CreateEventQueue VBoxNsplPL_CreateEventQueue
520 #    define PL_CreateMonitoredEventQueue VBoxNsplPL_CreateMonitoredEventQueue
521 #    define PL_CreateNativeEventQueue VBoxNsplPL_CreateNativeEventQueue
522 #    define PL_DequeueEvent VBoxNsplPL_DequeueEvent
523 #    define PL_DestroyEventQueue VBoxNsplPL_DestroyEventQueue
524 #    define PL_EventAvailable VBoxNsplPL_EventAvailable
525 #    define PL_EventLoop VBoxNsplPL_EventLoop
526 #    define PL_GetEvent VBoxNsplPL_GetEvent
527 #    define PL_GetEventOwner VBoxNsplPL_GetEventOwner
528 #    define PL_GetEventQueueMonitor VBoxNsplPL_GetEventQueueMonitor
529 #    define PL_GetEventQueueSelectFD VBoxNsplPL_GetEventQueueSelectFD
530 #    define PL_MapEvents VBoxNsplPL_MapEvents
531 #    define PL_PostEvent VBoxNsplPL_PostEvent
532 #    define PL_PostSynchronousEvent VBoxNsplPL_PostSynchronousEvent
533 #    define PL_ProcessEventsBeforeID VBoxNsplPL_ProcessEventsBeforeID
534 #    define PL_ProcessPendingEvents VBoxNsplPL_ProcessPendingEvents
535 #    define PL_RegisterEventIDFunc VBoxNsplPL_RegisterEventIDFunc
536 #    define PL_RevokeEvents VBoxNsplPL_RevokeEvents
537 #    define PL_UnregisterEventIDFunc VBoxNsplPL_UnregisterEventIDFunc
538 #    define PL_WaitForEvent VBoxNsplPL_WaitForEvent
539 #    define PL_IsQueueNative VBoxNsplPL_IsQueueNative
540 #    define PL_IsQueueOnCurrentThread VBoxNsplPL_IsQueueOnCurrentThread
541 #    define PL_FavorPerformanceHint VBoxNsplPL_FavorPerformanceHint
542 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
543 
544 typedef struct PLEvent PLEvent;
545 typedef struct PLEventQueue PLEventQueue;
546 
547 PR_EXTERN(PLEventQueue*)
548 PL_CreateEventQueue(const char* name, PRThread* handlerThread);
549 PR_EXTERN(PLEventQueue *)
550     PL_CreateNativeEventQueue(
551         const char *name,
552         PRThread *handlerThread
553     );
554 PR_EXTERN(PLEventQueue *)
555     PL_CreateMonitoredEventQueue(
556         const char *name,
557         PRThread *handlerThread
558     );
559 PR_EXTERN(void)
560 PL_DestroyEventQueue(PLEventQueue* self);
561 PR_EXTERN(PRMonitor*)
562 PL_GetEventQueueMonitor(PLEventQueue* self);
563 
564 #   define PL_ENTER_EVENT_QUEUE_MONITOR(queue) \
565     PR_EnterMonitor(PL_GetEventQueueMonitor(queue))
566 
567 #   define PL_EXIT_EVENT_QUEUE_MONITOR(queue) \
568     PR_ExitMonitor(PL_GetEventQueueMonitor(queue))
569 
570 PR_EXTERN(PRStatus) PL_PostEvent(PLEventQueue* self, PLEvent* event);
571 PR_EXTERN(void*) PL_PostSynchronousEvent(PLEventQueue* self, PLEvent* event);
572 PR_EXTERN(PLEvent*) PL_GetEvent(PLEventQueue* self);
573 PR_EXTERN(PRBool) PL_EventAvailable(PLEventQueue* self);
574 
575 typedef void (PR_CALLBACK *PLEventFunProc)(PLEvent* event, void* data, PLEventQueue* queue);
576 
577 PR_EXTERN(void) PL_MapEvents(PLEventQueue* self, PLEventFunProc fun, void* data);
578 PR_EXTERN(void) PL_RevokeEvents(PLEventQueue* self, void* owner);
579 PR_EXTERN(void) PL_ProcessPendingEvents(PLEventQueue* self);
580 PR_EXTERN(PLEvent*) PL_WaitForEvent(PLEventQueue* self);
581 PR_EXTERN(void) PL_EventLoop(PLEventQueue* self);
582 PR_EXTERN(PRInt32) PL_GetEventQueueSelectFD(PLEventQueue* self);
583 PR_EXTERN(PRBool) PL_IsQueueOnCurrentThread( PLEventQueue *queue );
584 PR_EXTERN(PRBool) PL_IsQueueNative(PLEventQueue *queue);
585 
586 typedef void* (PR_CALLBACK *PLHandleEventProc)(PLEvent* self);
587 typedef void (PR_CALLBACK *PLDestroyEventProc)(PLEvent* self);
588 PR_EXTERN(void)
589 PL_InitEvent(PLEvent* self, void* owner,
590              PLHandleEventProc handler,
591              PLDestroyEventProc destructor);
592 PR_EXTERN(void*) PL_GetEventOwner(PLEvent* self);
593 PR_EXTERN(void) PL_HandleEvent(PLEvent* self);
594 PR_EXTERN(void) PL_DestroyEvent(PLEvent* self);
595 PR_EXTERN(void) PL_DequeueEvent(PLEvent* self, PLEventQueue* queue);
596 PR_EXTERN(void) PL_FavorPerformanceHint(PRBool favorPerformanceOverEventStarvation, PRUint32 starvationDelay);
597 
598 struct PLEvent {
599     PRCList             link;
600     PLHandleEventProc   handler;
601     PLDestroyEventProc  destructor;
602     void*               owner;
603     void*               synchronousResult;
604     PRLock*             lock;
605     PRCondVar*          condVar;
606     PRBool              handled;
607 #   ifdef PL_POST_TIMINGS
608     PRIntervalTime      postTime;
609 #   endif
610 #   ifdef XP_UNIX
611     unsigned long       id;
612 #   endif /* XP_UNIX */
613     /* other fields follow... */
614 };
615 
616 #   if defined(XP_WIN) || defined(XP_OS2)
617 
618 PR_EXTERN(HWND)
619     PL_GetNativeEventReceiverWindow(
620         PLEventQueue *eqp
621     );
622 #   endif /* XP_WIN || XP_OS2 */
623 
624 #   ifdef XP_UNIX
625 
626 PR_EXTERN(PRInt32)
627 PL_ProcessEventsBeforeID(PLEventQueue *aSelf, unsigned long aID);
628 
629 typedef unsigned long (PR_CALLBACK *PLGetEventIDFunc)(void *aClosure);
630 
631 PR_EXTERN(void)
632 PL_RegisterEventIDFunc(PLEventQueue *aSelf, PLGetEventIDFunc aFunc,
633                        void *aClosure);
634 PR_EXTERN(void) PL_UnregisterEventIDFunc(PLEventQueue *aSelf);
635 
636 #   endif /* XP_UNIX */
637 
638 /* Standard "it worked" return value */
639 #   define NS_OK                              0
640 
641 #   define NS_ERROR_BASE                      ((nsresult) 0xC1F30000)
642 
643 /* Returned when an instance is not initialized */
644 #   define NS_ERROR_NOT_INITIALIZED           (NS_ERROR_BASE + 1)
645 
646 /* Returned when an instance is already initialized */
647 #   define NS_ERROR_ALREADY_INITIALIZED       (NS_ERROR_BASE + 2)
648 
649 /* Returned by a not implemented function */
650 #   define NS_ERROR_NOT_IMPLEMENTED           ((nsresult) 0x80004001L)
651 
652 /* Returned when a given interface is not supported. */
653 #   define NS_NOINTERFACE                     ((nsresult) 0x80004002L)
654 #   define NS_ERROR_NO_INTERFACE              NS_NOINTERFACE
655 
656 #   define NS_ERROR_INVALID_POINTER           ((nsresult) 0x80004003L)
657 #   define NS_ERROR_NULL_POINTER              NS_ERROR_INVALID_POINTER
658 
659 /* Returned when a function aborts */
660 #   define NS_ERROR_ABORT                     ((nsresult) 0x80004004L)
661 
662 /* Returned when a function fails */
663 #   define NS_ERROR_FAILURE                   ((nsresult) 0x80004005L)
664 
665 /* Returned when an unexpected error occurs */
666 #   define NS_ERROR_UNEXPECTED                ((nsresult) 0x8000ffffL)
667 
668 /* Returned when a memory allocation fails */
669 #   define NS_ERROR_OUT_OF_MEMORY             ((nsresult) 0x8007000eL)
670 
671 /* Returned when an illegal value is passed */
672 #   define NS_ERROR_ILLEGAL_VALUE             ((nsresult) 0x80070057L)
673 #   define NS_ERROR_INVALID_ARG               NS_ERROR_ILLEGAL_VALUE
674 
675 /* Returned when a class doesn't allow aggregation */
676 #   define NS_ERROR_NO_AGGREGATION            ((nsresult) 0x80040110L)
677 
678 /* Returned when an operation can't complete due to an unavailable resource */
679 #   define NS_ERROR_NOT_AVAILABLE             ((nsresult) 0x80040111L)
680 
681 /* Returned when a class is not registered */
682 #   define NS_ERROR_FACTORY_NOT_REGISTERED    ((nsresult) 0x80040154L)
683 
684 /* Returned when a class cannot be registered, but may be tried again later */
685 #   define NS_ERROR_FACTORY_REGISTER_AGAIN    ((nsresult) 0x80040155L)
686 
687 /* Returned when a dynamically loaded factory couldn't be found */
688 #   define NS_ERROR_FACTORY_NOT_LOADED        ((nsresult) 0x800401f8L)
689 
690 /* Returned when a factory doesn't support signatures */
691 #   define NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT \
692                                            (NS_ERROR_BASE + 0x101)
693 
694 /* Returned when a factory already is registered */
695 #   define NS_ERROR_FACTORY_EXISTS            (NS_ERROR_BASE + 0x100)
696 
697 /**
698  * An "interface id" which can be used to uniquely identify a given
699  * interface.
700  * A "unique identifier". This is modeled after OSF DCE UUIDs.
701  */
702 
703 struct nsID {
704     PRUint32 m0;
705     PRUint16 m1;
706     PRUint16 m2;
707     PRUint8 m3[8];
708 };
709 
710 typedef struct nsID nsID;
711 typedef nsID nsIID;
712 typedef nsID nsCID;
713 
714 #  endif /* __cplusplus */
715 
716 #  define VBOX_WINAPI
717 
718 /* Various COM types defined by their XPCOM equivalent */
719 typedef PRInt64 LONG64;
720 typedef PRInt32 LONG;
721 typedef PRInt32 DWORD;
722 typedef PRInt16 SHORT;
723 typedef PRUint64 ULONG64;
724 typedef PRUint32 ULONG;
725 typedef PRUint16 USHORT;
726 
727 typedef PRBool BOOL;
728 
729 #  ifndef FALSE
730 #   define FALSE 0
731 #   define TRUE 1
732 #  endif
733 
734 #  define HRESULT nsresult
735 #  define SUCCEEDED NS_SUCCEEDED
736 #  define FAILED NS_FAILED
737 
738 /* OLE error codes */
739 #  define S_OK                ((nsresult)NS_OK)
740 #  define E_UNEXPECTED        NS_ERROR_UNEXPECTED
741 #  define E_NOTIMPL           NS_ERROR_NOT_IMPLEMENTED
742 #  define E_OUTOFMEMORY       NS_ERROR_OUT_OF_MEMORY
743 #  define E_INVALIDARG        NS_ERROR_INVALID_ARG
744 #  define E_NOINTERFACE       NS_ERROR_NO_INTERFACE
745 #  define E_POINTER           NS_ERROR_NULL_POINTER
746 #  define E_ABORT             NS_ERROR_ABORT
747 #  define E_FAIL              NS_ERROR_FAILURE
748 /* Note: a better analog for E_ACCESSDENIED would probably be
749  * NS_ERROR_NOT_AVAILABLE, but we want binary compatibility for now. */
750 #  define E_ACCESSDENIED      ((nsresult)0x80070005L)
751 
752 /* Basic vartype for COM compatibility. */
753 typedef enum VARTYPE
754 {
755     VT_I2 = 2,
756     VT_I4 = 3,
757     VT_BSTR = 8,
758     VT_DISPATCH = 9,
759     VT_BOOL = 11,
760     VT_UNKNOWN = 13,
761     VT_I1 = 16,
762     VT_UI1 = 17,
763     VT_UI2 = 18,
764     VT_UI4 = 19,
765     VT_I8 = 20,
766     VT_UI8 = 21,
767     VT_HRESULT = 25
768 } VARTYPE;
769 
770 /* Basic safearray type for COM compatibility. */
771 typedef struct SAFEARRAY
772 {
773     void *pv;
774     ULONG c;
775 } SAFEARRAY;
776 
777 #  define ComSafeArrayAsInParam(f) ((f) ? (f)->c : 0), ((f) ? (f)->pv : NULL)
778 #  define ComSafeArrayAsOutParam(f) (&((f)->c)), (&((f)->pv))
779 #  define ComSafeArrayAsOutTypeParam(f,t) (&((f)->c)), (t**)(&((f)->pv))
780 #  define ComSafeArrayAsOutIfaceParam(f,t) (&((f)->c)), (t**)(&((f)->pv))
781 
782 /* Glossing over differences between COM and XPCOM */
783 #  define IErrorInfo nsIException
784 #  define IUnknown nsISupports
785 #  define IDispatch nsISupports
786 
787 /* Make things as COM compatible as possible */
788 #  define interface struct
789 #  ifdef CONST_VTABLE
790 #   define CONST_VTBL const
791 #  else /* !CONST_VTABLE */
792 #   define CONST_VTBL
793 #  endif /* !CONST_VTABLE */
794 
795 #  ifndef __cplusplus
796 
797 /** @todo this first batch of forward declarations (and the corresponding ones
798  * generated for each interface) are 100% redundant, remove eventually. */
799 interface nsISupports;   /* forward declaration */
800 interface nsIException;  /* forward declaration */
801 interface nsIStackFrame; /* forward declaration */
802 interface nsIEventTarget;/* forward declaration */
803 interface nsIEventQueue; /* forward declaration */
804 
805 typedef interface nsISupports nsISupports;     /* forward declaration */
806 typedef interface nsIException nsIException;   /* forward declaration */
807 typedef interface nsIStackFrame nsIStackFrame; /* forward declaration */
808 typedef interface nsIEventTarget nsIEventTarget;/* forward declaration */
809 typedef interface nsIEventQueue nsIEventQueue; /* forward declaration */
810 
811 /* starting interface:    nsISupports */
812 #   define NS_ISUPPORTS_IID_STR "00000000-0000-0000-c000-000000000046"
813 
814 #   define NS_ISUPPORTS_IID \
815     { 0x00000000, 0x0000, 0x0000, \
816       {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} }
817 
818 /**
819  * Reference count values
820  *
821  * This is the return type for AddRef() and Release() in nsISupports.
822  * IUnknown of COM returns an unsigned long from equivalent functions.
823  * The following ifdef exists to maintain binary compatibility with
824  * IUnknown.
825  */
826 #   if defined(XP_WIN) && PR_BYTES_PER_LONG == 4
827 typedef unsigned long nsrefcnt;
828 #   else
829 typedef PRUint32 nsrefcnt;
830 #   endif
831 
832 /**
833  * Basic component object model interface. Objects which implement
834  * this interface support runtime interface discovery (QueryInterface)
835  * and a reference counted memory model (AddRef/Release). This is
836  * modelled after the win32 IUnknown API.
837  */
838 #   ifndef VBOX_WITH_GLUE
839 struct nsISupports_vtbl
840 {
841     nsresult (*QueryInterface)(nsISupports *pThis, const nsID *iid, void **resultp);
842     nsrefcnt (*AddRef)(nsISupports *pThis);
843     nsrefcnt (*Release)(nsISupports *pThis);
844 };
845 #   else /* !VBOX_WITH_GLUE */
846 struct nsISupportsVtbl
847 {
848     nsresult (*QueryInterface)(nsISupports *pThis, const nsID *iid, void **resultp);
849     nsrefcnt (*AddRef)(nsISupports *pThis);
850     nsrefcnt (*Release)(nsISupports *pThis);
851 };
852 #    define nsISupports_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
853 #    define nsISupports_AddRef(p) ((p)->lpVtbl->AddRef(p))
854 #    define nsISupports_Release(p) ((p)->lpVtbl->Release(p))
855 #    define IUnknown_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
856 #    define IUnknown_AddRef(p) ((p)->lpVtbl->AddRef(p))
857 #    define IUnknown_Release(p) ((p)->lpVtbl->Release(p))
858 #    define IDispatch_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
859 #    define IDispatch_AddRef(p) ((p)->lpVtbl->AddRef(p))
860 #    define IDispatch_Release(p) ((p)->lpVtbl->Release(p))
861 #   endif /* !VBOX_WITH_GLUE */
862 
863 interface nsISupports
864 {
865 #   ifndef VBOX_WITH_GLUE
866     struct nsISupports_vtbl *vtbl;
867 #   else /* !VBOX_WITH_GLUE */
868     CONST_VTBL struct nsISupportsVtbl *lpVtbl;
869 #   endif /* !VBOX_WITH_GLUE */
870 };
871 
872 /* starting interface:    nsIException */
873 #   define NS_IEXCEPTION_IID_STR "f3a8d3b4-c424-4edc-8bf6-8974c983ba78"
874 
875 #   define NS_IEXCEPTION_IID \
876     {0xf3a8d3b4, 0xc424, 0x4edc, \
877       { 0x8b, 0xf6, 0x89, 0x74, 0xc9, 0x83, 0xba, 0x78 }}
878 
879 #   ifndef VBOX_WITH_GLUE
880 struct nsIException_vtbl
881 {
882     /* Methods from the interface nsISupports */
883     struct nsISupports_vtbl nsisupports;
884 
885     nsresult (*GetMessage)(nsIException *pThis, PRUnichar * *aMessage);
886     nsresult (*GetResult)(nsIException *pThis, nsresult *aResult);
887     nsresult (*GetName)(nsIException *pThis, PRUnichar * *aName);
888     nsresult (*GetFilename)(nsIException *pThis, PRUnichar * *aFilename);
889     nsresult (*GetLineNumber)(nsIException *pThis, PRUint32 *aLineNumber);
890     nsresult (*GetColumnNumber)(nsIException *pThis, PRUint32 *aColumnNumber);
891     nsresult (*GetLocation)(nsIException *pThis, nsIStackFrame * *aLocation);
892     nsresult (*GetInner)(nsIException *pThis, nsIException * *aInner);
893     nsresult (*GetData)(nsIException *pThis, nsISupports * *aData);
894     nsresult (*ToString)(nsIException *pThis, PRUnichar **_retval);
895 };
896 #   else /* !VBOX_WITH_GLUE */
897 struct nsIExceptionVtbl
898 {
899     nsresult (*QueryInterface)(nsIException *pThis, const nsID *iid, void **resultp);
900     nsrefcnt (*AddRef)(nsIException *pThis);
901     nsrefcnt (*Release)(nsIException *pThis);
902 
903     nsresult (*GetMessage)(nsIException *pThis, PRUnichar * *aMessage);
904     nsresult (*GetResult)(nsIException *pThis, nsresult *aResult);
905     nsresult (*GetName)(nsIException *pThis, PRUnichar * *aName);
906     nsresult (*GetFilename)(nsIException *pThis, PRUnichar * *aFilename);
907     nsresult (*GetLineNumber)(nsIException *pThis, PRUint32 *aLineNumber);
908     nsresult (*GetColumnNumber)(nsIException *pThis, PRUint32 *aColumnNumber);
909     nsresult (*GetLocation)(nsIException *pThis, nsIStackFrame * *aLocation);
910     nsresult (*GetInner)(nsIException *pThis, nsIException * *aInner);
911     nsresult (*GetData)(nsIException *pThis, nsISupports * *aData);
912     nsresult (*ToString)(nsIException *pThis, PRUnichar **_retval);
913 };
914 #    define nsIException_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
915 #    define nsIException_AddRef(p) ((p)->lpVtbl->AddRef(p))
916 #    define nsIException_Release(p) ((p)->lpVtbl->Release(p))
917 #    define nsIException_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
918 #    define nsIException_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
919 #    define nsIException_get_Result(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
920 #    define nsIException_GetResult(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
921 #    define nsIException_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
922 #    define nsIException_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
923 #    define nsIException_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
924 #    define nsIException_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
925 #    define nsIException_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
926 #    define nsIException_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
927 #    define nsIException_get_ColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
928 #    define nsIException_GetColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
929 #    define nsIException_get_Inner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
930 #    define nsIException_GetInner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
931 #    define nsIException_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
932 #    define nsIException_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
933 #    define nsIException_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
934 #    define IErrorInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
935 #    define IErrorInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
936 #    define IErrorInfo_Release(p) ((p)->lpVtbl->Release(p))
937 #    define IErrorInfo_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
938 #    define IErrorInfo_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
939 #    define IErrorInfo_get_Result(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
940 #    define IErrorInfo_GetResult(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
941 #    define IErrorInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
942 #    define IErrorInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
943 #    define IErrorInfo_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
944 #    define IErrorInfo_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
945 #    define IErrorInfo_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
946 #    define IErrorInfo_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
947 #    define IErrorInfo_get_ColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
948 #    define IErrorInfo_GetColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
949 #    define IErrorInfo_get_Inner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
950 #    define IErrorInfo_GetInner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
951 #    define IErrorInfo_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
952 #    define IErrorInfo_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
953 #    define IErrorInfo_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
954 #   endif /* !VBOX_WITH_GLUE */
955 
956 interface nsIException
957 {
958 #   ifndef VBOX_WITH_GLUE
959     struct nsIException_vtbl *vtbl;
960 #   else /* !VBOX_WITH_GLUE */
961     CONST_VTBL struct nsIExceptionVtbl *lpVtbl;
962 #   endif /* !VBOX_WITH_GLUE */
963 };
964 
965 /* starting interface:    nsIStackFrame */
966 #   define NS_ISTACKFRAME_IID_STR "91d82105-7c62-4f8b-9779-154277c0ee90"
967 
968 #   define NS_ISTACKFRAME_IID \
969     {0x91d82105, 0x7c62, 0x4f8b, \
970       { 0x97, 0x79, 0x15, 0x42, 0x77, 0xc0, 0xee, 0x90 }}
971 
972 #   ifndef VBOX_WITH_GLUE
973 struct nsIStackFrame_vtbl
974 {
975     /* Methods from the interface nsISupports */
976     struct nsISupports_vtbl nsisupports;
977 
978     nsresult (*GetLanguage)(nsIStackFrame *pThis, PRUint32 *aLanguage);
979     nsresult (*GetLanguageName)(nsIStackFrame *pThis, PRUnichar * *aLanguageName);
980     nsresult (*GetFilename)(nsIStackFrame *pThis, PRUnichar * *aFilename);
981     nsresult (*GetName)(nsIStackFrame *pThis, PRUnichar * *aName);
982     nsresult (*GetLineNumber)(nsIStackFrame *pThis, PRInt32 *aLineNumber);
983     nsresult (*GetSourceLine)(nsIStackFrame *pThis, PRUnichar * *aSourceLine);
984     nsresult (*GetCaller)(nsIStackFrame *pThis, nsIStackFrame * *aCaller);
985     nsresult (*ToString)(nsIStackFrame *pThis, PRUnichar **_retval);
986 };
987 #   else /* !VBOX_WITH_GLUE */
988 struct nsIStackFrameVtbl
989 {
990     nsresult (*QueryInterface)(nsIStackFrame *pThis, const nsID *iid, void **resultp);
991     nsrefcnt (*AddRef)(nsIStackFrame *pThis);
992     nsrefcnt (*Release)(nsIStackFrame *pThis);
993 
994     nsresult (*GetLanguage)(nsIStackFrame *pThis, PRUint32 *aLanguage);
995     nsresult (*GetLanguageName)(nsIStackFrame *pThis, PRUnichar * *aLanguageName);
996     nsresult (*GetFilename)(nsIStackFrame *pThis, PRUnichar * *aFilename);
997     nsresult (*GetName)(nsIStackFrame *pThis, PRUnichar * *aName);
998     nsresult (*GetLineNumber)(nsIStackFrame *pThis, PRInt32 *aLineNumber);
999     nsresult (*GetSourceLine)(nsIStackFrame *pThis, PRUnichar * *aSourceLine);
1000     nsresult (*GetCaller)(nsIStackFrame *pThis, nsIStackFrame * *aCaller);
1001     nsresult (*ToString)(nsIStackFrame *pThis, PRUnichar **_retval);
1002 };
1003 #    define nsIStackFrame_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
1004 #    define nsIStackFrame_AddRef(p) ((p)->lpVtbl->AddRef(p))
1005 #    define nsIStackFrame_Release(p) ((p)->lpVtbl->Release(p))
1006 #    define nsIStackFrame_get_Language(p, aLanguage) ((p)->lpVtbl->GetLanguge(p, aLanguage))
1007 #    define nsIStackFrame_GetLanguage(p, aLanguage) ((p)->lpVtbl->GetLanguge(p, aLanguage))
1008 #    define nsIStackFrame_get_LanguageName(p, aLanguageName) ((p)->lpVtbl->GetLanguageName(p, aLanguageName))
1009 #    define nsIStackFrame_GetLanguageName(p, aLanguageName) ((p)->lpVtbl->GetLanguageName(p, aLanguageName))
1010 #    define nsIStackFrame_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
1011 #    define nsIStackFrame_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
1012 #    define nsIStackFrame_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
1013 #    define nsIStackFrame_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
1014 #    define nsIStackFrame_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
1015 #    define nsIStackFrame_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
1016 #    define nsIStackFrame_get_SourceLine(p, aSourceLine) ((p)->lpVtbl->GetSourceLine(p, aSourceLine))
1017 #    define nsIStackFrame_GetSourceLine(p, aSourceLine) ((p)->lpVtbl->GetSourceLine(p, aSourceLine))
1018 #    define nsIStackFrame_get_Caller(p, aCaller) ((p)->lpVtbl->GetCaller(p, aCaller))
1019 #    define nsIStackFrame_GetCaller(p, aCaller) ((p)->lpVtbl->GetCaller(p, aCaller))
1020 #    define nsIStackFrame_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
1021 #   endif /* !VBOX_WITH_GLUE */
1022 
1023 interface nsIStackFrame
1024 {
1025 #   ifndef VBOX_WITH_GLUE
1026     struct nsIStackFrame_vtbl *vtbl;
1027 #   else /* !VBOX_WITH_GLUE */
1028     CONST_VTBL struct nsIStackFrameVtbl *lpVtbl;
1029 #   endif /* !VBOX_WITH_GLUE */
1030 };
1031 
1032 /* starting interface:    nsIEventTarget */
1033 #   define NS_IEVENTTARGET_IID_STR "ea99ad5b-cc67-4efb-97c9-2ef620a59f2a"
1034 
1035 #   define NS_IEVENTTARGET_IID \
1036     {0xea99ad5b, 0xcc67, 0x4efb, \
1037       { 0x97, 0xc9, 0x2e, 0xf6, 0x20, 0xa5, 0x9f, 0x2a }}
1038 
1039 #   ifndef VBOX_WITH_GLUE
1040 struct nsIEventTarget_vtbl
1041 {
1042     struct nsISupports_vtbl nsisupports;
1043 
1044     nsresult (*PostEvent)(nsIEventTarget *pThis, PLEvent * aEvent);
1045     nsresult (*IsOnCurrentThread)(nsIEventTarget *pThis, PRBool *_retval);
1046 };
1047 #   else /* !VBOX_WITH_GLUE */
1048 struct nsIEventTargetVtbl
1049 {
1050     nsresult (*QueryInterface)(nsIEventTarget *pThis, const nsID *iid, void **resultp);
1051     nsrefcnt (*AddRef)(nsIEventTarget *pThis);
1052     nsrefcnt (*Release)(nsIEventTarget *pThis);
1053 
1054     nsresult (*PostEvent)(nsIEventTarget *pThis, PLEvent * aEvent);
1055     nsresult (*IsOnCurrentThread)(nsIEventTarget *pThis, PRBool *_retval);
1056 };
1057 #    define nsIEventTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
1058 #    define nsIEventTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
1059 #    define nsIEventTarget_Release(p) ((p)->lpVtbl->Release(p))
1060 #    define nsIEventTarget_PostEvent(p, aEvent) ((p)->lpVtbl->PostEvent(p, aEvent))
1061 #    define nsIEventTarget_IsOnCurrentThread(p, retval) ((p)->lpVtbl->IsOnCurrentThread(p, retval))
1062 #   endif /* !VBOX_WITH_GLUE */
1063 
1064 interface nsIEventTarget
1065 {
1066 #   ifndef VBOX_WITH_GLUE
1067     struct nsIEventTarget_vtbl *vtbl;
1068 #   else /* !VBOX_WITH_GLUE */
1069     CONST_VTBL struct nsIEventTargetVtbl *lpVtbl;
1070 #   endif /* !VBOX_WITH_GLUE */
1071 };
1072 
1073 /* starting interface:    nsIEventQueue */
1074 #   define NS_IEVENTQUEUE_IID_STR "176afb41-00a4-11d3-9f2a-00400553eef0"
1075 
1076 #   define NS_IEVENTQUEUE_IID \
1077   {0x176afb41, 0x00a4, 0x11d3, \
1078     { 0x9f, 0x2a, 0x00, 0x40, 0x05, 0x53, 0xee, 0xf0 }}
1079 
1080 #   ifndef VBOX_WITH_GLUE
1081 struct nsIEventQueue_vtbl
1082 {
1083     struct nsIEventTarget_vtbl nsieventtarget;
1084 
1085     nsresult (*InitEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * owner, PLHandleEventProc handler, PLDestroyEventProc destructor);
1086     nsresult (*PostSynchronousEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * *aResult);
1087     nsresult (*PendingEvents)(nsIEventQueue *pThis, PRBool *_retval);
1088     nsresult (*ProcessPendingEvents)(nsIEventQueue *pThis);
1089     nsresult (*EventLoop)(nsIEventQueue *pThis);
1090     nsresult (*EventAvailable)(nsIEventQueue *pThis, PRBool *aResult);
1091     nsresult (*GetEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1092     nsresult (*HandleEvent)(nsIEventQueue *pThis, PLEvent * aEvent);
1093     nsresult (*WaitForEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1094     PRInt32 (*GetEventQueueSelectFD)(nsIEventQueue *pThis);
1095     nsresult (*Init)(nsIEventQueue *pThis, PRBool aNative);
1096     nsresult (*InitFromPRThread)(nsIEventQueue *pThis, PRThread * thread, PRBool aNative);
1097     nsresult (*InitFromPLQueue)(nsIEventQueue *pThis, PLEventQueue * aQueue);
1098     nsresult (*EnterMonitor)(nsIEventQueue *pThis);
1099     nsresult (*ExitMonitor)(nsIEventQueue *pThis);
1100     nsresult (*RevokeEvents)(nsIEventQueue *pThis, void * owner);
1101     nsresult (*GetPLEventQueue)(nsIEventQueue *pThis, PLEventQueue * *_retval);
1102     nsresult (*IsQueueNative)(nsIEventQueue *pThis, PRBool *_retval);
1103     nsresult (*StopAcceptingEvents)(nsIEventQueue *pThis);
1104 };
1105 #   else /* !VBOX_WITH_GLUE */
1106 struct nsIEventQueueVtbl
1107 {
1108     nsresult (*QueryInterface)(nsIEventQueue *pThis, const nsID *iid, void **resultp);
1109     nsrefcnt (*AddRef)(nsIEventQueue *pThis);
1110     nsrefcnt (*Release)(nsIEventQueue *pThis);
1111 
1112     nsresult (*PostEvent)(nsIEventQueue *pThis, PLEvent * aEvent);
1113     nsresult (*IsOnCurrentThread)(nsIEventQueue *pThis, PRBool *_retval);
1114 
1115     nsresult (*InitEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * owner, PLHandleEventProc handler, PLDestroyEventProc destructor);
1116     nsresult (*PostSynchronousEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * *aResult);
1117     nsresult (*PendingEvents)(nsIEventQueue *pThis, PRBool *_retval);
1118     nsresult (*ProcessPendingEvents)(nsIEventQueue *pThis);
1119     nsresult (*EventLoop)(nsIEventQueue *pThis);
1120     nsresult (*EventAvailable)(nsIEventQueue *pThis, PRBool *aResult);
1121     nsresult (*GetEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1122     nsresult (*HandleEvent)(nsIEventQueue *pThis, PLEvent * aEvent);
1123     nsresult (*WaitForEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1124     PRInt32 (*GetEventQueueSelectFD)(nsIEventQueue *pThis);
1125     nsresult (*Init)(nsIEventQueue *pThis, PRBool aNative);
1126     nsresult (*InitFromPRThread)(nsIEventQueue *pThis, PRThread * thread, PRBool aNative);
1127     nsresult (*InitFromPLQueue)(nsIEventQueue *pThis, PLEventQueue * aQueue);
1128     nsresult (*EnterMonitor)(nsIEventQueue *pThis);
1129     nsresult (*ExitMonitor)(nsIEventQueue *pThis);
1130     nsresult (*RevokeEvents)(nsIEventQueue *pThis, void * owner);
1131     nsresult (*GetPLEventQueue)(nsIEventQueue *pThis, PLEventQueue * *_retval);
1132     nsresult (*IsQueueNative)(nsIEventQueue *pThis, PRBool *_retval);
1133     nsresult (*StopAcceptingEvents)(nsIEventQueue *pThis);
1134 };
1135 #    define nsIEventQueue_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
1136 #    define nsIEventQueue_AddRef(p) ((p)->lpVtbl->AddRef(p))
1137 #    define nsIEventQueue_Release(p) ((p)->lpVtbl->Release(p))
1138 #    define nsIEventQueue_PostEvent(p, aEvent) ((p)->lpVtbl->PostEvent(p, aEvent))
1139 #    define nsIEventQueue_IsOnCurrentThread(p, retval) ((p)->lpVtbl->IsOnCurrentThread(p, retval))
1140 #    define nsIEventQueue_InitEvent(p, aEvent, owner, handler, destructor) ((p)->lpVtbl->InitEvent(p, aEvent, owner, handler, destructor))
1141 #    define nsIEventQueue_PostSynchronousEvent(p, aEvent, aResult) ((p)->lpVtbl->PostSynchronousEvent(p, aEvent, aResult))
1142 #    define nsIEventQueue_ProcessPendingEvents(p) ((p)->lpVtbl->ProcessPendingEvents(p))
1143 #    define nsIEventQueue_EventLoop(p) ((p)->lpVtbl->EventLoop(p))
1144 #    define nsIEventQueue_EventAvailable(p, aResult) ((p)->lpVtbl->EventAvailable(p, aResult))
1145 #    define nsIEventQueue_get_Event(p, aEvent) ((p)->lpVtbl->GetEvent(p, aEvent))
1146 #    define nsIEventQueue_GetEvent(p, aEvent) ((p)->lpVtbl->GetEvent(p, aEvent))
1147 #    define nsIEventQueue_HandleEvent(p, aEvent) ((p)->lpVtbl->HandleEvent(p, aEvent))
1148 #    define nsIEventQueue_WaitForEvent(p, aEvent) ((p)->lpVtbl->WaitForEvent(p, aEvent))
1149 #    define nsIEventQueue_GetEventQueueSelectFD(p) ((p)->lpVtbl->GetEventQueueSelectFD(p))
1150 #    define nsIEventQueue_Init(p, aNative) ((p)->lpVtbl->Init(p, aNative))
1151 #    define nsIEventQueue_InitFromPLQueue(p, aQueue) ((p)->lpVtbl->InitFromPLQueue(p, aQueue))
1152 #    define nsIEventQueue_EnterMonitor(p) ((p)->lpVtbl->EnterMonitor(p))
1153 #    define nsIEventQueue_ExitMonitor(p) ((p)->lpVtbl->ExitMonitor(p))
1154 #    define nsIEventQueue_RevokeEvents(p, owner) ((p)->lpVtbl->RevokeEvents(p, owner))
1155 #    define nsIEventQueue_GetPLEventQueue(p, retval) ((p)->lpVtbl->GetPLEventQueue(p, retval))
1156 #    define nsIEventQueue_IsQueueNative(p, retval) ((p)->lpVtbl->IsQueueNative(p, retval))
1157 #    define nsIEventQueue_StopAcceptingEvents(p) ((p)->lpVtbl->StopAcceptingEvents(p))
1158 #   endif /* !VBOX_WITH_GLUE */
1159 
1160 interface nsIEventQueue
1161 {
1162 #   ifndef VBOX_WITH_GLUE
1163     struct nsIEventQueue_vtbl *vtbl;
1164 #   else /* !VBOX_WITH_GLUE */
1165     CONST_VTBL struct nsIEventQueueVtbl *lpVtbl;
1166 #   endif /* !VBOX_WITH_GLUE */
1167 };
1168 
1169 
1170 #   define VBOX_E_OBJECT_NOT_FOUND ((HRESULT)0x80BB0001)
1171 #   define VBOX_E_INVALID_VM_STATE ((HRESULT)0x80BB0002)
1172 #   define VBOX_E_VM_ERROR ((HRESULT)0x80BB0003)
1173 #   define VBOX_E_FILE_ERROR ((HRESULT)0x80BB0004)
1174 #   define VBOX_E_IPRT_ERROR ((HRESULT)0x80BB0005)
1175 #   define VBOX_E_PDM_ERROR ((HRESULT)0x80BB0006)
1176 #   define VBOX_E_INVALID_OBJECT_STATE ((HRESULT)0x80BB0007)
1177 #   define VBOX_E_HOST_ERROR ((HRESULT)0x80BB0008)
1178 #   define VBOX_E_NOT_SUPPORTED ((HRESULT)0x80BB0009)
1179 #   define VBOX_E_XML_ERROR ((HRESULT)0x80BB000A)
1180 #   define VBOX_E_INVALID_SESSION_STATE ((HRESULT)0x80BB000B)
1181 #   define VBOX_E_OBJECT_IN_USE ((HRESULT)0x80BB000C)
1182 #   define VBOX_E_PASSWORD_INCORRECT ((HRESULT)0x80BB000D)
1183 #   define VBOX_E_MAXIMUM_REACHED ((HRESULT)0x80BB000E)
1184 #   define VBOX_E_GSTCTL_GUEST_ERROR ((HRESULT)0x80BB000F)
1185 #   define VBOX_E_TIMEOUT ((HRESULT)0x80BB0010)
1186 
1187 
1188 interface IVirtualBoxErrorInfo;
1189 interface INATNetwork;
1190 interface IDHCPServer;
1191 interface IVirtualBox;
1192 interface IVFSExplorer;
1193 interface ICertificate;
1194 interface IAppliance;
1195 interface IVirtualSystemDescription;
1196 interface IUnattended;
1197 interface IBIOSSettings;
1198 interface IRecordingScreenSettings;
1199 interface IRecordingSettings;
1200 interface IPCIAddress;
1201 interface IPCIDeviceAttachment;
1202 interface IMachine;
1203 interface IEmulatedUSB;
1204 interface IVRDEServerInfo;
1205 interface IConsole;
1206 interface IHostNetworkInterface;
1207 interface IHostVideoInputDevice;
1208 interface IHost;
1209 interface ISystemProperties;
1210 interface IGuestOSType;
1211 interface IAdditionsFacility;
1212 interface IDnDBase;
1213 interface IDnDSource;
1214 interface IGuestDnDSource;
1215 interface IDnDTarget;
1216 interface IGuestDnDTarget;
1217 interface IGuestSession;
1218 interface IProcess;
1219 interface IGuestProcess;
1220 interface IDirectory;
1221 interface IGuestDirectory;
1222 interface IFile;
1223 interface IGuestFile;
1224 interface IFsObjInfo;
1225 interface IGuestFsObjInfo;
1226 interface IGuest;
1227 interface IProgress;
1228 interface ISnapshot;
1229 interface IMediumAttachment;
1230 interface IMedium;
1231 interface IMediumFormat;
1232 interface IDataStream;
1233 interface IMediumIO;
1234 interface IToken;
1235 interface IKeyboard;
1236 interface IMousePointerShape;
1237 interface IMouse;
1238 interface IDisplaySourceBitmap;
1239 interface IFramebuffer;
1240 interface IFramebufferOverlay;
1241 interface IGuestScreenInfo;
1242 interface IDisplay;
1243 interface INetworkAdapter;
1244 interface ISerialPort;
1245 interface IParallelPort;
1246 interface IMachineDebugger;
1247 interface IUSBDeviceFilters;
1248 interface IUSBController;
1249 interface IUSBDevice;
1250 interface IUSBDeviceFilter;
1251 interface IHostUSBDevice;
1252 interface IHostUSBDeviceFilter;
1253 interface IUSBProxyBackend;
1254 interface IAudioAdapter;
1255 interface IVRDEServer;
1256 interface ISharedFolder;
1257 interface ISession;
1258 interface IStorageController;
1259 interface IPerformanceMetric;
1260 interface IPerformanceCollector;
1261 interface INATEngine;
1262 interface IExtPackPlugIn;
1263 interface IExtPackBase;
1264 interface IExtPack;
1265 interface IExtPackFile;
1266 interface IExtPackManager;
1267 interface IBandwidthGroup;
1268 interface IBandwidthControl;
1269 interface IVirtualBoxClient;
1270 interface IEventSource;
1271 interface IEventListener;
1272 interface IEvent;
1273 interface IReusableEvent;
1274 interface IMachineEvent;
1275 interface IMachineStateChangedEvent;
1276 interface IMachineDataChangedEvent;
1277 interface IMediumRegisteredEvent;
1278 interface IMediumConfigChangedEvent;
1279 interface IMachineRegisteredEvent;
1280 interface ISessionStateChangedEvent;
1281 interface IGuestPropertyChangedEvent;
1282 interface ISnapshotEvent;
1283 interface ISnapshotTakenEvent;
1284 interface ISnapshotDeletedEvent;
1285 interface ISnapshotRestoredEvent;
1286 interface ISnapshotChangedEvent;
1287 interface IMousePointerShapeChangedEvent;
1288 interface IMouseCapabilityChangedEvent;
1289 interface IKeyboardLedsChangedEvent;
1290 interface IStateChangedEvent;
1291 interface IAdditionsStateChangedEvent;
1292 interface INetworkAdapterChangedEvent;
1293 interface IAudioAdapterChangedEvent;
1294 interface ISerialPortChangedEvent;
1295 interface IParallelPortChangedEvent;
1296 interface IStorageControllerChangedEvent;
1297 interface IMediumChangedEvent;
1298 interface IClipboardModeChangedEvent;
1299 interface IDnDModeChangedEvent;
1300 interface ICPUChangedEvent;
1301 interface ICPUExecutionCapChangedEvent;
1302 interface IGuestKeyboardEvent;
1303 interface IGuestMouseEvent;
1304 interface IGuestMultiTouchEvent;
1305 interface IGuestSessionEvent;
1306 interface IGuestSessionStateChangedEvent;
1307 interface IGuestSessionRegisteredEvent;
1308 interface IGuestProcessEvent;
1309 interface IGuestProcessRegisteredEvent;
1310 interface IGuestProcessStateChangedEvent;
1311 interface IGuestProcessIOEvent;
1312 interface IGuestProcessInputNotifyEvent;
1313 interface IGuestProcessOutputEvent;
1314 interface IGuestFileEvent;
1315 interface IGuestFileRegisteredEvent;
1316 interface IGuestFileStateChangedEvent;
1317 interface IGuestFileIOEvent;
1318 interface IGuestFileOffsetChangedEvent;
1319 interface IGuestFileSizeChangedEvent;
1320 interface IGuestFileReadEvent;
1321 interface IGuestFileWriteEvent;
1322 interface IVRDEServerChangedEvent;
1323 interface IVRDEServerInfoChangedEvent;
1324 interface IRecordingChangedEvent;
1325 interface IUSBControllerChangedEvent;
1326 interface IUSBDeviceStateChangedEvent;
1327 interface ISharedFolderChangedEvent;
1328 interface IRuntimeErrorEvent;
1329 interface IEventSourceChangedEvent;
1330 interface IExtraDataChangedEvent;
1331 interface IVetoEvent;
1332 interface IExtraDataCanChangeEvent;
1333 interface ICanShowWindowEvent;
1334 interface IShowWindowEvent;
1335 interface INATRedirectEvent;
1336 interface IHostPCIDevicePlugEvent;
1337 interface IVBoxSVCAvailabilityChangedEvent;
1338 interface IBandwidthGroupChangedEvent;
1339 interface IGuestMonitorChangedEvent;
1340 interface IGuestUserStateChangedEvent;
1341 interface IStorageDeviceChangedEvent;
1342 interface INATNetworkChangedEvent;
1343 interface INATNetworkStartStopEvent;
1344 interface INATNetworkAlterEvent;
1345 interface INATNetworkCreationDeletionEvent;
1346 interface INATNetworkSettingEvent;
1347 interface INATNetworkPortForwardEvent;
1348 interface IHostNameResolutionConfigurationChangeEvent;
1349 interface IProgressEvent;
1350 interface IProgressPercentageChangedEvent;
1351 interface IProgressTaskCompletedEvent;
1352 interface ICursorPositionChangedEvent;
1353 interface IGuestAdditionsStatusChangedEvent;
1354 interface ICloudClient;
1355 interface ICloudProfile;
1356 interface ICloudProvider;
1357 interface ICloudProviderManager;
1358 
1359 typedef interface IVirtualBoxErrorInfo IVirtualBoxErrorInfo;
1360 typedef interface INATNetwork INATNetwork;
1361 typedef interface IDHCPServer IDHCPServer;
1362 typedef interface IVirtualBox IVirtualBox;
1363 typedef interface IVFSExplorer IVFSExplorer;
1364 typedef interface ICertificate ICertificate;
1365 typedef interface IAppliance IAppliance;
1366 typedef interface IVirtualSystemDescription IVirtualSystemDescription;
1367 typedef interface IUnattended IUnattended;
1368 typedef interface IBIOSSettings IBIOSSettings;
1369 typedef interface IRecordingScreenSettings IRecordingScreenSettings;
1370 typedef interface IRecordingSettings IRecordingSettings;
1371 typedef interface IPCIAddress IPCIAddress;
1372 typedef interface IPCIDeviceAttachment IPCIDeviceAttachment;
1373 typedef interface IMachine IMachine;
1374 typedef interface IEmulatedUSB IEmulatedUSB;
1375 typedef interface IVRDEServerInfo IVRDEServerInfo;
1376 typedef interface IConsole IConsole;
1377 typedef interface IHostNetworkInterface IHostNetworkInterface;
1378 typedef interface IHostVideoInputDevice IHostVideoInputDevice;
1379 typedef interface IHost IHost;
1380 typedef interface ISystemProperties ISystemProperties;
1381 typedef interface IGuestOSType IGuestOSType;
1382 typedef interface IAdditionsFacility IAdditionsFacility;
1383 typedef interface IDnDBase IDnDBase;
1384 typedef interface IDnDSource IDnDSource;
1385 typedef interface IGuestDnDSource IGuestDnDSource;
1386 typedef interface IDnDTarget IDnDTarget;
1387 typedef interface IGuestDnDTarget IGuestDnDTarget;
1388 typedef interface IGuestSession IGuestSession;
1389 typedef interface IProcess IProcess;
1390 typedef interface IGuestProcess IGuestProcess;
1391 typedef interface IDirectory IDirectory;
1392 typedef interface IGuestDirectory IGuestDirectory;
1393 typedef interface IFile IFile;
1394 typedef interface IGuestFile IGuestFile;
1395 typedef interface IFsObjInfo IFsObjInfo;
1396 typedef interface IGuestFsObjInfo IGuestFsObjInfo;
1397 typedef interface IGuest IGuest;
1398 typedef interface IProgress IProgress;
1399 typedef interface ISnapshot ISnapshot;
1400 typedef interface IMediumAttachment IMediumAttachment;
1401 typedef interface IMedium IMedium;
1402 typedef interface IMediumFormat IMediumFormat;
1403 typedef interface IDataStream IDataStream;
1404 typedef interface IMediumIO IMediumIO;
1405 typedef interface IToken IToken;
1406 typedef interface IKeyboard IKeyboard;
1407 typedef interface IMousePointerShape IMousePointerShape;
1408 typedef interface IMouse IMouse;
1409 typedef interface IDisplaySourceBitmap IDisplaySourceBitmap;
1410 typedef interface IFramebuffer IFramebuffer;
1411 typedef interface IFramebufferOverlay IFramebufferOverlay;
1412 typedef interface IGuestScreenInfo IGuestScreenInfo;
1413 typedef interface IDisplay IDisplay;
1414 typedef interface INetworkAdapter INetworkAdapter;
1415 typedef interface ISerialPort ISerialPort;
1416 typedef interface IParallelPort IParallelPort;
1417 typedef interface IMachineDebugger IMachineDebugger;
1418 typedef interface IUSBDeviceFilters IUSBDeviceFilters;
1419 typedef interface IUSBController IUSBController;
1420 typedef interface IUSBDevice IUSBDevice;
1421 typedef interface IUSBDeviceFilter IUSBDeviceFilter;
1422 typedef interface IHostUSBDevice IHostUSBDevice;
1423 typedef interface IHostUSBDeviceFilter IHostUSBDeviceFilter;
1424 typedef interface IUSBProxyBackend IUSBProxyBackend;
1425 typedef interface IAudioAdapter IAudioAdapter;
1426 typedef interface IVRDEServer IVRDEServer;
1427 typedef interface ISharedFolder ISharedFolder;
1428 typedef interface ISession ISession;
1429 typedef interface IStorageController IStorageController;
1430 typedef interface IPerformanceMetric IPerformanceMetric;
1431 typedef interface IPerformanceCollector IPerformanceCollector;
1432 typedef interface INATEngine INATEngine;
1433 typedef interface IExtPackPlugIn IExtPackPlugIn;
1434 typedef interface IExtPackBase IExtPackBase;
1435 typedef interface IExtPack IExtPack;
1436 typedef interface IExtPackFile IExtPackFile;
1437 typedef interface IExtPackManager IExtPackManager;
1438 typedef interface IBandwidthGroup IBandwidthGroup;
1439 typedef interface IBandwidthControl IBandwidthControl;
1440 typedef interface IVirtualBoxClient IVirtualBoxClient;
1441 typedef interface IEventSource IEventSource;
1442 typedef interface IEventListener IEventListener;
1443 typedef interface IEvent IEvent;
1444 typedef interface IReusableEvent IReusableEvent;
1445 typedef interface IMachineEvent IMachineEvent;
1446 typedef interface IMachineStateChangedEvent IMachineStateChangedEvent;
1447 typedef interface IMachineDataChangedEvent IMachineDataChangedEvent;
1448 typedef interface IMediumRegisteredEvent IMediumRegisteredEvent;
1449 typedef interface IMediumConfigChangedEvent IMediumConfigChangedEvent;
1450 typedef interface IMachineRegisteredEvent IMachineRegisteredEvent;
1451 typedef interface ISessionStateChangedEvent ISessionStateChangedEvent;
1452 typedef interface IGuestPropertyChangedEvent IGuestPropertyChangedEvent;
1453 typedef interface ISnapshotEvent ISnapshotEvent;
1454 typedef interface ISnapshotTakenEvent ISnapshotTakenEvent;
1455 typedef interface ISnapshotDeletedEvent ISnapshotDeletedEvent;
1456 typedef interface ISnapshotRestoredEvent ISnapshotRestoredEvent;
1457 typedef interface ISnapshotChangedEvent ISnapshotChangedEvent;
1458 typedef interface IMousePointerShapeChangedEvent IMousePointerShapeChangedEvent;
1459 typedef interface IMouseCapabilityChangedEvent IMouseCapabilityChangedEvent;
1460 typedef interface IKeyboardLedsChangedEvent IKeyboardLedsChangedEvent;
1461 typedef interface IStateChangedEvent IStateChangedEvent;
1462 typedef interface IAdditionsStateChangedEvent IAdditionsStateChangedEvent;
1463 typedef interface INetworkAdapterChangedEvent INetworkAdapterChangedEvent;
1464 typedef interface IAudioAdapterChangedEvent IAudioAdapterChangedEvent;
1465 typedef interface ISerialPortChangedEvent ISerialPortChangedEvent;
1466 typedef interface IParallelPortChangedEvent IParallelPortChangedEvent;
1467 typedef interface IStorageControllerChangedEvent IStorageControllerChangedEvent;
1468 typedef interface IMediumChangedEvent IMediumChangedEvent;
1469 typedef interface IClipboardModeChangedEvent IClipboardModeChangedEvent;
1470 typedef interface IDnDModeChangedEvent IDnDModeChangedEvent;
1471 typedef interface ICPUChangedEvent ICPUChangedEvent;
1472 typedef interface ICPUExecutionCapChangedEvent ICPUExecutionCapChangedEvent;
1473 typedef interface IGuestKeyboardEvent IGuestKeyboardEvent;
1474 typedef interface IGuestMouseEvent IGuestMouseEvent;
1475 typedef interface IGuestMultiTouchEvent IGuestMultiTouchEvent;
1476 typedef interface IGuestSessionEvent IGuestSessionEvent;
1477 typedef interface IGuestSessionStateChangedEvent IGuestSessionStateChangedEvent;
1478 typedef interface IGuestSessionRegisteredEvent IGuestSessionRegisteredEvent;
1479 typedef interface IGuestProcessEvent IGuestProcessEvent;
1480 typedef interface IGuestProcessRegisteredEvent IGuestProcessRegisteredEvent;
1481 typedef interface IGuestProcessStateChangedEvent IGuestProcessStateChangedEvent;
1482 typedef interface IGuestProcessIOEvent IGuestProcessIOEvent;
1483 typedef interface IGuestProcessInputNotifyEvent IGuestProcessInputNotifyEvent;
1484 typedef interface IGuestProcessOutputEvent IGuestProcessOutputEvent;
1485 typedef interface IGuestFileEvent IGuestFileEvent;
1486 typedef interface IGuestFileRegisteredEvent IGuestFileRegisteredEvent;
1487 typedef interface IGuestFileStateChangedEvent IGuestFileStateChangedEvent;
1488 typedef interface IGuestFileIOEvent IGuestFileIOEvent;
1489 typedef interface IGuestFileOffsetChangedEvent IGuestFileOffsetChangedEvent;
1490 typedef interface IGuestFileSizeChangedEvent IGuestFileSizeChangedEvent;
1491 typedef interface IGuestFileReadEvent IGuestFileReadEvent;
1492 typedef interface IGuestFileWriteEvent IGuestFileWriteEvent;
1493 typedef interface IVRDEServerChangedEvent IVRDEServerChangedEvent;
1494 typedef interface IVRDEServerInfoChangedEvent IVRDEServerInfoChangedEvent;
1495 typedef interface IRecordingChangedEvent IRecordingChangedEvent;
1496 typedef interface IUSBControllerChangedEvent IUSBControllerChangedEvent;
1497 typedef interface IUSBDeviceStateChangedEvent IUSBDeviceStateChangedEvent;
1498 typedef interface ISharedFolderChangedEvent ISharedFolderChangedEvent;
1499 typedef interface IRuntimeErrorEvent IRuntimeErrorEvent;
1500 typedef interface IEventSourceChangedEvent IEventSourceChangedEvent;
1501 typedef interface IExtraDataChangedEvent IExtraDataChangedEvent;
1502 typedef interface IVetoEvent IVetoEvent;
1503 typedef interface IExtraDataCanChangeEvent IExtraDataCanChangeEvent;
1504 typedef interface ICanShowWindowEvent ICanShowWindowEvent;
1505 typedef interface IShowWindowEvent IShowWindowEvent;
1506 typedef interface INATRedirectEvent INATRedirectEvent;
1507 typedef interface IHostPCIDevicePlugEvent IHostPCIDevicePlugEvent;
1508 typedef interface IVBoxSVCAvailabilityChangedEvent IVBoxSVCAvailabilityChangedEvent;
1509 typedef interface IBandwidthGroupChangedEvent IBandwidthGroupChangedEvent;
1510 typedef interface IGuestMonitorChangedEvent IGuestMonitorChangedEvent;
1511 typedef interface IGuestUserStateChangedEvent IGuestUserStateChangedEvent;
1512 typedef interface IStorageDeviceChangedEvent IStorageDeviceChangedEvent;
1513 typedef interface INATNetworkChangedEvent INATNetworkChangedEvent;
1514 typedef interface INATNetworkStartStopEvent INATNetworkStartStopEvent;
1515 typedef interface INATNetworkAlterEvent INATNetworkAlterEvent;
1516 typedef interface INATNetworkCreationDeletionEvent INATNetworkCreationDeletionEvent;
1517 typedef interface INATNetworkSettingEvent INATNetworkSettingEvent;
1518 typedef interface INATNetworkPortForwardEvent INATNetworkPortForwardEvent;
1519 typedef interface IHostNameResolutionConfigurationChangeEvent IHostNameResolutionConfigurationChangeEvent;
1520 typedef interface IProgressEvent IProgressEvent;
1521 typedef interface IProgressPercentageChangedEvent IProgressPercentageChangedEvent;
1522 typedef interface IProgressTaskCompletedEvent IProgressTaskCompletedEvent;
1523 typedef interface ICursorPositionChangedEvent ICursorPositionChangedEvent;
1524 typedef interface IGuestAdditionsStatusChangedEvent IGuestAdditionsStatusChangedEvent;
1525 typedef interface ICloudClient ICloudClient;
1526 typedef interface ICloudProfile ICloudProfile;
1527 typedef interface ICloudProvider ICloudProvider;
1528 typedef interface ICloudProviderManager ICloudProviderManager;
1529 
1530 /* Start of enum SettingsVersion declaration */
1531 #   define SETTINGSVERSION_IID_STR "b4cc23c2-96f2-419d-830b-bd13c1135dfb"
1532 #   define SETTINGSVERSION_IID { \
1533     0xb4cc23c2, 0x96f2, 0x419d, \
1534     { 0x83, 0x0b, 0xbd, 0x13, 0xc1, 0x13, 0x5d, 0xfb } \
1535 }
1536 typedef enum SettingsVersion
1537 {
1538     SettingsVersion_Null = 0,
1539     SettingsVersion_v1_0 = 1,
1540     SettingsVersion_v1_1 = 2,
1541     SettingsVersion_v1_2 = 3,
1542     SettingsVersion_v1_3pre = 4,
1543     SettingsVersion_v1_3 = 5,
1544     SettingsVersion_v1_4 = 6,
1545     SettingsVersion_v1_5 = 7,
1546     SettingsVersion_v1_6 = 8,
1547     SettingsVersion_v1_7 = 9,
1548     SettingsVersion_v1_8 = 10,
1549     SettingsVersion_v1_9 = 11,
1550     SettingsVersion_v1_10 = 12,
1551     SettingsVersion_v1_11 = 13,
1552     SettingsVersion_v1_12 = 14,
1553     SettingsVersion_v1_13 = 15,
1554     SettingsVersion_v1_14 = 16,
1555     SettingsVersion_v1_15 = 17,
1556     SettingsVersion_v1_16 = 18,
1557     SettingsVersion_v1_17 = 19,
1558     SettingsVersion_Future = 99999
1559 } SettingsVersion;
1560 /* End of enum SettingsVersion declaration */
1561 #   define SettingsVersion_T PRUint32
1562 
1563 
1564 /* Start of enum AccessMode declaration */
1565 #   define ACCESSMODE_IID_STR "1da0007c-ddf7-4be8-bcac-d84a1558785f"
1566 #   define ACCESSMODE_IID { \
1567     0x1da0007c, 0xddf7, 0x4be8, \
1568     { 0xbc, 0xac, 0xd8, 0x4a, 0x15, 0x58, 0x78, 0x5f } \
1569 }
1570 typedef enum AccessMode
1571 {
1572     AccessMode_ReadOnly = 1,
1573     AccessMode_ReadWrite = 2
1574 } AccessMode;
1575 /* End of enum AccessMode declaration */
1576 #   define AccessMode_T PRUint32
1577 
1578 
1579 /* Start of enum MachineState declaration */
1580 #   define MACHINESTATE_IID_STR "87f085c3-ca67-4e45-9225-6057f32e9e8e"
1581 #   define MACHINESTATE_IID { \
1582     0x87f085c3, 0xca67, 0x4e45, \
1583     { 0x92, 0x25, 0x60, 0x57, 0xf3, 0x2e, 0x9e, 0x8e } \
1584 }
1585 typedef enum MachineState
1586 {
1587     MachineState_Null = 0,
1588     MachineState_PoweredOff = 1,
1589     MachineState_Saved = 2,
1590     MachineState_Teleported = 3,
1591     MachineState_Aborted = 4,
1592     MachineState_Running = 5,
1593     MachineState_Paused = 6,
1594     MachineState_Stuck = 7,
1595     MachineState_Teleporting = 8,
1596     MachineState_LiveSnapshotting = 9,
1597     MachineState_Starting = 10,
1598     MachineState_Stopping = 11,
1599     MachineState_Saving = 12,
1600     MachineState_Restoring = 13,
1601     MachineState_TeleportingPausedVM = 14,
1602     MachineState_TeleportingIn = 15,
1603     MachineState_FaultTolerantSyncing = 16,
1604     MachineState_DeletingSnapshotOnline = 17,
1605     MachineState_DeletingSnapshotPaused = 18,
1606     MachineState_OnlineSnapshotting = 19,
1607     MachineState_RestoringSnapshot = 20,
1608     MachineState_DeletingSnapshot = 21,
1609     MachineState_SettingUp = 22,
1610     MachineState_Snapshotting = 23,
1611     MachineState_FirstOnline = 5,
1612     MachineState_LastOnline = 19,
1613     MachineState_FirstTransient = 8,
1614     MachineState_LastTransient = 23
1615 } MachineState;
1616 /* End of enum MachineState declaration */
1617 #   define MachineState_T PRUint32
1618 
1619 
1620 /* Start of enum SessionState declaration */
1621 #   define SESSIONSTATE_IID_STR "cf2700c0-ea4b-47ae-9725-7810114b94d8"
1622 #   define SESSIONSTATE_IID { \
1623     0xcf2700c0, 0xea4b, 0x47ae, \
1624     { 0x97, 0x25, 0x78, 0x10, 0x11, 0x4b, 0x94, 0xd8 } \
1625 }
1626 typedef enum SessionState
1627 {
1628     SessionState_Null = 0,
1629     SessionState_Unlocked = 1,
1630     SessionState_Locked = 2,
1631     SessionState_Spawning = 3,
1632     SessionState_Unlocking = 4
1633 } SessionState;
1634 /* End of enum SessionState declaration */
1635 #   define SessionState_T PRUint32
1636 
1637 
1638 /* Start of enum CPUPropertyType declaration */
1639 #   define CPUPROPERTYTYPE_IID_STR "3fcfe589-ca66-468f-e313-656f9d0b2eb6"
1640 #   define CPUPROPERTYTYPE_IID { \
1641     0x3fcfe589, 0xca66, 0x468f, \
1642     { 0xe3, 0x13, 0x65, 0x6f, 0x9d, 0x0b, 0x2e, 0xb6 } \
1643 }
1644 typedef enum CPUPropertyType
1645 {
1646     CPUPropertyType_Null = 0,
1647     CPUPropertyType_PAE = 1,
1648     CPUPropertyType_LongMode = 2,
1649     CPUPropertyType_TripleFaultReset = 3,
1650     CPUPropertyType_APIC = 4,
1651     CPUPropertyType_X2APIC = 5,
1652     CPUPropertyType_IBPBOnVMExit = 6,
1653     CPUPropertyType_IBPBOnVMEntry = 7,
1654     CPUPropertyType_HWVirt = 8,
1655     CPUPropertyType_SpecCtrl = 9,
1656     CPUPropertyType_SpecCtrlByHost = 10,
1657     CPUPropertyType_L1DFlushOnEMTScheduling = 11,
1658     CPUPropertyType_L1DFlushOnVMEntry = 12,
1659     CPUPropertyType_MDSClearOnEMTScheduling = 13,
1660     CPUPropertyType_MDSClearOnVMEntry = 14
1661 } CPUPropertyType;
1662 /* End of enum CPUPropertyType declaration */
1663 #   define CPUPropertyType_T PRUint32
1664 
1665 
1666 /* Start of enum HWVirtExPropertyType declaration */
1667 #   define HWVIRTEXPROPERTYTYPE_IID_STR "bc05551e-e288-467e-1ea3-233de08e4480"
1668 #   define HWVIRTEXPROPERTYTYPE_IID { \
1669     0xbc05551e, 0xe288, 0x467e, \
1670     { 0x1e, 0xa3, 0x23, 0x3d, 0xe0, 0x8e, 0x44, 0x80 } \
1671 }
1672 typedef enum HWVirtExPropertyType
1673 {
1674     HWVirtExPropertyType_Null = 0,
1675     HWVirtExPropertyType_Enabled = 1,
1676     HWVirtExPropertyType_VPID = 2,
1677     HWVirtExPropertyType_NestedPaging = 3,
1678     HWVirtExPropertyType_UnrestrictedExecution = 4,
1679     HWVirtExPropertyType_LargePages = 5,
1680     HWVirtExPropertyType_Force = 6,
1681     HWVirtExPropertyType_UseNativeApi = 7
1682 } HWVirtExPropertyType;
1683 /* End of enum HWVirtExPropertyType declaration */
1684 #   define HWVirtExPropertyType_T PRUint32
1685 
1686 
1687 /* Start of enum ParavirtProvider declaration */
1688 #   define PARAVIRTPROVIDER_IID_STR "696453ec-3742-4a05-bead-658ccbf2c944"
1689 #   define PARAVIRTPROVIDER_IID { \
1690     0x696453ec, 0x3742, 0x4a05, \
1691     { 0xbe, 0xad, 0x65, 0x8c, 0xcb, 0xf2, 0xc9, 0x44 } \
1692 }
1693 typedef enum ParavirtProvider
1694 {
1695     ParavirtProvider_None = 0,
1696     ParavirtProvider_Default = 1,
1697     ParavirtProvider_Legacy = 2,
1698     ParavirtProvider_Minimal = 3,
1699     ParavirtProvider_HyperV = 4,
1700     ParavirtProvider_KVM = 5
1701 } ParavirtProvider;
1702 /* End of enum ParavirtProvider declaration */
1703 #   define ParavirtProvider_T PRUint32
1704 
1705 
1706 /* Start of enum FaultToleranceState declaration */
1707 #   define FAULTTOLERANCESTATE_IID_STR "5124f7ec-6b67-493c-9dee-ee45a44114e1"
1708 #   define FAULTTOLERANCESTATE_IID { \
1709     0x5124f7ec, 0x6b67, 0x493c, \
1710     { 0x9d, 0xee, 0xee, 0x45, 0xa4, 0x41, 0x14, 0xe1 } \
1711 }
1712 typedef enum FaultToleranceState
1713 {
1714     FaultToleranceState_Inactive = 1,
1715     FaultToleranceState_Master = 2,
1716     FaultToleranceState_Standby = 3
1717 } FaultToleranceState;
1718 /* End of enum FaultToleranceState declaration */
1719 #   define FaultToleranceState_T PRUint32
1720 
1721 
1722 /* Start of enum LockType declaration */
1723 #   define LOCKTYPE_IID_STR "678aaf14-2815-4c3e-b20a-e86ed0216498"
1724 #   define LOCKTYPE_IID { \
1725     0x678aaf14, 0x2815, 0x4c3e, \
1726     { 0xb2, 0x0a, 0xe8, 0x6e, 0xd0, 0x21, 0x64, 0x98 } \
1727 }
1728 typedef enum LockType
1729 {
1730     LockType_Null = 0,
1731     LockType_Shared = 1,
1732     LockType_Write = 2,
1733     LockType_VM = 3
1734 } LockType;
1735 /* End of enum LockType declaration */
1736 #   define LockType_T PRUint32
1737 
1738 
1739 /* Start of enum SessionType declaration */
1740 #   define SESSIONTYPE_IID_STR "A13C02CB-0C2C-421E-8317-AC0E8AAA153A"
1741 #   define SESSIONTYPE_IID { \
1742     0xA13C02CB, 0x0C2C, 0x421E, \
1743     { 0x83, 0x17, 0xAC, 0x0E, 0x8A, 0xAA, 0x15, 0x3A } \
1744 }
1745 typedef enum SessionType
1746 {
1747     SessionType_Null = 0,
1748     SessionType_WriteLock = 1,
1749     SessionType_Remote = 2,
1750     SessionType_Shared = 3
1751 } SessionType;
1752 /* End of enum SessionType declaration */
1753 #   define SessionType_T PRUint32
1754 
1755 
1756 /* Start of enum DeviceType declaration */
1757 #   define DEVICETYPE_IID_STR "cb977be1-d1fb-41f8-ad7e-951736c6cb3e"
1758 #   define DEVICETYPE_IID { \
1759     0xcb977be1, 0xd1fb, 0x41f8, \
1760     { 0xad, 0x7e, 0x95, 0x17, 0x36, 0xc6, 0xcb, 0x3e } \
1761 }
1762 typedef enum DeviceType
1763 {
1764     DeviceType_Null = 0,
1765     DeviceType_Floppy = 1,
1766     DeviceType_DVD = 2,
1767     DeviceType_HardDisk = 3,
1768     DeviceType_Network = 4,
1769     DeviceType_USB = 5,
1770     DeviceType_SharedFolder = 6,
1771     DeviceType_Graphics3D = 7
1772 } DeviceType;
1773 /* End of enum DeviceType declaration */
1774 #   define DeviceType_T PRUint32
1775 
1776 
1777 /* Start of enum DeviceActivity declaration */
1778 #   define DEVICEACTIVITY_IID_STR "6FC8AEAA-130A-4eb5-8954-3F921422D707"
1779 #   define DEVICEACTIVITY_IID { \
1780     0x6FC8AEAA, 0x130A, 0x4eb5, \
1781     { 0x89, 0x54, 0x3F, 0x92, 0x14, 0x22, 0xD7, 0x07 } \
1782 }
1783 typedef enum DeviceActivity
1784 {
1785     DeviceActivity_Null = 0,
1786     DeviceActivity_Idle = 1,
1787     DeviceActivity_Reading = 2,
1788     DeviceActivity_Writing = 3
1789 } DeviceActivity;
1790 /* End of enum DeviceActivity declaration */
1791 #   define DeviceActivity_T PRUint32
1792 
1793 
1794 /* Start of enum ClipboardMode declaration */
1795 #   define CLIPBOARDMODE_IID_STR "33364716-4008-4701-8f14-be0fa3d62950"
1796 #   define CLIPBOARDMODE_IID { \
1797     0x33364716, 0x4008, 0x4701, \
1798     { 0x8f, 0x14, 0xbe, 0x0f, 0xa3, 0xd6, 0x29, 0x50 } \
1799 }
1800 typedef enum ClipboardMode
1801 {
1802     ClipboardMode_Disabled = 0,
1803     ClipboardMode_HostToGuest = 1,
1804     ClipboardMode_GuestToHost = 2,
1805     ClipboardMode_Bidirectional = 3
1806 } ClipboardMode;
1807 /* End of enum ClipboardMode declaration */
1808 #   define ClipboardMode_T PRUint32
1809 
1810 
1811 /* Start of enum DnDMode declaration */
1812 #   define DNDMODE_IID_STR "07af8800-f936-4b33-9172-cd400e83c148"
1813 #   define DNDMODE_IID { \
1814     0x07af8800, 0xf936, 0x4b33, \
1815     { 0x91, 0x72, 0xcd, 0x40, 0x0e, 0x83, 0xc1, 0x48 } \
1816 }
1817 typedef enum DnDMode
1818 {
1819     DnDMode_Disabled = 0,
1820     DnDMode_HostToGuest = 1,
1821     DnDMode_GuestToHost = 2,
1822     DnDMode_Bidirectional = 3
1823 } DnDMode;
1824 /* End of enum DnDMode declaration */
1825 #   define DnDMode_T PRUint32
1826 
1827 
1828 /* Start of enum Scope declaration */
1829 #   define SCOPE_IID_STR "7c91096e-499e-4eca-9f9b-9001438d7855"
1830 #   define SCOPE_IID { \
1831     0x7c91096e, 0x499e, 0x4eca, \
1832     { 0x9f, 0x9b, 0x90, 0x01, 0x43, 0x8d, 0x78, 0x55 } \
1833 }
1834 typedef enum Scope
1835 {
1836     Scope_Global = 0,
1837     Scope_Machine = 1,
1838     Scope_Session = 2
1839 } Scope;
1840 /* End of enum Scope declaration */
1841 #   define Scope_T PRUint32
1842 
1843 
1844 /* Start of enum BIOSBootMenuMode declaration */
1845 #   define BIOSBOOTMENUMODE_IID_STR "ae4fb9f7-29d2-45b4-b2c7-d579603135d5"
1846 #   define BIOSBOOTMENUMODE_IID { \
1847     0xae4fb9f7, 0x29d2, 0x45b4, \
1848     { 0xb2, 0xc7, 0xd5, 0x79, 0x60, 0x31, 0x35, 0xd5 } \
1849 }
1850 typedef enum BIOSBootMenuMode
1851 {
1852     BIOSBootMenuMode_Disabled = 0,
1853     BIOSBootMenuMode_MenuOnly = 1,
1854     BIOSBootMenuMode_MessageAndMenu = 2
1855 } BIOSBootMenuMode;
1856 /* End of enum BIOSBootMenuMode declaration */
1857 #   define BIOSBootMenuMode_T PRUint32
1858 
1859 
1860 /* Start of enum APICMode declaration */
1861 #   define APICMODE_IID_STR "c6884ba5-3cc4-4a92-a7f6-4410f9fd894e"
1862 #   define APICMODE_IID { \
1863     0xc6884ba5, 0x3cc4, 0x4a92, \
1864     { 0xa7, 0xf6, 0x44, 0x10, 0xf9, 0xfd, 0x89, 0x4e } \
1865 }
1866 typedef enum APICMode
1867 {
1868     APICMode_Disabled = 0,
1869     APICMode_APIC = 1,
1870     APICMode_X2APIC = 2
1871 } APICMode;
1872 /* End of enum APICMode declaration */
1873 #   define APICMode_T PRUint32
1874 
1875 
1876 /* Start of enum ProcessorFeature declaration */
1877 #   define PROCESSORFEATURE_IID_STR "fed0e385-dc5a-4cef-b9e2-66bafb6af6aa"
1878 #   define PROCESSORFEATURE_IID { \
1879     0xfed0e385, 0xdc5a, 0x4cef, \
1880     { 0xb9, 0xe2, 0x66, 0xba, 0xfb, 0x6a, 0xf6, 0xaa } \
1881 }
1882 typedef enum ProcessorFeature
1883 {
1884     ProcessorFeature_HWVirtEx = 0,
1885     ProcessorFeature_PAE = 1,
1886     ProcessorFeature_LongMode = 2,
1887     ProcessorFeature_NestedPaging = 3,
1888     ProcessorFeature_UnrestrictedGuest = 4,
1889     ProcessorFeature_NestedHWVirt = 5
1890 } ProcessorFeature;
1891 /* End of enum ProcessorFeature declaration */
1892 #   define ProcessorFeature_T PRUint32
1893 
1894 
1895 /* Start of enum FirmwareType declaration */
1896 #   define FIRMWARETYPE_IID_STR "b903f264-c230-483e-ac74-2b37ce60d371"
1897 #   define FIRMWARETYPE_IID { \
1898     0xb903f264, 0xc230, 0x483e, \
1899     { 0xac, 0x74, 0x2b, 0x37, 0xce, 0x60, 0xd3, 0x71 } \
1900 }
1901 typedef enum FirmwareType
1902 {
1903     FirmwareType_BIOS = 1,
1904     FirmwareType_EFI = 2,
1905     FirmwareType_EFI32 = 3,
1906     FirmwareType_EFI64 = 4,
1907     FirmwareType_EFIDUAL = 5
1908 } FirmwareType;
1909 /* End of enum FirmwareType declaration */
1910 #   define FirmwareType_T PRUint32
1911 
1912 
1913 /* Start of enum PointingHIDType declaration */
1914 #   define POINTINGHIDTYPE_IID_STR "19964e93-0050-45c4-9382-a7bccc53e666"
1915 #   define POINTINGHIDTYPE_IID { \
1916     0x19964e93, 0x0050, 0x45c4, \
1917     { 0x93, 0x82, 0xa7, 0xbc, 0xcc, 0x53, 0xe6, 0x66 } \
1918 }
1919 typedef enum PointingHIDType
1920 {
1921     PointingHIDType_None = 1,
1922     PointingHIDType_PS2Mouse = 2,
1923     PointingHIDType_USBMouse = 3,
1924     PointingHIDType_USBTablet = 4,
1925     PointingHIDType_ComboMouse = 5,
1926     PointingHIDType_USBMultiTouch = 6
1927 } PointingHIDType;
1928 /* End of enum PointingHIDType declaration */
1929 #   define PointingHIDType_T PRUint32
1930 
1931 
1932 /* Start of enum KeyboardHIDType declaration */
1933 #   define KEYBOARDHIDTYPE_IID_STR "383e43d7-5c7c-4ec8-9cb8-eda1bccd6699"
1934 #   define KEYBOARDHIDTYPE_IID { \
1935     0x383e43d7, 0x5c7c, 0x4ec8, \
1936     { 0x9c, 0xb8, 0xed, 0xa1, 0xbc, 0xcd, 0x66, 0x99 } \
1937 }
1938 typedef enum KeyboardHIDType
1939 {
1940     KeyboardHIDType_None = 1,
1941     KeyboardHIDType_PS2Keyboard = 2,
1942     KeyboardHIDType_USBKeyboard = 3,
1943     KeyboardHIDType_ComboKeyboard = 4
1944 } KeyboardHIDType;
1945 /* End of enum KeyboardHIDType declaration */
1946 #   define KeyboardHIDType_T PRUint32
1947 
1948 
1949 /* Start of enum BitmapFormat declaration */
1950 #   define BITMAPFORMAT_IID_STR "afb2bf39-8b1e-4f9f-8948-d1b887f83eb0"
1951 #   define BITMAPFORMAT_IID { \
1952     0xafb2bf39, 0x8b1e, 0x4f9f, \
1953     { 0x89, 0x48, 0xd1, 0xb8, 0x87, 0xf8, 0x3e, 0xb0 } \
1954 }
1955 typedef enum BitmapFormat
1956 {
1957     BitmapFormat_Opaque = 0,
1958     BitmapFormat_BGR = 0x20524742,
1959     BitmapFormat_BGR0 = 0x30524742,
1960     BitmapFormat_BGRA = 0x41524742,
1961     BitmapFormat_RGBA = 0x41424752,
1962     BitmapFormat_PNG = 0x20474E50,
1963     BitmapFormat_JPEG = 0x4745504A
1964 } BitmapFormat;
1965 /* End of enum BitmapFormat declaration */
1966 #   define BitmapFormat_T PRUint32
1967 
1968 
1969 /* Start of enum DhcpOpt declaration */
1970 #   define DHCPOPT_IID_STR "40d99bd3-3ece-44d2-a07e-1085fe9c4f0b"
1971 #   define DHCPOPT_IID { \
1972     0x40d99bd3, 0x3ece, 0x44d2, \
1973     { 0xa0, 0x7e, 0x10, 0x85, 0xfe, 0x9c, 0x4f, 0x0b } \
1974 }
1975 typedef enum DhcpOpt
1976 {
1977     DhcpOpt_SubnetMask = 1,
1978     DhcpOpt_TimeOffset = 2,
1979     DhcpOpt_Router = 3,
1980     DhcpOpt_TimeServer = 4,
1981     DhcpOpt_NameServer = 5,
1982     DhcpOpt_DomainNameServer = 6,
1983     DhcpOpt_LogServer = 7,
1984     DhcpOpt_Cookie = 8,
1985     DhcpOpt_LPRServer = 9,
1986     DhcpOpt_ImpressServer = 10,
1987     DhcpOpt_ResourseLocationServer = 11,
1988     DhcpOpt_HostName = 12,
1989     DhcpOpt_BootFileSize = 13,
1990     DhcpOpt_MeritDumpFile = 14,
1991     DhcpOpt_DomainName = 15,
1992     DhcpOpt_SwapServer = 16,
1993     DhcpOpt_RootPath = 17,
1994     DhcpOpt_ExtensionPath = 18,
1995     DhcpOpt_IPForwardingEnableDisable = 19,
1996     DhcpOpt_NonLocalSourceRoutingEnableDisable = 20,
1997     DhcpOpt_PolicyFilter = 21,
1998     DhcpOpt_MaximumDatagramReassemblySize = 22,
1999     DhcpOpt_DefaultIPTime2Live = 23,
2000     DhcpOpt_PathMTUAgingTimeout = 24,
2001     DhcpOpt_IPLayerParametersPerInterface = 25,
2002     DhcpOpt_InterfaceMTU = 26,
2003     DhcpOpt_AllSubnetsAreLocal = 27,
2004     DhcpOpt_BroadcastAddress = 28,
2005     DhcpOpt_PerformMaskDiscovery = 29,
2006     DhcpOpt_MaskSupplier = 30,
2007     DhcpOpt_PerformRouteDiscovery = 31,
2008     DhcpOpt_RouterSolicitationAddress = 32,
2009     DhcpOpt_StaticRoute = 33,
2010     DhcpOpt_TrailerEncapsulation = 34,
2011     DhcpOpt_ARPCacheTimeout = 35,
2012     DhcpOpt_EthernetEncapsulation = 36,
2013     DhcpOpt_TCPDefaultTTL = 37,
2014     DhcpOpt_TCPKeepAliveInterval = 38,
2015     DhcpOpt_TCPKeepAliveGarbage = 39,
2016     DhcpOpt_NetworkInformationServiceDomain = 40,
2017     DhcpOpt_NetworkInformationServiceServers = 41,
2018     DhcpOpt_NetworkTimeProtocolServers = 42,
2019     DhcpOpt_VendorSpecificInformation = 43,
2020     DhcpOpt_Option_44 = 44,
2021     DhcpOpt_Option_45 = 45,
2022     DhcpOpt_Option_46 = 46,
2023     DhcpOpt_Option_47 = 47,
2024     DhcpOpt_Option_48 = 48,
2025     DhcpOpt_Option_49 = 49,
2026     DhcpOpt_IPAddressLeaseTime = 51,
2027     DhcpOpt_Option_64 = 64,
2028     DhcpOpt_Option_65 = 65,
2029     DhcpOpt_TFTPServerName = 66,
2030     DhcpOpt_BootfileName = 67,
2031     DhcpOpt_Option_68 = 68,
2032     DhcpOpt_Option_69 = 69,
2033     DhcpOpt_Option_70 = 70,
2034     DhcpOpt_Option_71 = 71,
2035     DhcpOpt_Option_72 = 72,
2036     DhcpOpt_Option_73 = 73,
2037     DhcpOpt_Option_74 = 74,
2038     DhcpOpt_Option_75 = 75,
2039     DhcpOpt_Option_119 = 119
2040 } DhcpOpt;
2041 /* End of enum DhcpOpt declaration */
2042 #   define DhcpOpt_T PRUint32
2043 
2044 
2045 /* Start of enum DhcpOptEncoding declaration */
2046 #   define DHCPOPTENCODING_IID_STR "88ea6d70-8648-4871-ba30-1f49c61cfaa2"
2047 #   define DHCPOPTENCODING_IID { \
2048     0x88ea6d70, 0x8648, 0x4871, \
2049     { 0xba, 0x30, 0x1f, 0x49, 0xc6, 0x1c, 0xfa, 0xa2 } \
2050 }
2051 typedef enum DhcpOptEncoding
2052 {
2053     DhcpOptEncoding_Legacy = 0,
2054     DhcpOptEncoding_Hex = 1
2055 } DhcpOptEncoding;
2056 /* End of enum DhcpOptEncoding declaration */
2057 #   define DhcpOptEncoding_T PRUint32
2058 
2059 
2060 /* Start of enum VFSType declaration */
2061 #   define VFSTYPE_IID_STR "813999ba-b949-48a8-9230-aadc6285e2f2"
2062 #   define VFSTYPE_IID { \
2063     0x813999ba, 0xb949, 0x48a8, \
2064     { 0x92, 0x30, 0xaa, 0xdc, 0x62, 0x85, 0xe2, 0xf2 } \
2065 }
2066 typedef enum VFSType
2067 {
2068     VFSType_File = 1,
2069     VFSType_Cloud = 2,
2070     VFSType_S3 = 3,
2071     VFSType_WebDav = 4,
2072     VFSType_OCI = 5
2073 } VFSType;
2074 /* End of enum VFSType declaration */
2075 #   define VFSType_T PRUint32
2076 
2077 
2078 /* Start of enum ImportOptions declaration */
2079 #   define IMPORTOPTIONS_IID_STR "0a981523-3b20-4004-8ee3-dfd322202ace"
2080 #   define IMPORTOPTIONS_IID { \
2081     0x0a981523, 0x3b20, 0x4004, \
2082     { 0x8e, 0xe3, 0xdf, 0xd3, 0x22, 0x20, 0x2a, 0xce } \
2083 }
2084 typedef enum ImportOptions
2085 {
2086     ImportOptions_KeepAllMACs = 1,
2087     ImportOptions_KeepNATMACs = 2,
2088     ImportOptions_ImportToVDI = 3
2089 } ImportOptions;
2090 /* End of enum ImportOptions declaration */
2091 #   define ImportOptions_T PRUint32
2092 
2093 
2094 /* Start of enum ExportOptions declaration */
2095 #   define EXPORTOPTIONS_IID_STR "8f45eb08-fd34-41ee-af95-a880bdee5554"
2096 #   define EXPORTOPTIONS_IID { \
2097     0x8f45eb08, 0xfd34, 0x41ee, \
2098     { 0xaf, 0x95, 0xa8, 0x80, 0xbd, 0xee, 0x55, 0x54 } \
2099 }
2100 typedef enum ExportOptions
2101 {
2102     ExportOptions_CreateManifest = 1,
2103     ExportOptions_ExportDVDImages = 2,
2104     ExportOptions_StripAllMACs = 3,
2105     ExportOptions_StripAllNonNATMACs = 4
2106 } ExportOptions;
2107 /* End of enum ExportOptions declaration */
2108 #   define ExportOptions_T PRUint32
2109 
2110 
2111 /* Start of enum CertificateVersion declaration */
2112 #   define CERTIFICATEVERSION_IID_STR "9e232a99-51d0-4dbd-96a0-ffac4bc3e2a8"
2113 #   define CERTIFICATEVERSION_IID { \
2114     0x9e232a99, 0x51d0, 0x4dbd, \
2115     { 0x96, 0xa0, 0xff, 0xac, 0x4b, 0xc3, 0xe2, 0xa8 } \
2116 }
2117 typedef enum CertificateVersion
2118 {
2119     CertificateVersion_V1 = 1,
2120     CertificateVersion_V2 = 2,
2121     CertificateVersion_V3 = 3,
2122     CertificateVersion_Unknown = 99
2123 } CertificateVersion;
2124 /* End of enum CertificateVersion declaration */
2125 #   define CertificateVersion_T PRUint32
2126 
2127 
2128 /* Start of enum VirtualSystemDescriptionType declaration */
2129 #   define VIRTUALSYSTEMDESCRIPTIONTYPE_IID_STR "425d0e49-eb9c-43e8-bb0d-be7f78fd3b47"
2130 #   define VIRTUALSYSTEMDESCRIPTIONTYPE_IID { \
2131     0x425d0e49, 0xeb9c, 0x43e8, \
2132     { 0xbb, 0x0d, 0xbe, 0x7f, 0x78, 0xfd, 0x3b, 0x47 } \
2133 }
2134 typedef enum VirtualSystemDescriptionType
2135 {
2136     VirtualSystemDescriptionType_Ignore = 1,
2137     VirtualSystemDescriptionType_OS = 2,
2138     VirtualSystemDescriptionType_Name = 3,
2139     VirtualSystemDescriptionType_Product = 4,
2140     VirtualSystemDescriptionType_Vendor = 5,
2141     VirtualSystemDescriptionType_Version = 6,
2142     VirtualSystemDescriptionType_ProductUrl = 7,
2143     VirtualSystemDescriptionType_VendorUrl = 8,
2144     VirtualSystemDescriptionType_Description = 9,
2145     VirtualSystemDescriptionType_License = 10,
2146     VirtualSystemDescriptionType_Miscellaneous = 11,
2147     VirtualSystemDescriptionType_CPU = 12,
2148     VirtualSystemDescriptionType_Memory = 13,
2149     VirtualSystemDescriptionType_HardDiskControllerIDE = 14,
2150     VirtualSystemDescriptionType_HardDiskControllerSATA = 15,
2151     VirtualSystemDescriptionType_HardDiskControllerSCSI = 16,
2152     VirtualSystemDescriptionType_HardDiskControllerSAS = 17,
2153     VirtualSystemDescriptionType_HardDiskImage = 18,
2154     VirtualSystemDescriptionType_Floppy = 19,
2155     VirtualSystemDescriptionType_CDROM = 20,
2156     VirtualSystemDescriptionType_NetworkAdapter = 21,
2157     VirtualSystemDescriptionType_USBController = 22,
2158     VirtualSystemDescriptionType_SoundCard = 23,
2159     VirtualSystemDescriptionType_SettingsFile = 24,
2160     VirtualSystemDescriptionType_BaseFolder = 25,
2161     VirtualSystemDescriptionType_PrimaryGroup = 26,
2162     VirtualSystemDescriptionType_CloudInstanceShape = 27,
2163     VirtualSystemDescriptionType_CloudDomain = 28,
2164     VirtualSystemDescriptionType_CloudBootDiskSize = 29,
2165     VirtualSystemDescriptionType_CloudBucket = 30,
2166     VirtualSystemDescriptionType_CloudOCIVCN = 31,
2167     VirtualSystemDescriptionType_CloudPublicIP = 32,
2168     VirtualSystemDescriptionType_CloudProfileName = 33,
2169     VirtualSystemDescriptionType_CloudOCISubnet = 34,
2170     VirtualSystemDescriptionType_CloudKeepObject = 35,
2171     VirtualSystemDescriptionType_CloudLaunchInstance = 36
2172 } VirtualSystemDescriptionType;
2173 /* End of enum VirtualSystemDescriptionType declaration */
2174 #   define VirtualSystemDescriptionType_T PRUint32
2175 
2176 
2177 /* Start of enum VirtualSystemDescriptionValueType declaration */
2178 #   define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID_STR "56d9403f-3425-4118-9919-36f2a9b8c77c"
2179 #   define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID { \
2180     0x56d9403f, 0x3425, 0x4118, \
2181     { 0x99, 0x19, 0x36, 0xf2, 0xa9, 0xb8, 0xc7, 0x7c } \
2182 }
2183 typedef enum VirtualSystemDescriptionValueType
2184 {
2185     VirtualSystemDescriptionValueType_Reference = 1,
2186     VirtualSystemDescriptionValueType_Original = 2,
2187     VirtualSystemDescriptionValueType_Auto = 3,
2188     VirtualSystemDescriptionValueType_ExtraConfig = 4
2189 } VirtualSystemDescriptionValueType;
2190 /* End of enum VirtualSystemDescriptionValueType declaration */
2191 #   define VirtualSystemDescriptionValueType_T PRUint32
2192 
2193 
2194 /* Start of enum RecordingDestination declaration */
2195 #   define RECORDINGDESTINATION_IID_STR "11E3F06B-DEC1-48B9-BDC4-1E618D72893C"
2196 #   define RECORDINGDESTINATION_IID { \
2197     0x11E3F06B, 0xDEC1, 0x48B9, \
2198     { 0xBD, 0xC4, 0x1E, 0x61, 0x8D, 0x72, 0x89, 0x3C } \
2199 }
2200 typedef enum RecordingDestination
2201 {
2202     RecordingDestination_None = 0,
2203     RecordingDestination_File = 1
2204 } RecordingDestination;
2205 /* End of enum RecordingDestination declaration */
2206 #   define RecordingDestination_T PRUint32
2207 
2208 
2209 /* Start of enum RecordingFeature declaration */
2210 #   define RECORDINGFEATURE_IID_STR "A7DDC6A5-DAA8-4485-B860-E9F2E98A7794"
2211 #   define RECORDINGFEATURE_IID { \
2212     0xA7DDC6A5, 0xDAA8, 0x4485, \
2213     { 0xB8, 0x60, 0xE9, 0xF2, 0xE9, 0x8A, 0x77, 0x94 } \
2214 }
2215 typedef enum RecordingFeature
2216 {
2217     RecordingFeature_None = 0,
2218     RecordingFeature_Video = 1,
2219     RecordingFeature_Audio = 2
2220 } RecordingFeature;
2221 /* End of enum RecordingFeature declaration */
2222 #   define RecordingFeature_T PRUint32
2223 
2224 
2225 /* Start of enum RecordingAudioCodec declaration */
2226 #   define RECORDINGAUDIOCODEC_IID_STR "0AEFF775-053A-42F8-9C00-E445107DBED8"
2227 #   define RECORDINGAUDIOCODEC_IID { \
2228     0x0AEFF775, 0x053A, 0x42F8, \
2229     { 0x9C, 0x00, 0xE4, 0x45, 0x10, 0x7D, 0xBE, 0xD8 } \
2230 }
2231 typedef enum RecordingAudioCodec
2232 {
2233     RecordingAudioCodec_None = 0,
2234     RecordingAudioCodec_WavPCM = 1,
2235     RecordingAudioCodec_Opus = 2
2236 } RecordingAudioCodec;
2237 /* End of enum RecordingAudioCodec declaration */
2238 #   define RecordingAudioCodec_T PRUint32
2239 
2240 
2241 /* Start of enum RecordingVideoCodec declaration */
2242 #   define RECORDINGVIDEOCODEC_IID_STR "663BFC39-AFFF-49FA-98DD-322A857E877B"
2243 #   define RECORDINGVIDEOCODEC_IID { \
2244     0x663BFC39, 0xAFFF, 0x49FA, \
2245     { 0x98, 0xDD, 0x32, 0x2A, 0x85, 0x7E, 0x87, 0x7B } \
2246 }
2247 typedef enum RecordingVideoCodec
2248 {
2249     RecordingVideoCodec_None = 0,
2250     RecordingVideoCodec_VP8 = 1,
2251     RecordingVideoCodec_VP9 = 2,
2252     RecordingVideoCodec_AV1 = 3
2253 } RecordingVideoCodec;
2254 /* End of enum RecordingVideoCodec declaration */
2255 #   define RecordingVideoCodec_T PRUint32
2256 
2257 
2258 /* Start of enum RecordingVideoScalingMethod declaration */
2259 #   define RECORDINGVIDEOSCALINGMETHOD_IID_STR "5576D890-48EE-449A-A81B-B776233598B7"
2260 #   define RECORDINGVIDEOSCALINGMETHOD_IID { \
2261     0x5576D890, 0x48EE, 0x449A, \
2262     { 0xA8, 0x1B, 0xB7, 0x76, 0x23, 0x35, 0x98, 0xB7 } \
2263 }
2264 typedef enum RecordingVideoScalingMethod
2265 {
2266     RecordingVideoScalingMethod_None = 0,
2267     RecordingVideoScalingMethod_NearestNeighbor = 1,
2268     RecordingVideoScalingMethod_Bilinear = 2,
2269     RecordingVideoScalingMethod_Bicubic = 3
2270 } RecordingVideoScalingMethod;
2271 /* End of enum RecordingVideoScalingMethod declaration */
2272 #   define RecordingVideoScalingMethod_T PRUint32
2273 
2274 
2275 /* Start of enum RecordingVideoRateControlMode declaration */
2276 #   define RECORDINGVIDEORATECONTROLMODE_IID_STR "D4EFB692-9F98-4112-88D3-A16FBE2BF6A8"
2277 #   define RECORDINGVIDEORATECONTROLMODE_IID { \
2278     0xD4EFB692, 0x9F98, 0x4112, \
2279     { 0x88, 0xD3, 0xA1, 0x6F, 0xBE, 0x2B, 0xF6, 0xA8 } \
2280 }
2281 typedef enum RecordingVideoRateControlMode
2282 {
2283     RecordingVideoRateControlMode_CBR = 0,
2284     RecordingVideoRateControlMode_VBR = 1
2285 } RecordingVideoRateControlMode;
2286 /* End of enum RecordingVideoRateControlMode declaration */
2287 #   define RecordingVideoRateControlMode_T PRUint32
2288 
2289 
2290 /* Start of enum GraphicsControllerType declaration */
2291 #   define GRAPHICSCONTROLLERTYPE_IID_STR "3e009bb0-2b57-4283-a39b-4c363d4f0808"
2292 #   define GRAPHICSCONTROLLERTYPE_IID { \
2293     0x3e009bb0, 0x2b57, 0x4283, \
2294     { 0xa3, 0x9b, 0x4c, 0x36, 0x3d, 0x4f, 0x08, 0x08 } \
2295 }
2296 typedef enum GraphicsControllerType
2297 {
2298     GraphicsControllerType_Null = 0,
2299     GraphicsControllerType_VBoxVGA = 1,
2300     GraphicsControllerType_VMSVGA = 2,
2301     GraphicsControllerType_VBoxSVGA = 3
2302 } GraphicsControllerType;
2303 /* End of enum GraphicsControllerType declaration */
2304 #   define GraphicsControllerType_T PRUint32
2305 
2306 
2307 /* Start of enum CleanupMode declaration */
2308 #   define CLEANUPMODE_IID_STR "67897c50-7cca-47a9-83f6-ce8fd8eb5441"
2309 #   define CLEANUPMODE_IID { \
2310     0x67897c50, 0x7cca, 0x47a9, \
2311     { 0x83, 0xf6, 0xce, 0x8f, 0xd8, 0xeb, 0x54, 0x41 } \
2312 }
2313 typedef enum CleanupMode
2314 {
2315     CleanupMode_UnregisterOnly = 1,
2316     CleanupMode_DetachAllReturnNone = 2,
2317     CleanupMode_DetachAllReturnHardDisksOnly = 3,
2318     CleanupMode_Full = 4
2319 } CleanupMode;
2320 /* End of enum CleanupMode declaration */
2321 #   define CleanupMode_T PRUint32
2322 
2323 
2324 /* Start of enum CloneMode declaration */
2325 #   define CLONEMODE_IID_STR "A7A159FE-5096-4B8D-8C3C-D033CB0B35A8"
2326 #   define CLONEMODE_IID { \
2327     0xA7A159FE, 0x5096, 0x4B8D, \
2328     { 0x8C, 0x3C, 0xD0, 0x33, 0xCB, 0x0B, 0x35, 0xA8 } \
2329 }
2330 typedef enum CloneMode
2331 {
2332     CloneMode_MachineState = 1,
2333     CloneMode_MachineAndChildStates = 2,
2334     CloneMode_AllStates = 3
2335 } CloneMode;
2336 /* End of enum CloneMode declaration */
2337 #   define CloneMode_T PRUint32
2338 
2339 
2340 /* Start of enum CloneOptions declaration */
2341 #   define CLONEOPTIONS_IID_STR "22243f8e-96ab-497c-8cf0-f40a566c630b"
2342 #   define CLONEOPTIONS_IID { \
2343     0x22243f8e, 0x96ab, 0x497c, \
2344     { 0x8c, 0xf0, 0xf4, 0x0a, 0x56, 0x6c, 0x63, 0x0b } \
2345 }
2346 typedef enum CloneOptions
2347 {
2348     CloneOptions_Link = 1,
2349     CloneOptions_KeepAllMACs = 2,
2350     CloneOptions_KeepNATMACs = 3,
2351     CloneOptions_KeepDiskNames = 4,
2352     CloneOptions_KeepHwUUIDs = 5
2353 } CloneOptions;
2354 /* End of enum CloneOptions declaration */
2355 #   define CloneOptions_T PRUint32
2356 
2357 
2358 /* Start of enum AutostopType declaration */
2359 #   define AUTOSTOPTYPE_IID_STR "6bb96740-cf34-470d-aab2-2cd48ea2e10e"
2360 #   define AUTOSTOPTYPE_IID { \
2361     0x6bb96740, 0xcf34, 0x470d, \
2362     { 0xaa, 0xb2, 0x2c, 0xd4, 0x8e, 0xa2, 0xe1, 0x0e } \
2363 }
2364 typedef enum AutostopType
2365 {
2366     AutostopType_Disabled = 1,
2367     AutostopType_SaveState = 2,
2368     AutostopType_PowerOff = 3,
2369     AutostopType_AcpiShutdown = 4
2370 } AutostopType;
2371 /* End of enum AutostopType declaration */
2372 #   define AutostopType_T PRUint32
2373 
2374 
2375 /* Start of enum HostNetworkInterfaceMediumType declaration */
2376 #   define HOSTNETWORKINTERFACEMEDIUMTYPE_IID_STR "1aa54aaf-2497-45a2-bfb1-8eb225e93d5b"
2377 #   define HOSTNETWORKINTERFACEMEDIUMTYPE_IID { \
2378     0x1aa54aaf, 0x2497, 0x45a2, \
2379     { 0xbf, 0xb1, 0x8e, 0xb2, 0x25, 0xe9, 0x3d, 0x5b } \
2380 }
2381 typedef enum HostNetworkInterfaceMediumType
2382 {
2383     HostNetworkInterfaceMediumType_Unknown = 0,
2384     HostNetworkInterfaceMediumType_Ethernet = 1,
2385     HostNetworkInterfaceMediumType_PPP = 2,
2386     HostNetworkInterfaceMediumType_SLIP = 3
2387 } HostNetworkInterfaceMediumType;
2388 /* End of enum HostNetworkInterfaceMediumType declaration */
2389 #   define HostNetworkInterfaceMediumType_T PRUint32
2390 
2391 
2392 /* Start of enum HostNetworkInterfaceStatus declaration */
2393 #   define HOSTNETWORKINTERFACESTATUS_IID_STR "CC474A69-2710-434B-8D99-C38E5D5A6F41"
2394 #   define HOSTNETWORKINTERFACESTATUS_IID { \
2395     0xCC474A69, 0x2710, 0x434B, \
2396     { 0x8D, 0x99, 0xC3, 0x8E, 0x5D, 0x5A, 0x6F, 0x41 } \
2397 }
2398 typedef enum HostNetworkInterfaceStatus
2399 {
2400     HostNetworkInterfaceStatus_Unknown = 0,
2401     HostNetworkInterfaceStatus_Up = 1,
2402     HostNetworkInterfaceStatus_Down = 2
2403 } HostNetworkInterfaceStatus;
2404 /* End of enum HostNetworkInterfaceStatus declaration */
2405 #   define HostNetworkInterfaceStatus_T PRUint32
2406 
2407 
2408 /* Start of enum HostNetworkInterfaceType declaration */
2409 #   define HOSTNETWORKINTERFACETYPE_IID_STR "67431b00-9946-48a2-bc02-b25c5919f4f3"
2410 #   define HOSTNETWORKINTERFACETYPE_IID { \
2411     0x67431b00, 0x9946, 0x48a2, \
2412     { 0xbc, 0x02, 0xb2, 0x5c, 0x59, 0x19, 0xf4, 0xf3 } \
2413 }
2414 typedef enum HostNetworkInterfaceType
2415 {
2416     HostNetworkInterfaceType_Bridged = 1,
2417     HostNetworkInterfaceType_HostOnly = 2
2418 } HostNetworkInterfaceType;
2419 /* End of enum HostNetworkInterfaceType declaration */
2420 #   define HostNetworkInterfaceType_T PRUint32
2421 
2422 
2423 /* Start of enum ProxyMode declaration */
2424 #   define PROXYMODE_IID_STR "885264b3-b517-40fc-ce46-36e3bae895a4"
2425 #   define PROXYMODE_IID { \
2426     0x885264b3, 0xb517, 0x40fc, \
2427     { 0xce, 0x46, 0x36, 0xe3, 0xba, 0xe8, 0x95, 0xa4 } \
2428 }
2429 typedef enum ProxyMode
2430 {
2431     ProxyMode_System = 0,
2432     ProxyMode_NoProxy = 1,
2433     ProxyMode_Manual = 2
2434 } ProxyMode;
2435 /* End of enum ProxyMode declaration */
2436 #   define ProxyMode_T PRUint32
2437 
2438 
2439 /* Start of enum AdditionsFacilityType declaration */
2440 #   define ADDITIONSFACILITYTYPE_IID_STR "c4b10d74-dd48-4ff4-9a40-785a2a389ade"
2441 #   define ADDITIONSFACILITYTYPE_IID { \
2442     0xc4b10d74, 0xdd48, 0x4ff4, \
2443     { 0x9a, 0x40, 0x78, 0x5a, 0x2a, 0x38, 0x9a, 0xde } \
2444 }
2445 typedef enum AdditionsFacilityType
2446 {
2447     AdditionsFacilityType_None = 0,
2448     AdditionsFacilityType_VBoxGuestDriver = 20,
2449     AdditionsFacilityType_AutoLogon = 90,
2450     AdditionsFacilityType_VBoxService = 100,
2451     AdditionsFacilityType_VBoxTrayClient = 101,
2452     AdditionsFacilityType_Seamless = 1000,
2453     AdditionsFacilityType_Graphics = 1100,
2454     AdditionsFacilityType_MonitorAttach = 1101,
2455     AdditionsFacilityType_All = 2147483646
2456 } AdditionsFacilityType;
2457 /* End of enum AdditionsFacilityType declaration */
2458 #   define AdditionsFacilityType_T PRUint32
2459 
2460 
2461 /* Start of enum AdditionsFacilityClass declaration */
2462 #   define ADDITIONSFACILITYCLASS_IID_STR "446451b2-c88d-4e5d-84c9-91bc7f533f5f"
2463 #   define ADDITIONSFACILITYCLASS_IID { \
2464     0x446451b2, 0xc88d, 0x4e5d, \
2465     { 0x84, 0xc9, 0x91, 0xbc, 0x7f, 0x53, 0x3f, 0x5f } \
2466 }
2467 typedef enum AdditionsFacilityClass
2468 {
2469     AdditionsFacilityClass_None = 0,
2470     AdditionsFacilityClass_Driver = 10,
2471     AdditionsFacilityClass_Service = 30,
2472     AdditionsFacilityClass_Program = 50,
2473     AdditionsFacilityClass_Feature = 100,
2474     AdditionsFacilityClass_ThirdParty = 999,
2475     AdditionsFacilityClass_All = 2147483646
2476 } AdditionsFacilityClass;
2477 /* End of enum AdditionsFacilityClass declaration */
2478 #   define AdditionsFacilityClass_T PRUint32
2479 
2480 
2481 /* Start of enum AdditionsFacilityStatus declaration */
2482 #   define ADDITIONSFACILITYSTATUS_IID_STR "ce06f9e1-394e-4fe9-9368-5a88c567dbde"
2483 #   define ADDITIONSFACILITYSTATUS_IID { \
2484     0xce06f9e1, 0x394e, 0x4fe9, \
2485     { 0x93, 0x68, 0x5a, 0x88, 0xc5, 0x67, 0xdb, 0xde } \
2486 }
2487 typedef enum AdditionsFacilityStatus
2488 {
2489     AdditionsFacilityStatus_Inactive = 0,
2490     AdditionsFacilityStatus_Paused = 1,
2491     AdditionsFacilityStatus_PreInit = 20,
2492     AdditionsFacilityStatus_Init = 30,
2493     AdditionsFacilityStatus_Active = 50,
2494     AdditionsFacilityStatus_Terminating = 100,
2495     AdditionsFacilityStatus_Terminated = 101,
2496     AdditionsFacilityStatus_Failed = 800,
2497     AdditionsFacilityStatus_Unknown = 999
2498 } AdditionsFacilityStatus;
2499 /* End of enum AdditionsFacilityStatus declaration */
2500 #   define AdditionsFacilityStatus_T PRUint32
2501 
2502 
2503 /* Start of enum AdditionsRunLevelType declaration */
2504 #   define ADDITIONSRUNLEVELTYPE_IID_STR "a25417ee-a9dd-4f5b-b0dc-377860087754"
2505 #   define ADDITIONSRUNLEVELTYPE_IID { \
2506     0xa25417ee, 0xa9dd, 0x4f5b, \
2507     { 0xb0, 0xdc, 0x37, 0x78, 0x60, 0x08, 0x77, 0x54 } \
2508 }
2509 typedef enum AdditionsRunLevelType
2510 {
2511     AdditionsRunLevelType_None = 0,
2512     AdditionsRunLevelType_System = 1,
2513     AdditionsRunLevelType_Userland = 2,
2514     AdditionsRunLevelType_Desktop = 3
2515 } AdditionsRunLevelType;
2516 /* End of enum AdditionsRunLevelType declaration */
2517 #   define AdditionsRunLevelType_T PRUint32
2518 
2519 
2520 /* Start of enum AdditionsUpdateFlag declaration */
2521 #   define ADDITIONSUPDATEFLAG_IID_STR "726a818d-18d6-4389-94e8-3e9e6826171a"
2522 #   define ADDITIONSUPDATEFLAG_IID { \
2523     0x726a818d, 0x18d6, 0x4389, \
2524     { 0x94, 0xe8, 0x3e, 0x9e, 0x68, 0x26, 0x17, 0x1a } \
2525 }
2526 typedef enum AdditionsUpdateFlag
2527 {
2528     AdditionsUpdateFlag_None = 0,
2529     AdditionsUpdateFlag_WaitForUpdateStartOnly = 1
2530 } AdditionsUpdateFlag;
2531 /* End of enum AdditionsUpdateFlag declaration */
2532 #   define AdditionsUpdateFlag_T PRUint32
2533 
2534 
2535 /* Start of enum GuestSessionStatus declaration */
2536 #   define GUESTSESSIONSTATUS_IID_STR "ac2669da-4624-44f2-85b5-0b0bfb8d8673"
2537 #   define GUESTSESSIONSTATUS_IID { \
2538     0xac2669da, 0x4624, 0x44f2, \
2539     { 0x85, 0xb5, 0x0b, 0x0b, 0xfb, 0x8d, 0x86, 0x73 } \
2540 }
2541 typedef enum GuestSessionStatus
2542 {
2543     GuestSessionStatus_Undefined = 0,
2544     GuestSessionStatus_Starting = 10,
2545     GuestSessionStatus_Started = 100,
2546     GuestSessionStatus_Terminating = 480,
2547     GuestSessionStatus_Terminated = 500,
2548     GuestSessionStatus_TimedOutKilled = 512,
2549     GuestSessionStatus_TimedOutAbnormally = 513,
2550     GuestSessionStatus_Down = 600,
2551     GuestSessionStatus_Error = 800
2552 } GuestSessionStatus;
2553 /* End of enum GuestSessionStatus declaration */
2554 #   define GuestSessionStatus_T PRUint32
2555 
2556 
2557 /* Start of enum GuestSessionWaitForFlag declaration */
2558 #   define GUESTSESSIONWAITFORFLAG_IID_STR "bb7a372a-f635-4e11-a81a-e707f3a52ef5"
2559 #   define GUESTSESSIONWAITFORFLAG_IID { \
2560     0xbb7a372a, 0xf635, 0x4e11, \
2561     { 0xa8, 0x1a, 0xe7, 0x07, 0xf3, 0xa5, 0x2e, 0xf5 } \
2562 }
2563 typedef enum GuestSessionWaitForFlag
2564 {
2565     GuestSessionWaitForFlag_None = 0,
2566     GuestSessionWaitForFlag_Start = 1,
2567     GuestSessionWaitForFlag_Terminate = 2,
2568     GuestSessionWaitForFlag_Status = 4
2569 } GuestSessionWaitForFlag;
2570 /* End of enum GuestSessionWaitForFlag declaration */
2571 #   define GuestSessionWaitForFlag_T PRUint32
2572 
2573 
2574 /* Start of enum GuestSessionWaitResult declaration */
2575 #   define GUESTSESSIONWAITRESULT_IID_STR "c0f6a8a5-fdb6-42bf-a582-56c6f82bcd2d"
2576 #   define GUESTSESSIONWAITRESULT_IID { \
2577     0xc0f6a8a5, 0xfdb6, 0x42bf, \
2578     { 0xa5, 0x82, 0x56, 0xc6, 0xf8, 0x2b, 0xcd, 0x2d } \
2579 }
2580 typedef enum GuestSessionWaitResult
2581 {
2582     GuestSessionWaitResult_None = 0,
2583     GuestSessionWaitResult_Start = 1,
2584     GuestSessionWaitResult_Terminate = 2,
2585     GuestSessionWaitResult_Status = 3,
2586     GuestSessionWaitResult_Error = 4,
2587     GuestSessionWaitResult_Timeout = 5,
2588     GuestSessionWaitResult_WaitFlagNotSupported = 6
2589 } GuestSessionWaitResult;
2590 /* End of enum GuestSessionWaitResult declaration */
2591 #   define GuestSessionWaitResult_T PRUint32
2592 
2593 
2594 /* Start of enum GuestUserState declaration */
2595 #   define GUESTUSERSTATE_IID_STR "b2a82b02-fd3d-4fc2-ba84-6ba5ac8be198"
2596 #   define GUESTUSERSTATE_IID { \
2597     0xb2a82b02, 0xfd3d, 0x4fc2, \
2598     { 0xba, 0x84, 0x6b, 0xa5, 0xac, 0x8b, 0xe1, 0x98 } \
2599 }
2600 typedef enum GuestUserState
2601 {
2602     GuestUserState_Unknown = 0,
2603     GuestUserState_LoggedIn = 1,
2604     GuestUserState_LoggedOut = 2,
2605     GuestUserState_Locked = 3,
2606     GuestUserState_Unlocked = 4,
2607     GuestUserState_Disabled = 5,
2608     GuestUserState_Idle = 6,
2609     GuestUserState_InUse = 7,
2610     GuestUserState_Created = 8,
2611     GuestUserState_Deleted = 9,
2612     GuestUserState_SessionChanged = 10,
2613     GuestUserState_CredentialsChanged = 11,
2614     GuestUserState_RoleChanged = 12,
2615     GuestUserState_GroupAdded = 13,
2616     GuestUserState_GroupRemoved = 14,
2617     GuestUserState_Elevated = 15
2618 } GuestUserState;
2619 /* End of enum GuestUserState declaration */
2620 #   define GuestUserState_T PRUint32
2621 
2622 
2623 /* Start of enum FileSeekOrigin declaration */
2624 #   define FILESEEKORIGIN_IID_STR "ad32f789-4279-4530-979c-f16892e1c263"
2625 #   define FILESEEKORIGIN_IID { \
2626     0xad32f789, 0x4279, 0x4530, \
2627     { 0x97, 0x9c, 0xf1, 0x68, 0x92, 0xe1, 0xc2, 0x63 } \
2628 }
2629 typedef enum FileSeekOrigin
2630 {
2631     FileSeekOrigin_Begin = 0,
2632     FileSeekOrigin_Current = 1,
2633     FileSeekOrigin_End = 2
2634 } FileSeekOrigin;
2635 /* End of enum FileSeekOrigin declaration */
2636 #   define FileSeekOrigin_T PRUint32
2637 
2638 
2639 /* Start of enum ProcessInputFlag declaration */
2640 #   define PROCESSINPUTFLAG_IID_STR "5d38c1dd-2604-4ddf-92e5-0c0cdd3bdbd5"
2641 #   define PROCESSINPUTFLAG_IID { \
2642     0x5d38c1dd, 0x2604, 0x4ddf, \
2643     { 0x92, 0xe5, 0x0c, 0x0c, 0xdd, 0x3b, 0xdb, 0xd5 } \
2644 }
2645 typedef enum ProcessInputFlag
2646 {
2647     ProcessInputFlag_None = 0,
2648     ProcessInputFlag_EndOfFile = 1
2649 } ProcessInputFlag;
2650 /* End of enum ProcessInputFlag declaration */
2651 #   define ProcessInputFlag_T PRUint32
2652 
2653 
2654 /* Start of enum ProcessOutputFlag declaration */
2655 #   define PROCESSOUTPUTFLAG_IID_STR "9979e85a-52bb-40b7-870c-57115e27e0f1"
2656 #   define PROCESSOUTPUTFLAG_IID { \
2657     0x9979e85a, 0x52bb, 0x40b7, \
2658     { 0x87, 0x0c, 0x57, 0x11, 0x5e, 0x27, 0xe0, 0xf1 } \
2659 }
2660 typedef enum ProcessOutputFlag
2661 {
2662     ProcessOutputFlag_None = 0,
2663     ProcessOutputFlag_StdErr = 1
2664 } ProcessOutputFlag;
2665 /* End of enum ProcessOutputFlag declaration */
2666 #   define ProcessOutputFlag_T PRUint32
2667 
2668 
2669 /* Start of enum ProcessWaitForFlag declaration */
2670 #   define PROCESSWAITFORFLAG_IID_STR "23b550c7-78e1-437e-98f0-65fd9757bcd2"
2671 #   define PROCESSWAITFORFLAG_IID { \
2672     0x23b550c7, 0x78e1, 0x437e, \
2673     { 0x98, 0xf0, 0x65, 0xfd, 0x97, 0x57, 0xbc, 0xd2 } \
2674 }
2675 typedef enum ProcessWaitForFlag
2676 {
2677     ProcessWaitForFlag_None = 0,
2678     ProcessWaitForFlag_Start = 1,
2679     ProcessWaitForFlag_Terminate = 2,
2680     ProcessWaitForFlag_StdIn = 4,
2681     ProcessWaitForFlag_StdOut = 8,
2682     ProcessWaitForFlag_StdErr = 16
2683 } ProcessWaitForFlag;
2684 /* End of enum ProcessWaitForFlag declaration */
2685 #   define ProcessWaitForFlag_T PRUint32
2686 
2687 
2688 /* Start of enum ProcessWaitResult declaration */
2689 #   define PROCESSWAITRESULT_IID_STR "40719cbe-f192-4fe9-a231-6697b3c8e2b4"
2690 #   define PROCESSWAITRESULT_IID { \
2691     0x40719cbe, 0xf192, 0x4fe9, \
2692     { 0xa2, 0x31, 0x66, 0x97, 0xb3, 0xc8, 0xe2, 0xb4 } \
2693 }
2694 typedef enum ProcessWaitResult
2695 {
2696     ProcessWaitResult_None = 0,
2697     ProcessWaitResult_Start = 1,
2698     ProcessWaitResult_Terminate = 2,
2699     ProcessWaitResult_Status = 3,
2700     ProcessWaitResult_Error = 4,
2701     ProcessWaitResult_Timeout = 5,
2702     ProcessWaitResult_StdIn = 6,
2703     ProcessWaitResult_StdOut = 7,
2704     ProcessWaitResult_StdErr = 8,
2705     ProcessWaitResult_WaitFlagNotSupported = 9
2706 } ProcessWaitResult;
2707 /* End of enum ProcessWaitResult declaration */
2708 #   define ProcessWaitResult_T PRUint32
2709 
2710 
2711 /* Start of enum FileCopyFlag declaration */
2712 #   define FILECOPYFLAG_IID_STR "791909d7-4c64-2fa4-4303-adb10658d347"
2713 #   define FILECOPYFLAG_IID { \
2714     0x791909d7, 0x4c64, 0x2fa4, \
2715     { 0x43, 0x03, 0xad, 0xb1, 0x06, 0x58, 0xd3, 0x47 } \
2716 }
2717 typedef enum FileCopyFlag
2718 {
2719     FileCopyFlag_None = 0,
2720     FileCopyFlag_NoReplace = 1,
2721     FileCopyFlag_FollowLinks = 2,
2722     FileCopyFlag_Update = 4
2723 } FileCopyFlag;
2724 /* End of enum FileCopyFlag declaration */
2725 #   define FileCopyFlag_T PRUint32
2726 
2727 
2728 /* Start of enum FsObjMoveFlag declaration */
2729 #   define FSOBJMOVEFLAG_IID_STR "2450a05d-80c6-4c96-9a17-94d73293ff86"
2730 #   define FSOBJMOVEFLAG_IID { \
2731     0x2450a05d, 0x80c6, 0x4c96, \
2732     { 0x9a, 0x17, 0x94, 0xd7, 0x32, 0x93, 0xff, 0x86 } \
2733 }
2734 typedef enum FsObjMoveFlag
2735 {
2736     FsObjMoveFlag_None = 0,
2737     FsObjMoveFlag_Replace = 1,
2738     FsObjMoveFlag_FollowLinks = 2,
2739     FsObjMoveFlag_AllowDirectoryMoves = 4
2740 } FsObjMoveFlag;
2741 /* End of enum FsObjMoveFlag declaration */
2742 #   define FsObjMoveFlag_T PRUint32
2743 
2744 
2745 /* Start of enum DirectoryCreateFlag declaration */
2746 #   define DIRECTORYCREATEFLAG_IID_STR "bd721b0e-ced5-4f79-b368-249897c32a36"
2747 #   define DIRECTORYCREATEFLAG_IID { \
2748     0xbd721b0e, 0xced5, 0x4f79, \
2749     { 0xb3, 0x68, 0x24, 0x98, 0x97, 0xc3, 0x2a, 0x36 } \
2750 }
2751 typedef enum DirectoryCreateFlag
2752 {
2753     DirectoryCreateFlag_None = 0,
2754     DirectoryCreateFlag_Parents = 1
2755 } DirectoryCreateFlag;
2756 /* End of enum DirectoryCreateFlag declaration */
2757 #   define DirectoryCreateFlag_T PRUint32
2758 
2759 
2760 /* Start of enum DirectoryCopyFlag declaration */
2761 #   define DIRECTORYCOPYFLAG_IID_STR "b5901856-d064-4fbc-ab06-2909ba106154"
2762 #   define DIRECTORYCOPYFLAG_IID { \
2763     0xb5901856, 0xd064, 0x4fbc, \
2764     { 0xab, 0x06, 0x29, 0x09, 0xba, 0x10, 0x61, 0x54 } \
2765 }
2766 typedef enum DirectoryCopyFlag
2767 {
2768     DirectoryCopyFlag_None = 0,
2769     DirectoryCopyFlag_CopyIntoExisting = 1
2770 } DirectoryCopyFlag;
2771 /* End of enum DirectoryCopyFlag declaration */
2772 #   define DirectoryCopyFlag_T PRUint32
2773 
2774 
2775 /* Start of enum DirectoryRemoveRecFlag declaration */
2776 #   define DIRECTORYREMOVERECFLAG_IID_STR "455aabf0-7692-48f6-9061-f21579b65769"
2777 #   define DIRECTORYREMOVERECFLAG_IID { \
2778     0x455aabf0, 0x7692, 0x48f6, \
2779     { 0x90, 0x61, 0xf2, 0x15, 0x79, 0xb6, 0x57, 0x69 } \
2780 }
2781 typedef enum DirectoryRemoveRecFlag
2782 {
2783     DirectoryRemoveRecFlag_None = 0,
2784     DirectoryRemoveRecFlag_ContentAndDir = 1,
2785     DirectoryRemoveRecFlag_ContentOnly = 2
2786 } DirectoryRemoveRecFlag;
2787 /* End of enum DirectoryRemoveRecFlag declaration */
2788 #   define DirectoryRemoveRecFlag_T PRUint32
2789 
2790 
2791 /* Start of enum FsObjRenameFlag declaration */
2792 #   define FSOBJRENAMEFLAG_IID_STR "59bbf3a1-4e23-d7cf-05d5-ccae32080ed2"
2793 #   define FSOBJRENAMEFLAG_IID { \
2794     0x59bbf3a1, 0x4e23, 0xd7cf, \
2795     { 0x05, 0xd5, 0xcc, 0xae, 0x32, 0x08, 0x0e, 0xd2 } \
2796 }
2797 typedef enum FsObjRenameFlag
2798 {
2799     FsObjRenameFlag_NoReplace = 0,
2800     FsObjRenameFlag_Replace = 1
2801 } FsObjRenameFlag;
2802 /* End of enum FsObjRenameFlag declaration */
2803 #   define FsObjRenameFlag_T PRUint32
2804 
2805 
2806 /* Start of enum ProcessCreateFlag declaration */
2807 #   define PROCESSCREATEFLAG_IID_STR "C544CD2B-F02D-4886-9901-71C523DB8DC5"
2808 #   define PROCESSCREATEFLAG_IID { \
2809     0xC544CD2B, 0xF02D, 0x4886, \
2810     { 0x99, 0x01, 0x71, 0xC5, 0x23, 0xDB, 0x8D, 0xC5 } \
2811 }
2812 typedef enum ProcessCreateFlag
2813 {
2814     ProcessCreateFlag_None = 0,
2815     ProcessCreateFlag_WaitForProcessStartOnly = 1,
2816     ProcessCreateFlag_IgnoreOrphanedProcesses = 2,
2817     ProcessCreateFlag_Hidden = 4,
2818     ProcessCreateFlag_Profile = 8,
2819     ProcessCreateFlag_WaitForStdOut = 16,
2820     ProcessCreateFlag_WaitForStdErr = 32,
2821     ProcessCreateFlag_ExpandArguments = 64,
2822     ProcessCreateFlag_UnquotedArguments = 128
2823 } ProcessCreateFlag;
2824 /* End of enum ProcessCreateFlag declaration */
2825 #   define ProcessCreateFlag_T PRUint32
2826 
2827 
2828 /* Start of enum ProcessPriority declaration */
2829 #   define PROCESSPRIORITY_IID_STR "ee8cac50-e232-49fe-806b-d1214d9c2e49"
2830 #   define PROCESSPRIORITY_IID { \
2831     0xee8cac50, 0xe232, 0x49fe, \
2832     { 0x80, 0x6b, 0xd1, 0x21, 0x4d, 0x9c, 0x2e, 0x49 } \
2833 }
2834 typedef enum ProcessPriority
2835 {
2836     ProcessPriority_Invalid = 0,
2837     ProcessPriority_Default = 1
2838 } ProcessPriority;
2839 /* End of enum ProcessPriority declaration */
2840 #   define ProcessPriority_T PRUint32
2841 
2842 
2843 /* Start of enum SymlinkType declaration */
2844 #   define SYMLINKTYPE_IID_STR "37794668-f8f1-4714-98a5-6f8fa2ed0118"
2845 #   define SYMLINKTYPE_IID { \
2846     0x37794668, 0xf8f1, 0x4714, \
2847     { 0x98, 0xa5, 0x6f, 0x8f, 0xa2, 0xed, 0x01, 0x18 } \
2848 }
2849 typedef enum SymlinkType
2850 {
2851     SymlinkType_Unknown = 0,
2852     SymlinkType_Directory = 1,
2853     SymlinkType_File = 2
2854 } SymlinkType;
2855 /* End of enum SymlinkType declaration */
2856 #   define SymlinkType_T PRUint32
2857 
2858 
2859 /* Start of enum SymlinkReadFlag declaration */
2860 #   define SYMLINKREADFLAG_IID_STR "b7fe2b9d-790e-4b25-8adf-1ca33026931f"
2861 #   define SYMLINKREADFLAG_IID { \
2862     0xb7fe2b9d, 0x790e, 0x4b25, \
2863     { 0x8a, 0xdf, 0x1c, 0xa3, 0x30, 0x26, 0x93, 0x1f } \
2864 }
2865 typedef enum SymlinkReadFlag
2866 {
2867     SymlinkReadFlag_None = 0,
2868     SymlinkReadFlag_NoSymlinks = 1
2869 } SymlinkReadFlag;
2870 /* End of enum SymlinkReadFlag declaration */
2871 #   define SymlinkReadFlag_T PRUint32
2872 
2873 
2874 /* Start of enum ProcessStatus declaration */
2875 #   define PROCESSSTATUS_IID_STR "4d52368f-5b48-4bfe-b486-acf89139b52f"
2876 #   define PROCESSSTATUS_IID { \
2877     0x4d52368f, 0x5b48, 0x4bfe, \
2878     { 0xb4, 0x86, 0xac, 0xf8, 0x91, 0x39, 0xb5, 0x2f } \
2879 }
2880 typedef enum ProcessStatus
2881 {
2882     ProcessStatus_Undefined = 0,
2883     ProcessStatus_Starting = 10,
2884     ProcessStatus_Started = 100,
2885     ProcessStatus_Paused = 110,
2886     ProcessStatus_Terminating = 480,
2887     ProcessStatus_TerminatedNormally = 500,
2888     ProcessStatus_TerminatedSignal = 510,
2889     ProcessStatus_TerminatedAbnormally = 511,
2890     ProcessStatus_TimedOutKilled = 512,
2891     ProcessStatus_TimedOutAbnormally = 513,
2892     ProcessStatus_Down = 600,
2893     ProcessStatus_Error = 800
2894 } ProcessStatus;
2895 /* End of enum ProcessStatus declaration */
2896 #   define ProcessStatus_T PRUint32
2897 
2898 
2899 /* Start of enum ProcessInputStatus declaration */
2900 #   define PROCESSINPUTSTATUS_IID_STR "a4a0ef9c-29cc-4805-9803-c8215ae9da6c"
2901 #   define PROCESSINPUTSTATUS_IID { \
2902     0xa4a0ef9c, 0x29cc, 0x4805, \
2903     { 0x98, 0x03, 0xc8, 0x21, 0x5a, 0xe9, 0xda, 0x6c } \
2904 }
2905 typedef enum ProcessInputStatus
2906 {
2907     ProcessInputStatus_Undefined = 0,
2908     ProcessInputStatus_Broken = 1,
2909     ProcessInputStatus_Available = 10,
2910     ProcessInputStatus_Written = 50,
2911     ProcessInputStatus_Overflow = 100
2912 } ProcessInputStatus;
2913 /* End of enum ProcessInputStatus declaration */
2914 #   define ProcessInputStatus_T PRUint32
2915 
2916 
2917 /* Start of enum PathStyle declaration */
2918 #   define PATHSTYLE_IID_STR "97303a5b-42e8-0a55-d16f-d2a92c295261"
2919 #   define PATHSTYLE_IID { \
2920     0x97303a5b, 0x42e8, 0x0a55, \
2921     { 0xd1, 0x6f, 0xd2, 0xa9, 0x2c, 0x29, 0x52, 0x61 } \
2922 }
2923 typedef enum PathStyle
2924 {
2925     PathStyle_DOS = 1,
2926     PathStyle_UNIX = 2,
2927     PathStyle_Unknown = 8
2928 } PathStyle;
2929 /* End of enum PathStyle declaration */
2930 #   define PathStyle_T PRUint32
2931 
2932 
2933 /* Start of enum FileAccessMode declaration */
2934 #   define FILEACCESSMODE_IID_STR "231a578f-47fb-ea30-3b3e-8489558227f0"
2935 #   define FILEACCESSMODE_IID { \
2936     0x231a578f, 0x47fb, 0xea30, \
2937     { 0x3b, 0x3e, 0x84, 0x89, 0x55, 0x82, 0x27, 0xf0 } \
2938 }
2939 typedef enum FileAccessMode
2940 {
2941     FileAccessMode_ReadOnly = 1,
2942     FileAccessMode_WriteOnly = 2,
2943     FileAccessMode_ReadWrite = 3,
2944     FileAccessMode_AppendOnly = 4,
2945     FileAccessMode_AppendRead = 5
2946 } FileAccessMode;
2947 /* End of enum FileAccessMode declaration */
2948 #   define FileAccessMode_T PRUint32
2949 
2950 
2951 /* Start of enum FileOpenAction declaration */
2952 #   define FILEOPENACTION_IID_STR "12bc97e2-4fc6-a8b4-4f84-0cbf4ab970d2"
2953 #   define FILEOPENACTION_IID { \
2954     0x12bc97e2, 0x4fc6, 0xa8b4, \
2955     { 0x4f, 0x84, 0x0c, 0xbf, 0x4a, 0xb9, 0x70, 0xd2 } \
2956 }
2957 typedef enum FileOpenAction
2958 {
2959     FileOpenAction_OpenExisting = 1,
2960     FileOpenAction_OpenOrCreate = 2,
2961     FileOpenAction_CreateNew = 3,
2962     FileOpenAction_CreateOrReplace = 4,
2963     FileOpenAction_OpenExistingTruncated = 5,
2964     FileOpenAction_AppendOrCreate = 99
2965 } FileOpenAction;
2966 /* End of enum FileOpenAction declaration */
2967 #   define FileOpenAction_T PRUint32
2968 
2969 
2970 /* Start of enum FileSharingMode declaration */
2971 #   define FILESHARINGMODE_IID_STR "f87dfe58-425b-c5ba-7d6d-22adeea25de1"
2972 #   define FILESHARINGMODE_IID { \
2973     0xf87dfe58, 0x425b, 0xc5ba, \
2974     { 0x7d, 0x6d, 0x22, 0xad, 0xee, 0xa2, 0x5d, 0xe1 } \
2975 }
2976 typedef enum FileSharingMode
2977 {
2978     FileSharingMode_Read = 1,
2979     FileSharingMode_Write = 2,
2980     FileSharingMode_ReadWrite = 3,
2981     FileSharingMode_Delete = 4,
2982     FileSharingMode_ReadDelete = 5,
2983     FileSharingMode_WriteDelete = 6,
2984     FileSharingMode_All = 7
2985 } FileSharingMode;
2986 /* End of enum FileSharingMode declaration */
2987 #   define FileSharingMode_T PRUint32
2988 
2989 
2990 /* Start of enum FileOpenExFlag declaration */
2991 #   define FILEOPENEXFLAG_IID_STR "4671abd4-f70c-42aa-8542-6c169cb87a5c"
2992 #   define FILEOPENEXFLAG_IID { \
2993     0x4671abd4, 0xf70c, 0x42aa, \
2994     { 0x85, 0x42, 0x6c, 0x16, 0x9c, 0xb8, 0x7a, 0x5c } \
2995 }
2996 typedef enum FileOpenExFlag
2997 {
2998     FileOpenExFlag_None = 0
2999 } FileOpenExFlag;
3000 /* End of enum FileOpenExFlag declaration */
3001 #   define FileOpenExFlag_T PRUint32
3002 
3003 
3004 /* Start of enum FileStatus declaration */
3005 #   define FILESTATUS_IID_STR "8c86468b-b97b-4080-8914-e29f5b0abd2c"
3006 #   define FILESTATUS_IID { \
3007     0x8c86468b, 0xb97b, 0x4080, \
3008     { 0x89, 0x14, 0xe2, 0x9f, 0x5b, 0x0a, 0xbd, 0x2c } \
3009 }
3010 typedef enum FileStatus
3011 {
3012     FileStatus_Undefined = 0,
3013     FileStatus_Opening = 10,
3014     FileStatus_Open = 100,
3015     FileStatus_Closing = 150,
3016     FileStatus_Closed = 200,
3017     FileStatus_Down = 600,
3018     FileStatus_Error = 800
3019 } FileStatus;
3020 /* End of enum FileStatus declaration */
3021 #   define FileStatus_T PRUint32
3022 
3023 
3024 /* Start of enum FsObjType declaration */
3025 #   define FSOBJTYPE_IID_STR "34a0d1aa-491e-e209-e150-84964d6cee5f"
3026 #   define FSOBJTYPE_IID { \
3027     0x34a0d1aa, 0x491e, 0xe209, \
3028     { 0xe1, 0x50, 0x84, 0x96, 0x4d, 0x6c, 0xee, 0x5f } \
3029 }
3030 typedef enum FsObjType
3031 {
3032     FsObjType_Unknown = 1,
3033     FsObjType_Fifo = 2,
3034     FsObjType_DevChar = 3,
3035     FsObjType_Directory = 4,
3036     FsObjType_DevBlock = 5,
3037     FsObjType_File = 6,
3038     FsObjType_Symlink = 7,
3039     FsObjType_Socket = 8,
3040     FsObjType_WhiteOut = 9
3041 } FsObjType;
3042 /* End of enum FsObjType declaration */
3043 #   define FsObjType_T PRUint32
3044 
3045 
3046 /* Start of enum DnDAction declaration */
3047 #   define DNDACTION_IID_STR "17609e74-778e-4d0e-8827-35f5230f287b"
3048 #   define DNDACTION_IID { \
3049     0x17609e74, 0x778e, 0x4d0e, \
3050     { 0x88, 0x27, 0x35, 0xf5, 0x23, 0x0f, 0x28, 0x7b } \
3051 }
3052 typedef enum DnDAction
3053 {
3054     DnDAction_Ignore = 0,
3055     DnDAction_Copy = 1,
3056     DnDAction_Move = 2,
3057     DnDAction_Link = 3
3058 } DnDAction;
3059 /* End of enum DnDAction declaration */
3060 #   define DnDAction_T PRUint32
3061 
3062 
3063 /* Start of enum DirectoryOpenFlag declaration */
3064 #   define DIRECTORYOPENFLAG_IID_STR "5138837a-8fd2-4194-a1b0-08f7bc3949d0"
3065 #   define DIRECTORYOPENFLAG_IID { \
3066     0x5138837a, 0x8fd2, 0x4194, \
3067     { 0xa1, 0xb0, 0x08, 0xf7, 0xbc, 0x39, 0x49, 0xd0 } \
3068 }
3069 typedef enum DirectoryOpenFlag
3070 {
3071     DirectoryOpenFlag_None = 0,
3072     DirectoryOpenFlag_NoSymlinks = 1
3073 } DirectoryOpenFlag;
3074 /* End of enum DirectoryOpenFlag declaration */
3075 #   define DirectoryOpenFlag_T PRUint32
3076 
3077 
3078 /* Start of enum MediumState declaration */
3079 #   define MEDIUMSTATE_IID_STR "ef41e980-e012-43cd-9dea-479d4ef14d13"
3080 #   define MEDIUMSTATE_IID { \
3081     0xef41e980, 0xe012, 0x43cd, \
3082     { 0x9d, 0xea, 0x47, 0x9d, 0x4e, 0xf1, 0x4d, 0x13 } \
3083 }
3084 typedef enum MediumState
3085 {
3086     MediumState_NotCreated = 0,
3087     MediumState_Created = 1,
3088     MediumState_LockedRead = 2,
3089     MediumState_LockedWrite = 3,
3090     MediumState_Inaccessible = 4,
3091     MediumState_Creating = 5,
3092     MediumState_Deleting = 6
3093 } MediumState;
3094 /* End of enum MediumState declaration */
3095 #   define MediumState_T PRUint32
3096 
3097 
3098 /* Start of enum MediumType declaration */
3099 #   define MEDIUMTYPE_IID_STR "fe663fb5-c244-4e1b-9d81-c628b417dd04"
3100 #   define MEDIUMTYPE_IID { \
3101     0xfe663fb5, 0xc244, 0x4e1b, \
3102     { 0x9d, 0x81, 0xc6, 0x28, 0xb4, 0x17, 0xdd, 0x04 } \
3103 }
3104 typedef enum MediumType
3105 {
3106     MediumType_Normal = 0,
3107     MediumType_Immutable = 1,
3108     MediumType_Writethrough = 2,
3109     MediumType_Shareable = 3,
3110     MediumType_Readonly = 4,
3111     MediumType_MultiAttach = 5
3112 } MediumType;
3113 /* End of enum MediumType declaration */
3114 #   define MediumType_T PRUint32
3115 
3116 
3117 /* Start of enum MediumVariant declaration */
3118 #   define MEDIUMVARIANT_IID_STR "0282e97f-4ef3-4411-a8e0-47c384803cb6"
3119 #   define MEDIUMVARIANT_IID { \
3120     0x0282e97f, 0x4ef3, 0x4411, \
3121     { 0xa8, 0xe0, 0x47, 0xc3, 0x84, 0x80, 0x3c, 0xb6 } \
3122 }
3123 typedef enum MediumVariant
3124 {
3125     MediumVariant_Standard = 0,
3126     MediumVariant_VmdkSplit2G = 0x01,
3127     MediumVariant_VmdkRawDisk = 0x02,
3128     MediumVariant_VmdkStreamOptimized = 0x04,
3129     MediumVariant_VmdkESX = 0x08,
3130     MediumVariant_VdiZeroExpand = 0x100,
3131     MediumVariant_Fixed = 0x10000,
3132     MediumVariant_Diff = 0x20000,
3133     MediumVariant_Formatted = 0x20000000,
3134     MediumVariant_NoCreateDir = 0x40000000
3135 } MediumVariant;
3136 /* End of enum MediumVariant declaration */
3137 #   define MediumVariant_T PRUint32
3138 
3139 
3140 /* Start of enum DataType declaration */
3141 #   define DATATYPE_IID_STR "d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7"
3142 #   define DATATYPE_IID { \
3143     0xd90ea51e, 0xa3f1, 0x4a01, \
3144     { 0xbe, 0xb1, 0xc1, 0x72, 0x3c, 0x0d, 0x3b, 0xa7 } \
3145 }
3146 typedef enum DataType
3147 {
3148     DataType_Int32 = 0,
3149     DataType_Int8 = 1,
3150     DataType_String = 2
3151 } DataType;
3152 /* End of enum DataType declaration */
3153 #   define DataType_T PRUint32
3154 
3155 
3156 /* Start of enum DataFlags declaration */
3157 #   define DATAFLAGS_IID_STR "86884dcf-1d6b-4f1b-b4bf-f5aa44959d60"
3158 #   define DATAFLAGS_IID { \
3159     0x86884dcf, 0x1d6b, 0x4f1b, \
3160     { 0xb4, 0xbf, 0xf5, 0xaa, 0x44, 0x95, 0x9d, 0x60 } \
3161 }
3162 typedef enum DataFlags
3163 {
3164     DataFlags_None = 0x00,
3165     DataFlags_Mandatory = 0x01,
3166     DataFlags_Expert = 0x02,
3167     DataFlags_Array = 0x04,
3168     DataFlags_FlagMask = 0x07
3169 } DataFlags;
3170 /* End of enum DataFlags declaration */
3171 #   define DataFlags_T PRUint32
3172 
3173 
3174 /* Start of enum MediumFormatCapabilities declaration */
3175 #   define MEDIUMFORMATCAPABILITIES_IID_STR "7342ba79-7ce0-4d94-8f86-5ed5a185d9bd"
3176 #   define MEDIUMFORMATCAPABILITIES_IID { \
3177     0x7342ba79, 0x7ce0, 0x4d94, \
3178     { 0x8f, 0x86, 0x5e, 0xd5, 0xa1, 0x85, 0xd9, 0xbd } \
3179 }
3180 typedef enum MediumFormatCapabilities
3181 {
3182     MediumFormatCapabilities_Uuid = 0x01,
3183     MediumFormatCapabilities_CreateFixed = 0x02,
3184     MediumFormatCapabilities_CreateDynamic = 0x04,
3185     MediumFormatCapabilities_CreateSplit2G = 0x08,
3186     MediumFormatCapabilities_Differencing = 0x10,
3187     MediumFormatCapabilities_Asynchronous = 0x20,
3188     MediumFormatCapabilities_File = 0x40,
3189     MediumFormatCapabilities_Properties = 0x80,
3190     MediumFormatCapabilities_TcpNetworking = 0x100,
3191     MediumFormatCapabilities_VFS = 0x200,
3192     MediumFormatCapabilities_Discard = 0x400,
3193     MediumFormatCapabilities_Preferred = 0x800,
3194     MediumFormatCapabilities_CapabilityMask = 0xFFF
3195 } MediumFormatCapabilities;
3196 /* End of enum MediumFormatCapabilities declaration */
3197 #   define MediumFormatCapabilities_T PRUint32
3198 
3199 
3200 /* Start of enum PartitionTableType declaration */
3201 #   define PARTITIONTABLETYPE_IID_STR "360066eb-d19e-4fa1-57ef-fed434fbe2a9"
3202 #   define PARTITIONTABLETYPE_IID { \
3203     0x360066eb, 0xd19e, 0x4fa1, \
3204     { 0x57, 0xef, 0xfe, 0xd4, 0x34, 0xfb, 0xe2, 0xa9 } \
3205 }
3206 typedef enum PartitionTableType
3207 {
3208     PartitionTableType_MBR = 1,
3209     PartitionTableType_GPT = 2
3210 } PartitionTableType;
3211 /* End of enum PartitionTableType declaration */
3212 #   define PartitionTableType_T PRUint32
3213 
3214 
3215 /* Start of enum KeyboardLED declaration */
3216 #   define KEYBOARDLED_IID_STR "ef29ea38-409b-49c7-a817-c858d426dfba"
3217 #   define KEYBOARDLED_IID { \
3218     0xef29ea38, 0x409b, 0x49c7, \
3219     { 0xa8, 0x17, 0xc8, 0x58, 0xd4, 0x26, 0xdf, 0xba } \
3220 }
3221 typedef enum KeyboardLED
3222 {
3223     KeyboardLED_NumLock = 0x01,
3224     KeyboardLED_CapsLock = 0x02,
3225     KeyboardLED_ScrollLock = 0x04
3226 } KeyboardLED;
3227 /* End of enum KeyboardLED declaration */
3228 #   define KeyboardLED_T PRUint32
3229 
3230 
3231 /* Start of enum MouseButtonState declaration */
3232 #   define MOUSEBUTTONSTATE_IID_STR "9ee094b8-b28a-4d56-a166-973cb588d7f8"
3233 #   define MOUSEBUTTONSTATE_IID { \
3234     0x9ee094b8, 0xb28a, 0x4d56, \
3235     { 0xa1, 0x66, 0x97, 0x3c, 0xb5, 0x88, 0xd7, 0xf8 } \
3236 }
3237 typedef enum MouseButtonState
3238 {
3239     MouseButtonState_LeftButton = 0x01,
3240     MouseButtonState_RightButton = 0x02,
3241     MouseButtonState_MiddleButton = 0x04,
3242     MouseButtonState_WheelUp = 0x08,
3243     MouseButtonState_WheelDown = 0x10,
3244     MouseButtonState_XButton1 = 0x20,
3245     MouseButtonState_XButton2 = 0x40,
3246     MouseButtonState_MouseStateMask = 0x7F
3247 } MouseButtonState;
3248 /* End of enum MouseButtonState declaration */
3249 #   define MouseButtonState_T PRUint32
3250 
3251 
3252 /* Start of enum TouchContactState declaration */
3253 #   define TOUCHCONTACTSTATE_IID_STR "3f942686-2506-421c-927c-90d4b45f4a38"
3254 #   define TOUCHCONTACTSTATE_IID { \
3255     0x3f942686, 0x2506, 0x421c, \
3256     { 0x92, 0x7c, 0x90, 0xd4, 0xb4, 0x5f, 0x4a, 0x38 } \
3257 }
3258 typedef enum TouchContactState
3259 {
3260     TouchContactState_None = 0x00,
3261     TouchContactState_InContact = 0x01,
3262     TouchContactState_InRange = 0x02,
3263     TouchContactState_ContactStateMask = 0x03
3264 } TouchContactState;
3265 /* End of enum TouchContactState declaration */
3266 #   define TouchContactState_T PRUint32
3267 
3268 
3269 /* Start of enum FramebufferCapabilities declaration */
3270 #   define FRAMEBUFFERCAPABILITIES_IID_STR "cc395839-30fa-4ca5-ae65-e6360e3edd7a"
3271 #   define FRAMEBUFFERCAPABILITIES_IID { \
3272     0xcc395839, 0x30fa, 0x4ca5, \
3273     { 0xae, 0x65, 0xe6, 0x36, 0x0e, 0x3e, 0xdd, 0x7a } \
3274 }
3275 typedef enum FramebufferCapabilities
3276 {
3277     FramebufferCapabilities_UpdateImage = 0x01,
3278     FramebufferCapabilities_VHWA = 0x02,
3279     FramebufferCapabilities_VisibleRegion = 0x04,
3280     FramebufferCapabilities_RenderCursor = 0x08,
3281     FramebufferCapabilities_MoveCursor = 0x10
3282 } FramebufferCapabilities;
3283 /* End of enum FramebufferCapabilities declaration */
3284 #   define FramebufferCapabilities_T PRUint32
3285 
3286 
3287 /* Start of enum GuestMonitorStatus declaration */
3288 #   define GUESTMONITORSTATUS_IID_STR "6b8d3f71-39cb-459e-a916-48917ed43e19"
3289 #   define GUESTMONITORSTATUS_IID { \
3290     0x6b8d3f71, 0x39cb, 0x459e, \
3291     { 0xa9, 0x16, 0x48, 0x91, 0x7e, 0xd4, 0x3e, 0x19 } \
3292 }
3293 typedef enum GuestMonitorStatus
3294 {
3295     GuestMonitorStatus_Disabled = 0,
3296     GuestMonitorStatus_Enabled = 1,
3297     GuestMonitorStatus_Blank = 2
3298 } GuestMonitorStatus;
3299 /* End of enum GuestMonitorStatus declaration */
3300 #   define GuestMonitorStatus_T PRUint32
3301 
3302 
3303 /* Start of enum ScreenLayoutMode declaration */
3304 #   define SCREENLAYOUTMODE_IID_STR "c7a9ee66-cfed-438b-9f8c-d3adf7588a4d"
3305 #   define SCREENLAYOUTMODE_IID { \
3306     0xc7a9ee66, 0xcfed, 0x438b, \
3307     { 0x9f, 0x8c, 0xd3, 0xad, 0xf7, 0x58, 0x8a, 0x4d } \
3308 }
3309 typedef enum ScreenLayoutMode
3310 {
3311     ScreenLayoutMode_Apply = 0,
3312     ScreenLayoutMode_Reset = 1,
3313     ScreenLayoutMode_Attach = 2
3314 } ScreenLayoutMode;
3315 /* End of enum ScreenLayoutMode declaration */
3316 #   define ScreenLayoutMode_T PRUint32
3317 
3318 
3319 /* Start of enum NetworkAttachmentType declaration */
3320 #   define NETWORKATTACHMENTTYPE_IID_STR "524a8f9d-4b86-4b51-877d-1aa27c4ebeac"
3321 #   define NETWORKATTACHMENTTYPE_IID { \
3322     0x524a8f9d, 0x4b86, 0x4b51, \
3323     { 0x87, 0x7d, 0x1a, 0xa2, 0x7c, 0x4e, 0xbe, 0xac } \
3324 }
3325 typedef enum NetworkAttachmentType
3326 {
3327     NetworkAttachmentType_Null = 0,
3328     NetworkAttachmentType_NAT = 1,
3329     NetworkAttachmentType_Bridged = 2,
3330     NetworkAttachmentType_Internal = 3,
3331     NetworkAttachmentType_HostOnly = 4,
3332     NetworkAttachmentType_Generic = 5,
3333     NetworkAttachmentType_NATNetwork = 6
3334 } NetworkAttachmentType;
3335 /* End of enum NetworkAttachmentType declaration */
3336 #   define NetworkAttachmentType_T PRUint32
3337 
3338 
3339 /* Start of enum NetworkAdapterType declaration */
3340 #   define NETWORKADAPTERTYPE_IID_STR "3c2281e4-d952-4e87-8c7d-24379cb6a81c"
3341 #   define NETWORKADAPTERTYPE_IID { \
3342     0x3c2281e4, 0xd952, 0x4e87, \
3343     { 0x8c, 0x7d, 0x24, 0x37, 0x9c, 0xb6, 0xa8, 0x1c } \
3344 }
3345 typedef enum NetworkAdapterType
3346 {
3347     NetworkAdapterType_Null = 0,
3348     NetworkAdapterType_Am79C970A = 1,
3349     NetworkAdapterType_Am79C973 = 2,
3350     NetworkAdapterType_I82540EM = 3,
3351     NetworkAdapterType_I82543GC = 4,
3352     NetworkAdapterType_I82545EM = 5,
3353     NetworkAdapterType_Virtio = 6
3354 } NetworkAdapterType;
3355 /* End of enum NetworkAdapterType declaration */
3356 #   define NetworkAdapterType_T PRUint32
3357 
3358 
3359 /* Start of enum NetworkAdapterPromiscModePolicy declaration */
3360 #   define NETWORKADAPTERPROMISCMODEPOLICY_IID_STR "c963768a-376f-4c85-8d84-d8ced4b7269e"
3361 #   define NETWORKADAPTERPROMISCMODEPOLICY_IID { \
3362     0xc963768a, 0x376f, 0x4c85, \
3363     { 0x8d, 0x84, 0xd8, 0xce, 0xd4, 0xb7, 0x26, 0x9e } \
3364 }
3365 typedef enum NetworkAdapterPromiscModePolicy
3366 {
3367     NetworkAdapterPromiscModePolicy_Deny = 1,
3368     NetworkAdapterPromiscModePolicy_AllowNetwork = 2,
3369     NetworkAdapterPromiscModePolicy_AllowAll = 3
3370 } NetworkAdapterPromiscModePolicy;
3371 /* End of enum NetworkAdapterPromiscModePolicy declaration */
3372 #   define NetworkAdapterPromiscModePolicy_T PRUint32
3373 
3374 
3375 /* Start of enum PortMode declaration */
3376 #   define PORTMODE_IID_STR "7485fcfd-d603-470a-87af-26d33beb7de9"
3377 #   define PORTMODE_IID { \
3378     0x7485fcfd, 0xd603, 0x470a, \
3379     { 0x87, 0xaf, 0x26, 0xd3, 0x3b, 0xeb, 0x7d, 0xe9 } \
3380 }
3381 typedef enum PortMode
3382 {
3383     PortMode_Disconnected = 0,
3384     PortMode_HostPipe = 1,
3385     PortMode_HostDevice = 2,
3386     PortMode_RawFile = 3,
3387     PortMode_TCP = 4
3388 } PortMode;
3389 /* End of enum PortMode declaration */
3390 #   define PortMode_T PRUint32
3391 
3392 
3393 /* Start of enum UartType declaration */
3394 #   define UARTTYPE_IID_STR "c8899d39-0b90-4265-9d02-1e38bd4d1b39"
3395 #   define UARTTYPE_IID { \
3396     0xc8899d39, 0x0b90, 0x4265, \
3397     { 0x9d, 0x02, 0x1e, 0x38, 0xbd, 0x4d, 0x1b, 0x39 } \
3398 }
3399 typedef enum UartType
3400 {
3401     UartType_U16450 = 0,
3402     UartType_U16550A = 1,
3403     UartType_U16750 = 2
3404 } UartType;
3405 /* End of enum UartType declaration */
3406 #   define UartType_T PRUint32
3407 
3408 
3409 /* Start of enum VMExecutionEngine declaration */
3410 #   define VMEXECUTIONENGINE_IID_STR "56029577-31f7-44d2-3334-7ecbf95294b6"
3411 #   define VMEXECUTIONENGINE_IID { \
3412     0x56029577, 0x31f7, 0x44d2, \
3413     { 0x33, 0x34, 0x7e, 0xcb, 0xf9, 0x52, 0x94, 0xb6 } \
3414 }
3415 typedef enum VMExecutionEngine
3416 {
3417     VMExecutionEngine_NotSet = 0,
3418     VMExecutionEngine_RawMode = 1,
3419     VMExecutionEngine_HwVirt = 2,
3420     VMExecutionEngine_NativeApi = 3
3421 } VMExecutionEngine;
3422 /* End of enum VMExecutionEngine declaration */
3423 #   define VMExecutionEngine_T PRUint32
3424 
3425 
3426 /* Start of enum USBControllerType declaration */
3427 #   define USBCONTROLLERTYPE_IID_STR "8fdd1c6a-5412-41da-ab07-7baed7d6e18e"
3428 #   define USBCONTROLLERTYPE_IID { \
3429     0x8fdd1c6a, 0x5412, 0x41da, \
3430     { 0xab, 0x07, 0x7b, 0xae, 0xd7, 0xd6, 0xe1, 0x8e } \
3431 }
3432 typedef enum USBControllerType
3433 {
3434     USBControllerType_Null = 0,
3435     USBControllerType_OHCI = 1,
3436     USBControllerType_EHCI = 2,
3437     USBControllerType_XHCI = 3,
3438     USBControllerType_Last = 4
3439 } USBControllerType;
3440 /* End of enum USBControllerType declaration */
3441 #   define USBControllerType_T PRUint32
3442 
3443 
3444 /* Start of enum USBConnectionSpeed declaration */
3445 #   define USBCONNECTIONSPEED_IID_STR "d2915840-ea26-4fb4-b72a-21eaf6b888ff"
3446 #   define USBCONNECTIONSPEED_IID { \
3447     0xd2915840, 0xea26, 0x4fb4, \
3448     { 0xb7, 0x2a, 0x21, 0xea, 0xf6, 0xb8, 0x88, 0xff } \
3449 }
3450 typedef enum USBConnectionSpeed
3451 {
3452     USBConnectionSpeed_Null = 0,
3453     USBConnectionSpeed_Low = 1,
3454     USBConnectionSpeed_Full = 2,
3455     USBConnectionSpeed_High = 3,
3456     USBConnectionSpeed_Super = 4,
3457     USBConnectionSpeed_SuperPlus = 5
3458 } USBConnectionSpeed;
3459 /* End of enum USBConnectionSpeed declaration */
3460 #   define USBConnectionSpeed_T PRUint32
3461 
3462 
3463 /* Start of enum USBDeviceState declaration */
3464 #   define USBDEVICESTATE_IID_STR "b99a2e65-67fb-4882-82fd-f3e5e8193ab4"
3465 #   define USBDEVICESTATE_IID { \
3466     0xb99a2e65, 0x67fb, 0x4882, \
3467     { 0x82, 0xfd, 0xf3, 0xe5, 0xe8, 0x19, 0x3a, 0xb4 } \
3468 }
3469 typedef enum USBDeviceState
3470 {
3471     USBDeviceState_NotSupported = 0,
3472     USBDeviceState_Unavailable = 1,
3473     USBDeviceState_Busy = 2,
3474     USBDeviceState_Available = 3,
3475     USBDeviceState_Held = 4,
3476     USBDeviceState_Captured = 5
3477 } USBDeviceState;
3478 /* End of enum USBDeviceState declaration */
3479 #   define USBDeviceState_T PRUint32
3480 
3481 
3482 /* Start of enum USBDeviceFilterAction declaration */
3483 #   define USBDEVICEFILTERACTION_IID_STR "cbc30a49-2f4e-43b5-9da6-121320475933"
3484 #   define USBDEVICEFILTERACTION_IID { \
3485     0xcbc30a49, 0x2f4e, 0x43b5, \
3486     { 0x9d, 0xa6, 0x12, 0x13, 0x20, 0x47, 0x59, 0x33 } \
3487 }
3488 typedef enum USBDeviceFilterAction
3489 {
3490     USBDeviceFilterAction_Null = 0,
3491     USBDeviceFilterAction_Ignore = 1,
3492     USBDeviceFilterAction_Hold = 2
3493 } USBDeviceFilterAction;
3494 /* End of enum USBDeviceFilterAction declaration */
3495 #   define USBDeviceFilterAction_T PRUint32
3496 
3497 
3498 /* Start of enum AudioDriverType declaration */
3499 #   define AUDIODRIVERTYPE_IID_STR "4bcc3d73-c2fe-40db-b72f-0c2ca9d68496"
3500 #   define AUDIODRIVERTYPE_IID { \
3501     0x4bcc3d73, 0xc2fe, 0x40db, \
3502     { 0xb7, 0x2f, 0x0c, 0x2c, 0xa9, 0xd6, 0x84, 0x96 } \
3503 }
3504 typedef enum AudioDriverType
3505 {
3506     AudioDriverType_Null = 0,
3507     AudioDriverType_WinMM = 1,
3508     AudioDriverType_OSS = 2,
3509     AudioDriverType_ALSA = 3,
3510     AudioDriverType_DirectSound = 4,
3511     AudioDriverType_CoreAudio = 5,
3512     AudioDriverType_MMPM = 6,
3513     AudioDriverType_Pulse = 7,
3514     AudioDriverType_SolAudio = 8
3515 } AudioDriverType;
3516 /* End of enum AudioDriverType declaration */
3517 #   define AudioDriverType_T PRUint32
3518 
3519 
3520 /* Start of enum AudioControllerType declaration */
3521 #   define AUDIOCONTROLLERTYPE_IID_STR "7afd395c-42c3-444e-8788-3ce80292f36c"
3522 #   define AUDIOCONTROLLERTYPE_IID { \
3523     0x7afd395c, 0x42c3, 0x444e, \
3524     { 0x87, 0x88, 0x3c, 0xe8, 0x02, 0x92, 0xf3, 0x6c } \
3525 }
3526 typedef enum AudioControllerType
3527 {
3528     AudioControllerType_AC97 = 0,
3529     AudioControllerType_SB16 = 1,
3530     AudioControllerType_HDA = 2
3531 } AudioControllerType;
3532 /* End of enum AudioControllerType declaration */
3533 #   define AudioControllerType_T PRUint32
3534 
3535 
3536 /* Start of enum AudioCodecType declaration */
3537 #   define AUDIOCODECTYPE_IID_STR "7b406301-f520-420c-9805-8ce11c086370"
3538 #   define AUDIOCODECTYPE_IID { \
3539     0x7b406301, 0xf520, 0x420c, \
3540     { 0x98, 0x05, 0x8c, 0xe1, 0x1c, 0x08, 0x63, 0x70 } \
3541 }
3542 typedef enum AudioCodecType
3543 {
3544     AudioCodecType_Null = 0,
3545     AudioCodecType_SB16 = 1,
3546     AudioCodecType_STAC9700 = 2,
3547     AudioCodecType_AD1980 = 3,
3548     AudioCodecType_STAC9221 = 4
3549 } AudioCodecType;
3550 /* End of enum AudioCodecType declaration */
3551 #   define AudioCodecType_T PRUint32
3552 
3553 
3554 /* Start of enum AuthType declaration */
3555 #   define AUTHTYPE_IID_STR "7eef6ef6-98c2-4dc2-ab35-10d2b292028d"
3556 #   define AUTHTYPE_IID { \
3557     0x7eef6ef6, 0x98c2, 0x4dc2, \
3558     { 0xab, 0x35, 0x10, 0xd2, 0xb2, 0x92, 0x02, 0x8d } \
3559 }
3560 typedef enum AuthType
3561 {
3562     AuthType_Null = 0,
3563     AuthType_External = 1,
3564     AuthType_Guest = 2
3565 } AuthType;
3566 /* End of enum AuthType declaration */
3567 #   define AuthType_T PRUint32
3568 
3569 
3570 /* Start of enum Reason declaration */
3571 #   define REASON_IID_STR "e7e8e097-299d-4e98-8bbc-c31c2d47d0cc"
3572 #   define REASON_IID { \
3573     0xe7e8e097, 0x299d, 0x4e98, \
3574     { 0x8b, 0xbc, 0xc3, 0x1c, 0x2d, 0x47, 0xd0, 0xcc } \
3575 }
3576 typedef enum Reason
3577 {
3578     Reason_Unspecified = 0,
3579     Reason_HostSuspend = 1,
3580     Reason_HostResume = 2,
3581     Reason_HostBatteryLow = 3,
3582     Reason_Snapshot = 4
3583 } Reason;
3584 /* End of enum Reason declaration */
3585 #   define Reason_T PRUint32
3586 
3587 
3588 /* Start of enum StorageBus declaration */
3589 #   define STORAGEBUS_IID_STR "21371490-8542-4b5a-a74d-ee9ac2d45a90"
3590 #   define STORAGEBUS_IID { \
3591     0x21371490, 0x8542, 0x4b5a, \
3592     { 0xa7, 0x4d, 0xee, 0x9a, 0xc2, 0xd4, 0x5a, 0x90 } \
3593 }
3594 typedef enum StorageBus
3595 {
3596     StorageBus_Null = 0,
3597     StorageBus_IDE = 1,
3598     StorageBus_SATA = 2,
3599     StorageBus_SCSI = 3,
3600     StorageBus_Floppy = 4,
3601     StorageBus_SAS = 5,
3602     StorageBus_USB = 6,
3603     StorageBus_PCIe = 7
3604 } StorageBus;
3605 /* End of enum StorageBus declaration */
3606 #   define StorageBus_T PRUint32
3607 
3608 
3609 /* Start of enum StorageControllerType declaration */
3610 #   define STORAGECONTROLLERTYPE_IID_STR "9427f309-82e7-468f-9964-abfefc4d3058"
3611 #   define STORAGECONTROLLERTYPE_IID { \
3612     0x9427f309, 0x82e7, 0x468f, \
3613     { 0x99, 0x64, 0xab, 0xfe, 0xfc, 0x4d, 0x30, 0x58 } \
3614 }
3615 typedef enum StorageControllerType
3616 {
3617     StorageControllerType_Null = 0,
3618     StorageControllerType_LsiLogic = 1,
3619     StorageControllerType_BusLogic = 2,
3620     StorageControllerType_IntelAhci = 3,
3621     StorageControllerType_PIIX3 = 4,
3622     StorageControllerType_PIIX4 = 5,
3623     StorageControllerType_ICH6 = 6,
3624     StorageControllerType_I82078 = 7,
3625     StorageControllerType_LsiLogicSas = 8,
3626     StorageControllerType_USB = 9,
3627     StorageControllerType_NVMe = 10
3628 } StorageControllerType;
3629 /* End of enum StorageControllerType declaration */
3630 #   define StorageControllerType_T PRUint32
3631 
3632 
3633 /* Start of enum ChipsetType declaration */
3634 #   define CHIPSETTYPE_IID_STR "8b4096a8-a7c3-4d3b-bbb1-05a0a51ec394"
3635 #   define CHIPSETTYPE_IID { \
3636     0x8b4096a8, 0xa7c3, 0x4d3b, \
3637     { 0xbb, 0xb1, 0x05, 0xa0, 0xa5, 0x1e, 0xc3, 0x94 } \
3638 }
3639 typedef enum ChipsetType
3640 {
3641     ChipsetType_Null = 0,
3642     ChipsetType_PIIX3 = 1,
3643     ChipsetType_ICH9 = 2
3644 } ChipsetType;
3645 /* End of enum ChipsetType declaration */
3646 #   define ChipsetType_T PRUint32
3647 
3648 
3649 /* Start of enum NATAliasMode declaration */
3650 #   define NATALIASMODE_IID_STR "67772168-50d9-11df-9669-7fb714ee4fa1"
3651 #   define NATALIASMODE_IID { \
3652     0x67772168, 0x50d9, 0x11df, \
3653     { 0x96, 0x69, 0x7f, 0xb7, 0x14, 0xee, 0x4f, 0xa1 } \
3654 }
3655 typedef enum NATAliasMode
3656 {
3657     NATAliasMode_AliasLog = 0x1,
3658     NATAliasMode_AliasProxyOnly = 0x02,
3659     NATAliasMode_AliasUseSamePorts = 0x04
3660 } NATAliasMode;
3661 /* End of enum NATAliasMode declaration */
3662 #   define NATAliasMode_T PRUint32
3663 
3664 
3665 /* Start of enum NATProtocol declaration */
3666 #   define NATPROTOCOL_IID_STR "e90164be-eb03-11de-94af-fff9b1c1b19f"
3667 #   define NATPROTOCOL_IID { \
3668     0xe90164be, 0xeb03, 0x11de, \
3669     { 0x94, 0xaf, 0xff, 0xf9, 0xb1, 0xc1, 0xb1, 0x9f } \
3670 }
3671 typedef enum NATProtocol
3672 {
3673     NATProtocol_UDP = 0,
3674     NATProtocol_TCP = 1
3675 } NATProtocol;
3676 /* End of enum NATProtocol declaration */
3677 #   define NATProtocol_T PRUint32
3678 
3679 
3680 /* Start of enum BandwidthGroupType declaration */
3681 #   define BANDWIDTHGROUPTYPE_IID_STR "1d92b67d-dc69-4be9-ad4c-93a01e1e0c8e"
3682 #   define BANDWIDTHGROUPTYPE_IID { \
3683     0x1d92b67d, 0xdc69, 0x4be9, \
3684     { 0xad, 0x4c, 0x93, 0xa0, 0x1e, 0x1e, 0x0c, 0x8e } \
3685 }
3686 typedef enum BandwidthGroupType
3687 {
3688     BandwidthGroupType_Null = 0,
3689     BandwidthGroupType_Disk = 1,
3690     BandwidthGroupType_Network = 2
3691 } BandwidthGroupType;
3692 /* End of enum BandwidthGroupType declaration */
3693 #   define BandwidthGroupType_T PRUint32
3694 
3695 
3696 /* Start of enum VBoxEventType declaration */
3697 #   define VBOXEVENTTYPE_IID_STR "822087CA-4703-49E4-B20D-C6D794E67969"
3698 #   define VBOXEVENTTYPE_IID { \
3699     0x822087CA, 0x4703, 0x49E4, \
3700     { 0xB2, 0x0D, 0xC6, 0xD7, 0x94, 0xE6, 0x79, 0x69 } \
3701 }
3702 typedef enum VBoxEventType
3703 {
3704     VBoxEventType_Invalid = 0,
3705     VBoxEventType_Any = 1,
3706     VBoxEventType_Vetoable = 2,
3707     VBoxEventType_MachineEvent = 3,
3708     VBoxEventType_SnapshotEvent = 4,
3709     VBoxEventType_InputEvent = 5,
3710     VBoxEventType_LastWildcard = 31,
3711     VBoxEventType_OnMachineStateChanged = 32,
3712     VBoxEventType_OnMachineDataChanged = 33,
3713     VBoxEventType_OnExtraDataChanged = 34,
3714     VBoxEventType_OnExtraDataCanChange = 35,
3715     VBoxEventType_OnMediumRegistered = 36,
3716     VBoxEventType_OnMachineRegistered = 37,
3717     VBoxEventType_OnSessionStateChanged = 38,
3718     VBoxEventType_OnSnapshotTaken = 39,
3719     VBoxEventType_OnSnapshotDeleted = 40,
3720     VBoxEventType_OnSnapshotChanged = 41,
3721     VBoxEventType_OnGuestPropertyChanged = 42,
3722     VBoxEventType_OnMousePointerShapeChanged = 43,
3723     VBoxEventType_OnMouseCapabilityChanged = 44,
3724     VBoxEventType_OnKeyboardLedsChanged = 45,
3725     VBoxEventType_OnStateChanged = 46,
3726     VBoxEventType_OnAdditionsStateChanged = 47,
3727     VBoxEventType_OnNetworkAdapterChanged = 48,
3728     VBoxEventType_OnSerialPortChanged = 49,
3729     VBoxEventType_OnParallelPortChanged = 50,
3730     VBoxEventType_OnStorageControllerChanged = 51,
3731     VBoxEventType_OnMediumChanged = 52,
3732     VBoxEventType_OnVRDEServerChanged = 53,
3733     VBoxEventType_OnUSBControllerChanged = 54,
3734     VBoxEventType_OnUSBDeviceStateChanged = 55,
3735     VBoxEventType_OnSharedFolderChanged = 56,
3736     VBoxEventType_OnRuntimeError = 57,
3737     VBoxEventType_OnCanShowWindow = 58,
3738     VBoxEventType_OnShowWindow = 59,
3739     VBoxEventType_OnCPUChanged = 60,
3740     VBoxEventType_OnVRDEServerInfoChanged = 61,
3741     VBoxEventType_OnEventSourceChanged = 62,
3742     VBoxEventType_OnCPUExecutionCapChanged = 63,
3743     VBoxEventType_OnGuestKeyboard = 64,
3744     VBoxEventType_OnGuestMouse = 65,
3745     VBoxEventType_OnNATRedirect = 66,
3746     VBoxEventType_OnHostPCIDevicePlug = 67,
3747     VBoxEventType_OnVBoxSVCAvailabilityChanged = 68,
3748     VBoxEventType_OnBandwidthGroupChanged = 69,
3749     VBoxEventType_OnGuestMonitorChanged = 70,
3750     VBoxEventType_OnStorageDeviceChanged = 71,
3751     VBoxEventType_OnClipboardModeChanged = 72,
3752     VBoxEventType_OnDnDModeChanged = 73,
3753     VBoxEventType_OnNATNetworkChanged = 74,
3754     VBoxEventType_OnNATNetworkStartStop = 75,
3755     VBoxEventType_OnNATNetworkAlter = 76,
3756     VBoxEventType_OnNATNetworkCreationDeletion = 77,
3757     VBoxEventType_OnNATNetworkSetting = 78,
3758     VBoxEventType_OnNATNetworkPortForward = 79,
3759     VBoxEventType_OnGuestSessionStateChanged = 80,
3760     VBoxEventType_OnGuestSessionRegistered = 81,
3761     VBoxEventType_OnGuestProcessRegistered = 82,
3762     VBoxEventType_OnGuestProcessStateChanged = 83,
3763     VBoxEventType_OnGuestProcessInputNotify = 84,
3764     VBoxEventType_OnGuestProcessOutput = 85,
3765     VBoxEventType_OnGuestFileRegistered = 86,
3766     VBoxEventType_OnGuestFileStateChanged = 87,
3767     VBoxEventType_OnGuestFileOffsetChanged = 88,
3768     VBoxEventType_OnGuestFileRead = 89,
3769     VBoxEventType_OnGuestFileWrite = 90,
3770     VBoxEventType_OnRecordingChanged = 91,
3771     VBoxEventType_OnGuestUserStateChanged = 92,
3772     VBoxEventType_OnGuestMultiTouch = 93,
3773     VBoxEventType_OnHostNameResolutionConfigurationChange = 94,
3774     VBoxEventType_OnSnapshotRestored = 95,
3775     VBoxEventType_OnMediumConfigChanged = 96,
3776     VBoxEventType_OnAudioAdapterChanged = 97,
3777     VBoxEventType_OnProgressPercentageChanged = 98,
3778     VBoxEventType_OnProgressTaskCompleted = 99,
3779     VBoxEventType_OnCursorPositionChanged = 100,
3780     VBoxEventType_OnGuestAdditionsStatusChanged = 101,
3781     VBoxEventType_OnGuestFileSizeChanged = 102,
3782     VBoxEventType_Last = 103
3783 } VBoxEventType;
3784 /* End of enum VBoxEventType declaration */
3785 #   define VBoxEventType_T PRUint32
3786 
3787 
3788 /* Start of enum GuestMouseEventMode declaration */
3789 #   define GUESTMOUSEEVENTMODE_IID_STR "4b500146-ebba-4b7c-bc29-69c2d57a5caf"
3790 #   define GUESTMOUSEEVENTMODE_IID { \
3791     0x4b500146, 0xebba, 0x4b7c, \
3792     { 0xbc, 0x29, 0x69, 0xc2, 0xd5, 0x7a, 0x5c, 0xaf } \
3793 }
3794 typedef enum GuestMouseEventMode
3795 {
3796     GuestMouseEventMode_Relative = 0,
3797     GuestMouseEventMode_Absolute = 1
3798 } GuestMouseEventMode;
3799 /* End of enum GuestMouseEventMode declaration */
3800 #   define GuestMouseEventMode_T PRUint32
3801 
3802 
3803 /* Start of enum GuestMonitorChangedEventType declaration */
3804 #   define GUESTMONITORCHANGEDEVENTTYPE_IID_STR "ef172985-7e36-4297-95be-e46396968d66"
3805 #   define GUESTMONITORCHANGEDEVENTTYPE_IID { \
3806     0xef172985, 0x7e36, 0x4297, \
3807     { 0x95, 0xbe, 0xe4, 0x63, 0x96, 0x96, 0x8d, 0x66 } \
3808 }
3809 typedef enum GuestMonitorChangedEventType
3810 {
3811     GuestMonitorChangedEventType_Enabled = 0,
3812     GuestMonitorChangedEventType_Disabled = 1,
3813     GuestMonitorChangedEventType_NewOrigin = 2
3814 } GuestMonitorChangedEventType;
3815 /* End of enum GuestMonitorChangedEventType declaration */
3816 #   define GuestMonitorChangedEventType_T PRUint32
3817 
3818 
3819 /* Start of struct IVirtualBoxErrorInfo declaration */
3820 #   define IVIRTUALBOXERRORINFO_IID_STR "c1bcc6d5-7966-481d-ab0b-d0ed73e28135"
3821 #   define IVIRTUALBOXERRORINFO_IID { \
3822     0xc1bcc6d5, 0x7966, 0x481d, \
3823     { 0xab, 0x0b, 0xd0, 0xed, 0x73, 0xe2, 0x81, 0x35 } \
3824 }
3825 /* COM compatibility */
3826 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBoxErrorInfo);
3827 #   ifndef VBOX_WITH_GLUE
3828 struct IVirtualBoxErrorInfo_vtbl
3829 {
3830     struct nsIException_vtbl nsiexception;
3831 
3832     nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
3833 
3834     nsresult (*GetResultDetail)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultDetail);
3835 
3836     nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
3837 
3838     nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
3839 
3840     nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
3841 
3842     nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
3843 
3844 };
3845 #   else /* VBOX_WITH_GLUE */
3846 struct IVirtualBoxErrorInfoVtbl
3847 {
3848     nsresult (*QueryInterface)(IVirtualBoxErrorInfo *pThis, const nsID *iid, void **resultp);
3849     nsrefcnt (*AddRef)(IVirtualBoxErrorInfo *pThis);
3850     nsrefcnt (*Release)(IVirtualBoxErrorInfo *pThis);
3851     nsresult (*GetMessage)(IVirtualBoxErrorInfo *pThis, PRUnichar * *aMessage);
3852     nsresult (*GetResult)(IVirtualBoxErrorInfo *pThis, nsresult *aResult);
3853     nsresult (*GetName)(IVirtualBoxErrorInfo*pThis, PRUnichar * *aName);
3854     nsresult (*GetFilename)(IVirtualBoxErrorInfo *pThis, PRUnichar * *aFilename);
3855     nsresult (*GetLineNumber)(IVirtualBoxErrorInfo *pThis, PRUint32 *aLineNumber);
3856     nsresult (*GetColumnNumber)(IVirtualBoxErrorInfo *pThis, PRUint32 *aColumnNumber);
3857     nsresult (*GetLocation)(IVirtualBoxErrorInfo *pThis, nsIStackFrame * *aLocation);
3858     nsresult (*GetInner)(IVirtualBoxErrorInfo *pThis, nsIException * *aInner);
3859     nsresult (*GetData)(IVirtualBoxErrorInfo *pThis, nsISupports * *aData);
3860     nsresult (*ToString)(IVirtualBoxErrorInfo *pThis, PRUnichar **_retval);
3861     nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
3862 
3863     nsresult (*GetResultDetail)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultDetail);
3864 
3865     nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
3866 
3867     nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
3868 
3869     nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
3870 
3871     nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
3872 
3873 };
3874 #    define IVirtualBoxErrorInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
3875 #    define IVirtualBoxErrorInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
3876 #    define IVirtualBoxErrorInfo_Release(p) ((p)->lpVtbl->Release(p))
3877 #    define IVirtualBoxErrorInfo_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
3878 #    define IVirtualBoxErrorInfo_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
3879 #    define IVirtualBoxErrorInfo_get_Result(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
3880 #    define IVirtualBoxErrorInfo_GetResult(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
3881 #    define IVirtualBoxErrorInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
3882 #    define IVirtualBoxErrorInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
3883 #    define IVirtualBoxErrorInfo_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
3884 #    define IVirtualBoxErrorInfo_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
3885 #    define IVirtualBoxErrorInfo_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
3886 #    define IVirtualBoxErrorInfo_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
3887 #    define IVirtualBoxErrorInfo_get_ColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
3888 #    define IVirtualBoxErrorInfo_GetColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
3889 #    define IVirtualBoxErrorInfo_get_Location(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
3890 #    define IVirtualBoxErrorInfo_GetLocation(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
3891 #    define IVirtualBoxErrorInfo_get_Inner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
3892 #    define IVirtualBoxErrorInfo_GetInner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
3893 #    define IVirtualBoxErrorInfo_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
3894 #    define IVirtualBoxErrorInfo_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
3895 #    define IVirtualBoxErrorInfo_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
3896 #    define IVirtualBoxErrorInfo_get_ResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
3897 #    define IVirtualBoxErrorInfo_GetResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
3898 #    define IVirtualBoxErrorInfo_get_ResultDetail(p, aResultDetail) ((p)->lpVtbl->GetResultDetail(p, aResultDetail))
3899 #    define IVirtualBoxErrorInfo_GetResultDetail(p, aResultDetail) ((p)->lpVtbl->GetResultDetail(p, aResultDetail))
3900 #    define IVirtualBoxErrorInfo_get_InterfaceID(p, aInterfaceID) ((p)->lpVtbl->GetInterfaceID(p, aInterfaceID))
3901 #    define IVirtualBoxErrorInfo_GetInterfaceID(p, aInterfaceID) ((p)->lpVtbl->GetInterfaceID(p, aInterfaceID))
3902 #    define IVirtualBoxErrorInfo_get_Component(p, aComponent) ((p)->lpVtbl->GetComponent(p, aComponent))
3903 #    define IVirtualBoxErrorInfo_GetComponent(p, aComponent) ((p)->lpVtbl->GetComponent(p, aComponent))
3904 #    define IVirtualBoxErrorInfo_get_Text(p, aText) ((p)->lpVtbl->GetText(p, aText))
3905 #    define IVirtualBoxErrorInfo_GetText(p, aText) ((p)->lpVtbl->GetText(p, aText))
3906 #    define IVirtualBoxErrorInfo_get_Next(p, aNext) ((p)->lpVtbl->GetNext(p, aNext))
3907 #    define IVirtualBoxErrorInfo_GetNext(p, aNext) ((p)->lpVtbl->GetNext(p, aNext))
3908 #   endif /* VBOX_WITH_GLUE */
3909 
3910 interface IVirtualBoxErrorInfo
3911 {
3912 #   ifndef VBOX_WITH_GLUE
3913     struct IVirtualBoxErrorInfo_vtbl *vtbl;
3914 #   else /* VBOX_WITH_GLUE */
3915     CONST_VTBL struct IVirtualBoxErrorInfoVtbl *lpVtbl;
3916 #   endif /* VBOX_WITH_GLUE */
3917 };
3918 /* End of struct IVirtualBoxErrorInfo declaration */
3919 
3920 
3921 /* Start of struct INATNetwork declaration */
3922 #   define INATNETWORK_IID_STR "4bbc405d-f268-4483-9a52-f43ffdbf67f8"
3923 #   define INATNETWORK_IID { \
3924     0x4bbc405d, 0xf268, 0x4483, \
3925     { 0x9a, 0x52, 0xf4, 0x3f, 0xfd, 0xbf, 0x67, 0xf8 } \
3926 }
3927 /* COM compatibility */
3928 VBOX_EXTERN_CONST(nsIID, IID_INATNetwork);
3929 #   ifndef VBOX_WITH_GLUE
3930 struct INATNetwork_vtbl
3931 {
3932     struct nsISupports_vtbl nsisupports;
3933 
3934     nsresult (*GetNetworkName)(INATNetwork *pThis, PRUnichar * *networkName);
3935     nsresult (*SetNetworkName)(INATNetwork *pThis, PRUnichar * networkName);
3936 
3937     nsresult (*GetEnabled)(INATNetwork *pThis, PRBool *enabled);
3938     nsresult (*SetEnabled)(INATNetwork *pThis, PRBool enabled);
3939 
3940     nsresult (*GetNetwork)(INATNetwork *pThis, PRUnichar * *network);
3941     nsresult (*SetNetwork)(INATNetwork *pThis, PRUnichar * network);
3942 
3943     nsresult (*GetGateway)(INATNetwork *pThis, PRUnichar * *gateway);
3944 
3945     nsresult (*GetIPv6Enabled)(INATNetwork *pThis, PRBool *IPv6Enabled);
3946     nsresult (*SetIPv6Enabled)(INATNetwork *pThis, PRBool IPv6Enabled);
3947 
3948     nsresult (*GetIPv6Prefix)(INATNetwork *pThis, PRUnichar * *IPv6Prefix);
3949     nsresult (*SetIPv6Prefix)(INATNetwork *pThis, PRUnichar * IPv6Prefix);
3950 
3951     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
3952     nsresult (*SetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool advertiseDefaultIPv6RouteEnabled);
3953 
3954     nsresult (*GetNeedDhcpServer)(INATNetwork *pThis, PRBool *needDhcpServer);
3955     nsresult (*SetNeedDhcpServer)(INATNetwork *pThis, PRBool needDhcpServer);
3956 
3957     nsresult (*GetEventSource)(INATNetwork *pThis, IEventSource * *eventSource);
3958 
3959     nsresult (*GetPortForwardRules4)(INATNetwork *pThis, PRUint32 *portForwardRules4Size, PRUnichar * **portForwardRules4);
3960 
3961     nsresult (*GetLocalMappings)(INATNetwork *pThis, PRUint32 *localMappingsSize, PRUnichar * **localMappings);
3962 
3963     nsresult (*GetLoopbackIp6)(INATNetwork *pThis, PRInt32 *loopbackIp6);
3964     nsresult (*SetLoopbackIp6)(INATNetwork *pThis, PRInt32 loopbackIp6);
3965 
3966     nsresult (*GetPortForwardRules6)(INATNetwork *pThis, PRUint32 *portForwardRules6Size, PRUnichar * **portForwardRules6);
3967 
3968     nsresult (*GetInternalAndReservedAttribute1INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3969 
3970     nsresult (*GetInternalAndReservedAttribute2INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3971 
3972     nsresult (*GetInternalAndReservedAttribute3INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3973 
3974     nsresult (*GetInternalAndReservedAttribute4INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3975 
3976     nsresult (*GetInternalAndReservedAttribute5INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3977 
3978     nsresult (*GetInternalAndReservedAttribute6INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3979 
3980     nsresult (*GetInternalAndReservedAttribute7INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3981 
3982     nsresult (*GetInternalAndReservedAttribute8INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3983 
3984     nsresult (*AddLocalMapping)(
3985         INATNetwork *pThis,
3986         PRUnichar * hostid,
3987         PRInt32 offset
3988     );
3989 
3990     nsresult (*AddPortForwardRule)(
3991         INATNetwork *pThis,
3992         PRBool isIpv6,
3993         PRUnichar * ruleName,
3994         PRUint32 proto,
3995         PRUnichar * hostIP,
3996         PRUint16 hostPort,
3997         PRUnichar * guestIP,
3998         PRUint16 guestPort
3999     );
4000 
4001     nsresult (*RemovePortForwardRule)(
4002         INATNetwork *pThis,
4003         PRBool iSipv6,
4004         PRUnichar * ruleName
4005     );
4006 
4007     nsresult (*Start)(
4008         INATNetwork *pThis,
4009         PRUnichar * trunkType
4010     );
4011 
4012     nsresult (*Stop)(INATNetwork *pThis );
4013 
4014     nsresult (*InternalAndReservedMethod1INATNetwork)(INATNetwork *pThis);
4015 
4016     nsresult (*InternalAndReservedMethod2INATNetwork)(INATNetwork *pThis);
4017 
4018 };
4019 #   else /* VBOX_WITH_GLUE */
4020 struct INATNetworkVtbl
4021 {
4022     nsresult (*QueryInterface)(INATNetwork *pThis, const nsID *iid, void **resultp);
4023     nsrefcnt (*AddRef)(INATNetwork *pThis);
4024     nsrefcnt (*Release)(INATNetwork *pThis);
4025     nsresult (*GetNetworkName)(INATNetwork *pThis, PRUnichar * *networkName);
4026     nsresult (*SetNetworkName)(INATNetwork *pThis, PRUnichar * networkName);
4027 
4028     nsresult (*GetEnabled)(INATNetwork *pThis, PRBool *enabled);
4029     nsresult (*SetEnabled)(INATNetwork *pThis, PRBool enabled);
4030 
4031     nsresult (*GetNetwork)(INATNetwork *pThis, PRUnichar * *network);
4032     nsresult (*SetNetwork)(INATNetwork *pThis, PRUnichar * network);
4033 
4034     nsresult (*GetGateway)(INATNetwork *pThis, PRUnichar * *gateway);
4035 
4036     nsresult (*GetIPv6Enabled)(INATNetwork *pThis, PRBool *IPv6Enabled);
4037     nsresult (*SetIPv6Enabled)(INATNetwork *pThis, PRBool IPv6Enabled);
4038 
4039     nsresult (*GetIPv6Prefix)(INATNetwork *pThis, PRUnichar * *IPv6Prefix);
4040     nsresult (*SetIPv6Prefix)(INATNetwork *pThis, PRUnichar * IPv6Prefix);
4041 
4042     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
4043     nsresult (*SetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool advertiseDefaultIPv6RouteEnabled);
4044 
4045     nsresult (*GetNeedDhcpServer)(INATNetwork *pThis, PRBool *needDhcpServer);
4046     nsresult (*SetNeedDhcpServer)(INATNetwork *pThis, PRBool needDhcpServer);
4047 
4048     nsresult (*GetEventSource)(INATNetwork *pThis, IEventSource * *eventSource);
4049 
4050     nsresult (*GetPortForwardRules4)(INATNetwork *pThis, PRUint32 *portForwardRules4Size, PRUnichar * **portForwardRules4);
4051 
4052     nsresult (*GetLocalMappings)(INATNetwork *pThis, PRUint32 *localMappingsSize, PRUnichar * **localMappings);
4053 
4054     nsresult (*GetLoopbackIp6)(INATNetwork *pThis, PRInt32 *loopbackIp6);
4055     nsresult (*SetLoopbackIp6)(INATNetwork *pThis, PRInt32 loopbackIp6);
4056 
4057     nsresult (*GetPortForwardRules6)(INATNetwork *pThis, PRUint32 *portForwardRules6Size, PRUnichar * **portForwardRules6);
4058 
4059     nsresult (*GetInternalAndReservedAttribute1INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4060 
4061     nsresult (*GetInternalAndReservedAttribute2INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4062 
4063     nsresult (*GetInternalAndReservedAttribute3INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4064 
4065     nsresult (*GetInternalAndReservedAttribute4INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4066 
4067     nsresult (*GetInternalAndReservedAttribute5INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4068 
4069     nsresult (*GetInternalAndReservedAttribute6INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4070 
4071     nsresult (*GetInternalAndReservedAttribute7INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4072 
4073     nsresult (*GetInternalAndReservedAttribute8INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4074 
4075     nsresult (*AddLocalMapping)(
4076         INATNetwork *pThis,
4077         PRUnichar * hostid,
4078         PRInt32 offset
4079     );
4080 
4081     nsresult (*AddPortForwardRule)(
4082         INATNetwork *pThis,
4083         PRBool isIpv6,
4084         PRUnichar * ruleName,
4085         PRUint32 proto,
4086         PRUnichar * hostIP,
4087         PRUint16 hostPort,
4088         PRUnichar * guestIP,
4089         PRUint16 guestPort
4090     );
4091 
4092     nsresult (*RemovePortForwardRule)(
4093         INATNetwork *pThis,
4094         PRBool iSipv6,
4095         PRUnichar * ruleName
4096     );
4097 
4098     nsresult (*Start)(
4099         INATNetwork *pThis,
4100         PRUnichar * trunkType
4101     );
4102 
4103     nsresult (*Stop)(INATNetwork *pThis );
4104 
4105     nsresult (*InternalAndReservedMethod1INATNetwork)(INATNetwork *pThis);
4106 
4107     nsresult (*InternalAndReservedMethod2INATNetwork)(INATNetwork *pThis);
4108 
4109 };
4110 #    define INATNetwork_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4111 #    define INATNetwork_AddRef(p) ((p)->lpVtbl->AddRef(p))
4112 #    define INATNetwork_Release(p) ((p)->lpVtbl->Release(p))
4113 #    define INATNetwork_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4114 #    define INATNetwork_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4115 #    define INATNetwork_put_NetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
4116 #    define INATNetwork_SetNetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
4117 #    define INATNetwork_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4118 #    define INATNetwork_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4119 #    define INATNetwork_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4120 #    define INATNetwork_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4121 #    define INATNetwork_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
4122 #    define INATNetwork_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
4123 #    define INATNetwork_put_Network(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
4124 #    define INATNetwork_SetNetwork(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
4125 #    define INATNetwork_get_Gateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
4126 #    define INATNetwork_GetGateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
4127 #    define INATNetwork_get_IPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->GetIPv6Enabled(p, aIPv6Enabled))
4128 #    define INATNetwork_GetIPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->GetIPv6Enabled(p, aIPv6Enabled))
4129 #    define INATNetwork_put_IPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->SetIPv6Enabled(p, aIPv6Enabled))
4130 #    define INATNetwork_SetIPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->SetIPv6Enabled(p, aIPv6Enabled))
4131 #    define INATNetwork_get_IPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->GetIPv6Prefix(p, aIPv6Prefix))
4132 #    define INATNetwork_GetIPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->GetIPv6Prefix(p, aIPv6Prefix))
4133 #    define INATNetwork_put_IPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->SetIPv6Prefix(p, aIPv6Prefix))
4134 #    define INATNetwork_SetIPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->SetIPv6Prefix(p, aIPv6Prefix))
4135 #    define INATNetwork_get_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4136 #    define INATNetwork_GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4137 #    define INATNetwork_put_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4138 #    define INATNetwork_SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4139 #    define INATNetwork_get_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
4140 #    define INATNetwork_GetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
4141 #    define INATNetwork_put_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->SetNeedDhcpServer(p, aNeedDhcpServer))
4142 #    define INATNetwork_SetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->SetNeedDhcpServer(p, aNeedDhcpServer))
4143 #    define INATNetwork_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4144 #    define INATNetwork_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4145 #    define INATNetwork_get_PortForwardRules4(p, aPortForwardRules4) ((p)->lpVtbl->GetPortForwardRules4(p, aPortForwardRules4))
4146 #    define INATNetwork_GetPortForwardRules4(p, aPortForwardRules4) ((p)->lpVtbl->GetPortForwardRules4(p, aPortForwardRules4))
4147 #    define INATNetwork_get_LocalMappings(p, aLocalMappings) ((p)->lpVtbl->GetLocalMappings(p, aLocalMappings))
4148 #    define INATNetwork_GetLocalMappings(p, aLocalMappings) ((p)->lpVtbl->GetLocalMappings(p, aLocalMappings))
4149 #    define INATNetwork_get_LoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->GetLoopbackIp6(p, aLoopbackIp6))
4150 #    define INATNetwork_GetLoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->GetLoopbackIp6(p, aLoopbackIp6))
4151 #    define INATNetwork_put_LoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->SetLoopbackIp6(p, aLoopbackIp6))
4152 #    define INATNetwork_SetLoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->SetLoopbackIp6(p, aLoopbackIp6))
4153 #    define INATNetwork_get_PortForwardRules6(p, aPortForwardRules6) ((p)->lpVtbl->GetPortForwardRules6(p, aPortForwardRules6))
4154 #    define INATNetwork_GetPortForwardRules6(p, aPortForwardRules6) ((p)->lpVtbl->GetPortForwardRules6(p, aPortForwardRules6))
4155 #    define INATNetwork_AddLocalMapping(p, aHostid, aOffset) ((p)->lpVtbl->AddLocalMapping(p, aHostid, aOffset))
4156 #    define INATNetwork_AddPortForwardRule(p, aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort) ((p)->lpVtbl->AddPortForwardRule(p, aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort))
4157 #    define INATNetwork_RemovePortForwardRule(p, aISipv6, aRuleName) ((p)->lpVtbl->RemovePortForwardRule(p, aISipv6, aRuleName))
4158 #    define INATNetwork_Start(p, aTrunkType) ((p)->lpVtbl->Start(p, aTrunkType))
4159 #    define INATNetwork_Stop(p) ((p)->lpVtbl->Stop(p))
4160 #   endif /* VBOX_WITH_GLUE */
4161 
4162 interface INATNetwork
4163 {
4164 #   ifndef VBOX_WITH_GLUE
4165     struct INATNetwork_vtbl *vtbl;
4166 #   else /* VBOX_WITH_GLUE */
4167     CONST_VTBL struct INATNetworkVtbl *lpVtbl;
4168 #   endif /* VBOX_WITH_GLUE */
4169 };
4170 /* End of struct INATNetwork declaration */
4171 
4172 
4173 /* Start of struct IDHCPServer declaration */
4174 #   define IDHCPSERVER_IID_STR "ea2d467f-b6c2-4b9a-8eb5-6e2f275dd72e"
4175 #   define IDHCPSERVER_IID { \
4176     0xea2d467f, 0xb6c2, 0x4b9a, \
4177     { 0x8e, 0xb5, 0x6e, 0x2f, 0x27, 0x5d, 0xd7, 0x2e } \
4178 }
4179 /* COM compatibility */
4180 VBOX_EXTERN_CONST(nsIID, IID_IDHCPServer);
4181 #   ifndef VBOX_WITH_GLUE
4182 struct IDHCPServer_vtbl
4183 {
4184     struct nsISupports_vtbl nsisupports;
4185 
4186     nsresult (*GetEventSource)(IDHCPServer *pThis, IEventSource * *eventSource);
4187 
4188     nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
4189     nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
4190 
4191     nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
4192 
4193     nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
4194 
4195     nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
4196 
4197     nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
4198 
4199     nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
4200 
4201     nsresult (*GetGlobalOptions)(IDHCPServer *pThis, PRUint32 *globalOptionsSize, PRUnichar * **globalOptions);
4202 
4203     nsresult (*GetVmConfigs)(IDHCPServer *pThis, PRUint32 *vmConfigsSize, PRUnichar * **vmConfigs);
4204 
4205     nsresult (*GetInternalAndReservedAttribute1IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4206 
4207     nsresult (*GetInternalAndReservedAttribute2IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4208 
4209     nsresult (*GetInternalAndReservedAttribute3IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4210 
4211     nsresult (*GetInternalAndReservedAttribute4IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4212 
4213     nsresult (*GetInternalAndReservedAttribute5IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4214 
4215     nsresult (*GetInternalAndReservedAttribute6IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4216 
4217     nsresult (*AddGlobalOption)(
4218         IDHCPServer *pThis,
4219         PRUint32 option,
4220         PRUnichar * value
4221     );
4222 
4223     nsresult (*RemoveGlobalOption)(
4224         IDHCPServer *pThis,
4225         PRUint32 option
4226     );
4227 
4228     nsresult (*RemoveGlobalOptions)(IDHCPServer *pThis );
4229 
4230     nsresult (*AddVmSlotOption)(
4231         IDHCPServer *pThis,
4232         PRUnichar * vmname,
4233         PRInt32 slot,
4234         PRUint32 option,
4235         PRUnichar * value
4236     );
4237 
4238     nsresult (*RemoveVmSlotOption)(
4239         IDHCPServer *pThis,
4240         PRUnichar * vmname,
4241         PRInt32 slot,
4242         PRUint32 option
4243     );
4244 
4245     nsresult (*RemoveVmSlotOptions)(
4246         IDHCPServer *pThis,
4247         PRUnichar * vmname,
4248         PRInt32 slot
4249     );
4250 
4251     nsresult (*GetVmSlotOptions)(
4252         IDHCPServer *pThis,
4253         PRUnichar * vmname,
4254         PRInt32 slot,
4255         PRUint32 *optionSize,
4256         PRUnichar *** option
4257     );
4258 
4259     nsresult (*GetMacOptions)(
4260         IDHCPServer *pThis,
4261         PRUnichar * mac,
4262         PRUint32 *optionSize,
4263         PRUnichar *** option
4264     );
4265 
4266     nsresult (*SetConfiguration)(
4267         IDHCPServer *pThis,
4268         PRUnichar * IPAddress,
4269         PRUnichar * networkMask,
4270         PRUnichar * FromIPAddress,
4271         PRUnichar * ToIPAddress
4272     );
4273 
4274     nsresult (*Start)(
4275         IDHCPServer *pThis,
4276         PRUnichar * networkName,
4277         PRUnichar * trunkName,
4278         PRUnichar * trunkType
4279     );
4280 
4281     nsresult (*Stop)(IDHCPServer *pThis );
4282 
4283     nsresult (*Restart)(IDHCPServer *pThis );
4284 
4285     nsresult (*InternalAndReservedMethod1IDHCPServer)(IDHCPServer *pThis);
4286 
4287     nsresult (*InternalAndReservedMethod2IDHCPServer)(IDHCPServer *pThis);
4288 
4289 };
4290 #   else /* VBOX_WITH_GLUE */
4291 struct IDHCPServerVtbl
4292 {
4293     nsresult (*QueryInterface)(IDHCPServer *pThis, const nsID *iid, void **resultp);
4294     nsrefcnt (*AddRef)(IDHCPServer *pThis);
4295     nsrefcnt (*Release)(IDHCPServer *pThis);
4296     nsresult (*GetEventSource)(IDHCPServer *pThis, IEventSource * *eventSource);
4297 
4298     nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
4299     nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
4300 
4301     nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
4302 
4303     nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
4304 
4305     nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
4306 
4307     nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
4308 
4309     nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
4310 
4311     nsresult (*GetGlobalOptions)(IDHCPServer *pThis, PRUint32 *globalOptionsSize, PRUnichar * **globalOptions);
4312 
4313     nsresult (*GetVmConfigs)(IDHCPServer *pThis, PRUint32 *vmConfigsSize, PRUnichar * **vmConfigs);
4314 
4315     nsresult (*GetInternalAndReservedAttribute1IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4316 
4317     nsresult (*GetInternalAndReservedAttribute2IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4318 
4319     nsresult (*GetInternalAndReservedAttribute3IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4320 
4321     nsresult (*GetInternalAndReservedAttribute4IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4322 
4323     nsresult (*GetInternalAndReservedAttribute5IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4324 
4325     nsresult (*GetInternalAndReservedAttribute6IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4326 
4327     nsresult (*AddGlobalOption)(
4328         IDHCPServer *pThis,
4329         PRUint32 option,
4330         PRUnichar * value
4331     );
4332 
4333     nsresult (*RemoveGlobalOption)(
4334         IDHCPServer *pThis,
4335         PRUint32 option
4336     );
4337 
4338     nsresult (*RemoveGlobalOptions)(IDHCPServer *pThis );
4339 
4340     nsresult (*AddVmSlotOption)(
4341         IDHCPServer *pThis,
4342         PRUnichar * vmname,
4343         PRInt32 slot,
4344         PRUint32 option,
4345         PRUnichar * value
4346     );
4347 
4348     nsresult (*RemoveVmSlotOption)(
4349         IDHCPServer *pThis,
4350         PRUnichar * vmname,
4351         PRInt32 slot,
4352         PRUint32 option
4353     );
4354 
4355     nsresult (*RemoveVmSlotOptions)(
4356         IDHCPServer *pThis,
4357         PRUnichar * vmname,
4358         PRInt32 slot
4359     );
4360 
4361     nsresult (*GetVmSlotOptions)(
4362         IDHCPServer *pThis,
4363         PRUnichar * vmname,
4364         PRInt32 slot,
4365         PRUint32 *optionSize,
4366         PRUnichar *** option
4367     );
4368 
4369     nsresult (*GetMacOptions)(
4370         IDHCPServer *pThis,
4371         PRUnichar * mac,
4372         PRUint32 *optionSize,
4373         PRUnichar *** option
4374     );
4375 
4376     nsresult (*SetConfiguration)(
4377         IDHCPServer *pThis,
4378         PRUnichar * IPAddress,
4379         PRUnichar * networkMask,
4380         PRUnichar * FromIPAddress,
4381         PRUnichar * ToIPAddress
4382     );
4383 
4384     nsresult (*Start)(
4385         IDHCPServer *pThis,
4386         PRUnichar * networkName,
4387         PRUnichar * trunkName,
4388         PRUnichar * trunkType
4389     );
4390 
4391     nsresult (*Stop)(IDHCPServer *pThis );
4392 
4393     nsresult (*Restart)(IDHCPServer *pThis );
4394 
4395     nsresult (*InternalAndReservedMethod1IDHCPServer)(IDHCPServer *pThis);
4396 
4397     nsresult (*InternalAndReservedMethod2IDHCPServer)(IDHCPServer *pThis);
4398 
4399 };
4400 #    define IDHCPServer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4401 #    define IDHCPServer_AddRef(p) ((p)->lpVtbl->AddRef(p))
4402 #    define IDHCPServer_Release(p) ((p)->lpVtbl->Release(p))
4403 #    define IDHCPServer_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4404 #    define IDHCPServer_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4405 #    define IDHCPServer_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4406 #    define IDHCPServer_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4407 #    define IDHCPServer_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4408 #    define IDHCPServer_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4409 #    define IDHCPServer_get_IPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
4410 #    define IDHCPServer_GetIPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
4411 #    define IDHCPServer_get_NetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
4412 #    define IDHCPServer_GetNetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
4413 #    define IDHCPServer_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4414 #    define IDHCPServer_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4415 #    define IDHCPServer_get_LowerIP(p, aLowerIP) ((p)->lpVtbl->GetLowerIP(p, aLowerIP))
4416 #    define IDHCPServer_GetLowerIP(p, aLowerIP) ((p)->lpVtbl->GetLowerIP(p, aLowerIP))
4417 #    define IDHCPServer_get_UpperIP(p, aUpperIP) ((p)->lpVtbl->GetUpperIP(p, aUpperIP))
4418 #    define IDHCPServer_GetUpperIP(p, aUpperIP) ((p)->lpVtbl->GetUpperIP(p, aUpperIP))
4419 #    define IDHCPServer_get_GlobalOptions(p, aGlobalOptions) ((p)->lpVtbl->GetGlobalOptions(p, aGlobalOptions))
4420 #    define IDHCPServer_GetGlobalOptions(p, aGlobalOptions) ((p)->lpVtbl->GetGlobalOptions(p, aGlobalOptions))
4421 #    define IDHCPServer_get_VmConfigs(p, aVmConfigs) ((p)->lpVtbl->GetVmConfigs(p, aVmConfigs))
4422 #    define IDHCPServer_GetVmConfigs(p, aVmConfigs) ((p)->lpVtbl->GetVmConfigs(p, aVmConfigs))
4423 #    define IDHCPServer_AddGlobalOption(p, aOption, aValue) ((p)->lpVtbl->AddGlobalOption(p, aOption, aValue))
4424 #    define IDHCPServer_RemoveGlobalOption(p, aOption) ((p)->lpVtbl->RemoveGlobalOption(p, aOption))
4425 #    define IDHCPServer_RemoveGlobalOptions(p) ((p)->lpVtbl->RemoveGlobalOptions(p))
4426 #    define IDHCPServer_AddVmSlotOption(p, aVmname, aSlot, aOption, aValue) ((p)->lpVtbl->AddVmSlotOption(p, aVmname, aSlot, aOption, aValue))
4427 #    define IDHCPServer_RemoveVmSlotOption(p, aVmname, aSlot, aOption) ((p)->lpVtbl->RemoveVmSlotOption(p, aVmname, aSlot, aOption))
4428 #    define IDHCPServer_RemoveVmSlotOptions(p, aVmname, aSlot) ((p)->lpVtbl->RemoveVmSlotOptions(p, aVmname, aSlot))
4429 #    define IDHCPServer_GetVmSlotOptions(p, aVmname, aSlot, aOption) ((p)->lpVtbl->GetVmSlotOptions(p, aVmname, aSlot, aOption))
4430 #    define IDHCPServer_GetMacOptions(p, aMac, aOption) ((p)->lpVtbl->GetMacOptions(p, aMac, aOption))
4431 #    define IDHCPServer_SetConfiguration(p, aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress) ((p)->lpVtbl->SetConfiguration(p, aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress))
4432 #    define IDHCPServer_Start(p, aNetworkName, aTrunkName, aTrunkType) ((p)->lpVtbl->Start(p, aNetworkName, aTrunkName, aTrunkType))
4433 #    define IDHCPServer_Stop(p) ((p)->lpVtbl->Stop(p))
4434 #    define IDHCPServer_Restart(p) ((p)->lpVtbl->Restart(p))
4435 #   endif /* VBOX_WITH_GLUE */
4436 
4437 interface IDHCPServer
4438 {
4439 #   ifndef VBOX_WITH_GLUE
4440     struct IDHCPServer_vtbl *vtbl;
4441 #   else /* VBOX_WITH_GLUE */
4442     CONST_VTBL struct IDHCPServerVtbl *lpVtbl;
4443 #   endif /* VBOX_WITH_GLUE */
4444 };
4445 /* End of struct IDHCPServer declaration */
4446 
4447 
4448 /* Start of struct IVirtualBox declaration */
4449 #   define IVIRTUALBOX_IID_STR "d0a0163f-e254-4e5b-a1f2-011cf991c38d"
4450 #   define IVIRTUALBOX_IID { \
4451     0xd0a0163f, 0xe254, 0x4e5b, \
4452     { 0xa1, 0xf2, 0x01, 0x1c, 0xf9, 0x91, 0xc3, 0x8d } \
4453 }
4454 /* COM compatibility */
4455 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBox);
4456 #   ifndef VBOX_WITH_GLUE
4457 struct IVirtualBox_vtbl
4458 {
4459     struct nsISupports_vtbl nsisupports;
4460 
4461     nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
4462 
4463     nsresult (*GetVersionNormalized)(IVirtualBox *pThis, PRUnichar * *versionNormalized);
4464 
4465     nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
4466 
4467     nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
4468 
4469     nsresult (*GetAPIVersion)(IVirtualBox *pThis, PRUnichar * *APIVersion);
4470 
4471     nsresult (*GetAPIRevision)(IVirtualBox *pThis, PRInt64 *APIRevision);
4472 
4473     nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
4474 
4475     nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
4476 
4477     nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
4478 
4479     nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
4480 
4481     nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
4482 
4483     nsresult (*GetMachineGroups)(IVirtualBox *pThis, PRUint32 *machineGroupsSize, PRUnichar * **machineGroups);
4484 
4485     nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
4486 
4487     nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
4488 
4489     nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
4490 
4491     nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
4492 
4493     nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
4494 
4495     nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
4496 
4497     nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
4498 
4499     nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
4500 
4501     nsresult (*GetNATNetworks)(IVirtualBox *pThis, PRUint32 *NATNetworksSize, INATNetwork * **NATNetworks);
4502 
4503     nsresult (*GetEventSource)(IVirtualBox *pThis, IEventSource * *eventSource);
4504 
4505     nsresult (*GetExtensionPackManager)(IVirtualBox *pThis, IExtPackManager * *extensionPackManager);
4506 
4507     nsresult (*GetInternalNetworks)(IVirtualBox *pThis, PRUint32 *internalNetworksSize, PRUnichar * **internalNetworks);
4508 
4509     nsresult (*GetGenericNetworkDrivers)(IVirtualBox *pThis, PRUint32 *genericNetworkDriversSize, PRUnichar * **genericNetworkDrivers);
4510 
4511     nsresult (*GetCloudProviderManager)(IVirtualBox *pThis, ICloudProviderManager * *cloudProviderManager);
4512 
4513     nsresult (*GetInternalAndReservedAttribute1IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4514 
4515     nsresult (*GetInternalAndReservedAttribute2IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4516 
4517     nsresult (*GetInternalAndReservedAttribute3IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4518 
4519     nsresult (*GetInternalAndReservedAttribute4IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4520 
4521     nsresult (*GetInternalAndReservedAttribute5IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4522 
4523     nsresult (*GetInternalAndReservedAttribute6IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4524 
4525     nsresult (*GetInternalAndReservedAttribute7IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4526 
4527     nsresult (*GetInternalAndReservedAttribute8IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4528 
4529     nsresult (*GetInternalAndReservedAttribute9IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4530 
4531     nsresult (*GetInternalAndReservedAttribute10IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4532 
4533     nsresult (*GetInternalAndReservedAttribute11IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4534 
4535     nsresult (*GetInternalAndReservedAttribute12IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4536 
4537     nsresult (*ComposeMachineFilename)(
4538         IVirtualBox *pThis,
4539         PRUnichar * name,
4540         PRUnichar * group,
4541         PRUnichar * createFlags,
4542         PRUnichar * baseFolder,
4543         PRUnichar * * file
4544     );
4545 
4546     nsresult (*CreateMachine)(
4547         IVirtualBox *pThis,
4548         PRUnichar * settingsFile,
4549         PRUnichar * name,
4550         PRUint32 groupsSize,
4551         PRUnichar ** groups,
4552         PRUnichar * osTypeId,
4553         PRUnichar * flags,
4554         IMachine * * machine
4555     );
4556 
4557     nsresult (*OpenMachine)(
4558         IVirtualBox *pThis,
4559         PRUnichar * settingsFile,
4560         IMachine * * machine
4561     );
4562 
4563     nsresult (*RegisterMachine)(
4564         IVirtualBox *pThis,
4565         IMachine * machine
4566     );
4567 
4568     nsresult (*FindMachine)(
4569         IVirtualBox *pThis,
4570         PRUnichar * nameOrId,
4571         IMachine * * machine
4572     );
4573 
4574     nsresult (*GetMachinesByGroups)(
4575         IVirtualBox *pThis,
4576         PRUint32 groupsSize,
4577         PRUnichar ** groups,
4578         PRUint32 *machinesSize,
4579         IMachine *** machines
4580     );
4581 
4582     nsresult (*GetMachineStates)(
4583         IVirtualBox *pThis,
4584         PRUint32 machinesSize,
4585         IMachine ** machines,
4586         PRUint32 *statesSize,
4587         PRUint32** states
4588     );
4589 
4590     nsresult (*CreateAppliance)(
4591         IVirtualBox *pThis,
4592         IAppliance * * appliance
4593     );
4594 
4595     nsresult (*CreateUnattendedInstaller)(
4596         IVirtualBox *pThis,
4597         IUnattended * * unattended
4598     );
4599 
4600     nsresult (*CreateMedium)(
4601         IVirtualBox *pThis,
4602         PRUnichar * format,
4603         PRUnichar * location,
4604         PRUint32 accessMode,
4605         PRUint32 aDeviceTypeType,
4606         IMedium * * medium
4607     );
4608 
4609     nsresult (*OpenMedium)(
4610         IVirtualBox *pThis,
4611         PRUnichar * location,
4612         PRUint32 deviceType,
4613         PRUint32 accessMode,
4614         PRBool forceNewUuid,
4615         IMedium * * medium
4616     );
4617 
4618     nsresult (*GetGuestOSType)(
4619         IVirtualBox *pThis,
4620         PRUnichar * id,
4621         IGuestOSType * * type
4622     );
4623 
4624     nsresult (*CreateSharedFolder)(
4625         IVirtualBox *pThis,
4626         PRUnichar * name,
4627         PRUnichar * hostPath,
4628         PRBool writable,
4629         PRBool automount,
4630         PRUnichar * autoMountPoint
4631     );
4632 
4633     nsresult (*RemoveSharedFolder)(
4634         IVirtualBox *pThis,
4635         PRUnichar * name
4636     );
4637 
4638     nsresult (*GetExtraDataKeys)(
4639         IVirtualBox *pThis,
4640         PRUint32 *keysSize,
4641         PRUnichar *** keys
4642     );
4643 
4644     nsresult (*GetExtraData)(
4645         IVirtualBox *pThis,
4646         PRUnichar * key,
4647         PRUnichar * * value
4648     );
4649 
4650     nsresult (*SetExtraData)(
4651         IVirtualBox *pThis,
4652         PRUnichar * key,
4653         PRUnichar * value
4654     );
4655 
4656     nsresult (*SetSettingsSecret)(
4657         IVirtualBox *pThis,
4658         PRUnichar * password
4659     );
4660 
4661     nsresult (*CreateDHCPServer)(
4662         IVirtualBox *pThis,
4663         PRUnichar * name,
4664         IDHCPServer * * server
4665     );
4666 
4667     nsresult (*FindDHCPServerByNetworkName)(
4668         IVirtualBox *pThis,
4669         PRUnichar * name,
4670         IDHCPServer * * server
4671     );
4672 
4673     nsresult (*RemoveDHCPServer)(
4674         IVirtualBox *pThis,
4675         IDHCPServer * server
4676     );
4677 
4678     nsresult (*CreateNATNetwork)(
4679         IVirtualBox *pThis,
4680         PRUnichar * networkName,
4681         INATNetwork * * network
4682     );
4683 
4684     nsresult (*FindNATNetworkByName)(
4685         IVirtualBox *pThis,
4686         PRUnichar * networkName,
4687         INATNetwork * * network
4688     );
4689 
4690     nsresult (*RemoveNATNetwork)(
4691         IVirtualBox *pThis,
4692         INATNetwork * network
4693     );
4694 
4695     nsresult (*CheckFirmwarePresent)(
4696         IVirtualBox *pThis,
4697         PRUint32 firmwareType,
4698         PRUnichar * version,
4699         PRUnichar * * url,
4700         PRUnichar * * file,
4701         PRBool * result
4702     );
4703 
4704     nsresult (*InternalAndReservedMethod1IVirtualBox)(IVirtualBox *pThis);
4705 
4706     nsresult (*InternalAndReservedMethod2IVirtualBox)(IVirtualBox *pThis);
4707 
4708     nsresult (*InternalAndReservedMethod3IVirtualBox)(IVirtualBox *pThis);
4709 
4710     nsresult (*InternalAndReservedMethod4IVirtualBox)(IVirtualBox *pThis);
4711 
4712     nsresult (*InternalAndReservedMethod5IVirtualBox)(IVirtualBox *pThis);
4713 
4714     nsresult (*InternalAndReservedMethod6IVirtualBox)(IVirtualBox *pThis);
4715 
4716     nsresult (*InternalAndReservedMethod7IVirtualBox)(IVirtualBox *pThis);
4717 
4718     nsresult (*InternalAndReservedMethod8IVirtualBox)(IVirtualBox *pThis);
4719 
4720 };
4721 #   else /* VBOX_WITH_GLUE */
4722 struct IVirtualBoxVtbl
4723 {
4724     nsresult (*QueryInterface)(IVirtualBox *pThis, const nsID *iid, void **resultp);
4725     nsrefcnt (*AddRef)(IVirtualBox *pThis);
4726     nsrefcnt (*Release)(IVirtualBox *pThis);
4727     nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
4728 
4729     nsresult (*GetVersionNormalized)(IVirtualBox *pThis, PRUnichar * *versionNormalized);
4730 
4731     nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
4732 
4733     nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
4734 
4735     nsresult (*GetAPIVersion)(IVirtualBox *pThis, PRUnichar * *APIVersion);
4736 
4737     nsresult (*GetAPIRevision)(IVirtualBox *pThis, PRInt64 *APIRevision);
4738 
4739     nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
4740 
4741     nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
4742 
4743     nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
4744 
4745     nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
4746 
4747     nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
4748 
4749     nsresult (*GetMachineGroups)(IVirtualBox *pThis, PRUint32 *machineGroupsSize, PRUnichar * **machineGroups);
4750 
4751     nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
4752 
4753     nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
4754 
4755     nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
4756 
4757     nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
4758 
4759     nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
4760 
4761     nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
4762 
4763     nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
4764 
4765     nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
4766 
4767     nsresult (*GetNATNetworks)(IVirtualBox *pThis, PRUint32 *NATNetworksSize, INATNetwork * **NATNetworks);
4768 
4769     nsresult (*GetEventSource)(IVirtualBox *pThis, IEventSource * *eventSource);
4770 
4771     nsresult (*GetExtensionPackManager)(IVirtualBox *pThis, IExtPackManager * *extensionPackManager);
4772 
4773     nsresult (*GetInternalNetworks)(IVirtualBox *pThis, PRUint32 *internalNetworksSize, PRUnichar * **internalNetworks);
4774 
4775     nsresult (*GetGenericNetworkDrivers)(IVirtualBox *pThis, PRUint32 *genericNetworkDriversSize, PRUnichar * **genericNetworkDrivers);
4776 
4777     nsresult (*GetCloudProviderManager)(IVirtualBox *pThis, ICloudProviderManager * *cloudProviderManager);
4778 
4779     nsresult (*GetInternalAndReservedAttribute1IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4780 
4781     nsresult (*GetInternalAndReservedAttribute2IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4782 
4783     nsresult (*GetInternalAndReservedAttribute3IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4784 
4785     nsresult (*GetInternalAndReservedAttribute4IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4786 
4787     nsresult (*GetInternalAndReservedAttribute5IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4788 
4789     nsresult (*GetInternalAndReservedAttribute6IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4790 
4791     nsresult (*GetInternalAndReservedAttribute7IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4792 
4793     nsresult (*GetInternalAndReservedAttribute8IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4794 
4795     nsresult (*GetInternalAndReservedAttribute9IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4796 
4797     nsresult (*GetInternalAndReservedAttribute10IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4798 
4799     nsresult (*GetInternalAndReservedAttribute11IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4800 
4801     nsresult (*GetInternalAndReservedAttribute12IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4802 
4803     nsresult (*ComposeMachineFilename)(
4804         IVirtualBox *pThis,
4805         PRUnichar * name,
4806         PRUnichar * group,
4807         PRUnichar * createFlags,
4808         PRUnichar * baseFolder,
4809         PRUnichar * * file
4810     );
4811 
4812     nsresult (*CreateMachine)(
4813         IVirtualBox *pThis,
4814         PRUnichar * settingsFile,
4815         PRUnichar * name,
4816         PRUint32 groupsSize,
4817         PRUnichar ** groups,
4818         PRUnichar * osTypeId,
4819         PRUnichar * flags,
4820         IMachine * * machine
4821     );
4822 
4823     nsresult (*OpenMachine)(
4824         IVirtualBox *pThis,
4825         PRUnichar * settingsFile,
4826         IMachine * * machine
4827     );
4828 
4829     nsresult (*RegisterMachine)(
4830         IVirtualBox *pThis,
4831         IMachine * machine
4832     );
4833 
4834     nsresult (*FindMachine)(
4835         IVirtualBox *pThis,
4836         PRUnichar * nameOrId,
4837         IMachine * * machine
4838     );
4839 
4840     nsresult (*GetMachinesByGroups)(
4841         IVirtualBox *pThis,
4842         PRUint32 groupsSize,
4843         PRUnichar ** groups,
4844         PRUint32 *machinesSize,
4845         IMachine *** machines
4846     );
4847 
4848     nsresult (*GetMachineStates)(
4849         IVirtualBox *pThis,
4850         PRUint32 machinesSize,
4851         IMachine ** machines,
4852         PRUint32 *statesSize,
4853         PRUint32** states
4854     );
4855 
4856     nsresult (*CreateAppliance)(
4857         IVirtualBox *pThis,
4858         IAppliance * * appliance
4859     );
4860 
4861     nsresult (*CreateUnattendedInstaller)(
4862         IVirtualBox *pThis,
4863         IUnattended * * unattended
4864     );
4865 
4866     nsresult (*CreateMedium)(
4867         IVirtualBox *pThis,
4868         PRUnichar * format,
4869         PRUnichar * location,
4870         PRUint32 accessMode,
4871         PRUint32 aDeviceTypeType,
4872         IMedium * * medium
4873     );
4874 
4875     nsresult (*OpenMedium)(
4876         IVirtualBox *pThis,
4877         PRUnichar * location,
4878         PRUint32 deviceType,
4879         PRUint32 accessMode,
4880         PRBool forceNewUuid,
4881         IMedium * * medium
4882     );
4883 
4884     nsresult (*GetGuestOSType)(
4885         IVirtualBox *pThis,
4886         PRUnichar * id,
4887         IGuestOSType * * type
4888     );
4889 
4890     nsresult (*CreateSharedFolder)(
4891         IVirtualBox *pThis,
4892         PRUnichar * name,
4893         PRUnichar * hostPath,
4894         PRBool writable,
4895         PRBool automount,
4896         PRUnichar * autoMountPoint
4897     );
4898 
4899     nsresult (*RemoveSharedFolder)(
4900         IVirtualBox *pThis,
4901         PRUnichar * name
4902     );
4903 
4904     nsresult (*GetExtraDataKeys)(
4905         IVirtualBox *pThis,
4906         PRUint32 *keysSize,
4907         PRUnichar *** keys
4908     );
4909 
4910     nsresult (*GetExtraData)(
4911         IVirtualBox *pThis,
4912         PRUnichar * key,
4913         PRUnichar * * value
4914     );
4915 
4916     nsresult (*SetExtraData)(
4917         IVirtualBox *pThis,
4918         PRUnichar * key,
4919         PRUnichar * value
4920     );
4921 
4922     nsresult (*SetSettingsSecret)(
4923         IVirtualBox *pThis,
4924         PRUnichar * password
4925     );
4926 
4927     nsresult (*CreateDHCPServer)(
4928         IVirtualBox *pThis,
4929         PRUnichar * name,
4930         IDHCPServer * * server
4931     );
4932 
4933     nsresult (*FindDHCPServerByNetworkName)(
4934         IVirtualBox *pThis,
4935         PRUnichar * name,
4936         IDHCPServer * * server
4937     );
4938 
4939     nsresult (*RemoveDHCPServer)(
4940         IVirtualBox *pThis,
4941         IDHCPServer * server
4942     );
4943 
4944     nsresult (*CreateNATNetwork)(
4945         IVirtualBox *pThis,
4946         PRUnichar * networkName,
4947         INATNetwork * * network
4948     );
4949 
4950     nsresult (*FindNATNetworkByName)(
4951         IVirtualBox *pThis,
4952         PRUnichar * networkName,
4953         INATNetwork * * network
4954     );
4955 
4956     nsresult (*RemoveNATNetwork)(
4957         IVirtualBox *pThis,
4958         INATNetwork * network
4959     );
4960 
4961     nsresult (*CheckFirmwarePresent)(
4962         IVirtualBox *pThis,
4963         PRUint32 firmwareType,
4964         PRUnichar * version,
4965         PRUnichar * * url,
4966         PRUnichar * * file,
4967         PRBool * result
4968     );
4969 
4970     nsresult (*InternalAndReservedMethod1IVirtualBox)(IVirtualBox *pThis);
4971 
4972     nsresult (*InternalAndReservedMethod2IVirtualBox)(IVirtualBox *pThis);
4973 
4974     nsresult (*InternalAndReservedMethod3IVirtualBox)(IVirtualBox *pThis);
4975 
4976     nsresult (*InternalAndReservedMethod4IVirtualBox)(IVirtualBox *pThis);
4977 
4978     nsresult (*InternalAndReservedMethod5IVirtualBox)(IVirtualBox *pThis);
4979 
4980     nsresult (*InternalAndReservedMethod6IVirtualBox)(IVirtualBox *pThis);
4981 
4982     nsresult (*InternalAndReservedMethod7IVirtualBox)(IVirtualBox *pThis);
4983 
4984     nsresult (*InternalAndReservedMethod8IVirtualBox)(IVirtualBox *pThis);
4985 
4986 };
4987 #    define IVirtualBox_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4988 #    define IVirtualBox_AddRef(p) ((p)->lpVtbl->AddRef(p))
4989 #    define IVirtualBox_Release(p) ((p)->lpVtbl->Release(p))
4990 #    define IVirtualBox_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
4991 #    define IVirtualBox_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
4992 #    define IVirtualBox_get_VersionNormalized(p, aVersionNormalized) ((p)->lpVtbl->GetVersionNormalized(p, aVersionNormalized))
4993 #    define IVirtualBox_GetVersionNormalized(p, aVersionNormalized) ((p)->lpVtbl->GetVersionNormalized(p, aVersionNormalized))
4994 #    define IVirtualBox_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
4995 #    define IVirtualBox_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
4996 #    define IVirtualBox_get_PackageType(p, aPackageType) ((p)->lpVtbl->GetPackageType(p, aPackageType))
4997 #    define IVirtualBox_GetPackageType(p, aPackageType) ((p)->lpVtbl->GetPackageType(p, aPackageType))
4998 #    define IVirtualBox_get_APIVersion(p, aAPIVersion) ((p)->lpVtbl->GetAPIVersion(p, aAPIVersion))
4999 #    define IVirtualBox_GetAPIVersion(p, aAPIVersion) ((p)->lpVtbl->GetAPIVersion(p, aAPIVersion))
5000 #    define IVirtualBox_get_APIRevision(p, aAPIRevision) ((p)->lpVtbl->GetAPIRevision(p, aAPIRevision))
5001 #    define IVirtualBox_GetAPIRevision(p, aAPIRevision) ((p)->lpVtbl->GetAPIRevision(p, aAPIRevision))
5002 #    define IVirtualBox_get_HomeFolder(p, aHomeFolder) ((p)->lpVtbl->GetHomeFolder(p, aHomeFolder))
5003 #    define IVirtualBox_GetHomeFolder(p, aHomeFolder) ((p)->lpVtbl->GetHomeFolder(p, aHomeFolder))
5004 #    define IVirtualBox_get_SettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
5005 #    define IVirtualBox_GetSettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
5006 #    define IVirtualBox_get_Host(p, aHost) ((p)->lpVtbl->GetHost(p, aHost))
5007 #    define IVirtualBox_GetHost(p, aHost) ((p)->lpVtbl->GetHost(p, aHost))
5008 #    define IVirtualBox_get_SystemProperties(p, aSystemProperties) ((p)->lpVtbl->GetSystemProperties(p, aSystemProperties))
5009 #    define IVirtualBox_GetSystemProperties(p, aSystemProperties) ((p)->lpVtbl->GetSystemProperties(p, aSystemProperties))
5010 #    define IVirtualBox_get_Machines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
5011 #    define IVirtualBox_GetMachines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
5012 #    define IVirtualBox_get_MachineGroups(p, aMachineGroups) ((p)->lpVtbl->GetMachineGroups(p, aMachineGroups))
5013 #    define IVirtualBox_GetMachineGroups(p, aMachineGroups) ((p)->lpVtbl->GetMachineGroups(p, aMachineGroups))
5014 #    define IVirtualBox_get_HardDisks(p, aHardDisks) ((p)->lpVtbl->GetHardDisks(p, aHardDisks))
5015 #    define IVirtualBox_GetHardDisks(p, aHardDisks) ((p)->lpVtbl->GetHardDisks(p, aHardDisks))
5016 #    define IVirtualBox_get_DVDImages(p, aDVDImages) ((p)->lpVtbl->GetDVDImages(p, aDVDImages))
5017 #    define IVirtualBox_GetDVDImages(p, aDVDImages) ((p)->lpVtbl->GetDVDImages(p, aDVDImages))
5018 #    define IVirtualBox_get_FloppyImages(p, aFloppyImages) ((p)->lpVtbl->GetFloppyImages(p, aFloppyImages))
5019 #    define IVirtualBox_GetFloppyImages(p, aFloppyImages) ((p)->lpVtbl->GetFloppyImages(p, aFloppyImages))
5020 #    define IVirtualBox_get_ProgressOperations(p, aProgressOperations) ((p)->lpVtbl->GetProgressOperations(p, aProgressOperations))
5021 #    define IVirtualBox_GetProgressOperations(p, aProgressOperations) ((p)->lpVtbl->GetProgressOperations(p, aProgressOperations))
5022 #    define IVirtualBox_get_GuestOSTypes(p, aGuestOSTypes) ((p)->lpVtbl->GetGuestOSTypes(p, aGuestOSTypes))
5023 #    define IVirtualBox_GetGuestOSTypes(p, aGuestOSTypes) ((p)->lpVtbl->GetGuestOSTypes(p, aGuestOSTypes))
5024 #    define IVirtualBox_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
5025 #    define IVirtualBox_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
5026 #    define IVirtualBox_get_PerformanceCollector(p, aPerformanceCollector) ((p)->lpVtbl->GetPerformanceCollector(p, aPerformanceCollector))
5027 #    define IVirtualBox_GetPerformanceCollector(p, aPerformanceCollector) ((p)->lpVtbl->GetPerformanceCollector(p, aPerformanceCollector))
5028 #    define IVirtualBox_get_DHCPServers(p, aDHCPServers) ((p)->lpVtbl->GetDHCPServers(p, aDHCPServers))
5029 #    define IVirtualBox_GetDHCPServers(p, aDHCPServers) ((p)->lpVtbl->GetDHCPServers(p, aDHCPServers))
5030 #    define IVirtualBox_get_NATNetworks(p, aNATNetworks) ((p)->lpVtbl->GetNATNetworks(p, aNATNetworks))
5031 #    define IVirtualBox_GetNATNetworks(p, aNATNetworks) ((p)->lpVtbl->GetNATNetworks(p, aNATNetworks))
5032 #    define IVirtualBox_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
5033 #    define IVirtualBox_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
5034 #    define IVirtualBox_get_ExtensionPackManager(p, aExtensionPackManager) ((p)->lpVtbl->GetExtensionPackManager(p, aExtensionPackManager))
5035 #    define IVirtualBox_GetExtensionPackManager(p, aExtensionPackManager) ((p)->lpVtbl->GetExtensionPackManager(p, aExtensionPackManager))
5036 #    define IVirtualBox_get_InternalNetworks(p, aInternalNetworks) ((p)->lpVtbl->GetInternalNetworks(p, aInternalNetworks))
5037 #    define IVirtualBox_GetInternalNetworks(p, aInternalNetworks) ((p)->lpVtbl->GetInternalNetworks(p, aInternalNetworks))
5038 #    define IVirtualBox_get_GenericNetworkDrivers(p, aGenericNetworkDrivers) ((p)->lpVtbl->GetGenericNetworkDrivers(p, aGenericNetworkDrivers))
5039 #    define IVirtualBox_GetGenericNetworkDrivers(p, aGenericNetworkDrivers) ((p)->lpVtbl->GetGenericNetworkDrivers(p, aGenericNetworkDrivers))
5040 #    define IVirtualBox_get_CloudProviderManager(p, aCloudProviderManager) ((p)->lpVtbl->GetCloudProviderManager(p, aCloudProviderManager))
5041 #    define IVirtualBox_GetCloudProviderManager(p, aCloudProviderManager) ((p)->lpVtbl->GetCloudProviderManager(p, aCloudProviderManager))
5042 #    define IVirtualBox_ComposeMachineFilename(p, aName, aGroup, aCreateFlags, aBaseFolder, aFile) ((p)->lpVtbl->ComposeMachineFilename(p, aName, aGroup, aCreateFlags, aBaseFolder, aFile))
5043 #    define IVirtualBox_CreateMachine(p, aSettingsFile, aName, aGroups, aOsTypeId, aFlags, aMachine) ((p)->lpVtbl->CreateMachine(p, aSettingsFile, aName, aGroups, aOsTypeId, aFlags, aMachine))
5044 #    define IVirtualBox_OpenMachine(p, aSettingsFile, aMachine) ((p)->lpVtbl->OpenMachine(p, aSettingsFile, aMachine))
5045 #    define IVirtualBox_RegisterMachine(p, aMachine) ((p)->lpVtbl->RegisterMachine(p, aMachine))
5046 #    define IVirtualBox_FindMachine(p, aNameOrId, aMachine) ((p)->lpVtbl->FindMachine(p, aNameOrId, aMachine))
5047 #    define IVirtualBox_GetMachinesByGroups(p, aGroups, aMachines) ((p)->lpVtbl->GetMachinesByGroups(p, aGroups, aMachines))
5048 #    define IVirtualBox_GetMachineStates(p, aMachines, aStates) ((p)->lpVtbl->GetMachineStates(p, aMachines, aStates))
5049 #    define IVirtualBox_CreateAppliance(p, aAppliance) ((p)->lpVtbl->CreateAppliance(p, aAppliance))
5050 #    define IVirtualBox_CreateUnattendedInstaller(p, aUnattended) ((p)->lpVtbl->CreateUnattendedInstaller(p, aUnattended))
5051 #    define IVirtualBox_CreateMedium(p, aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium) ((p)->lpVtbl->CreateMedium(p, aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium))
5052 #    define IVirtualBox_OpenMedium(p, aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium) ((p)->lpVtbl->OpenMedium(p, aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium))
5053 #    define IVirtualBox_GetGuestOSType(p, aId, aType) ((p)->lpVtbl->GetGuestOSType(p, aId, aType))
5054 #    define IVirtualBox_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint))
5055 #    define IVirtualBox_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
5056 #    define IVirtualBox_GetExtraDataKeys(p, aKeys) ((p)->lpVtbl->GetExtraDataKeys(p, aKeys))
5057 #    define IVirtualBox_GetExtraData(p, aKey, aValue) ((p)->lpVtbl->GetExtraData(p, aKey, aValue))
5058 #    define IVirtualBox_SetExtraData(p, aKey, aValue) ((p)->lpVtbl->SetExtraData(p, aKey, aValue))
5059 #    define IVirtualBox_SetSettingsSecret(p, aPassword) ((p)->lpVtbl->SetSettingsSecret(p, aPassword))
5060 #    define IVirtualBox_CreateDHCPServer(p, aName, aServer) ((p)->lpVtbl->CreateDHCPServer(p, aName, aServer))
5061 #    define IVirtualBox_FindDHCPServerByNetworkName(p, aName, aServer) ((p)->lpVtbl->FindDHCPServerByNetworkName(p, aName, aServer))
5062 #    define IVirtualBox_RemoveDHCPServer(p, aServer) ((p)->lpVtbl->RemoveDHCPServer(p, aServer))
5063 #    define IVirtualBox_CreateNATNetwork(p, aNetworkName, aNetwork) ((p)->lpVtbl->CreateNATNetwork(p, aNetworkName, aNetwork))
5064 #    define IVirtualBox_FindNATNetworkByName(p, aNetworkName, aNetwork) ((p)->lpVtbl->FindNATNetworkByName(p, aNetworkName, aNetwork))
5065 #    define IVirtualBox_RemoveNATNetwork(p, aNetwork) ((p)->lpVtbl->RemoveNATNetwork(p, aNetwork))
5066 #    define IVirtualBox_CheckFirmwarePresent(p, aFirmwareType, aVersion, aUrl, aFile, aResult) ((p)->lpVtbl->CheckFirmwarePresent(p, aFirmwareType, aVersion, aUrl, aFile, aResult))
5067 #   endif /* VBOX_WITH_GLUE */
5068 
5069 interface IVirtualBox
5070 {
5071 #   ifndef VBOX_WITH_GLUE
5072     struct IVirtualBox_vtbl *vtbl;
5073 #   else /* VBOX_WITH_GLUE */
5074     CONST_VTBL struct IVirtualBoxVtbl *lpVtbl;
5075 #   endif /* VBOX_WITH_GLUE */
5076 };
5077 /* End of struct IVirtualBox declaration */
5078 
5079 
5080 /* Start of struct IVFSExplorer declaration */
5081 #   define IVFSEXPLORER_IID_STR "fb220201-2fd3-47e2-a5dc-2c2431d833cc"
5082 #   define IVFSEXPLORER_IID { \
5083     0xfb220201, 0x2fd3, 0x47e2, \
5084     { 0xa5, 0xdc, 0x2c, 0x24, 0x31, 0xd8, 0x33, 0xcc } \
5085 }
5086 /* COM compatibility */
5087 VBOX_EXTERN_CONST(nsIID, IID_IVFSExplorer);
5088 #   ifndef VBOX_WITH_GLUE
5089 struct IVFSExplorer_vtbl
5090 {
5091     struct nsISupports_vtbl nsisupports;
5092 
5093     nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
5094 
5095     nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
5096 
5097     nsresult (*Update)(
5098         IVFSExplorer *pThis,
5099         IProgress * * progress
5100     );
5101 
5102     nsresult (*Cd)(
5103         IVFSExplorer *pThis,
5104         PRUnichar * dir,
5105         IProgress * * progress
5106     );
5107 
5108     nsresult (*CdUp)(
5109         IVFSExplorer *pThis,
5110         IProgress * * progress
5111     );
5112 
5113     nsresult (*EntryList)(
5114         IVFSExplorer *pThis,
5115         PRUint32 *namesSize,
5116         PRUnichar *** names,
5117         PRUint32 *typesSize,
5118         PRUint32** types,
5119         PRUint32 *sizesSize,
5120         PRInt64** sizes,
5121         PRUint32 *modesSize,
5122         PRUint32** modes
5123     );
5124 
5125     nsresult (*Exists)(
5126         IVFSExplorer *pThis,
5127         PRUint32 namesSize,
5128         PRUnichar ** names,
5129         PRUint32 *existsSize,
5130         PRUnichar *** exists
5131     );
5132 
5133     nsresult (*Remove)(
5134         IVFSExplorer *pThis,
5135         PRUint32 namesSize,
5136         PRUnichar ** names,
5137         IProgress * * progress
5138     );
5139 
5140 };
5141 #   else /* VBOX_WITH_GLUE */
5142 struct IVFSExplorerVtbl
5143 {
5144     nsresult (*QueryInterface)(IVFSExplorer *pThis, const nsID *iid, void **resultp);
5145     nsrefcnt (*AddRef)(IVFSExplorer *pThis);
5146     nsrefcnt (*Release)(IVFSExplorer *pThis);
5147     nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
5148 
5149     nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
5150 
5151     nsresult (*Update)(
5152         IVFSExplorer *pThis,
5153         IProgress * * progress
5154     );
5155 
5156     nsresult (*Cd)(
5157         IVFSExplorer *pThis,
5158         PRUnichar * dir,
5159         IProgress * * progress
5160     );
5161 
5162     nsresult (*CdUp)(
5163         IVFSExplorer *pThis,
5164         IProgress * * progress
5165     );
5166 
5167     nsresult (*EntryList)(
5168         IVFSExplorer *pThis,
5169         PRUint32 *namesSize,
5170         PRUnichar *** names,
5171         PRUint32 *typesSize,
5172         PRUint32** types,
5173         PRUint32 *sizesSize,
5174         PRInt64** sizes,
5175         PRUint32 *modesSize,
5176         PRUint32** modes
5177     );
5178 
5179     nsresult (*Exists)(
5180         IVFSExplorer *pThis,
5181         PRUint32 namesSize,
5182         PRUnichar ** names,
5183         PRUint32 *existsSize,
5184         PRUnichar *** exists
5185     );
5186 
5187     nsresult (*Remove)(
5188         IVFSExplorer *pThis,
5189         PRUint32 namesSize,
5190         PRUnichar ** names,
5191         IProgress * * progress
5192     );
5193 
5194 };
5195 #    define IVFSExplorer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5196 #    define IVFSExplorer_AddRef(p) ((p)->lpVtbl->AddRef(p))
5197 #    define IVFSExplorer_Release(p) ((p)->lpVtbl->Release(p))
5198 #    define IVFSExplorer_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
5199 #    define IVFSExplorer_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
5200 #    define IVFSExplorer_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
5201 #    define IVFSExplorer_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
5202 #    define IVFSExplorer_Update(p, aProgress) ((p)->lpVtbl->Update(p, aProgress))
5203 #    define IVFSExplorer_Cd(p, aDir, aProgress) ((p)->lpVtbl->Cd(p, aDir, aProgress))
5204 #    define IVFSExplorer_CdUp(p, aProgress) ((p)->lpVtbl->CdUp(p, aProgress))
5205 #    define IVFSExplorer_EntryList(p, aNames, aTypes, aSizes, aModes) ((p)->lpVtbl->EntryList(p, aNames, aTypes, aSizes, aModes))
5206 #    define IVFSExplorer_Exists(p, aNames, aExists) ((p)->lpVtbl->Exists(p, aNames, aExists))
5207 #    define IVFSExplorer_Remove(p, aNames, aProgress) ((p)->lpVtbl->Remove(p, aNames, aProgress))
5208 #   endif /* VBOX_WITH_GLUE */
5209 
5210 interface IVFSExplorer
5211 {
5212 #   ifndef VBOX_WITH_GLUE
5213     struct IVFSExplorer_vtbl *vtbl;
5214 #   else /* VBOX_WITH_GLUE */
5215     CONST_VTBL struct IVFSExplorerVtbl *lpVtbl;
5216 #   endif /* VBOX_WITH_GLUE */
5217 };
5218 /* End of struct IVFSExplorer declaration */
5219 
5220 
5221 /* Start of struct ICertificate declaration */
5222 #   define ICERTIFICATE_IID_STR "392f1de4-80e1-4a8a-93a1-67c5f92a838a"
5223 #   define ICERTIFICATE_IID { \
5224     0x392f1de4, 0x80e1, 0x4a8a, \
5225     { 0x93, 0xa1, 0x67, 0xc5, 0xf9, 0x2a, 0x83, 0x8a } \
5226 }
5227 /* COM compatibility */
5228 VBOX_EXTERN_CONST(nsIID, IID_ICertificate);
5229 #   ifndef VBOX_WITH_GLUE
5230 struct ICertificate_vtbl
5231 {
5232     struct nsISupports_vtbl nsisupports;
5233 
5234     nsresult (*GetVersionNumber)(ICertificate *pThis, PRUint32 *versionNumber);
5235 
5236     nsresult (*GetSerialNumber)(ICertificate *pThis, PRUnichar * *serialNumber);
5237 
5238     nsresult (*GetSignatureAlgorithmOID)(ICertificate *pThis, PRUnichar * *signatureAlgorithmOID);
5239 
5240     nsresult (*GetSignatureAlgorithmName)(ICertificate *pThis, PRUnichar * *signatureAlgorithmName);
5241 
5242     nsresult (*GetIssuerName)(ICertificate *pThis, PRUint32 *issuerNameSize, PRUnichar * **issuerName);
5243 
5244     nsresult (*GetSubjectName)(ICertificate *pThis, PRUint32 *subjectNameSize, PRUnichar * **subjectName);
5245 
5246     nsresult (*GetFriendlyName)(ICertificate *pThis, PRUnichar * *friendlyName);
5247 
5248     nsresult (*GetValidityPeriodNotBefore)(ICertificate *pThis, PRUnichar * *validityPeriodNotBefore);
5249 
5250     nsresult (*GetValidityPeriodNotAfter)(ICertificate *pThis, PRUnichar * *validityPeriodNotAfter);
5251 
5252     nsresult (*GetPublicKeyAlgorithmOID)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithmOID);
5253 
5254     nsresult (*GetPublicKeyAlgorithm)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithm);
5255 
5256     nsresult (*GetSubjectPublicKey)(ICertificate *pThis, PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey);
5257 
5258     nsresult (*GetIssuerUniqueIdentifier)(ICertificate *pThis, PRUnichar * *issuerUniqueIdentifier);
5259 
5260     nsresult (*GetSubjectUniqueIdentifier)(ICertificate *pThis, PRUnichar * *subjectUniqueIdentifier);
5261 
5262     nsresult (*GetCertificateAuthority)(ICertificate *pThis, PRBool *certificateAuthority);
5263 
5264     nsresult (*GetKeyUsage)(ICertificate *pThis, PRUint32 *keyUsage);
5265 
5266     nsresult (*GetExtendedKeyUsage)(ICertificate *pThis, PRUint32 *extendedKeyUsageSize, PRUnichar * **extendedKeyUsage);
5267 
5268     nsresult (*GetRawCertData)(ICertificate *pThis, PRUint32 *rawCertDataSize, PRUint8 **rawCertData);
5269 
5270     nsresult (*GetSelfSigned)(ICertificate *pThis, PRBool *selfSigned);
5271 
5272     nsresult (*GetTrusted)(ICertificate *pThis, PRBool *trusted);
5273 
5274     nsresult (*GetExpired)(ICertificate *pThis, PRBool *expired);
5275 
5276     nsresult (*GetInternalAndReservedAttribute1ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5277 
5278     nsresult (*GetInternalAndReservedAttribute2ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5279 
5280     nsresult (*GetInternalAndReservedAttribute3ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5281 
5282     nsresult (*GetInternalAndReservedAttribute4ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5283 
5284     nsresult (*GetInternalAndReservedAttribute5ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5285 
5286     nsresult (*GetInternalAndReservedAttribute6ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5287 
5288     nsresult (*GetInternalAndReservedAttribute7ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5289 
5290     nsresult (*GetInternalAndReservedAttribute8ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5291 
5292     nsresult (*GetInternalAndReservedAttribute9ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5293 
5294     nsresult (*GetInternalAndReservedAttribute10ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5295 
5296     nsresult (*GetInternalAndReservedAttribute11ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5297 
5298     nsresult (*GetInternalAndReservedAttribute12ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5299 
5300     nsresult (*IsCurrentlyExpired)(
5301         ICertificate *pThis,
5302         PRBool * result
5303     );
5304 
5305     nsresult (*QueryInfo)(
5306         ICertificate *pThis,
5307         PRInt32 what,
5308         PRUnichar * * result
5309     );
5310 
5311     nsresult (*InternalAndReservedMethod1ICertificate)(ICertificate *pThis);
5312 
5313     nsresult (*InternalAndReservedMethod2ICertificate)(ICertificate *pThis);
5314 
5315 };
5316 #   else /* VBOX_WITH_GLUE */
5317 struct ICertificateVtbl
5318 {
5319     nsresult (*QueryInterface)(ICertificate *pThis, const nsID *iid, void **resultp);
5320     nsrefcnt (*AddRef)(ICertificate *pThis);
5321     nsrefcnt (*Release)(ICertificate *pThis);
5322     nsresult (*GetVersionNumber)(ICertificate *pThis, PRUint32 *versionNumber);
5323 
5324     nsresult (*GetSerialNumber)(ICertificate *pThis, PRUnichar * *serialNumber);
5325 
5326     nsresult (*GetSignatureAlgorithmOID)(ICertificate *pThis, PRUnichar * *signatureAlgorithmOID);
5327 
5328     nsresult (*GetSignatureAlgorithmName)(ICertificate *pThis, PRUnichar * *signatureAlgorithmName);
5329 
5330     nsresult (*GetIssuerName)(ICertificate *pThis, PRUint32 *issuerNameSize, PRUnichar * **issuerName);
5331 
5332     nsresult (*GetSubjectName)(ICertificate *pThis, PRUint32 *subjectNameSize, PRUnichar * **subjectName);
5333 
5334     nsresult (*GetFriendlyName)(ICertificate *pThis, PRUnichar * *friendlyName);
5335 
5336     nsresult (*GetValidityPeriodNotBefore)(ICertificate *pThis, PRUnichar * *validityPeriodNotBefore);
5337 
5338     nsresult (*GetValidityPeriodNotAfter)(ICertificate *pThis, PRUnichar * *validityPeriodNotAfter);
5339 
5340     nsresult (*GetPublicKeyAlgorithmOID)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithmOID);
5341 
5342     nsresult (*GetPublicKeyAlgorithm)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithm);
5343 
5344     nsresult (*GetSubjectPublicKey)(ICertificate *pThis, PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey);
5345 
5346     nsresult (*GetIssuerUniqueIdentifier)(ICertificate *pThis, PRUnichar * *issuerUniqueIdentifier);
5347 
5348     nsresult (*GetSubjectUniqueIdentifier)(ICertificate *pThis, PRUnichar * *subjectUniqueIdentifier);
5349 
5350     nsresult (*GetCertificateAuthority)(ICertificate *pThis, PRBool *certificateAuthority);
5351 
5352     nsresult (*GetKeyUsage)(ICertificate *pThis, PRUint32 *keyUsage);
5353 
5354     nsresult (*GetExtendedKeyUsage)(ICertificate *pThis, PRUint32 *extendedKeyUsageSize, PRUnichar * **extendedKeyUsage);
5355 
5356     nsresult (*GetRawCertData)(ICertificate *pThis, PRUint32 *rawCertDataSize, PRUint8 **rawCertData);
5357 
5358     nsresult (*GetSelfSigned)(ICertificate *pThis, PRBool *selfSigned);
5359 
5360     nsresult (*GetTrusted)(ICertificate *pThis, PRBool *trusted);
5361 
5362     nsresult (*GetExpired)(ICertificate *pThis, PRBool *expired);
5363 
5364     nsresult (*GetInternalAndReservedAttribute1ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5365 
5366     nsresult (*GetInternalAndReservedAttribute2ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5367 
5368     nsresult (*GetInternalAndReservedAttribute3ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5369 
5370     nsresult (*GetInternalAndReservedAttribute4ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5371 
5372     nsresult (*GetInternalAndReservedAttribute5ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5373 
5374     nsresult (*GetInternalAndReservedAttribute6ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5375 
5376     nsresult (*GetInternalAndReservedAttribute7ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5377 
5378     nsresult (*GetInternalAndReservedAttribute8ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5379 
5380     nsresult (*GetInternalAndReservedAttribute9ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5381 
5382     nsresult (*GetInternalAndReservedAttribute10ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5383 
5384     nsresult (*GetInternalAndReservedAttribute11ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5385 
5386     nsresult (*GetInternalAndReservedAttribute12ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5387 
5388     nsresult (*IsCurrentlyExpired)(
5389         ICertificate *pThis,
5390         PRBool * result
5391     );
5392 
5393     nsresult (*QueryInfo)(
5394         ICertificate *pThis,
5395         PRInt32 what,
5396         PRUnichar * * result
5397     );
5398 
5399     nsresult (*InternalAndReservedMethod1ICertificate)(ICertificate *pThis);
5400 
5401     nsresult (*InternalAndReservedMethod2ICertificate)(ICertificate *pThis);
5402 
5403 };
5404 #    define ICertificate_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5405 #    define ICertificate_AddRef(p) ((p)->lpVtbl->AddRef(p))
5406 #    define ICertificate_Release(p) ((p)->lpVtbl->Release(p))
5407 #    define ICertificate_get_VersionNumber(p, aVersionNumber) ((p)->lpVtbl->GetVersionNumber(p, aVersionNumber))
5408 #    define ICertificate_GetVersionNumber(p, aVersionNumber) ((p)->lpVtbl->GetVersionNumber(p, aVersionNumber))
5409 #    define ICertificate_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
5410 #    define ICertificate_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
5411 #    define ICertificate_get_SignatureAlgorithmOID(p, aSignatureAlgorithmOID) ((p)->lpVtbl->GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID))
5412 #    define ICertificate_GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID) ((p)->lpVtbl->GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID))
5413 #    define ICertificate_get_SignatureAlgorithmName(p, aSignatureAlgorithmName) ((p)->lpVtbl->GetSignatureAlgorithmName(p, aSignatureAlgorithmName))
5414 #    define ICertificate_GetSignatureAlgorithmName(p, aSignatureAlgorithmName) ((p)->lpVtbl->GetSignatureAlgorithmName(p, aSignatureAlgorithmName))
5415 #    define ICertificate_get_IssuerName(p, aIssuerName) ((p)->lpVtbl->GetIssuerName(p, aIssuerName))
5416 #    define ICertificate_GetIssuerName(p, aIssuerName) ((p)->lpVtbl->GetIssuerName(p, aIssuerName))
5417 #    define ICertificate_get_SubjectName(p, aSubjectName) ((p)->lpVtbl->GetSubjectName(p, aSubjectName))
5418 #    define ICertificate_GetSubjectName(p, aSubjectName) ((p)->lpVtbl->GetSubjectName(p, aSubjectName))
5419 #    define ICertificate_get_FriendlyName(p, aFriendlyName) ((p)->lpVtbl->GetFriendlyName(p, aFriendlyName))
5420 #    define ICertificate_GetFriendlyName(p, aFriendlyName) ((p)->lpVtbl->GetFriendlyName(p, aFriendlyName))
5421 #    define ICertificate_get_ValidityPeriodNotBefore(p, aValidityPeriodNotBefore) ((p)->lpVtbl->GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore))
5422 #    define ICertificate_GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore) ((p)->lpVtbl->GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore))
5423 #    define ICertificate_get_ValidityPeriodNotAfter(p, aValidityPeriodNotAfter) ((p)->lpVtbl->GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter))
5424 #    define ICertificate_GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter) ((p)->lpVtbl->GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter))
5425 #    define ICertificate_get_PublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID) ((p)->lpVtbl->GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID))
5426 #    define ICertificate_GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID) ((p)->lpVtbl->GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID))
5427 #    define ICertificate_get_PublicKeyAlgorithm(p, aPublicKeyAlgorithm) ((p)->lpVtbl->GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm))
5428 #    define ICertificate_GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm) ((p)->lpVtbl->GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm))
5429 #    define ICertificate_get_SubjectPublicKey(p, aSubjectPublicKey) ((p)->lpVtbl->GetSubjectPublicKey(p, aSubjectPublicKey))
5430 #    define ICertificate_GetSubjectPublicKey(p, aSubjectPublicKey) ((p)->lpVtbl->GetSubjectPublicKey(p, aSubjectPublicKey))
5431 #    define ICertificate_get_IssuerUniqueIdentifier(p, aIssuerUniqueIdentifier) ((p)->lpVtbl->GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier))
5432 #    define ICertificate_GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier) ((p)->lpVtbl->GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier))
5433 #    define ICertificate_get_SubjectUniqueIdentifier(p, aSubjectUniqueIdentifier) ((p)->lpVtbl->GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier))
5434 #    define ICertificate_GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier) ((p)->lpVtbl->GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier))
5435 #    define ICertificate_get_CertificateAuthority(p, aCertificateAuthority) ((p)->lpVtbl->GetCertificateAuthority(p, aCertificateAuthority))
5436 #    define ICertificate_GetCertificateAuthority(p, aCertificateAuthority) ((p)->lpVtbl->GetCertificateAuthority(p, aCertificateAuthority))
5437 #    define ICertificate_get_KeyUsage(p, aKeyUsage) ((p)->lpVtbl->GetKeyUsage(p, aKeyUsage))
5438 #    define ICertificate_GetKeyUsage(p, aKeyUsage) ((p)->lpVtbl->GetKeyUsage(p, aKeyUsage))
5439 #    define ICertificate_get_ExtendedKeyUsage(p, aExtendedKeyUsage) ((p)->lpVtbl->GetExtendedKeyUsage(p, aExtendedKeyUsage))
5440 #    define ICertificate_GetExtendedKeyUsage(p, aExtendedKeyUsage) ((p)->lpVtbl->GetExtendedKeyUsage(p, aExtendedKeyUsage))
5441 #    define ICertificate_get_RawCertData(p, aRawCertData) ((p)->lpVtbl->GetRawCertData(p, aRawCertData))
5442 #    define ICertificate_GetRawCertData(p, aRawCertData) ((p)->lpVtbl->GetRawCertData(p, aRawCertData))
5443 #    define ICertificate_get_SelfSigned(p, aSelfSigned) ((p)->lpVtbl->GetSelfSigned(p, aSelfSigned))
5444 #    define ICertificate_GetSelfSigned(p, aSelfSigned) ((p)->lpVtbl->GetSelfSigned(p, aSelfSigned))
5445 #    define ICertificate_get_Trusted(p, aTrusted) ((p)->lpVtbl->GetTrusted(p, aTrusted))
5446 #    define ICertificate_GetTrusted(p, aTrusted) ((p)->lpVtbl->GetTrusted(p, aTrusted))
5447 #    define ICertificate_get_Expired(p, aExpired) ((p)->lpVtbl->GetExpired(p, aExpired))
5448 #    define ICertificate_GetExpired(p, aExpired) ((p)->lpVtbl->GetExpired(p, aExpired))
5449 #    define ICertificate_IsCurrentlyExpired(p, aResult) ((p)->lpVtbl->IsCurrentlyExpired(p, aResult))
5450 #    define ICertificate_QueryInfo(p, aWhat, aResult) ((p)->lpVtbl->QueryInfo(p, aWhat, aResult))
5451 #   endif /* VBOX_WITH_GLUE */
5452 
5453 interface ICertificate
5454 {
5455 #   ifndef VBOX_WITH_GLUE
5456     struct ICertificate_vtbl *vtbl;
5457 #   else /* VBOX_WITH_GLUE */
5458     CONST_VTBL struct ICertificateVtbl *lpVtbl;
5459 #   endif /* VBOX_WITH_GLUE */
5460 };
5461 /* End of struct ICertificate declaration */
5462 
5463 
5464 /* Start of struct IAppliance declaration */
5465 #   define IAPPLIANCE_IID_STR "86a98347-7619-41aa-aece-b21ac5c1a7e6"
5466 #   define IAPPLIANCE_IID { \
5467     0x86a98347, 0x7619, 0x41aa, \
5468     { 0xae, 0xce, 0xb2, 0x1a, 0xc5, 0xc1, 0xa7, 0xe6 } \
5469 }
5470 /* COM compatibility */
5471 VBOX_EXTERN_CONST(nsIID, IID_IAppliance);
5472 #   ifndef VBOX_WITH_GLUE
5473 struct IAppliance_vtbl
5474 {
5475     struct nsISupports_vtbl nsisupports;
5476 
5477     nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
5478 
5479     nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
5480 
5481     nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
5482 
5483     nsresult (*GetMachines)(IAppliance *pThis, PRUint32 *machinesSize, PRUnichar * **machines);
5484 
5485     nsresult (*GetCertificate)(IAppliance *pThis, ICertificate * *certificate);
5486 
5487     nsresult (*GetInternalAndReservedAttribute1IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5488 
5489     nsresult (*GetInternalAndReservedAttribute2IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5490 
5491     nsresult (*GetInternalAndReservedAttribute3IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5492 
5493     nsresult (*GetInternalAndReservedAttribute4IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5494 
5495     nsresult (*GetInternalAndReservedAttribute5IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5496 
5497     nsresult (*GetInternalAndReservedAttribute6IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5498 
5499     nsresult (*GetInternalAndReservedAttribute7IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5500 
5501     nsresult (*GetInternalAndReservedAttribute8IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5502 
5503     nsresult (*Read)(
5504         IAppliance *pThis,
5505         PRUnichar * file,
5506         IProgress * * progress
5507     );
5508 
5509     nsresult (*Interpret)(IAppliance *pThis );
5510 
5511     nsresult (*ImportMachines)(
5512         IAppliance *pThis,
5513         PRUint32 optionsSize,
5514         PRUint32* options,
5515         IProgress * * progress
5516     );
5517 
5518     nsresult (*CreateVFSExplorer)(
5519         IAppliance *pThis,
5520         PRUnichar * URI,
5521         IVFSExplorer * * explorer
5522     );
5523 
5524     nsresult (*Write)(
5525         IAppliance *pThis,
5526         PRUnichar * format,
5527         PRUint32 optionsSize,
5528         PRUint32* options,
5529         PRUnichar * path,
5530         IProgress * * progress
5531     );
5532 
5533     nsresult (*GetWarnings)(
5534         IAppliance *pThis,
5535         PRUint32 *warningsSize,
5536         PRUnichar *** warnings
5537     );
5538 
5539     nsresult (*GetPasswordIds)(
5540         IAppliance *pThis,
5541         PRUint32 *identifiersSize,
5542         PRUnichar *** identifiers
5543     );
5544 
5545     nsresult (*GetMediumIdsForPasswordId)(
5546         IAppliance *pThis,
5547         PRUnichar * passwordId,
5548         PRUint32 *identifiersSize,
5549         PRUnichar *** identifiers
5550     );
5551 
5552     nsresult (*AddPasswords)(
5553         IAppliance *pThis,
5554         PRUint32 identifiersSize,
5555         PRUnichar ** identifiers,
5556         PRUint32 passwordsSize,
5557         PRUnichar ** passwords
5558     );
5559 
5560     nsresult (*InternalAndReservedMethod1IAppliance)(IAppliance *pThis);
5561 
5562     nsresult (*InternalAndReservedMethod2IAppliance)(IAppliance *pThis);
5563 
5564     nsresult (*InternalAndReservedMethod3IAppliance)(IAppliance *pThis);
5565 
5566     nsresult (*InternalAndReservedMethod4IAppliance)(IAppliance *pThis);
5567 
5568     nsresult (*InternalAndReservedMethod5IAppliance)(IAppliance *pThis);
5569 
5570     nsresult (*InternalAndReservedMethod6IAppliance)(IAppliance *pThis);
5571 
5572     nsresult (*InternalAndReservedMethod7IAppliance)(IAppliance *pThis);
5573 
5574     nsresult (*InternalAndReservedMethod8IAppliance)(IAppliance *pThis);
5575 
5576 };
5577 #   else /* VBOX_WITH_GLUE */
5578 struct IApplianceVtbl
5579 {
5580     nsresult (*QueryInterface)(IAppliance *pThis, const nsID *iid, void **resultp);
5581     nsrefcnt (*AddRef)(IAppliance *pThis);
5582     nsrefcnt (*Release)(IAppliance *pThis);
5583     nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
5584 
5585     nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
5586 
5587     nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
5588 
5589     nsresult (*GetMachines)(IAppliance *pThis, PRUint32 *machinesSize, PRUnichar * **machines);
5590 
5591     nsresult (*GetCertificate)(IAppliance *pThis, ICertificate * *certificate);
5592 
5593     nsresult (*GetInternalAndReservedAttribute1IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5594 
5595     nsresult (*GetInternalAndReservedAttribute2IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5596 
5597     nsresult (*GetInternalAndReservedAttribute3IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5598 
5599     nsresult (*GetInternalAndReservedAttribute4IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5600 
5601     nsresult (*GetInternalAndReservedAttribute5IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5602 
5603     nsresult (*GetInternalAndReservedAttribute6IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5604 
5605     nsresult (*GetInternalAndReservedAttribute7IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5606 
5607     nsresult (*GetInternalAndReservedAttribute8IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5608 
5609     nsresult (*Read)(
5610         IAppliance *pThis,
5611         PRUnichar * file,
5612         IProgress * * progress
5613     );
5614 
5615     nsresult (*Interpret)(IAppliance *pThis );
5616 
5617     nsresult (*ImportMachines)(
5618         IAppliance *pThis,
5619         PRUint32 optionsSize,
5620         PRUint32* options,
5621         IProgress * * progress
5622     );
5623 
5624     nsresult (*CreateVFSExplorer)(
5625         IAppliance *pThis,
5626         PRUnichar * URI,
5627         IVFSExplorer * * explorer
5628     );
5629 
5630     nsresult (*Write)(
5631         IAppliance *pThis,
5632         PRUnichar * format,
5633         PRUint32 optionsSize,
5634         PRUint32* options,
5635         PRUnichar * path,
5636         IProgress * * progress
5637     );
5638 
5639     nsresult (*GetWarnings)(
5640         IAppliance *pThis,
5641         PRUint32 *warningsSize,
5642         PRUnichar *** warnings
5643     );
5644 
5645     nsresult (*GetPasswordIds)(
5646         IAppliance *pThis,
5647         PRUint32 *identifiersSize,
5648         PRUnichar *** identifiers
5649     );
5650 
5651     nsresult (*GetMediumIdsForPasswordId)(
5652         IAppliance *pThis,
5653         PRUnichar * passwordId,
5654         PRUint32 *identifiersSize,
5655         PRUnichar *** identifiers
5656     );
5657 
5658     nsresult (*AddPasswords)(
5659         IAppliance *pThis,
5660         PRUint32 identifiersSize,
5661         PRUnichar ** identifiers,
5662         PRUint32 passwordsSize,
5663         PRUnichar ** passwords
5664     );
5665 
5666     nsresult (*InternalAndReservedMethod1IAppliance)(IAppliance *pThis);
5667 
5668     nsresult (*InternalAndReservedMethod2IAppliance)(IAppliance *pThis);
5669 
5670     nsresult (*InternalAndReservedMethod3IAppliance)(IAppliance *pThis);
5671 
5672     nsresult (*InternalAndReservedMethod4IAppliance)(IAppliance *pThis);
5673 
5674     nsresult (*InternalAndReservedMethod5IAppliance)(IAppliance *pThis);
5675 
5676     nsresult (*InternalAndReservedMethod6IAppliance)(IAppliance *pThis);
5677 
5678     nsresult (*InternalAndReservedMethod7IAppliance)(IAppliance *pThis);
5679 
5680     nsresult (*InternalAndReservedMethod8IAppliance)(IAppliance *pThis);
5681 
5682 };
5683 #    define IAppliance_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5684 #    define IAppliance_AddRef(p) ((p)->lpVtbl->AddRef(p))
5685 #    define IAppliance_Release(p) ((p)->lpVtbl->Release(p))
5686 #    define IAppliance_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
5687 #    define IAppliance_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
5688 #    define IAppliance_get_Disks(p, aDisks) ((p)->lpVtbl->GetDisks(p, aDisks))
5689 #    define IAppliance_GetDisks(p, aDisks) ((p)->lpVtbl->GetDisks(p, aDisks))
5690 #    define IAppliance_get_VirtualSystemDescriptions(p, aVirtualSystemDescriptions) ((p)->lpVtbl->GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions))
5691 #    define IAppliance_GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions) ((p)->lpVtbl->GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions))
5692 #    define IAppliance_get_Machines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
5693 #    define IAppliance_GetMachines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
5694 #    define IAppliance_get_Certificate(p, aCertificate) ((p)->lpVtbl->GetCertificate(p, aCertificate))
5695 #    define IAppliance_GetCertificate(p, aCertificate) ((p)->lpVtbl->GetCertificate(p, aCertificate))
5696 #    define IAppliance_Read(p, aFile, aProgress) ((p)->lpVtbl->Read(p, aFile, aProgress))
5697 #    define IAppliance_Interpret(p) ((p)->lpVtbl->Interpret(p))
5698 #    define IAppliance_ImportMachines(p, aOptions, aProgress) ((p)->lpVtbl->ImportMachines(p, aOptions, aProgress))
5699 #    define IAppliance_CreateVFSExplorer(p, aURI, aExplorer) ((p)->lpVtbl->CreateVFSExplorer(p, aURI, aExplorer))
5700 #    define IAppliance_Write(p, aFormat, aOptions, aPath, aProgress) ((p)->lpVtbl->Write(p, aFormat, aOptions, aPath, aProgress))
5701 #    define IAppliance_GetWarnings(p, aWarnings) ((p)->lpVtbl->GetWarnings(p, aWarnings))
5702 #    define IAppliance_GetPasswordIds(p, aIdentifiers) ((p)->lpVtbl->GetPasswordIds(p, aIdentifiers))
5703 #    define IAppliance_GetMediumIdsForPasswordId(p, aPasswordId, aIdentifiers) ((p)->lpVtbl->GetMediumIdsForPasswordId(p, aPasswordId, aIdentifiers))
5704 #    define IAppliance_AddPasswords(p, aIdentifiers, aPasswords) ((p)->lpVtbl->AddPasswords(p, aIdentifiers, aPasswords))
5705 #   endif /* VBOX_WITH_GLUE */
5706 
5707 interface IAppliance
5708 {
5709 #   ifndef VBOX_WITH_GLUE
5710     struct IAppliance_vtbl *vtbl;
5711 #   else /* VBOX_WITH_GLUE */
5712     CONST_VTBL struct IApplianceVtbl *lpVtbl;
5713 #   endif /* VBOX_WITH_GLUE */
5714 };
5715 /* End of struct IAppliance declaration */
5716 
5717 
5718 /* Start of struct IVirtualSystemDescription declaration */
5719 #   define IVIRTUALSYSTEMDESCRIPTION_IID_STR "ec49259c-1c50-4353-97a5-0fd92e2caac2"
5720 #   define IVIRTUALSYSTEMDESCRIPTION_IID { \
5721     0xec49259c, 0x1c50, 0x4353, \
5722     { 0x97, 0xa5, 0x0f, 0xd9, 0x2e, 0x2c, 0xaa, 0xc2 } \
5723 }
5724 /* COM compatibility */
5725 VBOX_EXTERN_CONST(nsIID, IID_IVirtualSystemDescription);
5726 #   ifndef VBOX_WITH_GLUE
5727 struct IVirtualSystemDescription_vtbl
5728 {
5729     struct nsISupports_vtbl nsisupports;
5730 
5731     nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
5732 
5733     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5734 
5735     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5736 
5737     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5738 
5739     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5740 
5741     nsresult (*GetDescription)(
5742         IVirtualSystemDescription *pThis,
5743         PRUint32 *typesSize,
5744         PRUint32** types,
5745         PRUint32 *refsSize,
5746         PRUnichar *** refs,
5747         PRUint32 *OVFValuesSize,
5748         PRUnichar *** OVFValues,
5749         PRUint32 *VBoxValuesSize,
5750         PRUnichar *** VBoxValues,
5751         PRUint32 *extraConfigValuesSize,
5752         PRUnichar *** extraConfigValues
5753     );
5754 
5755     nsresult (*GetDescriptionByType)(
5756         IVirtualSystemDescription *pThis,
5757         PRUint32 type,
5758         PRUint32 *typesSize,
5759         PRUint32** types,
5760         PRUint32 *refsSize,
5761         PRUnichar *** refs,
5762         PRUint32 *OVFValuesSize,
5763         PRUnichar *** OVFValues,
5764         PRUint32 *VBoxValuesSize,
5765         PRUnichar *** VBoxValues,
5766         PRUint32 *extraConfigValuesSize,
5767         PRUnichar *** extraConfigValues
5768     );
5769 
5770     nsresult (*RemoveDescriptionByType)(
5771         IVirtualSystemDescription *pThis,
5772         PRUint32 type
5773     );
5774 
5775     nsresult (*GetValuesByType)(
5776         IVirtualSystemDescription *pThis,
5777         PRUint32 type,
5778         PRUint32 which,
5779         PRUint32 *valuesSize,
5780         PRUnichar *** values
5781     );
5782 
5783     nsresult (*SetFinalValues)(
5784         IVirtualSystemDescription *pThis,
5785         PRUint32 enabledSize,
5786         PRBool* enabled,
5787         PRUint32 VBoxValuesSize,
5788         PRUnichar ** VBoxValues,
5789         PRUint32 extraConfigValuesSize,
5790         PRUnichar ** extraConfigValues
5791     );
5792 
5793     nsresult (*AddDescription)(
5794         IVirtualSystemDescription *pThis,
5795         PRUint32 type,
5796         PRUnichar * VBoxValue,
5797         PRUnichar * extraConfigValue
5798     );
5799 
5800     nsresult (*InternalAndReservedMethod1IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5801 
5802     nsresult (*InternalAndReservedMethod2IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5803 
5804     nsresult (*InternalAndReservedMethod3IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5805 
5806     nsresult (*InternalAndReservedMethod4IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5807 
5808 };
5809 #   else /* VBOX_WITH_GLUE */
5810 struct IVirtualSystemDescriptionVtbl
5811 {
5812     nsresult (*QueryInterface)(IVirtualSystemDescription *pThis, const nsID *iid, void **resultp);
5813     nsrefcnt (*AddRef)(IVirtualSystemDescription *pThis);
5814     nsrefcnt (*Release)(IVirtualSystemDescription *pThis);
5815     nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
5816 
5817     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5818 
5819     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5820 
5821     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5822 
5823     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5824 
5825     nsresult (*GetDescription)(
5826         IVirtualSystemDescription *pThis,
5827         PRUint32 *typesSize,
5828         PRUint32** types,
5829         PRUint32 *refsSize,
5830         PRUnichar *** refs,
5831         PRUint32 *OVFValuesSize,
5832         PRUnichar *** OVFValues,
5833         PRUint32 *VBoxValuesSize,
5834         PRUnichar *** VBoxValues,
5835         PRUint32 *extraConfigValuesSize,
5836         PRUnichar *** extraConfigValues
5837     );
5838 
5839     nsresult (*GetDescriptionByType)(
5840         IVirtualSystemDescription *pThis,
5841         PRUint32 type,
5842         PRUint32 *typesSize,
5843         PRUint32** types,
5844         PRUint32 *refsSize,
5845         PRUnichar *** refs,
5846         PRUint32 *OVFValuesSize,
5847         PRUnichar *** OVFValues,
5848         PRUint32 *VBoxValuesSize,
5849         PRUnichar *** VBoxValues,
5850         PRUint32 *extraConfigValuesSize,
5851         PRUnichar *** extraConfigValues
5852     );
5853 
5854     nsresult (*RemoveDescriptionByType)(
5855         IVirtualSystemDescription *pThis,
5856         PRUint32 type
5857     );
5858 
5859     nsresult (*GetValuesByType)(
5860         IVirtualSystemDescription *pThis,
5861         PRUint32 type,
5862         PRUint32 which,
5863         PRUint32 *valuesSize,
5864         PRUnichar *** values
5865     );
5866 
5867     nsresult (*SetFinalValues)(
5868         IVirtualSystemDescription *pThis,
5869         PRUint32 enabledSize,
5870         PRBool* enabled,
5871         PRUint32 VBoxValuesSize,
5872         PRUnichar ** VBoxValues,
5873         PRUint32 extraConfigValuesSize,
5874         PRUnichar ** extraConfigValues
5875     );
5876 
5877     nsresult (*AddDescription)(
5878         IVirtualSystemDescription *pThis,
5879         PRUint32 type,
5880         PRUnichar * VBoxValue,
5881         PRUnichar * extraConfigValue
5882     );
5883 
5884     nsresult (*InternalAndReservedMethod1IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5885 
5886     nsresult (*InternalAndReservedMethod2IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5887 
5888     nsresult (*InternalAndReservedMethod3IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5889 
5890     nsresult (*InternalAndReservedMethod4IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5891 
5892 };
5893 #    define IVirtualSystemDescription_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5894 #    define IVirtualSystemDescription_AddRef(p) ((p)->lpVtbl->AddRef(p))
5895 #    define IVirtualSystemDescription_Release(p) ((p)->lpVtbl->Release(p))
5896 #    define IVirtualSystemDescription_get_Count(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
5897 #    define IVirtualSystemDescription_GetCount(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
5898 #    define IVirtualSystemDescription_GetDescription(p, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->GetDescription(p, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues))
5899 #    define IVirtualSystemDescription_GetDescriptionByType(p, aType, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->GetDescriptionByType(p, aType, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues))
5900 #    define IVirtualSystemDescription_RemoveDescriptionByType(p, aType) ((p)->lpVtbl->RemoveDescriptionByType(p, aType))
5901 #    define IVirtualSystemDescription_GetValuesByType(p, aType, aWhich, aValues) ((p)->lpVtbl->GetValuesByType(p, aType, aWhich, aValues))
5902 #    define IVirtualSystemDescription_SetFinalValues(p, aEnabled, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->SetFinalValues(p, aEnabled, aVBoxValues, aExtraConfigValues))
5903 #    define IVirtualSystemDescription_AddDescription(p, aType, aVBoxValue, aExtraConfigValue) ((p)->lpVtbl->AddDescription(p, aType, aVBoxValue, aExtraConfigValue))
5904 #   endif /* VBOX_WITH_GLUE */
5905 
5906 interface IVirtualSystemDescription
5907 {
5908 #   ifndef VBOX_WITH_GLUE
5909     struct IVirtualSystemDescription_vtbl *vtbl;
5910 #   else /* VBOX_WITH_GLUE */
5911     CONST_VTBL struct IVirtualSystemDescriptionVtbl *lpVtbl;
5912 #   endif /* VBOX_WITH_GLUE */
5913 };
5914 /* End of struct IVirtualSystemDescription declaration */
5915 
5916 
5917 /* Start of struct IUnattended declaration */
5918 #   define IUNATTENDED_IID_STR "6f89464f-7193-426c-a41f-522e8f537fa0"
5919 #   define IUNATTENDED_IID { \
5920     0x6f89464f, 0x7193, 0x426c, \
5921     { 0xa4, 0x1f, 0x52, 0x2e, 0x8f, 0x53, 0x7f, 0xa0 } \
5922 }
5923 /* COM compatibility */
5924 VBOX_EXTERN_CONST(nsIID, IID_IUnattended);
5925 #   ifndef VBOX_WITH_GLUE
5926 struct IUnattended_vtbl
5927 {
5928     struct nsISupports_vtbl nsisupports;
5929 
5930     nsresult (*GetIsoPath)(IUnattended *pThis, PRUnichar * *isoPath);
5931     nsresult (*SetIsoPath)(IUnattended *pThis, PRUnichar * isoPath);
5932 
5933     nsresult (*GetMachine)(IUnattended *pThis, IMachine * *machine);
5934     nsresult (*SetMachine)(IUnattended *pThis, IMachine * machine);
5935 
5936     nsresult (*GetUser)(IUnattended *pThis, PRUnichar * *user);
5937     nsresult (*SetUser)(IUnattended *pThis, PRUnichar * user);
5938 
5939     nsresult (*GetPassword)(IUnattended *pThis, PRUnichar * *password);
5940     nsresult (*SetPassword)(IUnattended *pThis, PRUnichar * password);
5941 
5942     nsresult (*GetFullUserName)(IUnattended *pThis, PRUnichar * *fullUserName);
5943     nsresult (*SetFullUserName)(IUnattended *pThis, PRUnichar * fullUserName);
5944 
5945     nsresult (*GetProductKey)(IUnattended *pThis, PRUnichar * *productKey);
5946     nsresult (*SetProductKey)(IUnattended *pThis, PRUnichar * productKey);
5947 
5948     nsresult (*GetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * *additionsIsoPath);
5949     nsresult (*SetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * additionsIsoPath);
5950 
5951     nsresult (*GetInstallGuestAdditions)(IUnattended *pThis, PRBool *installGuestAdditions);
5952     nsresult (*SetInstallGuestAdditions)(IUnattended *pThis, PRBool installGuestAdditions);
5953 
5954     nsresult (*GetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * *validationKitIsoPath);
5955     nsresult (*SetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * validationKitIsoPath);
5956 
5957     nsresult (*GetInstallTestExecService)(IUnattended *pThis, PRBool *installTestExecService);
5958     nsresult (*SetInstallTestExecService)(IUnattended *pThis, PRBool installTestExecService);
5959 
5960     nsresult (*GetTimeZone)(IUnattended *pThis, PRUnichar * *timeZone);
5961     nsresult (*SetTimeZone)(IUnattended *pThis, PRUnichar * timeZone);
5962 
5963     nsresult (*GetLocale)(IUnattended *pThis, PRUnichar * *locale);
5964     nsresult (*SetLocale)(IUnattended *pThis, PRUnichar * locale);
5965 
5966     nsresult (*GetLanguage)(IUnattended *pThis, PRUnichar * *language);
5967     nsresult (*SetLanguage)(IUnattended *pThis, PRUnichar * language);
5968 
5969     nsresult (*GetCountry)(IUnattended *pThis, PRUnichar * *country);
5970     nsresult (*SetCountry)(IUnattended *pThis, PRUnichar * country);
5971 
5972     nsresult (*GetProxy)(IUnattended *pThis, PRUnichar * *proxy);
5973     nsresult (*SetProxy)(IUnattended *pThis, PRUnichar * proxy);
5974 
5975     nsresult (*GetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * *packageSelectionAdjustments);
5976     nsresult (*SetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * packageSelectionAdjustments);
5977 
5978     nsresult (*GetHostname)(IUnattended *pThis, PRUnichar * *hostname);
5979     nsresult (*SetHostname)(IUnattended *pThis, PRUnichar * hostname);
5980 
5981     nsresult (*GetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * *auxiliaryBasePath);
5982     nsresult (*SetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * auxiliaryBasePath);
5983 
5984     nsresult (*GetImageIndex)(IUnattended *pThis, PRUint32 *imageIndex);
5985     nsresult (*SetImageIndex)(IUnattended *pThis, PRUint32 imageIndex);
5986 
5987     nsresult (*GetScriptTemplatePath)(IUnattended *pThis, PRUnichar * *scriptTemplatePath);
5988     nsresult (*SetScriptTemplatePath)(IUnattended *pThis, PRUnichar * scriptTemplatePath);
5989 
5990     nsresult (*GetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * *postInstallScriptTemplatePath);
5991     nsresult (*SetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * postInstallScriptTemplatePath);
5992 
5993     nsresult (*GetPostInstallCommand)(IUnattended *pThis, PRUnichar * *postInstallCommand);
5994     nsresult (*SetPostInstallCommand)(IUnattended *pThis, PRUnichar * postInstallCommand);
5995 
5996     nsresult (*GetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * *extraInstallKernelParameters);
5997     nsresult (*SetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * extraInstallKernelParameters);
5998 
5999     nsresult (*GetDetectedOSTypeId)(IUnattended *pThis, PRUnichar * *detectedOSTypeId);
6000 
6001     nsresult (*GetDetectedOSVersion)(IUnattended *pThis, PRUnichar * *detectedOSVersion);
6002 
6003     nsresult (*GetDetectedOSFlavor)(IUnattended *pThis, PRUnichar * *detectedOSFlavor);
6004 
6005     nsresult (*GetDetectedOSLanguages)(IUnattended *pThis, PRUnichar * *detectedOSLanguages);
6006 
6007     nsresult (*GetDetectedOSHints)(IUnattended *pThis, PRUnichar * *detectedOSHints);
6008 
6009     nsresult (*GetInternalAndReservedAttribute1IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6010 
6011     nsresult (*GetInternalAndReservedAttribute2IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6012 
6013     nsresult (*GetInternalAndReservedAttribute3IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6014 
6015     nsresult (*GetInternalAndReservedAttribute4IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6016 
6017     nsresult (*GetInternalAndReservedAttribute5IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6018 
6019     nsresult (*GetInternalAndReservedAttribute6IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6020 
6021     nsresult (*GetInternalAndReservedAttribute7IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6022 
6023     nsresult (*GetInternalAndReservedAttribute8IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6024 
6025     nsresult (*GetInternalAndReservedAttribute9IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6026 
6027     nsresult (*GetInternalAndReservedAttribute10IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6028 
6029     nsresult (*GetInternalAndReservedAttribute11IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6030 
6031     nsresult (*GetInternalAndReservedAttribute12IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6032 
6033     nsresult (*GetInternalAndReservedAttribute13IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6034 
6035     nsresult (*GetInternalAndReservedAttribute14IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6036 
6037     nsresult (*GetInternalAndReservedAttribute15IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6038 
6039     nsresult (*GetInternalAndReservedAttribute16IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6040 
6041     nsresult (*DetectIsoOS)(IUnattended *pThis );
6042 
6043     nsresult (*Prepare)(IUnattended *pThis );
6044 
6045     nsresult (*ConstructMedia)(IUnattended *pThis );
6046 
6047     nsresult (*ReconfigureVM)(IUnattended *pThis );
6048 
6049     nsresult (*Done)(IUnattended *pThis );
6050 
6051     nsresult (*InternalAndReservedMethod1IUnattended)(IUnattended *pThis);
6052 
6053     nsresult (*InternalAndReservedMethod2IUnattended)(IUnattended *pThis);
6054 
6055     nsresult (*InternalAndReservedMethod3IUnattended)(IUnattended *pThis);
6056 
6057     nsresult (*InternalAndReservedMethod4IUnattended)(IUnattended *pThis);
6058 
6059 };
6060 #   else /* VBOX_WITH_GLUE */
6061 struct IUnattendedVtbl
6062 {
6063     nsresult (*QueryInterface)(IUnattended *pThis, const nsID *iid, void **resultp);
6064     nsrefcnt (*AddRef)(IUnattended *pThis);
6065     nsrefcnt (*Release)(IUnattended *pThis);
6066     nsresult (*GetIsoPath)(IUnattended *pThis, PRUnichar * *isoPath);
6067     nsresult (*SetIsoPath)(IUnattended *pThis, PRUnichar * isoPath);
6068 
6069     nsresult (*GetMachine)(IUnattended *pThis, IMachine * *machine);
6070     nsresult (*SetMachine)(IUnattended *pThis, IMachine * machine);
6071 
6072     nsresult (*GetUser)(IUnattended *pThis, PRUnichar * *user);
6073     nsresult (*SetUser)(IUnattended *pThis, PRUnichar * user);
6074 
6075     nsresult (*GetPassword)(IUnattended *pThis, PRUnichar * *password);
6076     nsresult (*SetPassword)(IUnattended *pThis, PRUnichar * password);
6077 
6078     nsresult (*GetFullUserName)(IUnattended *pThis, PRUnichar * *fullUserName);
6079     nsresult (*SetFullUserName)(IUnattended *pThis, PRUnichar * fullUserName);
6080 
6081     nsresult (*GetProductKey)(IUnattended *pThis, PRUnichar * *productKey);
6082     nsresult (*SetProductKey)(IUnattended *pThis, PRUnichar * productKey);
6083 
6084     nsresult (*GetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * *additionsIsoPath);
6085     nsresult (*SetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * additionsIsoPath);
6086 
6087     nsresult (*GetInstallGuestAdditions)(IUnattended *pThis, PRBool *installGuestAdditions);
6088     nsresult (*SetInstallGuestAdditions)(IUnattended *pThis, PRBool installGuestAdditions);
6089 
6090     nsresult (*GetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * *validationKitIsoPath);
6091     nsresult (*SetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * validationKitIsoPath);
6092 
6093     nsresult (*GetInstallTestExecService)(IUnattended *pThis, PRBool *installTestExecService);
6094     nsresult (*SetInstallTestExecService)(IUnattended *pThis, PRBool installTestExecService);
6095 
6096     nsresult (*GetTimeZone)(IUnattended *pThis, PRUnichar * *timeZone);
6097     nsresult (*SetTimeZone)(IUnattended *pThis, PRUnichar * timeZone);
6098 
6099     nsresult (*GetLocale)(IUnattended *pThis, PRUnichar * *locale);
6100     nsresult (*SetLocale)(IUnattended *pThis, PRUnichar * locale);
6101 
6102     nsresult (*GetLanguage)(IUnattended *pThis, PRUnichar * *language);
6103     nsresult (*SetLanguage)(IUnattended *pThis, PRUnichar * language);
6104 
6105     nsresult (*GetCountry)(IUnattended *pThis, PRUnichar * *country);
6106     nsresult (*SetCountry)(IUnattended *pThis, PRUnichar * country);
6107 
6108     nsresult (*GetProxy)(IUnattended *pThis, PRUnichar * *proxy);
6109     nsresult (*SetProxy)(IUnattended *pThis, PRUnichar * proxy);
6110 
6111     nsresult (*GetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * *packageSelectionAdjustments);
6112     nsresult (*SetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * packageSelectionAdjustments);
6113 
6114     nsresult (*GetHostname)(IUnattended *pThis, PRUnichar * *hostname);
6115     nsresult (*SetHostname)(IUnattended *pThis, PRUnichar * hostname);
6116 
6117     nsresult (*GetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * *auxiliaryBasePath);
6118     nsresult (*SetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * auxiliaryBasePath);
6119 
6120     nsresult (*GetImageIndex)(IUnattended *pThis, PRUint32 *imageIndex);
6121     nsresult (*SetImageIndex)(IUnattended *pThis, PRUint32 imageIndex);
6122 
6123     nsresult (*GetScriptTemplatePath)(IUnattended *pThis, PRUnichar * *scriptTemplatePath);
6124     nsresult (*SetScriptTemplatePath)(IUnattended *pThis, PRUnichar * scriptTemplatePath);
6125 
6126     nsresult (*GetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * *postInstallScriptTemplatePath);
6127     nsresult (*SetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * postInstallScriptTemplatePath);
6128 
6129     nsresult (*GetPostInstallCommand)(IUnattended *pThis, PRUnichar * *postInstallCommand);
6130     nsresult (*SetPostInstallCommand)(IUnattended *pThis, PRUnichar * postInstallCommand);
6131 
6132     nsresult (*GetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * *extraInstallKernelParameters);
6133     nsresult (*SetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * extraInstallKernelParameters);
6134 
6135     nsresult (*GetDetectedOSTypeId)(IUnattended *pThis, PRUnichar * *detectedOSTypeId);
6136 
6137     nsresult (*GetDetectedOSVersion)(IUnattended *pThis, PRUnichar * *detectedOSVersion);
6138 
6139     nsresult (*GetDetectedOSFlavor)(IUnattended *pThis, PRUnichar * *detectedOSFlavor);
6140 
6141     nsresult (*GetDetectedOSLanguages)(IUnattended *pThis, PRUnichar * *detectedOSLanguages);
6142 
6143     nsresult (*GetDetectedOSHints)(IUnattended *pThis, PRUnichar * *detectedOSHints);
6144 
6145     nsresult (*GetInternalAndReservedAttribute1IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6146 
6147     nsresult (*GetInternalAndReservedAttribute2IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6148 
6149     nsresult (*GetInternalAndReservedAttribute3IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6150 
6151     nsresult (*GetInternalAndReservedAttribute4IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6152 
6153     nsresult (*GetInternalAndReservedAttribute5IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6154 
6155     nsresult (*GetInternalAndReservedAttribute6IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6156 
6157     nsresult (*GetInternalAndReservedAttribute7IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6158 
6159     nsresult (*GetInternalAndReservedAttribute8IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6160 
6161     nsresult (*GetInternalAndReservedAttribute9IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6162 
6163     nsresult (*GetInternalAndReservedAttribute10IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6164 
6165     nsresult (*GetInternalAndReservedAttribute11IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6166 
6167     nsresult (*GetInternalAndReservedAttribute12IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6168 
6169     nsresult (*GetInternalAndReservedAttribute13IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6170 
6171     nsresult (*GetInternalAndReservedAttribute14IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6172 
6173     nsresult (*GetInternalAndReservedAttribute15IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6174 
6175     nsresult (*GetInternalAndReservedAttribute16IUnattended)(IUnattended *pThis, PRUint32 *reserved);
6176 
6177     nsresult (*DetectIsoOS)(IUnattended *pThis );
6178 
6179     nsresult (*Prepare)(IUnattended *pThis );
6180 
6181     nsresult (*ConstructMedia)(IUnattended *pThis );
6182 
6183     nsresult (*ReconfigureVM)(IUnattended *pThis );
6184 
6185     nsresult (*Done)(IUnattended *pThis );
6186 
6187     nsresult (*InternalAndReservedMethod1IUnattended)(IUnattended *pThis);
6188 
6189     nsresult (*InternalAndReservedMethod2IUnattended)(IUnattended *pThis);
6190 
6191     nsresult (*InternalAndReservedMethod3IUnattended)(IUnattended *pThis);
6192 
6193     nsresult (*InternalAndReservedMethod4IUnattended)(IUnattended *pThis);
6194 
6195 };
6196 #    define IUnattended_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6197 #    define IUnattended_AddRef(p) ((p)->lpVtbl->AddRef(p))
6198 #    define IUnattended_Release(p) ((p)->lpVtbl->Release(p))
6199 #    define IUnattended_get_IsoPath(p, aIsoPath) ((p)->lpVtbl->GetIsoPath(p, aIsoPath))
6200 #    define IUnattended_GetIsoPath(p, aIsoPath) ((p)->lpVtbl->GetIsoPath(p, aIsoPath))
6201 #    define IUnattended_put_IsoPath(p, aIsoPath) ((p)->lpVtbl->SetIsoPath(p, aIsoPath))
6202 #    define IUnattended_SetIsoPath(p, aIsoPath) ((p)->lpVtbl->SetIsoPath(p, aIsoPath))
6203 #    define IUnattended_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
6204 #    define IUnattended_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
6205 #    define IUnattended_put_Machine(p, aMachine) ((p)->lpVtbl->SetMachine(p, aMachine))
6206 #    define IUnattended_SetMachine(p, aMachine) ((p)->lpVtbl->SetMachine(p, aMachine))
6207 #    define IUnattended_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
6208 #    define IUnattended_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
6209 #    define IUnattended_put_User(p, aUser) ((p)->lpVtbl->SetUser(p, aUser))
6210 #    define IUnattended_SetUser(p, aUser) ((p)->lpVtbl->SetUser(p, aUser))
6211 #    define IUnattended_get_Password(p, aPassword) ((p)->lpVtbl->GetPassword(p, aPassword))
6212 #    define IUnattended_GetPassword(p, aPassword) ((p)->lpVtbl->GetPassword(p, aPassword))
6213 #    define IUnattended_put_Password(p, aPassword) ((p)->lpVtbl->SetPassword(p, aPassword))
6214 #    define IUnattended_SetPassword(p, aPassword) ((p)->lpVtbl->SetPassword(p, aPassword))
6215 #    define IUnattended_get_FullUserName(p, aFullUserName) ((p)->lpVtbl->GetFullUserName(p, aFullUserName))
6216 #    define IUnattended_GetFullUserName(p, aFullUserName) ((p)->lpVtbl->GetFullUserName(p, aFullUserName))
6217 #    define IUnattended_put_FullUserName(p, aFullUserName) ((p)->lpVtbl->SetFullUserName(p, aFullUserName))
6218 #    define IUnattended_SetFullUserName(p, aFullUserName) ((p)->lpVtbl->SetFullUserName(p, aFullUserName))
6219 #    define IUnattended_get_ProductKey(p, aProductKey) ((p)->lpVtbl->GetProductKey(p, aProductKey))
6220 #    define IUnattended_GetProductKey(p, aProductKey) ((p)->lpVtbl->GetProductKey(p, aProductKey))
6221 #    define IUnattended_put_ProductKey(p, aProductKey) ((p)->lpVtbl->SetProductKey(p, aProductKey))
6222 #    define IUnattended_SetProductKey(p, aProductKey) ((p)->lpVtbl->SetProductKey(p, aProductKey))
6223 #    define IUnattended_get_AdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->GetAdditionsIsoPath(p, aAdditionsIsoPath))
6224 #    define IUnattended_GetAdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->GetAdditionsIsoPath(p, aAdditionsIsoPath))
6225 #    define IUnattended_put_AdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->SetAdditionsIsoPath(p, aAdditionsIsoPath))
6226 #    define IUnattended_SetAdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->SetAdditionsIsoPath(p, aAdditionsIsoPath))
6227 #    define IUnattended_get_InstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->GetInstallGuestAdditions(p, aInstallGuestAdditions))
6228 #    define IUnattended_GetInstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->GetInstallGuestAdditions(p, aInstallGuestAdditions))
6229 #    define IUnattended_put_InstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->SetInstallGuestAdditions(p, aInstallGuestAdditions))
6230 #    define IUnattended_SetInstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->SetInstallGuestAdditions(p, aInstallGuestAdditions))
6231 #    define IUnattended_get_ValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->GetValidationKitIsoPath(p, aValidationKitIsoPath))
6232 #    define IUnattended_GetValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->GetValidationKitIsoPath(p, aValidationKitIsoPath))
6233 #    define IUnattended_put_ValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->SetValidationKitIsoPath(p, aValidationKitIsoPath))
6234 #    define IUnattended_SetValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->SetValidationKitIsoPath(p, aValidationKitIsoPath))
6235 #    define IUnattended_get_InstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->GetInstallTestExecService(p, aInstallTestExecService))
6236 #    define IUnattended_GetInstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->GetInstallTestExecService(p, aInstallTestExecService))
6237 #    define IUnattended_put_InstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->SetInstallTestExecService(p, aInstallTestExecService))
6238 #    define IUnattended_SetInstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->SetInstallTestExecService(p, aInstallTestExecService))
6239 #    define IUnattended_get_TimeZone(p, aTimeZone) ((p)->lpVtbl->GetTimeZone(p, aTimeZone))
6240 #    define IUnattended_GetTimeZone(p, aTimeZone) ((p)->lpVtbl->GetTimeZone(p, aTimeZone))
6241 #    define IUnattended_put_TimeZone(p, aTimeZone) ((p)->lpVtbl->SetTimeZone(p, aTimeZone))
6242 #    define IUnattended_SetTimeZone(p, aTimeZone) ((p)->lpVtbl->SetTimeZone(p, aTimeZone))
6243 #    define IUnattended_get_Locale(p, aLocale) ((p)->lpVtbl->GetLocale(p, aLocale))
6244 #    define IUnattended_GetLocale(p, aLocale) ((p)->lpVtbl->GetLocale(p, aLocale))
6245 #    define IUnattended_put_Locale(p, aLocale) ((p)->lpVtbl->SetLocale(p, aLocale))
6246 #    define IUnattended_SetLocale(p, aLocale) ((p)->lpVtbl->SetLocale(p, aLocale))
6247 #    define IUnattended_get_Language(p, aLanguage) ((p)->lpVtbl->GetLanguage(p, aLanguage))
6248 #    define IUnattended_GetLanguage(p, aLanguage) ((p)->lpVtbl->GetLanguage(p, aLanguage))
6249 #    define IUnattended_put_Language(p, aLanguage) ((p)->lpVtbl->SetLanguage(p, aLanguage))
6250 #    define IUnattended_SetLanguage(p, aLanguage) ((p)->lpVtbl->SetLanguage(p, aLanguage))
6251 #    define IUnattended_get_Country(p, aCountry) ((p)->lpVtbl->GetCountry(p, aCountry))
6252 #    define IUnattended_GetCountry(p, aCountry) ((p)->lpVtbl->GetCountry(p, aCountry))
6253 #    define IUnattended_put_Country(p, aCountry) ((p)->lpVtbl->SetCountry(p, aCountry))
6254 #    define IUnattended_SetCountry(p, aCountry) ((p)->lpVtbl->SetCountry(p, aCountry))
6255 #    define IUnattended_get_Proxy(p, aProxy) ((p)->lpVtbl->GetProxy(p, aProxy))
6256 #    define IUnattended_GetProxy(p, aProxy) ((p)->lpVtbl->GetProxy(p, aProxy))
6257 #    define IUnattended_put_Proxy(p, aProxy) ((p)->lpVtbl->SetProxy(p, aProxy))
6258 #    define IUnattended_SetProxy(p, aProxy) ((p)->lpVtbl->SetProxy(p, aProxy))
6259 #    define IUnattended_get_PackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
6260 #    define IUnattended_GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
6261 #    define IUnattended_put_PackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
6262 #    define IUnattended_SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
6263 #    define IUnattended_get_Hostname(p, aHostname) ((p)->lpVtbl->GetHostname(p, aHostname))
6264 #    define IUnattended_GetHostname(p, aHostname) ((p)->lpVtbl->GetHostname(p, aHostname))
6265 #    define IUnattended_put_Hostname(p, aHostname) ((p)->lpVtbl->SetHostname(p, aHostname))
6266 #    define IUnattended_SetHostname(p, aHostname) ((p)->lpVtbl->SetHostname(p, aHostname))
6267 #    define IUnattended_get_AuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->GetAuxiliaryBasePath(p, aAuxiliaryBasePath))
6268 #    define IUnattended_GetAuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->GetAuxiliaryBasePath(p, aAuxiliaryBasePath))
6269 #    define IUnattended_put_AuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->SetAuxiliaryBasePath(p, aAuxiliaryBasePath))
6270 #    define IUnattended_SetAuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->SetAuxiliaryBasePath(p, aAuxiliaryBasePath))
6271 #    define IUnattended_get_ImageIndex(p, aImageIndex) ((p)->lpVtbl->GetImageIndex(p, aImageIndex))
6272 #    define IUnattended_GetImageIndex(p, aImageIndex) ((p)->lpVtbl->GetImageIndex(p, aImageIndex))
6273 #    define IUnattended_put_ImageIndex(p, aImageIndex) ((p)->lpVtbl->SetImageIndex(p, aImageIndex))
6274 #    define IUnattended_SetImageIndex(p, aImageIndex) ((p)->lpVtbl->SetImageIndex(p, aImageIndex))
6275 #    define IUnattended_get_ScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->GetScriptTemplatePath(p, aScriptTemplatePath))
6276 #    define IUnattended_GetScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->GetScriptTemplatePath(p, aScriptTemplatePath))
6277 #    define IUnattended_put_ScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->SetScriptTemplatePath(p, aScriptTemplatePath))
6278 #    define IUnattended_SetScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->SetScriptTemplatePath(p, aScriptTemplatePath))
6279 #    define IUnattended_get_PostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6280 #    define IUnattended_GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6281 #    define IUnattended_put_PostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6282 #    define IUnattended_SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6283 #    define IUnattended_get_PostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->GetPostInstallCommand(p, aPostInstallCommand))
6284 #    define IUnattended_GetPostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->GetPostInstallCommand(p, aPostInstallCommand))
6285 #    define IUnattended_put_PostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->SetPostInstallCommand(p, aPostInstallCommand))
6286 #    define IUnattended_SetPostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->SetPostInstallCommand(p, aPostInstallCommand))
6287 #    define IUnattended_get_ExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6288 #    define IUnattended_GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6289 #    define IUnattended_put_ExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6290 #    define IUnattended_SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6291 #    define IUnattended_get_DetectedOSTypeId(p, aDetectedOSTypeId) ((p)->lpVtbl->GetDetectedOSTypeId(p, aDetectedOSTypeId))
6292 #    define IUnattended_GetDetectedOSTypeId(p, aDetectedOSTypeId) ((p)->lpVtbl->GetDetectedOSTypeId(p, aDetectedOSTypeId))
6293 #    define IUnattended_get_DetectedOSVersion(p, aDetectedOSVersion) ((p)->lpVtbl->GetDetectedOSVersion(p, aDetectedOSVersion))
6294 #    define IUnattended_GetDetectedOSVersion(p, aDetectedOSVersion) ((p)->lpVtbl->GetDetectedOSVersion(p, aDetectedOSVersion))
6295 #    define IUnattended_get_DetectedOSFlavor(p, aDetectedOSFlavor) ((p)->lpVtbl->GetDetectedOSFlavor(p, aDetectedOSFlavor))
6296 #    define IUnattended_GetDetectedOSFlavor(p, aDetectedOSFlavor) ((p)->lpVtbl->GetDetectedOSFlavor(p, aDetectedOSFlavor))
6297 #    define IUnattended_get_DetectedOSLanguages(p, aDetectedOSLanguages) ((p)->lpVtbl->GetDetectedOSLanguages(p, aDetectedOSLanguages))
6298 #    define IUnattended_GetDetectedOSLanguages(p, aDetectedOSLanguages) ((p)->lpVtbl->GetDetectedOSLanguages(p, aDetectedOSLanguages))
6299 #    define IUnattended_get_DetectedOSHints(p, aDetectedOSHints) ((p)->lpVtbl->GetDetectedOSHints(p, aDetectedOSHints))
6300 #    define IUnattended_GetDetectedOSHints(p, aDetectedOSHints) ((p)->lpVtbl->GetDetectedOSHints(p, aDetectedOSHints))
6301 #    define IUnattended_DetectIsoOS(p) ((p)->lpVtbl->DetectIsoOS(p))
6302 #    define IUnattended_Prepare(p) ((p)->lpVtbl->Prepare(p))
6303 #    define IUnattended_ConstructMedia(p) ((p)->lpVtbl->ConstructMedia(p))
6304 #    define IUnattended_ReconfigureVM(p) ((p)->lpVtbl->ReconfigureVM(p))
6305 #    define IUnattended_Done(p) ((p)->lpVtbl->Done(p))
6306 #   endif /* VBOX_WITH_GLUE */
6307 
6308 interface IUnattended
6309 {
6310 #   ifndef VBOX_WITH_GLUE
6311     struct IUnattended_vtbl *vtbl;
6312 #   else /* VBOX_WITH_GLUE */
6313     CONST_VTBL struct IUnattendedVtbl *lpVtbl;
6314 #   endif /* VBOX_WITH_GLUE */
6315 };
6316 /* End of struct IUnattended declaration */
6317 
6318 
6319 /* Start of struct IBIOSSettings declaration */
6320 #   define IBIOSSETTINGS_IID_STR "f13f667d-3624-4ac5-99c1-3d982ebd8d98"
6321 #   define IBIOSSETTINGS_IID { \
6322     0xf13f667d, 0x3624, 0x4ac5, \
6323     { 0x99, 0xc1, 0x3d, 0x98, 0x2e, 0xbd, 0x8d, 0x98 } \
6324 }
6325 /* COM compatibility */
6326 VBOX_EXTERN_CONST(nsIID, IID_IBIOSSettings);
6327 #   ifndef VBOX_WITH_GLUE
6328 struct IBIOSSettings_vtbl
6329 {
6330     struct nsISupports_vtbl nsisupports;
6331 
6332     nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
6333     nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
6334 
6335     nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
6336     nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
6337 
6338     nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
6339     nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
6340 
6341     nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
6342     nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
6343 
6344     nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
6345     nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
6346 
6347     nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
6348     nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
6349 
6350     nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
6351     nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
6352 
6353     nsresult (*GetAPICMode)(IBIOSSettings *pThis, PRUint32 *APICMode);
6354     nsresult (*SetAPICMode)(IBIOSSettings *pThis, PRUint32 APICMode);
6355 
6356     nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
6357     nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
6358 
6359     nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
6360     nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
6361 
6362     nsresult (*GetNonVolatileStorageFile)(IBIOSSettings *pThis, PRUnichar * *nonVolatileStorageFile);
6363 
6364     nsresult (*GetInternalAndReservedAttribute1IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6365 
6366     nsresult (*GetInternalAndReservedAttribute2IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6367 
6368     nsresult (*GetInternalAndReservedAttribute3IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6369 
6370     nsresult (*GetInternalAndReservedAttribute4IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6371 
6372     nsresult (*GetInternalAndReservedAttribute5IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6373 
6374     nsresult (*GetInternalAndReservedAttribute6IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6375 
6376     nsresult (*GetInternalAndReservedAttribute7IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6377 
6378     nsresult (*GetInternalAndReservedAttribute8IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6379 
6380     nsresult (*InternalAndReservedMethod1IBIOSSettings)(IBIOSSettings *pThis);
6381 
6382 };
6383 #   else /* VBOX_WITH_GLUE */
6384 struct IBIOSSettingsVtbl
6385 {
6386     nsresult (*QueryInterface)(IBIOSSettings *pThis, const nsID *iid, void **resultp);
6387     nsrefcnt (*AddRef)(IBIOSSettings *pThis);
6388     nsrefcnt (*Release)(IBIOSSettings *pThis);
6389     nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
6390     nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
6391 
6392     nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
6393     nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
6394 
6395     nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
6396     nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
6397 
6398     nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
6399     nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
6400 
6401     nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
6402     nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
6403 
6404     nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
6405     nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
6406 
6407     nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
6408     nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
6409 
6410     nsresult (*GetAPICMode)(IBIOSSettings *pThis, PRUint32 *APICMode);
6411     nsresult (*SetAPICMode)(IBIOSSettings *pThis, PRUint32 APICMode);
6412 
6413     nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
6414     nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
6415 
6416     nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
6417     nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
6418 
6419     nsresult (*GetNonVolatileStorageFile)(IBIOSSettings *pThis, PRUnichar * *nonVolatileStorageFile);
6420 
6421     nsresult (*GetInternalAndReservedAttribute1IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6422 
6423     nsresult (*GetInternalAndReservedAttribute2IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6424 
6425     nsresult (*GetInternalAndReservedAttribute3IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6426 
6427     nsresult (*GetInternalAndReservedAttribute4IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6428 
6429     nsresult (*GetInternalAndReservedAttribute5IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6430 
6431     nsresult (*GetInternalAndReservedAttribute6IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6432 
6433     nsresult (*GetInternalAndReservedAttribute7IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6434 
6435     nsresult (*GetInternalAndReservedAttribute8IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6436 
6437     nsresult (*InternalAndReservedMethod1IBIOSSettings)(IBIOSSettings *pThis);
6438 
6439 };
6440 #    define IBIOSSettings_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6441 #    define IBIOSSettings_AddRef(p) ((p)->lpVtbl->AddRef(p))
6442 #    define IBIOSSettings_Release(p) ((p)->lpVtbl->Release(p))
6443 #    define IBIOSSettings_get_LogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->GetLogoFadeIn(p, aLogoFadeIn))
6444 #    define IBIOSSettings_GetLogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->GetLogoFadeIn(p, aLogoFadeIn))
6445 #    define IBIOSSettings_put_LogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->SetLogoFadeIn(p, aLogoFadeIn))
6446 #    define IBIOSSettings_SetLogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->SetLogoFadeIn(p, aLogoFadeIn))
6447 #    define IBIOSSettings_get_LogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->GetLogoFadeOut(p, aLogoFadeOut))
6448 #    define IBIOSSettings_GetLogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->GetLogoFadeOut(p, aLogoFadeOut))
6449 #    define IBIOSSettings_put_LogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->SetLogoFadeOut(p, aLogoFadeOut))
6450 #    define IBIOSSettings_SetLogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->SetLogoFadeOut(p, aLogoFadeOut))
6451 #    define IBIOSSettings_get_LogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->GetLogoDisplayTime(p, aLogoDisplayTime))
6452 #    define IBIOSSettings_GetLogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->GetLogoDisplayTime(p, aLogoDisplayTime))
6453 #    define IBIOSSettings_put_LogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->SetLogoDisplayTime(p, aLogoDisplayTime))
6454 #    define IBIOSSettings_SetLogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->SetLogoDisplayTime(p, aLogoDisplayTime))
6455 #    define IBIOSSettings_get_LogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->GetLogoImagePath(p, aLogoImagePath))
6456 #    define IBIOSSettings_GetLogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->GetLogoImagePath(p, aLogoImagePath))
6457 #    define IBIOSSettings_put_LogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->SetLogoImagePath(p, aLogoImagePath))
6458 #    define IBIOSSettings_SetLogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->SetLogoImagePath(p, aLogoImagePath))
6459 #    define IBIOSSettings_get_BootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->GetBootMenuMode(p, aBootMenuMode))
6460 #    define IBIOSSettings_GetBootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->GetBootMenuMode(p, aBootMenuMode))
6461 #    define IBIOSSettings_put_BootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->SetBootMenuMode(p, aBootMenuMode))
6462 #    define IBIOSSettings_SetBootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->SetBootMenuMode(p, aBootMenuMode))
6463 #    define IBIOSSettings_get_ACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->GetACPIEnabled(p, aACPIEnabled))
6464 #    define IBIOSSettings_GetACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->GetACPIEnabled(p, aACPIEnabled))
6465 #    define IBIOSSettings_put_ACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->SetACPIEnabled(p, aACPIEnabled))
6466 #    define IBIOSSettings_SetACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->SetACPIEnabled(p, aACPIEnabled))
6467 #    define IBIOSSettings_get_IOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->GetIOAPICEnabled(p, aIOAPICEnabled))
6468 #    define IBIOSSettings_GetIOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->GetIOAPICEnabled(p, aIOAPICEnabled))
6469 #    define IBIOSSettings_put_IOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->SetIOAPICEnabled(p, aIOAPICEnabled))
6470 #    define IBIOSSettings_SetIOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->SetIOAPICEnabled(p, aIOAPICEnabled))
6471 #    define IBIOSSettings_get_APICMode(p, aAPICMode) ((p)->lpVtbl->GetAPICMode(p, aAPICMode))
6472 #    define IBIOSSettings_GetAPICMode(p, aAPICMode) ((p)->lpVtbl->GetAPICMode(p, aAPICMode))
6473 #    define IBIOSSettings_put_APICMode(p, aAPICMode) ((p)->lpVtbl->SetAPICMode(p, aAPICMode))
6474 #    define IBIOSSettings_SetAPICMode(p, aAPICMode) ((p)->lpVtbl->SetAPICMode(p, aAPICMode))
6475 #    define IBIOSSettings_get_TimeOffset(p, aTimeOffset) ((p)->lpVtbl->GetTimeOffset(p, aTimeOffset))
6476 #    define IBIOSSettings_GetTimeOffset(p, aTimeOffset) ((p)->lpVtbl->GetTimeOffset(p, aTimeOffset))
6477 #    define IBIOSSettings_put_TimeOffset(p, aTimeOffset) ((p)->lpVtbl->SetTimeOffset(p, aTimeOffset))
6478 #    define IBIOSSettings_SetTimeOffset(p, aTimeOffset) ((p)->lpVtbl->SetTimeOffset(p, aTimeOffset))
6479 #    define IBIOSSettings_get_PXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->GetPXEDebugEnabled(p, aPXEDebugEnabled))
6480 #    define IBIOSSettings_GetPXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->GetPXEDebugEnabled(p, aPXEDebugEnabled))
6481 #    define IBIOSSettings_put_PXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->SetPXEDebugEnabled(p, aPXEDebugEnabled))
6482 #    define IBIOSSettings_SetPXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->SetPXEDebugEnabled(p, aPXEDebugEnabled))
6483 #    define IBIOSSettings_get_NonVolatileStorageFile(p, aNonVolatileStorageFile) ((p)->lpVtbl->GetNonVolatileStorageFile(p, aNonVolatileStorageFile))
6484 #    define IBIOSSettings_GetNonVolatileStorageFile(p, aNonVolatileStorageFile) ((p)->lpVtbl->GetNonVolatileStorageFile(p, aNonVolatileStorageFile))
6485 #   endif /* VBOX_WITH_GLUE */
6486 
6487 interface IBIOSSettings
6488 {
6489 #   ifndef VBOX_WITH_GLUE
6490     struct IBIOSSettings_vtbl *vtbl;
6491 #   else /* VBOX_WITH_GLUE */
6492     CONST_VTBL struct IBIOSSettingsVtbl *lpVtbl;
6493 #   endif /* VBOX_WITH_GLUE */
6494 };
6495 /* End of struct IBIOSSettings declaration */
6496 
6497 
6498 /* Start of struct IRecordingScreenSettings declaration */
6499 #   define IRECORDINGSCREENSETTINGS_IID_STR "678fbd9a-93af-42a7-7f13-79ad6ef1a18d"
6500 #   define IRECORDINGSCREENSETTINGS_IID { \
6501     0x678fbd9a, 0x93af, 0x42a7, \
6502     { 0x7f, 0x13, 0x79, 0xad, 0x6e, 0xf1, 0xa1, 0x8d } \
6503 }
6504 /* COM compatibility */
6505 VBOX_EXTERN_CONST(nsIID, IID_IRecordingScreenSettings);
6506 #   ifndef VBOX_WITH_GLUE
6507 struct IRecordingScreenSettings_vtbl
6508 {
6509     struct nsISupports_vtbl nsisupports;
6510 
6511     nsresult (*GetId)(IRecordingScreenSettings *pThis, PRUint32 *id);
6512 
6513     nsresult (*GetEnabled)(IRecordingScreenSettings *pThis, PRBool *enabled);
6514     nsresult (*SetEnabled)(IRecordingScreenSettings *pThis, PRBool enabled);
6515 
6516     nsresult (*GetFeatures)(IRecordingScreenSettings *pThis, PRUint32 *features);
6517     nsresult (*SetFeatures)(IRecordingScreenSettings *pThis, PRUint32 features);
6518 
6519     nsresult (*GetDestination)(IRecordingScreenSettings *pThis, PRUint32 *destination);
6520     nsresult (*SetDestination)(IRecordingScreenSettings *pThis, PRUint32 destination);
6521 
6522     nsresult (*GetFilename)(IRecordingScreenSettings *pThis, PRUnichar * *filename);
6523     nsresult (*SetFilename)(IRecordingScreenSettings *pThis, PRUnichar * filename);
6524 
6525     nsresult (*GetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 *maxTime);
6526     nsresult (*SetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 maxTime);
6527 
6528     nsresult (*GetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 *maxFileSize);
6529     nsresult (*SetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 maxFileSize);
6530 
6531     nsresult (*GetOptions)(IRecordingScreenSettings *pThis, PRUnichar * *options);
6532     nsresult (*SetOptions)(IRecordingScreenSettings *pThis, PRUnichar * options);
6533 
6534     nsresult (*GetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 *audioCodec);
6535     nsresult (*SetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 audioCodec);
6536 
6537     nsresult (*GetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 *audioHz);
6538     nsresult (*SetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 audioHz);
6539 
6540     nsresult (*GetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 *audioBits);
6541     nsresult (*SetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 audioBits);
6542 
6543     nsresult (*GetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 *audioChannels);
6544     nsresult (*SetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 audioChannels);
6545 
6546     nsresult (*GetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 *videoCodec);
6547     nsresult (*SetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 videoCodec);
6548 
6549     nsresult (*GetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 *videoWidth);
6550     nsresult (*SetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 videoWidth);
6551 
6552     nsresult (*GetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 *videoHeight);
6553     nsresult (*SetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 videoHeight);
6554 
6555     nsresult (*GetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 *videoRate);
6556     nsresult (*SetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 videoRate);
6557 
6558     nsresult (*GetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 *videoRateControlMode);
6559     nsresult (*SetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 videoRateControlMode);
6560 
6561     nsresult (*GetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 *videoFPS);
6562     nsresult (*SetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 videoFPS);
6563 
6564     nsresult (*GetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 *videoScalingMethod);
6565     nsresult (*SetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 videoScalingMethod);
6566 
6567     nsresult (*IsFeatureEnabled)(
6568         IRecordingScreenSettings *pThis,
6569         PRUint32 feature,
6570         PRBool * enabled
6571     );
6572 
6573 };
6574 #   else /* VBOX_WITH_GLUE */
6575 struct IRecordingScreenSettingsVtbl
6576 {
6577     nsresult (*QueryInterface)(IRecordingScreenSettings *pThis, const nsID *iid, void **resultp);
6578     nsrefcnt (*AddRef)(IRecordingScreenSettings *pThis);
6579     nsrefcnt (*Release)(IRecordingScreenSettings *pThis);
6580     nsresult (*GetId)(IRecordingScreenSettings *pThis, PRUint32 *id);
6581 
6582     nsresult (*GetEnabled)(IRecordingScreenSettings *pThis, PRBool *enabled);
6583     nsresult (*SetEnabled)(IRecordingScreenSettings *pThis, PRBool enabled);
6584 
6585     nsresult (*GetFeatures)(IRecordingScreenSettings *pThis, PRUint32 *features);
6586     nsresult (*SetFeatures)(IRecordingScreenSettings *pThis, PRUint32 features);
6587 
6588     nsresult (*GetDestination)(IRecordingScreenSettings *pThis, PRUint32 *destination);
6589     nsresult (*SetDestination)(IRecordingScreenSettings *pThis, PRUint32 destination);
6590 
6591     nsresult (*GetFilename)(IRecordingScreenSettings *pThis, PRUnichar * *filename);
6592     nsresult (*SetFilename)(IRecordingScreenSettings *pThis, PRUnichar * filename);
6593 
6594     nsresult (*GetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 *maxTime);
6595     nsresult (*SetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 maxTime);
6596 
6597     nsresult (*GetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 *maxFileSize);
6598     nsresult (*SetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 maxFileSize);
6599 
6600     nsresult (*GetOptions)(IRecordingScreenSettings *pThis, PRUnichar * *options);
6601     nsresult (*SetOptions)(IRecordingScreenSettings *pThis, PRUnichar * options);
6602 
6603     nsresult (*GetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 *audioCodec);
6604     nsresult (*SetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 audioCodec);
6605 
6606     nsresult (*GetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 *audioHz);
6607     nsresult (*SetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 audioHz);
6608 
6609     nsresult (*GetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 *audioBits);
6610     nsresult (*SetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 audioBits);
6611 
6612     nsresult (*GetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 *audioChannels);
6613     nsresult (*SetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 audioChannels);
6614 
6615     nsresult (*GetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 *videoCodec);
6616     nsresult (*SetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 videoCodec);
6617 
6618     nsresult (*GetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 *videoWidth);
6619     nsresult (*SetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 videoWidth);
6620 
6621     nsresult (*GetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 *videoHeight);
6622     nsresult (*SetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 videoHeight);
6623 
6624     nsresult (*GetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 *videoRate);
6625     nsresult (*SetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 videoRate);
6626 
6627     nsresult (*GetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 *videoRateControlMode);
6628     nsresult (*SetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 videoRateControlMode);
6629 
6630     nsresult (*GetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 *videoFPS);
6631     nsresult (*SetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 videoFPS);
6632 
6633     nsresult (*GetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 *videoScalingMethod);
6634     nsresult (*SetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 videoScalingMethod);
6635 
6636     nsresult (*IsFeatureEnabled)(
6637         IRecordingScreenSettings *pThis,
6638         PRUint32 feature,
6639         PRBool * enabled
6640     );
6641 
6642 };
6643 #    define IRecordingScreenSettings_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6644 #    define IRecordingScreenSettings_AddRef(p) ((p)->lpVtbl->AddRef(p))
6645 #    define IRecordingScreenSettings_Release(p) ((p)->lpVtbl->Release(p))
6646 #    define IRecordingScreenSettings_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
6647 #    define IRecordingScreenSettings_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
6648 #    define IRecordingScreenSettings_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
6649 #    define IRecordingScreenSettings_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
6650 #    define IRecordingScreenSettings_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
6651 #    define IRecordingScreenSettings_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
6652 #    define IRecordingScreenSettings_get_Features(p, aFeatures) ((p)->lpVtbl->GetFeatures(p, aFeatures))
6653 #    define IRecordingScreenSettings_GetFeatures(p, aFeatures) ((p)->lpVtbl->GetFeatures(p, aFeatures))
6654 #    define IRecordingScreenSettings_put_Features(p, aFeatures) ((p)->lpVtbl->SetFeatures(p, aFeatures))
6655 #    define IRecordingScreenSettings_SetFeatures(p, aFeatures) ((p)->lpVtbl->SetFeatures(p, aFeatures))
6656 #    define IRecordingScreenSettings_get_Destination(p, aDestination) ((p)->lpVtbl->GetDestination(p, aDestination))
6657 #    define IRecordingScreenSettings_GetDestination(p, aDestination) ((p)->lpVtbl->GetDestination(p, aDestination))
6658 #    define IRecordingScreenSettings_put_Destination(p, aDestination) ((p)->lpVtbl->SetDestination(p, aDestination))
6659 #    define IRecordingScreenSettings_SetDestination(p, aDestination) ((p)->lpVtbl->SetDestination(p, aDestination))
6660 #    define IRecordingScreenSettings_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
6661 #    define IRecordingScreenSettings_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
6662 #    define IRecordingScreenSettings_put_Filename(p, aFilename) ((p)->lpVtbl->SetFilename(p, aFilename))
6663 #    define IRecordingScreenSettings_SetFilename(p, aFilename) ((p)->lpVtbl->SetFilename(p, aFilename))
6664 #    define IRecordingScreenSettings_get_MaxTime(p, aMaxTime) ((p)->lpVtbl->GetMaxTime(p, aMaxTime))
6665 #    define IRecordingScreenSettings_GetMaxTime(p, aMaxTime) ((p)->lpVtbl->GetMaxTime(p, aMaxTime))
6666 #    define IRecordingScreenSettings_put_MaxTime(p, aMaxTime) ((p)->lpVtbl->SetMaxTime(p, aMaxTime))
6667 #    define IRecordingScreenSettings_SetMaxTime(p, aMaxTime) ((p)->lpVtbl->SetMaxTime(p, aMaxTime))
6668 #    define IRecordingScreenSettings_get_MaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->GetMaxFileSize(p, aMaxFileSize))
6669 #    define IRecordingScreenSettings_GetMaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->GetMaxFileSize(p, aMaxFileSize))
6670 #    define IRecordingScreenSettings_put_MaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->SetMaxFileSize(p, aMaxFileSize))
6671 #    define IRecordingScreenSettings_SetMaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->SetMaxFileSize(p, aMaxFileSize))
6672 #    define IRecordingScreenSettings_get_Options(p, aOptions) ((p)->lpVtbl->GetOptions(p, aOptions))
6673 #    define IRecordingScreenSettings_GetOptions(p, aOptions) ((p)->lpVtbl->GetOptions(p, aOptions))
6674 #    define IRecordingScreenSettings_put_Options(p, aOptions) ((p)->lpVtbl->SetOptions(p, aOptions))
6675 #    define IRecordingScreenSettings_SetOptions(p, aOptions) ((p)->lpVtbl->SetOptions(p, aOptions))
6676 #    define IRecordingScreenSettings_get_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
6677 #    define IRecordingScreenSettings_GetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
6678 #    define IRecordingScreenSettings_put_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
6679 #    define IRecordingScreenSettings_SetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
6680 #    define IRecordingScreenSettings_get_AudioHz(p, aAudioHz) ((p)->lpVtbl->GetAudioHz(p, aAudioHz))
6681 #    define IRecordingScreenSettings_GetAudioHz(p, aAudioHz) ((p)->lpVtbl->GetAudioHz(p, aAudioHz))
6682 #    define IRecordingScreenSettings_put_AudioHz(p, aAudioHz) ((p)->lpVtbl->SetAudioHz(p, aAudioHz))
6683 #    define IRecordingScreenSettings_SetAudioHz(p, aAudioHz) ((p)->lpVtbl->SetAudioHz(p, aAudioHz))
6684 #    define IRecordingScreenSettings_get_AudioBits(p, aAudioBits) ((p)->lpVtbl->GetAudioBits(p, aAudioBits))
6685 #    define IRecordingScreenSettings_GetAudioBits(p, aAudioBits) ((p)->lpVtbl->GetAudioBits(p, aAudioBits))
6686 #    define IRecordingScreenSettings_put_AudioBits(p, aAudioBits) ((p)->lpVtbl->SetAudioBits(p, aAudioBits))
6687 #    define IRecordingScreenSettings_SetAudioBits(p, aAudioBits) ((p)->lpVtbl->SetAudioBits(p, aAudioBits))
6688 #    define IRecordingScreenSettings_get_AudioChannels(p, aAudioChannels) ((p)->lpVtbl->GetAudioChannels(p, aAudioChannels))
6689 #    define IRecordingScreenSettings_GetAudioChannels(p, aAudioChannels) ((p)->lpVtbl->GetAudioChannels(p, aAudioChannels))
6690 #    define IRecordingScreenSettings_put_AudioChannels(p, aAudioChannels) ((p)->lpVtbl->SetAudioChannels(p, aAudioChannels))
6691 #    define IRecordingScreenSettings_SetAudioChannels(p, aAudioChannels) ((p)->lpVtbl->SetAudioChannels(p, aAudioChannels))
6692 #    define IRecordingScreenSettings_get_VideoCodec(p, aVideoCodec) ((p)->lpVtbl->GetVideoCodec(p, aVideoCodec))
6693 #    define IRecordingScreenSettings_GetVideoCodec(p, aVideoCodec) ((p)->lpVtbl->GetVideoCodec(p, aVideoCodec))
6694 #    define IRecordingScreenSettings_put_VideoCodec(p, aVideoCodec) ((p)->lpVtbl->SetVideoCodec(p, aVideoCodec))
6695 #    define IRecordingScreenSettings_SetVideoCodec(p, aVideoCodec) ((p)->lpVtbl->SetVideoCodec(p, aVideoCodec))
6696 #    define IRecordingScreenSettings_get_VideoWidth(p, aVideoWidth) ((p)->lpVtbl->GetVideoWidth(p, aVideoWidth))
6697 #    define IRecordingScreenSettings_GetVideoWidth(p, aVideoWidth) ((p)->lpVtbl->GetVideoWidth(p, aVideoWidth))
6698 #    define IRecordingScreenSettings_put_VideoWidth(p, aVideoWidth) ((p)->lpVtbl->SetVideoWidth(p, aVideoWidth))
6699 #    define IRecordingScreenSettings_SetVideoWidth(p, aVideoWidth) ((p)->lpVtbl->SetVideoWidth(p, aVideoWidth))
6700 #    define IRecordingScreenSettings_get_VideoHeight(p, aVideoHeight) ((p)->lpVtbl->GetVideoHeight(p, aVideoHeight))
6701 #    define IRecordingScreenSettings_GetVideoHeight(p, aVideoHeight) ((p)->lpVtbl->GetVideoHeight(p, aVideoHeight))
6702 #    define IRecordingScreenSettings_put_VideoHeight(p, aVideoHeight) ((p)->lpVtbl->SetVideoHeight(p, aVideoHeight))
6703 #    define IRecordingScreenSettings_SetVideoHeight(p, aVideoHeight) ((p)->lpVtbl->SetVideoHeight(p, aVideoHeight))
6704 #    define IRecordingScreenSettings_get_VideoRate(p, aVideoRate) ((p)->lpVtbl->GetVideoRate(p, aVideoRate))
6705 #    define IRecordingScreenSettings_GetVideoRate(p, aVideoRate) ((p)->lpVtbl->GetVideoRate(p, aVideoRate))
6706 #    define IRecordingScreenSettings_put_VideoRate(p, aVideoRate) ((p)->lpVtbl->SetVideoRate(p, aVideoRate))
6707 #    define IRecordingScreenSettings_SetVideoRate(p, aVideoRate) ((p)->lpVtbl->SetVideoRate(p, aVideoRate))
6708 #    define IRecordingScreenSettings_get_VideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->GetVideoRateControlMode(p, aVideoRateControlMode))
6709 #    define IRecordingScreenSettings_GetVideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->GetVideoRateControlMode(p, aVideoRateControlMode))
6710 #    define IRecordingScreenSettings_put_VideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->SetVideoRateControlMode(p, aVideoRateControlMode))
6711 #    define IRecordingScreenSettings_SetVideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->SetVideoRateControlMode(p, aVideoRateControlMode))
6712 #    define IRecordingScreenSettings_get_VideoFPS(p, aVideoFPS) ((p)->lpVtbl->GetVideoFPS(p, aVideoFPS))
6713 #    define IRecordingScreenSettings_GetVideoFPS(p, aVideoFPS) ((p)->lpVtbl->GetVideoFPS(p, aVideoFPS))
6714 #    define IRecordingScreenSettings_put_VideoFPS(p, aVideoFPS) ((p)->lpVtbl->SetVideoFPS(p, aVideoFPS))
6715 #    define IRecordingScreenSettings_SetVideoFPS(p, aVideoFPS) ((p)->lpVtbl->SetVideoFPS(p, aVideoFPS))
6716 #    define IRecordingScreenSettings_get_VideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->GetVideoScalingMethod(p, aVideoScalingMethod))
6717 #    define IRecordingScreenSettings_GetVideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->GetVideoScalingMethod(p, aVideoScalingMethod))
6718 #    define IRecordingScreenSettings_put_VideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->SetVideoScalingMethod(p, aVideoScalingMethod))
6719 #    define IRecordingScreenSettings_SetVideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->SetVideoScalingMethod(p, aVideoScalingMethod))
6720 #    define IRecordingScreenSettings_IsFeatureEnabled(p, aFeature, aEnabled) ((p)->lpVtbl->IsFeatureEnabled(p, aFeature, aEnabled))
6721 #   endif /* VBOX_WITH_GLUE */
6722 
6723 interface IRecordingScreenSettings
6724 {
6725 #   ifndef VBOX_WITH_GLUE
6726     struct IRecordingScreenSettings_vtbl *vtbl;
6727 #   else /* VBOX_WITH_GLUE */
6728     CONST_VTBL struct IRecordingScreenSettingsVtbl *lpVtbl;
6729 #   endif /* VBOX_WITH_GLUE */
6730 };
6731 /* End of struct IRecordingScreenSettings declaration */
6732 
6733 
6734 /* Start of struct IRecordingSettings declaration */
6735 #   define IRECORDINGSETTINGS_IID_STR "D88F2A5A-47C7-4A3F-AAE1-1B516817DB41"
6736 #   define IRECORDINGSETTINGS_IID { \
6737     0xD88F2A5A, 0x47C7, 0x4A3F, \
6738     { 0xAA, 0xE1, 0x1B, 0x51, 0x68, 0x17, 0xDB, 0x41 } \
6739 }
6740 /* COM compatibility */
6741 VBOX_EXTERN_CONST(nsIID, IID_IRecordingSettings);
6742 #   ifndef VBOX_WITH_GLUE
6743 struct IRecordingSettings_vtbl
6744 {
6745     struct nsISupports_vtbl nsisupports;
6746 
6747     nsresult (*GetEnabled)(IRecordingSettings *pThis, PRBool *enabled);
6748     nsresult (*SetEnabled)(IRecordingSettings *pThis, PRBool enabled);
6749 
6750     nsresult (*GetScreens)(IRecordingSettings *pThis, PRUint32 *screensSize, IRecordingScreenSettings * **screens);
6751 
6752     nsresult (*GetScreenSettings)(
6753         IRecordingSettings *pThis,
6754         PRUint32 screenId,
6755         IRecordingScreenSettings * * recordScreenSettings
6756     );
6757 
6758 };
6759 #   else /* VBOX_WITH_GLUE */
6760 struct IRecordingSettingsVtbl
6761 {
6762     nsresult (*QueryInterface)(IRecordingSettings *pThis, const nsID *iid, void **resultp);
6763     nsrefcnt (*AddRef)(IRecordingSettings *pThis);
6764     nsrefcnt (*Release)(IRecordingSettings *pThis);
6765     nsresult (*GetEnabled)(IRecordingSettings *pThis, PRBool *enabled);
6766     nsresult (*SetEnabled)(IRecordingSettings *pThis, PRBool enabled);
6767 
6768     nsresult (*GetScreens)(IRecordingSettings *pThis, PRUint32 *screensSize, IRecordingScreenSettings * **screens);
6769 
6770     nsresult (*GetScreenSettings)(
6771         IRecordingSettings *pThis,
6772         PRUint32 screenId,
6773         IRecordingScreenSettings * * recordScreenSettings
6774     );
6775 
6776 };
6777 #    define IRecordingSettings_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6778 #    define IRecordingSettings_AddRef(p) ((p)->lpVtbl->AddRef(p))
6779 #    define IRecordingSettings_Release(p) ((p)->lpVtbl->Release(p))
6780 #    define IRecordingSettings_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
6781 #    define IRecordingSettings_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
6782 #    define IRecordingSettings_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
6783 #    define IRecordingSettings_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
6784 #    define IRecordingSettings_get_Screens(p, aScreens) ((p)->lpVtbl->GetScreens(p, aScreens))
6785 #    define IRecordingSettings_GetScreens(p, aScreens) ((p)->lpVtbl->GetScreens(p, aScreens))
6786 #    define IRecordingSettings_GetScreenSettings(p, aScreenId, aRecordScreenSettings) ((p)->lpVtbl->GetScreenSettings(p, aScreenId, aRecordScreenSettings))
6787 #   endif /* VBOX_WITH_GLUE */
6788 
6789 interface IRecordingSettings
6790 {
6791 #   ifndef VBOX_WITH_GLUE
6792     struct IRecordingSettings_vtbl *vtbl;
6793 #   else /* VBOX_WITH_GLUE */
6794     CONST_VTBL struct IRecordingSettingsVtbl *lpVtbl;
6795 #   endif /* VBOX_WITH_GLUE */
6796 };
6797 /* End of struct IRecordingSettings declaration */
6798 
6799 
6800 /* Start of struct IPCIAddress declaration */
6801 #   define IPCIADDRESS_IID_STR "c984d15f-e191-400b-840e-970f3dad7296"
6802 #   define IPCIADDRESS_IID { \
6803     0xc984d15f, 0xe191, 0x400b, \
6804     { 0x84, 0x0e, 0x97, 0x0f, 0x3d, 0xad, 0x72, 0x96 } \
6805 }
6806 /* COM compatibility */
6807 VBOX_EXTERN_CONST(nsIID, IID_IPCIAddress);
6808 #   ifndef VBOX_WITH_GLUE
6809 struct IPCIAddress_vtbl
6810 {
6811     struct nsISupports_vtbl nsisupports;
6812 
6813     nsresult (*GetBus)(IPCIAddress *pThis, PRInt16 *bus);
6814     nsresult (*SetBus)(IPCIAddress *pThis, PRInt16 bus);
6815 
6816     nsresult (*GetDevice)(IPCIAddress *pThis, PRInt16 *device);
6817     nsresult (*SetDevice)(IPCIAddress *pThis, PRInt16 device);
6818 
6819     nsresult (*GetDevFunction)(IPCIAddress *pThis, PRInt16 *devFunction);
6820     nsresult (*SetDevFunction)(IPCIAddress *pThis, PRInt16 devFunction);
6821 
6822     nsresult (*AsLong)(
6823         IPCIAddress *pThis,
6824         PRInt32 * result
6825     );
6826 
6827     nsresult (*FromLong)(
6828         IPCIAddress *pThis,
6829         PRInt32 number
6830     );
6831 
6832 };
6833 #   else /* VBOX_WITH_GLUE */
6834 struct IPCIAddressVtbl
6835 {
6836     nsresult (*QueryInterface)(IPCIAddress *pThis, const nsID *iid, void **resultp);
6837     nsrefcnt (*AddRef)(IPCIAddress *pThis);
6838     nsrefcnt (*Release)(IPCIAddress *pThis);
6839     nsresult (*GetBus)(IPCIAddress *pThis, PRInt16 *bus);
6840     nsresult (*SetBus)(IPCIAddress *pThis, PRInt16 bus);
6841 
6842     nsresult (*GetDevice)(IPCIAddress *pThis, PRInt16 *device);
6843     nsresult (*SetDevice)(IPCIAddress *pThis, PRInt16 device);
6844 
6845     nsresult (*GetDevFunction)(IPCIAddress *pThis, PRInt16 *devFunction);
6846     nsresult (*SetDevFunction)(IPCIAddress *pThis, PRInt16 devFunction);
6847 
6848     nsresult (*AsLong)(
6849         IPCIAddress *pThis,
6850         PRInt32 * result
6851     );
6852 
6853     nsresult (*FromLong)(
6854         IPCIAddress *pThis,
6855         PRInt32 number
6856     );
6857 
6858 };
6859 #    define IPCIAddress_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6860 #    define IPCIAddress_AddRef(p) ((p)->lpVtbl->AddRef(p))
6861 #    define IPCIAddress_Release(p) ((p)->lpVtbl->Release(p))
6862 #    define IPCIAddress_get_Bus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
6863 #    define IPCIAddress_GetBus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
6864 #    define IPCIAddress_put_Bus(p, aBus) ((p)->lpVtbl->SetBus(p, aBus))
6865 #    define IPCIAddress_SetBus(p, aBus) ((p)->lpVtbl->SetBus(p, aBus))
6866 #    define IPCIAddress_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
6867 #    define IPCIAddress_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
6868 #    define IPCIAddress_put_Device(p, aDevice) ((p)->lpVtbl->SetDevice(p, aDevice))
6869 #    define IPCIAddress_SetDevice(p, aDevice) ((p)->lpVtbl->SetDevice(p, aDevice))
6870 #    define IPCIAddress_get_DevFunction(p, aDevFunction) ((p)->lpVtbl->GetDevFunction(p, aDevFunction))
6871 #    define IPCIAddress_GetDevFunction(p, aDevFunction) ((p)->lpVtbl->GetDevFunction(p, aDevFunction))
6872 #    define IPCIAddress_put_DevFunction(p, aDevFunction) ((p)->lpVtbl->SetDevFunction(p, aDevFunction))
6873 #    define IPCIAddress_SetDevFunction(p, aDevFunction) ((p)->lpVtbl->SetDevFunction(p, aDevFunction))
6874 #    define IPCIAddress_AsLong(p, aResult) ((p)->lpVtbl->AsLong(p, aResult))
6875 #    define IPCIAddress_FromLong(p, aNumber) ((p)->lpVtbl->FromLong(p, aNumber))
6876 #   endif /* VBOX_WITH_GLUE */
6877 
6878 interface IPCIAddress
6879 {
6880 #   ifndef VBOX_WITH_GLUE
6881     struct IPCIAddress_vtbl *vtbl;
6882 #   else /* VBOX_WITH_GLUE */
6883     CONST_VTBL struct IPCIAddressVtbl *lpVtbl;
6884 #   endif /* VBOX_WITH_GLUE */
6885 };
6886 /* End of struct IPCIAddress declaration */
6887 
6888 
6889 /* Start of struct IPCIDeviceAttachment declaration */
6890 #   define IPCIDEVICEATTACHMENT_IID_STR "91f33d6f-e621-4f70-a77e-15f0e3c714d5"
6891 #   define IPCIDEVICEATTACHMENT_IID { \
6892     0x91f33d6f, 0xe621, 0x4f70, \
6893     { 0xa7, 0x7e, 0x15, 0xf0, 0xe3, 0xc7, 0x14, 0xd5 } \
6894 }
6895 /* COM compatibility */
6896 VBOX_EXTERN_CONST(nsIID, IID_IPCIDeviceAttachment);
6897 #   ifndef VBOX_WITH_GLUE
6898 struct IPCIDeviceAttachment_vtbl
6899 {
6900     struct nsISupports_vtbl nsisupports;
6901 
6902     nsresult (*GetName)(IPCIDeviceAttachment *pThis, PRUnichar * *name);
6903 
6904     nsresult (*GetIsPhysicalDevice)(IPCIDeviceAttachment *pThis, PRBool *isPhysicalDevice);
6905 
6906     nsresult (*GetHostAddress)(IPCIDeviceAttachment *pThis, PRInt32 *hostAddress);
6907 
6908     nsresult (*GetGuestAddress)(IPCIDeviceAttachment *pThis, PRInt32 *guestAddress);
6909 
6910 };
6911 #   else /* VBOX_WITH_GLUE */
6912 struct IPCIDeviceAttachmentVtbl
6913 {
6914     nsresult (*QueryInterface)(IPCIDeviceAttachment *pThis, const nsID *iid, void **resultp);
6915     nsrefcnt (*AddRef)(IPCIDeviceAttachment *pThis);
6916     nsrefcnt (*Release)(IPCIDeviceAttachment *pThis);
6917     nsresult (*GetName)(IPCIDeviceAttachment *pThis, PRUnichar * *name);
6918 
6919     nsresult (*GetIsPhysicalDevice)(IPCIDeviceAttachment *pThis, PRBool *isPhysicalDevice);
6920 
6921     nsresult (*GetHostAddress)(IPCIDeviceAttachment *pThis, PRInt32 *hostAddress);
6922 
6923     nsresult (*GetGuestAddress)(IPCIDeviceAttachment *pThis, PRInt32 *guestAddress);
6924 
6925 };
6926 #    define IPCIDeviceAttachment_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6927 #    define IPCIDeviceAttachment_AddRef(p) ((p)->lpVtbl->AddRef(p))
6928 #    define IPCIDeviceAttachment_Release(p) ((p)->lpVtbl->Release(p))
6929 #    define IPCIDeviceAttachment_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
6930 #    define IPCIDeviceAttachment_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
6931 #    define IPCIDeviceAttachment_get_IsPhysicalDevice(p, aIsPhysicalDevice) ((p)->lpVtbl->GetIsPhysicalDevice(p, aIsPhysicalDevice))
6932 #    define IPCIDeviceAttachment_GetIsPhysicalDevice(p, aIsPhysicalDevice) ((p)->lpVtbl->GetIsPhysicalDevice(p, aIsPhysicalDevice))
6933 #    define IPCIDeviceAttachment_get_HostAddress(p, aHostAddress) ((p)->lpVtbl->GetHostAddress(p, aHostAddress))
6934 #    define IPCIDeviceAttachment_GetHostAddress(p, aHostAddress) ((p)->lpVtbl->GetHostAddress(p, aHostAddress))
6935 #    define IPCIDeviceAttachment_get_GuestAddress(p, aGuestAddress) ((p)->lpVtbl->GetGuestAddress(p, aGuestAddress))
6936 #    define IPCIDeviceAttachment_GetGuestAddress(p, aGuestAddress) ((p)->lpVtbl->GetGuestAddress(p, aGuestAddress))
6937 #   endif /* VBOX_WITH_GLUE */
6938 
6939 interface IPCIDeviceAttachment
6940 {
6941 #   ifndef VBOX_WITH_GLUE
6942     struct IPCIDeviceAttachment_vtbl *vtbl;
6943 #   else /* VBOX_WITH_GLUE */
6944     CONST_VTBL struct IPCIDeviceAttachmentVtbl *lpVtbl;
6945 #   endif /* VBOX_WITH_GLUE */
6946 };
6947 /* End of struct IPCIDeviceAttachment declaration */
6948 
6949 
6950 /* Start of struct IMachine declaration */
6951 #   define IMACHINE_IID_STR "5047460a-265d-4538-b23e-ddba5fb84976"
6952 #   define IMACHINE_IID { \
6953     0x5047460a, 0x265d, 0x4538, \
6954     { 0xb2, 0x3e, 0xdd, 0xba, 0x5f, 0xb8, 0x49, 0x76 } \
6955 }
6956 /* COM compatibility */
6957 VBOX_EXTERN_CONST(nsIID, IID_IMachine);
6958 #   ifndef VBOX_WITH_GLUE
6959 struct IMachine_vtbl
6960 {
6961     struct nsISupports_vtbl nsisupports;
6962 
6963     nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
6964 
6965     nsresult (*GetIcon)(IMachine *pThis, PRUint32 *iconSize, PRUint8 **icon);
6966     nsresult (*SetIcon)(IMachine *pThis, PRUint32 iconSize, PRUint8 *icon);
6967 
6968     nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
6969 
6970     nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
6971 
6972     nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
6973     nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
6974 
6975     nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
6976     nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
6977 
6978     nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
6979 
6980     nsresult (*GetGroups)(IMachine *pThis, PRUint32 *groupsSize, PRUnichar * **groups);
6981     nsresult (*SetGroups)(IMachine *pThis, PRUint32 groupsSize, PRUnichar * *groups);
6982 
6983     nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
6984     nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
6985 
6986     nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *hardwareVersion);
6987     nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * hardwareVersion);
6988 
6989     nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
6990     nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
6991 
6992     nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
6993     nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
6994 
6995     nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
6996     nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
6997 
6998     nsresult (*GetCPUExecutionCap)(IMachine *pThis, PRUint32 *CPUExecutionCap);
6999     nsresult (*SetCPUExecutionCap)(IMachine *pThis, PRUint32 CPUExecutionCap);
7000 
7001     nsresult (*GetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 *CPUIDPortabilityLevel);
7002     nsresult (*SetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 CPUIDPortabilityLevel);
7003 
7004     nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
7005     nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
7006 
7007     nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
7008     nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
7009 
7010     nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *pageFusionEnabled);
7011     nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool pageFusionEnabled);
7012 
7013     nsresult (*GetGraphicsControllerType)(IMachine *pThis, PRUint32 *graphicsControllerType);
7014     nsresult (*SetGraphicsControllerType)(IMachine *pThis, PRUint32 graphicsControllerType);
7015 
7016     nsresult (*GetVRAMSize)(IMachine *pThis, PRUint32 *VRAMSize);
7017     nsresult (*SetVRAMSize)(IMachine *pThis, PRUint32 VRAMSize);
7018 
7019     nsresult (*GetAccelerate3DEnabled)(IMachine *pThis, PRBool *accelerate3DEnabled);
7020     nsresult (*SetAccelerate3DEnabled)(IMachine *pThis, PRBool accelerate3DEnabled);
7021 
7022     nsresult (*GetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool *accelerate2DVideoEnabled);
7023     nsresult (*SetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool accelerate2DVideoEnabled);
7024 
7025     nsresult (*GetMonitorCount)(IMachine *pThis, PRUint32 *monitorCount);
7026     nsresult (*SetMonitorCount)(IMachine *pThis, PRUint32 monitorCount);
7027 
7028     nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
7029 
7030     nsresult (*GetRecordingSettings)(IMachine *pThis, IRecordingSettings * *recordingSettings);
7031 
7032     nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
7033     nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
7034 
7035     nsresult (*GetPointingHIDType)(IMachine *pThis, PRUint32 *pointingHIDType);
7036     nsresult (*SetPointingHIDType)(IMachine *pThis, PRUint32 pointingHIDType);
7037 
7038     nsresult (*GetKeyboardHIDType)(IMachine *pThis, PRUint32 *keyboardHIDType);
7039     nsresult (*SetKeyboardHIDType)(IMachine *pThis, PRUint32 keyboardHIDType);
7040 
7041     nsresult (*GetHPETEnabled)(IMachine *pThis, PRBool *HPETEnabled);
7042     nsresult (*SetHPETEnabled)(IMachine *pThis, PRBool HPETEnabled);
7043 
7044     nsresult (*GetChipsetType)(IMachine *pThis, PRUint32 *chipsetType);
7045     nsresult (*SetChipsetType)(IMachine *pThis, PRUint32 chipsetType);
7046 
7047     nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
7048     nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
7049 
7050     nsresult (*GetVRDEServer)(IMachine *pThis, IVRDEServer * *VRDEServer);
7051 
7052     nsresult (*GetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool *emulatedUSBCardReaderEnabled);
7053     nsresult (*SetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool emulatedUSBCardReaderEnabled);
7054 
7055     nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
7056 
7057     nsresult (*GetUSBControllers)(IMachine *pThis, PRUint32 *USBControllersSize, IUSBController * **USBControllers);
7058 
7059     nsresult (*GetUSBDeviceFilters)(IMachine *pThis, IUSBDeviceFilters * *USBDeviceFilters);
7060 
7061     nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
7062 
7063     nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
7064 
7065     nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
7066 
7067     nsresult (*GetSettingsAuxFilePath)(IMachine *pThis, PRUnichar * *settingsAuxFilePath);
7068 
7069     nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
7070 
7071     nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
7072 
7073     nsresult (*GetSessionName)(IMachine *pThis, PRUnichar * *sessionName);
7074 
7075     nsresult (*GetSessionPID)(IMachine *pThis, PRUint32 *sessionPID);
7076 
7077     nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
7078 
7079     nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
7080 
7081     nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
7082 
7083     nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
7084 
7085     nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
7086 
7087     nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
7088 
7089     nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
7090 
7091     nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
7092 
7093     nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
7094     nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
7095 
7096     nsresult (*GetDnDMode)(IMachine *pThis, PRUint32 *dnDMode);
7097     nsresult (*SetDnDMode)(IMachine *pThis, PRUint32 dnDMode);
7098 
7099     nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
7100     nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
7101 
7102     nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
7103     nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
7104 
7105     nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
7106     nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
7107 
7108     nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
7109     nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
7110 
7111     nsresult (*GetParavirtProvider)(IMachine *pThis, PRUint32 *paravirtProvider);
7112     nsresult (*SetParavirtProvider)(IMachine *pThis, PRUint32 paravirtProvider);
7113 
7114     nsresult (*GetFaultToleranceState)(IMachine *pThis, PRUint32 *faultToleranceState);
7115     nsresult (*SetFaultToleranceState)(IMachine *pThis, PRUint32 faultToleranceState);
7116 
7117     nsresult (*GetFaultTolerancePort)(IMachine *pThis, PRUint32 *faultTolerancePort);
7118     nsresult (*SetFaultTolerancePort)(IMachine *pThis, PRUint32 faultTolerancePort);
7119 
7120     nsresult (*GetFaultToleranceAddress)(IMachine *pThis, PRUnichar * *faultToleranceAddress);
7121     nsresult (*SetFaultToleranceAddress)(IMachine *pThis, PRUnichar * faultToleranceAddress);
7122 
7123     nsresult (*GetFaultTolerancePassword)(IMachine *pThis, PRUnichar * *faultTolerancePassword);
7124     nsresult (*SetFaultTolerancePassword)(IMachine *pThis, PRUnichar * faultTolerancePassword);
7125 
7126     nsresult (*GetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 *faultToleranceSyncInterval);
7127     nsresult (*SetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 faultToleranceSyncInterval);
7128 
7129     nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
7130     nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
7131 
7132     nsresult (*GetIOCacheEnabled)(IMachine *pThis, PRBool *IOCacheEnabled);
7133     nsresult (*SetIOCacheEnabled)(IMachine *pThis, PRBool IOCacheEnabled);
7134 
7135     nsresult (*GetIOCacheSize)(IMachine *pThis, PRUint32 *IOCacheSize);
7136     nsresult (*SetIOCacheSize)(IMachine *pThis, PRUint32 IOCacheSize);
7137 
7138     nsresult (*GetPCIDeviceAssignments)(IMachine *pThis, PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment * **PCIDeviceAssignments);
7139 
7140     nsresult (*GetBandwidthControl)(IMachine *pThis, IBandwidthControl * *bandwidthControl);
7141 
7142     nsresult (*GetTracingEnabled)(IMachine *pThis, PRBool *tracingEnabled);
7143     nsresult (*SetTracingEnabled)(IMachine *pThis, PRBool tracingEnabled);
7144 
7145     nsresult (*GetTracingConfig)(IMachine *pThis, PRUnichar * *tracingConfig);
7146     nsresult (*SetTracingConfig)(IMachine *pThis, PRUnichar * tracingConfig);
7147 
7148     nsresult (*GetAllowTracingToAccessVM)(IMachine *pThis, PRBool *allowTracingToAccessVM);
7149     nsresult (*SetAllowTracingToAccessVM)(IMachine *pThis, PRBool allowTracingToAccessVM);
7150 
7151     nsresult (*GetAutostartEnabled)(IMachine *pThis, PRBool *autostartEnabled);
7152     nsresult (*SetAutostartEnabled)(IMachine *pThis, PRBool autostartEnabled);
7153 
7154     nsresult (*GetAutostartDelay)(IMachine *pThis, PRUint32 *autostartDelay);
7155     nsresult (*SetAutostartDelay)(IMachine *pThis, PRUint32 autostartDelay);
7156 
7157     nsresult (*GetAutostopType)(IMachine *pThis, PRUint32 *autostopType);
7158     nsresult (*SetAutostopType)(IMachine *pThis, PRUint32 autostopType);
7159 
7160     nsresult (*GetDefaultFrontend)(IMachine *pThis, PRUnichar * *defaultFrontend);
7161     nsresult (*SetDefaultFrontend)(IMachine *pThis, PRUnichar * defaultFrontend);
7162 
7163     nsresult (*GetUSBProxyAvailable)(IMachine *pThis, PRBool *USBProxyAvailable);
7164 
7165     nsresult (*GetVMProcessPriority)(IMachine *pThis, PRUnichar * *VMProcessPriority);
7166     nsresult (*SetVMProcessPriority)(IMachine *pThis, PRUnichar * VMProcessPriority);
7167 
7168     nsresult (*GetParavirtDebug)(IMachine *pThis, PRUnichar * *paravirtDebug);
7169     nsresult (*SetParavirtDebug)(IMachine *pThis, PRUnichar * paravirtDebug);
7170 
7171     nsresult (*GetCPUProfile)(IMachine *pThis, PRUnichar * *CPUProfile);
7172     nsresult (*SetCPUProfile)(IMachine *pThis, PRUnichar * CPUProfile);
7173 
7174     nsresult (*GetInternalAndReservedAttribute1IMachine)(IMachine *pThis, PRUint32 *reserved);
7175 
7176     nsresult (*GetInternalAndReservedAttribute2IMachine)(IMachine *pThis, PRUint32 *reserved);
7177 
7178     nsresult (*GetInternalAndReservedAttribute3IMachine)(IMachine *pThis, PRUint32 *reserved);
7179 
7180     nsresult (*GetInternalAndReservedAttribute4IMachine)(IMachine *pThis, PRUint32 *reserved);
7181 
7182     nsresult (*GetInternalAndReservedAttribute5IMachine)(IMachine *pThis, PRUint32 *reserved);
7183 
7184     nsresult (*GetInternalAndReservedAttribute6IMachine)(IMachine *pThis, PRUint32 *reserved);
7185 
7186     nsresult (*GetInternalAndReservedAttribute7IMachine)(IMachine *pThis, PRUint32 *reserved);
7187 
7188     nsresult (*GetInternalAndReservedAttribute8IMachine)(IMachine *pThis, PRUint32 *reserved);
7189 
7190     nsresult (*GetInternalAndReservedAttribute9IMachine)(IMachine *pThis, PRUint32 *reserved);
7191 
7192     nsresult (*GetInternalAndReservedAttribute10IMachine)(IMachine *pThis, PRUint32 *reserved);
7193 
7194     nsresult (*LockMachine)(
7195         IMachine *pThis,
7196         ISession * session,
7197         PRUint32 lockType
7198     );
7199 
7200     nsresult (*LaunchVMProcess)(
7201         IMachine *pThis,
7202         ISession * session,
7203         PRUnichar * name,
7204         PRUnichar * environment,
7205         IProgress * * progress
7206     );
7207 
7208     nsresult (*SetBootOrder)(
7209         IMachine *pThis,
7210         PRUint32 position,
7211         PRUint32 device
7212     );
7213 
7214     nsresult (*GetBootOrder)(
7215         IMachine *pThis,
7216         PRUint32 position,
7217         PRUint32 * device
7218     );
7219 
7220     nsresult (*AttachDevice)(
7221         IMachine *pThis,
7222         PRUnichar * name,
7223         PRInt32 controllerPort,
7224         PRInt32 device,
7225         PRUint32 type,
7226         IMedium * medium
7227     );
7228 
7229     nsresult (*AttachDeviceWithoutMedium)(
7230         IMachine *pThis,
7231         PRUnichar * name,
7232         PRInt32 controllerPort,
7233         PRInt32 device,
7234         PRUint32 type
7235     );
7236 
7237     nsresult (*DetachDevice)(
7238         IMachine *pThis,
7239         PRUnichar * name,
7240         PRInt32 controllerPort,
7241         PRInt32 device
7242     );
7243 
7244     nsresult (*PassthroughDevice)(
7245         IMachine *pThis,
7246         PRUnichar * name,
7247         PRInt32 controllerPort,
7248         PRInt32 device,
7249         PRBool passthrough
7250     );
7251 
7252     nsresult (*TemporaryEjectDevice)(
7253         IMachine *pThis,
7254         PRUnichar * name,
7255         PRInt32 controllerPort,
7256         PRInt32 device,
7257         PRBool temporaryEject
7258     );
7259 
7260     nsresult (*NonRotationalDevice)(
7261         IMachine *pThis,
7262         PRUnichar * name,
7263         PRInt32 controllerPort,
7264         PRInt32 device,
7265         PRBool nonRotational
7266     );
7267 
7268     nsresult (*SetAutoDiscardForDevice)(
7269         IMachine *pThis,
7270         PRUnichar * name,
7271         PRInt32 controllerPort,
7272         PRInt32 device,
7273         PRBool discard
7274     );
7275 
7276     nsresult (*SetHotPluggableForDevice)(
7277         IMachine *pThis,
7278         PRUnichar * name,
7279         PRInt32 controllerPort,
7280         PRInt32 device,
7281         PRBool hotPluggable
7282     );
7283 
7284     nsresult (*SetBandwidthGroupForDevice)(
7285         IMachine *pThis,
7286         PRUnichar * name,
7287         PRInt32 controllerPort,
7288         PRInt32 device,
7289         IBandwidthGroup * bandwidthGroup
7290     );
7291 
7292     nsresult (*SetNoBandwidthGroupForDevice)(
7293         IMachine *pThis,
7294         PRUnichar * name,
7295         PRInt32 controllerPort,
7296         PRInt32 device
7297     );
7298 
7299     nsresult (*UnmountMedium)(
7300         IMachine *pThis,
7301         PRUnichar * name,
7302         PRInt32 controllerPort,
7303         PRInt32 device,
7304         PRBool force
7305     );
7306 
7307     nsresult (*MountMedium)(
7308         IMachine *pThis,
7309         PRUnichar * name,
7310         PRInt32 controllerPort,
7311         PRInt32 device,
7312         IMedium * medium,
7313         PRBool force
7314     );
7315 
7316     nsresult (*GetMedium)(
7317         IMachine *pThis,
7318         PRUnichar * name,
7319         PRInt32 controllerPort,
7320         PRInt32 device,
7321         IMedium * * medium
7322     );
7323 
7324     nsresult (*GetMediumAttachmentsOfController)(
7325         IMachine *pThis,
7326         PRUnichar * name,
7327         PRUint32 *mediumAttachmentsSize,
7328         IMediumAttachment *** mediumAttachments
7329     );
7330 
7331     nsresult (*GetMediumAttachment)(
7332         IMachine *pThis,
7333         PRUnichar * name,
7334         PRInt32 controllerPort,
7335         PRInt32 device,
7336         IMediumAttachment * * attachment
7337     );
7338 
7339     nsresult (*AttachHostPCIDevice)(
7340         IMachine *pThis,
7341         PRInt32 hostAddress,
7342         PRInt32 desiredGuestAddress,
7343         PRBool tryToUnbind
7344     );
7345 
7346     nsresult (*DetachHostPCIDevice)(
7347         IMachine *pThis,
7348         PRInt32 hostAddress
7349     );
7350 
7351     nsresult (*GetNetworkAdapter)(
7352         IMachine *pThis,
7353         PRUint32 slot,
7354         INetworkAdapter * * adapter
7355     );
7356 
7357     nsresult (*AddStorageController)(
7358         IMachine *pThis,
7359         PRUnichar * name,
7360         PRUint32 connectionType,
7361         IStorageController * * controller
7362     );
7363 
7364     nsresult (*GetStorageControllerByName)(
7365         IMachine *pThis,
7366         PRUnichar * name,
7367         IStorageController * * storageController
7368     );
7369 
7370     nsresult (*GetStorageControllerByInstance)(
7371         IMachine *pThis,
7372         PRUint32 connectionType,
7373         PRUint32 instance,
7374         IStorageController * * storageController
7375     );
7376 
7377     nsresult (*RemoveStorageController)(
7378         IMachine *pThis,
7379         PRUnichar * name
7380     );
7381 
7382     nsresult (*SetStorageControllerBootable)(
7383         IMachine *pThis,
7384         PRUnichar * name,
7385         PRBool bootable
7386     );
7387 
7388     nsresult (*AddUSBController)(
7389         IMachine *pThis,
7390         PRUnichar * name,
7391         PRUint32 type,
7392         IUSBController * * controller
7393     );
7394 
7395     nsresult (*RemoveUSBController)(
7396         IMachine *pThis,
7397         PRUnichar * name
7398     );
7399 
7400     nsresult (*GetUSBControllerByName)(
7401         IMachine *pThis,
7402         PRUnichar * name,
7403         IUSBController * * controller
7404     );
7405 
7406     nsresult (*GetUSBControllerCountByType)(
7407         IMachine *pThis,
7408         PRUint32 type,
7409         PRUint32 * controllers
7410     );
7411 
7412     nsresult (*GetSerialPort)(
7413         IMachine *pThis,
7414         PRUint32 slot,
7415         ISerialPort * * port
7416     );
7417 
7418     nsresult (*GetParallelPort)(
7419         IMachine *pThis,
7420         PRUint32 slot,
7421         IParallelPort * * port
7422     );
7423 
7424     nsresult (*GetExtraDataKeys)(
7425         IMachine *pThis,
7426         PRUint32 *keysSize,
7427         PRUnichar *** keys
7428     );
7429 
7430     nsresult (*GetExtraData)(
7431         IMachine *pThis,
7432         PRUnichar * key,
7433         PRUnichar * * value
7434     );
7435 
7436     nsresult (*SetExtraData)(
7437         IMachine *pThis,
7438         PRUnichar * key,
7439         PRUnichar * value
7440     );
7441 
7442     nsresult (*GetCPUProperty)(
7443         IMachine *pThis,
7444         PRUint32 property,
7445         PRBool * value
7446     );
7447 
7448     nsresult (*SetCPUProperty)(
7449         IMachine *pThis,
7450         PRUint32 property,
7451         PRBool value
7452     );
7453 
7454     nsresult (*GetCPUIDLeafByOrdinal)(
7455         IMachine *pThis,
7456         PRUint32 ordinal,
7457         PRUint32 * idx,
7458         PRUint32 * idxSub,
7459         PRUint32 * valEax,
7460         PRUint32 * valEbx,
7461         PRUint32 * valEcx,
7462         PRUint32 * valEdx
7463     );
7464 
7465     nsresult (*GetCPUIDLeaf)(
7466         IMachine *pThis,
7467         PRUint32 idx,
7468         PRUint32 idxSub,
7469         PRUint32 * valEax,
7470         PRUint32 * valEbx,
7471         PRUint32 * valEcx,
7472         PRUint32 * valEdx
7473     );
7474 
7475     nsresult (*SetCPUIDLeaf)(
7476         IMachine *pThis,
7477         PRUint32 idx,
7478         PRUint32 idxSub,
7479         PRUint32 valEax,
7480         PRUint32 valEbx,
7481         PRUint32 valEcx,
7482         PRUint32 valEdx
7483     );
7484 
7485     nsresult (*RemoveCPUIDLeaf)(
7486         IMachine *pThis,
7487         PRUint32 idx,
7488         PRUint32 idxSub
7489     );
7490 
7491     nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
7492 
7493     nsresult (*GetHWVirtExProperty)(
7494         IMachine *pThis,
7495         PRUint32 property,
7496         PRBool * value
7497     );
7498 
7499     nsresult (*SetHWVirtExProperty)(
7500         IMachine *pThis,
7501         PRUint32 property,
7502         PRBool value
7503     );
7504 
7505     nsresult (*SetSettingsFilePath)(
7506         IMachine *pThis,
7507         PRUnichar * settingsFilePath,
7508         IProgress * * progress
7509     );
7510 
7511     nsresult (*SaveSettings)(IMachine *pThis );
7512 
7513     nsresult (*DiscardSettings)(IMachine *pThis );
7514 
7515     nsresult (*Unregister)(
7516         IMachine *pThis,
7517         PRUint32 cleanupMode,
7518         PRUint32 *mediaSize,
7519         IMedium *** media
7520     );
7521 
7522     nsresult (*DeleteConfig)(
7523         IMachine *pThis,
7524         PRUint32 mediaSize,
7525         IMedium ** media,
7526         IProgress * * progress
7527     );
7528 
7529     nsresult (*ExportTo)(
7530         IMachine *pThis,
7531         IAppliance * appliance,
7532         PRUnichar * location,
7533         IVirtualSystemDescription * * description
7534     );
7535 
7536     nsresult (*FindSnapshot)(
7537         IMachine *pThis,
7538         PRUnichar * nameOrId,
7539         ISnapshot * * snapshot
7540     );
7541 
7542     nsresult (*CreateSharedFolder)(
7543         IMachine *pThis,
7544         PRUnichar * name,
7545         PRUnichar * hostPath,
7546         PRBool writable,
7547         PRBool automount,
7548         PRUnichar * autoMountPoint
7549     );
7550 
7551     nsresult (*RemoveSharedFolder)(
7552         IMachine *pThis,
7553         PRUnichar * name
7554     );
7555 
7556     nsresult (*CanShowConsoleWindow)(
7557         IMachine *pThis,
7558         PRBool * canShow
7559     );
7560 
7561     nsresult (*ShowConsoleWindow)(
7562         IMachine *pThis,
7563         PRInt64 * winId
7564     );
7565 
7566     nsresult (*GetGuestProperty)(
7567         IMachine *pThis,
7568         PRUnichar * name,
7569         PRUnichar * * value,
7570         PRInt64 * timestamp,
7571         PRUnichar * * flags
7572     );
7573 
7574     nsresult (*GetGuestPropertyValue)(
7575         IMachine *pThis,
7576         PRUnichar * property,
7577         PRUnichar * * value
7578     );
7579 
7580     nsresult (*GetGuestPropertyTimestamp)(
7581         IMachine *pThis,
7582         PRUnichar * property,
7583         PRInt64 * value
7584     );
7585 
7586     nsresult (*SetGuestProperty)(
7587         IMachine *pThis,
7588         PRUnichar * property,
7589         PRUnichar * value,
7590         PRUnichar * flags
7591     );
7592 
7593     nsresult (*SetGuestPropertyValue)(
7594         IMachine *pThis,
7595         PRUnichar * property,
7596         PRUnichar * value
7597     );
7598 
7599     nsresult (*DeleteGuestProperty)(
7600         IMachine *pThis,
7601         PRUnichar * name
7602     );
7603 
7604     nsresult (*EnumerateGuestProperties)(
7605         IMachine *pThis,
7606         PRUnichar * patterns,
7607         PRUint32 *namesSize,
7608         PRUnichar *** names,
7609         PRUint32 *valuesSize,
7610         PRUnichar *** values,
7611         PRUint32 *timestampsSize,
7612         PRInt64** timestamps,
7613         PRUint32 *flagsSize,
7614         PRUnichar *** flags
7615     );
7616 
7617     nsresult (*QuerySavedGuestScreenInfo)(
7618         IMachine *pThis,
7619         PRUint32 screenId,
7620         PRUint32 * originX,
7621         PRUint32 * originY,
7622         PRUint32 * width,
7623         PRUint32 * height,
7624         PRBool * enabled
7625     );
7626 
7627     nsresult (*ReadSavedThumbnailToArray)(
7628         IMachine *pThis,
7629         PRUint32 screenId,
7630         PRUint32 bitmapFormat,
7631         PRUint32 * width,
7632         PRUint32 * height,
7633         PRUint32 *dataSize,
7634         PRUint8** data
7635     );
7636 
7637     nsresult (*QuerySavedScreenshotInfo)(
7638         IMachine *pThis,
7639         PRUint32 screenId,
7640         PRUint32 * width,
7641         PRUint32 * height,
7642         PRUint32 *bitmapFormatsSize,
7643         PRUint32** bitmapFormats
7644     );
7645 
7646     nsresult (*ReadSavedScreenshotToArray)(
7647         IMachine *pThis,
7648         PRUint32 screenId,
7649         PRUint32 bitmapFormat,
7650         PRUint32 * width,
7651         PRUint32 * height,
7652         PRUint32 *dataSize,
7653         PRUint8** data
7654     );
7655 
7656     nsresult (*HotPlugCPU)(
7657         IMachine *pThis,
7658         PRUint32 cpu
7659     );
7660 
7661     nsresult (*HotUnplugCPU)(
7662         IMachine *pThis,
7663         PRUint32 cpu
7664     );
7665 
7666     nsresult (*GetCPUStatus)(
7667         IMachine *pThis,
7668         PRUint32 cpu,
7669         PRBool * attached
7670     );
7671 
7672     nsresult (*GetEffectiveParavirtProvider)(
7673         IMachine *pThis,
7674         PRUint32 * paravirtProvider
7675     );
7676 
7677     nsresult (*QueryLogFilename)(
7678         IMachine *pThis,
7679         PRUint32 idx,
7680         PRUnichar * * filename
7681     );
7682 
7683     nsresult (*ReadLog)(
7684         IMachine *pThis,
7685         PRUint32 idx,
7686         PRInt64 offset,
7687         PRInt64 size,
7688         PRUint32 *dataSize,
7689         PRUint8** data
7690     );
7691 
7692     nsresult (*CloneTo)(
7693         IMachine *pThis,
7694         IMachine * target,
7695         PRUint32 mode,
7696         PRUint32 optionsSize,
7697         PRUint32* options,
7698         IProgress * * progress
7699     );
7700 
7701     nsresult (*MoveTo)(
7702         IMachine *pThis,
7703         PRUnichar * folder,
7704         PRUnichar * type,
7705         IProgress * * progress
7706     );
7707 
7708     nsresult (*SaveState)(
7709         IMachine *pThis,
7710         IProgress * * progress
7711     );
7712 
7713     nsresult (*AdoptSavedState)(
7714         IMachine *pThis,
7715         PRUnichar * savedStateFile
7716     );
7717 
7718     nsresult (*DiscardSavedState)(
7719         IMachine *pThis,
7720         PRBool fRemoveFile
7721     );
7722 
7723     nsresult (*TakeSnapshot)(
7724         IMachine *pThis,
7725         PRUnichar * name,
7726         PRUnichar * description,
7727         PRBool pause,
7728         PRUnichar * * id,
7729         IProgress * * progress
7730     );
7731 
7732     nsresult (*DeleteSnapshot)(
7733         IMachine *pThis,
7734         PRUnichar * id,
7735         IProgress * * progress
7736     );
7737 
7738     nsresult (*DeleteSnapshotAndAllChildren)(
7739         IMachine *pThis,
7740         PRUnichar * id,
7741         IProgress * * progress
7742     );
7743 
7744     nsresult (*DeleteSnapshotRange)(
7745         IMachine *pThis,
7746         PRUnichar * startId,
7747         PRUnichar * endId,
7748         IProgress * * progress
7749     );
7750 
7751     nsresult (*RestoreSnapshot)(
7752         IMachine *pThis,
7753         ISnapshot * snapshot,
7754         IProgress * * progress
7755     );
7756 
7757     nsresult (*ApplyDefaults)(
7758         IMachine *pThis,
7759         PRUnichar * flags
7760     );
7761 
7762     nsresult (*InternalAndReservedMethod1IMachine)(IMachine *pThis);
7763 
7764     nsresult (*InternalAndReservedMethod2IMachine)(IMachine *pThis);
7765 
7766     nsresult (*InternalAndReservedMethod3IMachine)(IMachine *pThis);
7767 
7768     nsresult (*InternalAndReservedMethod4IMachine)(IMachine *pThis);
7769 
7770     nsresult (*InternalAndReservedMethod5IMachine)(IMachine *pThis);
7771 
7772     nsresult (*InternalAndReservedMethod6IMachine)(IMachine *pThis);
7773 
7774     nsresult (*InternalAndReservedMethod7IMachine)(IMachine *pThis);
7775 
7776     nsresult (*InternalAndReservedMethod8IMachine)(IMachine *pThis);
7777 
7778 };
7779 #   else /* VBOX_WITH_GLUE */
7780 struct IMachineVtbl
7781 {
7782     nsresult (*QueryInterface)(IMachine *pThis, const nsID *iid, void **resultp);
7783     nsrefcnt (*AddRef)(IMachine *pThis);
7784     nsrefcnt (*Release)(IMachine *pThis);
7785     nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
7786 
7787     nsresult (*GetIcon)(IMachine *pThis, PRUint32 *iconSize, PRUint8 **icon);
7788     nsresult (*SetIcon)(IMachine *pThis, PRUint32 iconSize, PRUint8 *icon);
7789 
7790     nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
7791 
7792     nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
7793 
7794     nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
7795     nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
7796 
7797     nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
7798     nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
7799 
7800     nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
7801 
7802     nsresult (*GetGroups)(IMachine *pThis, PRUint32 *groupsSize, PRUnichar * **groups);
7803     nsresult (*SetGroups)(IMachine *pThis, PRUint32 groupsSize, PRUnichar * *groups);
7804 
7805     nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
7806     nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
7807 
7808     nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *hardwareVersion);
7809     nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * hardwareVersion);
7810 
7811     nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
7812     nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
7813 
7814     nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
7815     nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
7816 
7817     nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
7818     nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
7819 
7820     nsresult (*GetCPUExecutionCap)(IMachine *pThis, PRUint32 *CPUExecutionCap);
7821     nsresult (*SetCPUExecutionCap)(IMachine *pThis, PRUint32 CPUExecutionCap);
7822 
7823     nsresult (*GetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 *CPUIDPortabilityLevel);
7824     nsresult (*SetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 CPUIDPortabilityLevel);
7825 
7826     nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
7827     nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
7828 
7829     nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
7830     nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
7831 
7832     nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *pageFusionEnabled);
7833     nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool pageFusionEnabled);
7834 
7835     nsresult (*GetGraphicsControllerType)(IMachine *pThis, PRUint32 *graphicsControllerType);
7836     nsresult (*SetGraphicsControllerType)(IMachine *pThis, PRUint32 graphicsControllerType);
7837 
7838     nsresult (*GetVRAMSize)(IMachine *pThis, PRUint32 *VRAMSize);
7839     nsresult (*SetVRAMSize)(IMachine *pThis, PRUint32 VRAMSize);
7840 
7841     nsresult (*GetAccelerate3DEnabled)(IMachine *pThis, PRBool *accelerate3DEnabled);
7842     nsresult (*SetAccelerate3DEnabled)(IMachine *pThis, PRBool accelerate3DEnabled);
7843 
7844     nsresult (*GetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool *accelerate2DVideoEnabled);
7845     nsresult (*SetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool accelerate2DVideoEnabled);
7846 
7847     nsresult (*GetMonitorCount)(IMachine *pThis, PRUint32 *monitorCount);
7848     nsresult (*SetMonitorCount)(IMachine *pThis, PRUint32 monitorCount);
7849 
7850     nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
7851 
7852     nsresult (*GetRecordingSettings)(IMachine *pThis, IRecordingSettings * *recordingSettings);
7853 
7854     nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
7855     nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
7856 
7857     nsresult (*GetPointingHIDType)(IMachine *pThis, PRUint32 *pointingHIDType);
7858     nsresult (*SetPointingHIDType)(IMachine *pThis, PRUint32 pointingHIDType);
7859 
7860     nsresult (*GetKeyboardHIDType)(IMachine *pThis, PRUint32 *keyboardHIDType);
7861     nsresult (*SetKeyboardHIDType)(IMachine *pThis, PRUint32 keyboardHIDType);
7862 
7863     nsresult (*GetHPETEnabled)(IMachine *pThis, PRBool *HPETEnabled);
7864     nsresult (*SetHPETEnabled)(IMachine *pThis, PRBool HPETEnabled);
7865 
7866     nsresult (*GetChipsetType)(IMachine *pThis, PRUint32 *chipsetType);
7867     nsresult (*SetChipsetType)(IMachine *pThis, PRUint32 chipsetType);
7868 
7869     nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
7870     nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
7871 
7872     nsresult (*GetVRDEServer)(IMachine *pThis, IVRDEServer * *VRDEServer);
7873 
7874     nsresult (*GetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool *emulatedUSBCardReaderEnabled);
7875     nsresult (*SetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool emulatedUSBCardReaderEnabled);
7876 
7877     nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
7878 
7879     nsresult (*GetUSBControllers)(IMachine *pThis, PRUint32 *USBControllersSize, IUSBController * **USBControllers);
7880 
7881     nsresult (*GetUSBDeviceFilters)(IMachine *pThis, IUSBDeviceFilters * *USBDeviceFilters);
7882 
7883     nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
7884 
7885     nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
7886 
7887     nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
7888 
7889     nsresult (*GetSettingsAuxFilePath)(IMachine *pThis, PRUnichar * *settingsAuxFilePath);
7890 
7891     nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
7892 
7893     nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
7894 
7895     nsresult (*GetSessionName)(IMachine *pThis, PRUnichar * *sessionName);
7896 
7897     nsresult (*GetSessionPID)(IMachine *pThis, PRUint32 *sessionPID);
7898 
7899     nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
7900 
7901     nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
7902 
7903     nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
7904 
7905     nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
7906 
7907     nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
7908 
7909     nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
7910 
7911     nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
7912 
7913     nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
7914 
7915     nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
7916     nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
7917 
7918     nsresult (*GetDnDMode)(IMachine *pThis, PRUint32 *dnDMode);
7919     nsresult (*SetDnDMode)(IMachine *pThis, PRUint32 dnDMode);
7920 
7921     nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
7922     nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
7923 
7924     nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
7925     nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
7926 
7927     nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
7928     nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
7929 
7930     nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
7931     nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
7932 
7933     nsresult (*GetParavirtProvider)(IMachine *pThis, PRUint32 *paravirtProvider);
7934     nsresult (*SetParavirtProvider)(IMachine *pThis, PRUint32 paravirtProvider);
7935 
7936     nsresult (*GetFaultToleranceState)(IMachine *pThis, PRUint32 *faultToleranceState);
7937     nsresult (*SetFaultToleranceState)(IMachine *pThis, PRUint32 faultToleranceState);
7938 
7939     nsresult (*GetFaultTolerancePort)(IMachine *pThis, PRUint32 *faultTolerancePort);
7940     nsresult (*SetFaultTolerancePort)(IMachine *pThis, PRUint32 faultTolerancePort);
7941 
7942     nsresult (*GetFaultToleranceAddress)(IMachine *pThis, PRUnichar * *faultToleranceAddress);
7943     nsresult (*SetFaultToleranceAddress)(IMachine *pThis, PRUnichar * faultToleranceAddress);
7944 
7945     nsresult (*GetFaultTolerancePassword)(IMachine *pThis, PRUnichar * *faultTolerancePassword);
7946     nsresult (*SetFaultTolerancePassword)(IMachine *pThis, PRUnichar * faultTolerancePassword);
7947 
7948     nsresult (*GetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 *faultToleranceSyncInterval);
7949     nsresult (*SetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 faultToleranceSyncInterval);
7950 
7951     nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
7952     nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
7953 
7954     nsresult (*GetIOCacheEnabled)(IMachine *pThis, PRBool *IOCacheEnabled);
7955     nsresult (*SetIOCacheEnabled)(IMachine *pThis, PRBool IOCacheEnabled);
7956 
7957     nsresult (*GetIOCacheSize)(IMachine *pThis, PRUint32 *IOCacheSize);
7958     nsresult (*SetIOCacheSize)(IMachine *pThis, PRUint32 IOCacheSize);
7959 
7960     nsresult (*GetPCIDeviceAssignments)(IMachine *pThis, PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment * **PCIDeviceAssignments);
7961 
7962     nsresult (*GetBandwidthControl)(IMachine *pThis, IBandwidthControl * *bandwidthControl);
7963 
7964     nsresult (*GetTracingEnabled)(IMachine *pThis, PRBool *tracingEnabled);
7965     nsresult (*SetTracingEnabled)(IMachine *pThis, PRBool tracingEnabled);
7966 
7967     nsresult (*GetTracingConfig)(IMachine *pThis, PRUnichar * *tracingConfig);
7968     nsresult (*SetTracingConfig)(IMachine *pThis, PRUnichar * tracingConfig);
7969 
7970     nsresult (*GetAllowTracingToAccessVM)(IMachine *pThis, PRBool *allowTracingToAccessVM);
7971     nsresult (*SetAllowTracingToAccessVM)(IMachine *pThis, PRBool allowTracingToAccessVM);
7972 
7973     nsresult (*GetAutostartEnabled)(IMachine *pThis, PRBool *autostartEnabled);
7974     nsresult (*SetAutostartEnabled)(IMachine *pThis, PRBool autostartEnabled);
7975 
7976     nsresult (*GetAutostartDelay)(IMachine *pThis, PRUint32 *autostartDelay);
7977     nsresult (*SetAutostartDelay)(IMachine *pThis, PRUint32 autostartDelay);
7978 
7979     nsresult (*GetAutostopType)(IMachine *pThis, PRUint32 *autostopType);
7980     nsresult (*SetAutostopType)(IMachine *pThis, PRUint32 autostopType);
7981 
7982     nsresult (*GetDefaultFrontend)(IMachine *pThis, PRUnichar * *defaultFrontend);
7983     nsresult (*SetDefaultFrontend)(IMachine *pThis, PRUnichar * defaultFrontend);
7984 
7985     nsresult (*GetUSBProxyAvailable)(IMachine *pThis, PRBool *USBProxyAvailable);
7986 
7987     nsresult (*GetVMProcessPriority)(IMachine *pThis, PRUnichar * *VMProcessPriority);
7988     nsresult (*SetVMProcessPriority)(IMachine *pThis, PRUnichar * VMProcessPriority);
7989 
7990     nsresult (*GetParavirtDebug)(IMachine *pThis, PRUnichar * *paravirtDebug);
7991     nsresult (*SetParavirtDebug)(IMachine *pThis, PRUnichar * paravirtDebug);
7992 
7993     nsresult (*GetCPUProfile)(IMachine *pThis, PRUnichar * *CPUProfile);
7994     nsresult (*SetCPUProfile)(IMachine *pThis, PRUnichar * CPUProfile);
7995 
7996     nsresult (*GetInternalAndReservedAttribute1IMachine)(IMachine *pThis, PRUint32 *reserved);
7997 
7998     nsresult (*GetInternalAndReservedAttribute2IMachine)(IMachine *pThis, PRUint32 *reserved);
7999 
8000     nsresult (*GetInternalAndReservedAttribute3IMachine)(IMachine *pThis, PRUint32 *reserved);
8001 
8002     nsresult (*GetInternalAndReservedAttribute4IMachine)(IMachine *pThis, PRUint32 *reserved);
8003 
8004     nsresult (*GetInternalAndReservedAttribute5IMachine)(IMachine *pThis, PRUint32 *reserved);
8005 
8006     nsresult (*GetInternalAndReservedAttribute6IMachine)(IMachine *pThis, PRUint32 *reserved);
8007 
8008     nsresult (*GetInternalAndReservedAttribute7IMachine)(IMachine *pThis, PRUint32 *reserved);
8009 
8010     nsresult (*GetInternalAndReservedAttribute8IMachine)(IMachine *pThis, PRUint32 *reserved);
8011 
8012     nsresult (*GetInternalAndReservedAttribute9IMachine)(IMachine *pThis, PRUint32 *reserved);
8013 
8014     nsresult (*GetInternalAndReservedAttribute10IMachine)(IMachine *pThis, PRUint32 *reserved);
8015 
8016     nsresult (*LockMachine)(
8017         IMachine *pThis,
8018         ISession * session,
8019         PRUint32 lockType
8020     );
8021 
8022     nsresult (*LaunchVMProcess)(
8023         IMachine *pThis,
8024         ISession * session,
8025         PRUnichar * name,
8026         PRUnichar * environment,
8027         IProgress * * progress
8028     );
8029 
8030     nsresult (*SetBootOrder)(
8031         IMachine *pThis,
8032         PRUint32 position,
8033         PRUint32 device
8034     );
8035 
8036     nsresult (*GetBootOrder)(
8037         IMachine *pThis,
8038         PRUint32 position,
8039         PRUint32 * device
8040     );
8041 
8042     nsresult (*AttachDevice)(
8043         IMachine *pThis,
8044         PRUnichar * name,
8045         PRInt32 controllerPort,
8046         PRInt32 device,
8047         PRUint32 type,
8048         IMedium * medium
8049     );
8050 
8051     nsresult (*AttachDeviceWithoutMedium)(
8052         IMachine *pThis,
8053         PRUnichar * name,
8054         PRInt32 controllerPort,
8055         PRInt32 device,
8056         PRUint32 type
8057     );
8058 
8059     nsresult (*DetachDevice)(
8060         IMachine *pThis,
8061         PRUnichar * name,
8062         PRInt32 controllerPort,
8063         PRInt32 device
8064     );
8065 
8066     nsresult (*PassthroughDevice)(
8067         IMachine *pThis,
8068         PRUnichar * name,
8069         PRInt32 controllerPort,
8070         PRInt32 device,
8071         PRBool passthrough
8072     );
8073 
8074     nsresult (*TemporaryEjectDevice)(
8075         IMachine *pThis,
8076         PRUnichar * name,
8077         PRInt32 controllerPort,
8078         PRInt32 device,
8079         PRBool temporaryEject
8080     );
8081 
8082     nsresult (*NonRotationalDevice)(
8083         IMachine *pThis,
8084         PRUnichar * name,
8085         PRInt32 controllerPort,
8086         PRInt32 device,
8087         PRBool nonRotational
8088     );
8089 
8090     nsresult (*SetAutoDiscardForDevice)(
8091         IMachine *pThis,
8092         PRUnichar * name,
8093         PRInt32 controllerPort,
8094         PRInt32 device,
8095         PRBool discard
8096     );
8097 
8098     nsresult (*SetHotPluggableForDevice)(
8099         IMachine *pThis,
8100         PRUnichar * name,
8101         PRInt32 controllerPort,
8102         PRInt32 device,
8103         PRBool hotPluggable
8104     );
8105 
8106     nsresult (*SetBandwidthGroupForDevice)(
8107         IMachine *pThis,
8108         PRUnichar * name,
8109         PRInt32 controllerPort,
8110         PRInt32 device,
8111         IBandwidthGroup * bandwidthGroup
8112     );
8113 
8114     nsresult (*SetNoBandwidthGroupForDevice)(
8115         IMachine *pThis,
8116         PRUnichar * name,
8117         PRInt32 controllerPort,
8118         PRInt32 device
8119     );
8120 
8121     nsresult (*UnmountMedium)(
8122         IMachine *pThis,
8123         PRUnichar * name,
8124         PRInt32 controllerPort,
8125         PRInt32 device,
8126         PRBool force
8127     );
8128 
8129     nsresult (*MountMedium)(
8130         IMachine *pThis,
8131         PRUnichar * name,
8132         PRInt32 controllerPort,
8133         PRInt32 device,
8134         IMedium * medium,
8135         PRBool force
8136     );
8137 
8138     nsresult (*GetMedium)(
8139         IMachine *pThis,
8140         PRUnichar * name,
8141         PRInt32 controllerPort,
8142         PRInt32 device,
8143         IMedium * * medium
8144     );
8145 
8146     nsresult (*GetMediumAttachmentsOfController)(
8147         IMachine *pThis,
8148         PRUnichar * name,
8149         PRUint32 *mediumAttachmentsSize,
8150         IMediumAttachment *** mediumAttachments
8151     );
8152 
8153     nsresult (*GetMediumAttachment)(
8154         IMachine *pThis,
8155         PRUnichar * name,
8156         PRInt32 controllerPort,
8157         PRInt32 device,
8158         IMediumAttachment * * attachment
8159     );
8160 
8161     nsresult (*AttachHostPCIDevice)(
8162         IMachine *pThis,
8163         PRInt32 hostAddress,
8164         PRInt32 desiredGuestAddress,
8165         PRBool tryToUnbind
8166     );
8167 
8168     nsresult (*DetachHostPCIDevice)(
8169         IMachine *pThis,
8170         PRInt32 hostAddress
8171     );
8172 
8173     nsresult (*GetNetworkAdapter)(
8174         IMachine *pThis,
8175         PRUint32 slot,
8176         INetworkAdapter * * adapter
8177     );
8178 
8179     nsresult (*AddStorageController)(
8180         IMachine *pThis,
8181         PRUnichar * name,
8182         PRUint32 connectionType,
8183         IStorageController * * controller
8184     );
8185 
8186     nsresult (*GetStorageControllerByName)(
8187         IMachine *pThis,
8188         PRUnichar * name,
8189         IStorageController * * storageController
8190     );
8191 
8192     nsresult (*GetStorageControllerByInstance)(
8193         IMachine *pThis,
8194         PRUint32 connectionType,
8195         PRUint32 instance,
8196         IStorageController * * storageController
8197     );
8198 
8199     nsresult (*RemoveStorageController)(
8200         IMachine *pThis,
8201         PRUnichar * name
8202     );
8203 
8204     nsresult (*SetStorageControllerBootable)(
8205         IMachine *pThis,
8206         PRUnichar * name,
8207         PRBool bootable
8208     );
8209 
8210     nsresult (*AddUSBController)(
8211         IMachine *pThis,
8212         PRUnichar * name,
8213         PRUint32 type,
8214         IUSBController * * controller
8215     );
8216 
8217     nsresult (*RemoveUSBController)(
8218         IMachine *pThis,
8219         PRUnichar * name
8220     );
8221 
8222     nsresult (*GetUSBControllerByName)(
8223         IMachine *pThis,
8224         PRUnichar * name,
8225         IUSBController * * controller
8226     );
8227 
8228     nsresult (*GetUSBControllerCountByType)(
8229         IMachine *pThis,
8230         PRUint32 type,
8231         PRUint32 * controllers
8232     );
8233 
8234     nsresult (*GetSerialPort)(
8235         IMachine *pThis,
8236         PRUint32 slot,
8237         ISerialPort * * port
8238     );
8239 
8240     nsresult (*GetParallelPort)(
8241         IMachine *pThis,
8242         PRUint32 slot,
8243         IParallelPort * * port
8244     );
8245 
8246     nsresult (*GetExtraDataKeys)(
8247         IMachine *pThis,
8248         PRUint32 *keysSize,
8249         PRUnichar *** keys
8250     );
8251 
8252     nsresult (*GetExtraData)(
8253         IMachine *pThis,
8254         PRUnichar * key,
8255         PRUnichar * * value
8256     );
8257 
8258     nsresult (*SetExtraData)(
8259         IMachine *pThis,
8260         PRUnichar * key,
8261         PRUnichar * value
8262     );
8263 
8264     nsresult (*GetCPUProperty)(
8265         IMachine *pThis,
8266         PRUint32 property,
8267         PRBool * value
8268     );
8269 
8270     nsresult (*SetCPUProperty)(
8271         IMachine *pThis,
8272         PRUint32 property,
8273         PRBool value
8274     );
8275 
8276     nsresult (*GetCPUIDLeafByOrdinal)(
8277         IMachine *pThis,
8278         PRUint32 ordinal,
8279         PRUint32 * idx,
8280         PRUint32 * idxSub,
8281         PRUint32 * valEax,
8282         PRUint32 * valEbx,
8283         PRUint32 * valEcx,
8284         PRUint32 * valEdx
8285     );
8286 
8287     nsresult (*GetCPUIDLeaf)(
8288         IMachine *pThis,
8289         PRUint32 idx,
8290         PRUint32 idxSub,
8291         PRUint32 * valEax,
8292         PRUint32 * valEbx,
8293         PRUint32 * valEcx,
8294         PRUint32 * valEdx
8295     );
8296 
8297     nsresult (*SetCPUIDLeaf)(
8298         IMachine *pThis,
8299         PRUint32 idx,
8300         PRUint32 idxSub,
8301         PRUint32 valEax,
8302         PRUint32 valEbx,
8303         PRUint32 valEcx,
8304         PRUint32 valEdx
8305     );
8306 
8307     nsresult (*RemoveCPUIDLeaf)(
8308         IMachine *pThis,
8309         PRUint32 idx,
8310         PRUint32 idxSub
8311     );
8312 
8313     nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
8314 
8315     nsresult (*GetHWVirtExProperty)(
8316         IMachine *pThis,
8317         PRUint32 property,
8318         PRBool * value
8319     );
8320 
8321     nsresult (*SetHWVirtExProperty)(
8322         IMachine *pThis,
8323         PRUint32 property,
8324         PRBool value
8325     );
8326 
8327     nsresult (*SetSettingsFilePath)(
8328         IMachine *pThis,
8329         PRUnichar * settingsFilePath,
8330         IProgress * * progress
8331     );
8332 
8333     nsresult (*SaveSettings)(IMachine *pThis );
8334 
8335     nsresult (*DiscardSettings)(IMachine *pThis );
8336 
8337     nsresult (*Unregister)(
8338         IMachine *pThis,
8339         PRUint32 cleanupMode,
8340         PRUint32 *mediaSize,
8341         IMedium *** media
8342     );
8343 
8344     nsresult (*DeleteConfig)(
8345         IMachine *pThis,
8346         PRUint32 mediaSize,
8347         IMedium ** media,
8348         IProgress * * progress
8349     );
8350 
8351     nsresult (*ExportTo)(
8352         IMachine *pThis,
8353         IAppliance * appliance,
8354         PRUnichar * location,
8355         IVirtualSystemDescription * * description
8356     );
8357 
8358     nsresult (*FindSnapshot)(
8359         IMachine *pThis,
8360         PRUnichar * nameOrId,
8361         ISnapshot * * snapshot
8362     );
8363 
8364     nsresult (*CreateSharedFolder)(
8365         IMachine *pThis,
8366         PRUnichar * name,
8367         PRUnichar * hostPath,
8368         PRBool writable,
8369         PRBool automount,
8370         PRUnichar * autoMountPoint
8371     );
8372 
8373     nsresult (*RemoveSharedFolder)(
8374         IMachine *pThis,
8375         PRUnichar * name
8376     );
8377 
8378     nsresult (*CanShowConsoleWindow)(
8379         IMachine *pThis,
8380         PRBool * canShow
8381     );
8382 
8383     nsresult (*ShowConsoleWindow)(
8384         IMachine *pThis,
8385         PRInt64 * winId
8386     );
8387 
8388     nsresult (*GetGuestProperty)(
8389         IMachine *pThis,
8390         PRUnichar * name,
8391         PRUnichar * * value,
8392         PRInt64 * timestamp,
8393         PRUnichar * * flags
8394     );
8395 
8396     nsresult (*GetGuestPropertyValue)(
8397         IMachine *pThis,
8398         PRUnichar * property,
8399         PRUnichar * * value
8400     );
8401 
8402     nsresult (*GetGuestPropertyTimestamp)(
8403         IMachine *pThis,
8404         PRUnichar * property,
8405         PRInt64 * value
8406     );
8407 
8408     nsresult (*SetGuestProperty)(
8409         IMachine *pThis,
8410         PRUnichar * property,
8411         PRUnichar * value,
8412         PRUnichar * flags
8413     );
8414 
8415     nsresult (*SetGuestPropertyValue)(
8416         IMachine *pThis,
8417         PRUnichar * property,
8418         PRUnichar * value
8419     );
8420 
8421     nsresult (*DeleteGuestProperty)(
8422         IMachine *pThis,
8423         PRUnichar * name
8424     );
8425 
8426     nsresult (*EnumerateGuestProperties)(
8427         IMachine *pThis,
8428         PRUnichar * patterns,
8429         PRUint32 *namesSize,
8430         PRUnichar *** names,
8431         PRUint32 *valuesSize,
8432         PRUnichar *** values,
8433         PRUint32 *timestampsSize,
8434         PRInt64** timestamps,
8435         PRUint32 *flagsSize,
8436         PRUnichar *** flags
8437     );
8438 
8439     nsresult (*QuerySavedGuestScreenInfo)(
8440         IMachine *pThis,
8441         PRUint32 screenId,
8442         PRUint32 * originX,
8443         PRUint32 * originY,
8444         PRUint32 * width,
8445         PRUint32 * height,
8446         PRBool * enabled
8447     );
8448 
8449     nsresult (*ReadSavedThumbnailToArray)(
8450         IMachine *pThis,
8451         PRUint32 screenId,
8452         PRUint32 bitmapFormat,
8453         PRUint32 * width,
8454         PRUint32 * height,
8455         PRUint32 *dataSize,
8456         PRUint8** data
8457     );
8458 
8459     nsresult (*QuerySavedScreenshotInfo)(
8460         IMachine *pThis,
8461         PRUint32 screenId,
8462         PRUint32 * width,
8463         PRUint32 * height,
8464         PRUint32 *bitmapFormatsSize,
8465         PRUint32** bitmapFormats
8466     );
8467 
8468     nsresult (*ReadSavedScreenshotToArray)(
8469         IMachine *pThis,
8470         PRUint32 screenId,
8471         PRUint32 bitmapFormat,
8472         PRUint32 * width,
8473         PRUint32 * height,
8474         PRUint32 *dataSize,
8475         PRUint8** data
8476     );
8477 
8478     nsresult (*HotPlugCPU)(
8479         IMachine *pThis,
8480         PRUint32 cpu
8481     );
8482 
8483     nsresult (*HotUnplugCPU)(
8484         IMachine *pThis,
8485         PRUint32 cpu
8486     );
8487 
8488     nsresult (*GetCPUStatus)(
8489         IMachine *pThis,
8490         PRUint32 cpu,
8491         PRBool * attached
8492     );
8493 
8494     nsresult (*GetEffectiveParavirtProvider)(
8495         IMachine *pThis,
8496         PRUint32 * paravirtProvider
8497     );
8498 
8499     nsresult (*QueryLogFilename)(
8500         IMachine *pThis,
8501         PRUint32 idx,
8502         PRUnichar * * filename
8503     );
8504 
8505     nsresult (*ReadLog)(
8506         IMachine *pThis,
8507         PRUint32 idx,
8508         PRInt64 offset,
8509         PRInt64 size,
8510         PRUint32 *dataSize,
8511         PRUint8** data
8512     );
8513 
8514     nsresult (*CloneTo)(
8515         IMachine *pThis,
8516         IMachine * target,
8517         PRUint32 mode,
8518         PRUint32 optionsSize,
8519         PRUint32* options,
8520         IProgress * * progress
8521     );
8522 
8523     nsresult (*MoveTo)(
8524         IMachine *pThis,
8525         PRUnichar * folder,
8526         PRUnichar * type,
8527         IProgress * * progress
8528     );
8529 
8530     nsresult (*SaveState)(
8531         IMachine *pThis,
8532         IProgress * * progress
8533     );
8534 
8535     nsresult (*AdoptSavedState)(
8536         IMachine *pThis,
8537         PRUnichar * savedStateFile
8538     );
8539 
8540     nsresult (*DiscardSavedState)(
8541         IMachine *pThis,
8542         PRBool fRemoveFile
8543     );
8544 
8545     nsresult (*TakeSnapshot)(
8546         IMachine *pThis,
8547         PRUnichar * name,
8548         PRUnichar * description,
8549         PRBool pause,
8550         PRUnichar * * id,
8551         IProgress * * progress
8552     );
8553 
8554     nsresult (*DeleteSnapshot)(
8555         IMachine *pThis,
8556         PRUnichar * id,
8557         IProgress * * progress
8558     );
8559 
8560     nsresult (*DeleteSnapshotAndAllChildren)(
8561         IMachine *pThis,
8562         PRUnichar * id,
8563         IProgress * * progress
8564     );
8565 
8566     nsresult (*DeleteSnapshotRange)(
8567         IMachine *pThis,
8568         PRUnichar * startId,
8569         PRUnichar * endId,
8570         IProgress * * progress
8571     );
8572 
8573     nsresult (*RestoreSnapshot)(
8574         IMachine *pThis,
8575         ISnapshot * snapshot,
8576         IProgress * * progress
8577     );
8578 
8579     nsresult (*ApplyDefaults)(
8580         IMachine *pThis,
8581         PRUnichar * flags
8582     );
8583 
8584     nsresult (*InternalAndReservedMethod1IMachine)(IMachine *pThis);
8585 
8586     nsresult (*InternalAndReservedMethod2IMachine)(IMachine *pThis);
8587 
8588     nsresult (*InternalAndReservedMethod3IMachine)(IMachine *pThis);
8589 
8590     nsresult (*InternalAndReservedMethod4IMachine)(IMachine *pThis);
8591 
8592     nsresult (*InternalAndReservedMethod5IMachine)(IMachine *pThis);
8593 
8594     nsresult (*InternalAndReservedMethod6IMachine)(IMachine *pThis);
8595 
8596     nsresult (*InternalAndReservedMethod7IMachine)(IMachine *pThis);
8597 
8598     nsresult (*InternalAndReservedMethod8IMachine)(IMachine *pThis);
8599 
8600 };
8601 #    define IMachine_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8602 #    define IMachine_AddRef(p) ((p)->lpVtbl->AddRef(p))
8603 #    define IMachine_Release(p) ((p)->lpVtbl->Release(p))
8604 #    define IMachine_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
8605 #    define IMachine_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
8606 #    define IMachine_get_Icon(p, aIcon) ((p)->lpVtbl->GetIcon(p, aIcon))
8607 #    define IMachine_GetIcon(p, aIcon) ((p)->lpVtbl->GetIcon(p, aIcon))
8608 #    define IMachine_put_Icon(p, aIcon) ((p)->lpVtbl->SetIcon(p, aIcon))
8609 #    define IMachine_SetIcon(p, aIcon) ((p)->lpVtbl->SetIcon(p, aIcon))
8610 #    define IMachine_get_Accessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
8611 #    define IMachine_GetAccessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
8612 #    define IMachine_get_AccessError(p, aAccessError) ((p)->lpVtbl->GetAccessError(p, aAccessError))
8613 #    define IMachine_GetAccessError(p, aAccessError) ((p)->lpVtbl->GetAccessError(p, aAccessError))
8614 #    define IMachine_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
8615 #    define IMachine_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
8616 #    define IMachine_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
8617 #    define IMachine_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
8618 #    define IMachine_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
8619 #    define IMachine_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
8620 #    define IMachine_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
8621 #    define IMachine_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
8622 #    define IMachine_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
8623 #    define IMachine_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
8624 #    define IMachine_get_Groups(p, aGroups) ((p)->lpVtbl->GetGroups(p, aGroups))
8625 #    define IMachine_GetGroups(p, aGroups) ((p)->lpVtbl->GetGroups(p, aGroups))
8626 #    define IMachine_put_Groups(p, aGroups) ((p)->lpVtbl->SetGroups(p, aGroups))
8627 #    define IMachine_SetGroups(p, aGroups) ((p)->lpVtbl->SetGroups(p, aGroups))
8628 #    define IMachine_get_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
8629 #    define IMachine_GetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
8630 #    define IMachine_put_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->SetOSTypeId(p, aOSTypeId))
8631 #    define IMachine_SetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->SetOSTypeId(p, aOSTypeId))
8632 #    define IMachine_get_HardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->GetHardwareVersion(p, aHardwareVersion))
8633 #    define IMachine_GetHardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->GetHardwareVersion(p, aHardwareVersion))
8634 #    define IMachine_put_HardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->SetHardwareVersion(p, aHardwareVersion))
8635 #    define IMachine_SetHardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->SetHardwareVersion(p, aHardwareVersion))
8636 #    define IMachine_get_HardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->GetHardwareUUID(p, aHardwareUUID))
8637 #    define IMachine_GetHardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->GetHardwareUUID(p, aHardwareUUID))
8638 #    define IMachine_put_HardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->SetHardwareUUID(p, aHardwareUUID))
8639 #    define IMachine_SetHardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->SetHardwareUUID(p, aHardwareUUID))
8640 #    define IMachine_get_CPUCount(p, aCPUCount) ((p)->lpVtbl->GetCPUCount(p, aCPUCount))
8641 #    define IMachine_GetCPUCount(p, aCPUCount) ((p)->lpVtbl->GetCPUCount(p, aCPUCount))
8642 #    define IMachine_put_CPUCount(p, aCPUCount) ((p)->lpVtbl->SetCPUCount(p, aCPUCount))
8643 #    define IMachine_SetCPUCount(p, aCPUCount) ((p)->lpVtbl->SetCPUCount(p, aCPUCount))
8644 #    define IMachine_get_CPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8645 #    define IMachine_GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8646 #    define IMachine_put_CPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8647 #    define IMachine_SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8648 #    define IMachine_get_CPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->GetCPUExecutionCap(p, aCPUExecutionCap))
8649 #    define IMachine_GetCPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->GetCPUExecutionCap(p, aCPUExecutionCap))
8650 #    define IMachine_put_CPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->SetCPUExecutionCap(p, aCPUExecutionCap))
8651 #    define IMachine_SetCPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->SetCPUExecutionCap(p, aCPUExecutionCap))
8652 #    define IMachine_get_CPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8653 #    define IMachine_GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8654 #    define IMachine_put_CPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8655 #    define IMachine_SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8656 #    define IMachine_get_MemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
8657 #    define IMachine_GetMemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
8658 #    define IMachine_put_MemorySize(p, aMemorySize) ((p)->lpVtbl->SetMemorySize(p, aMemorySize))
8659 #    define IMachine_SetMemorySize(p, aMemorySize) ((p)->lpVtbl->SetMemorySize(p, aMemorySize))
8660 #    define IMachine_get_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
8661 #    define IMachine_GetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
8662 #    define IMachine_put_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
8663 #    define IMachine_SetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
8664 #    define IMachine_get_PageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->GetPageFusionEnabled(p, aPageFusionEnabled))
8665 #    define IMachine_GetPageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->GetPageFusionEnabled(p, aPageFusionEnabled))
8666 #    define IMachine_put_PageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->SetPageFusionEnabled(p, aPageFusionEnabled))
8667 #    define IMachine_SetPageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->SetPageFusionEnabled(p, aPageFusionEnabled))
8668 #    define IMachine_get_GraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->GetGraphicsControllerType(p, aGraphicsControllerType))
8669 #    define IMachine_GetGraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->GetGraphicsControllerType(p, aGraphicsControllerType))
8670 #    define IMachine_put_GraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->SetGraphicsControllerType(p, aGraphicsControllerType))
8671 #    define IMachine_SetGraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->SetGraphicsControllerType(p, aGraphicsControllerType))
8672 #    define IMachine_get_VRAMSize(p, aVRAMSize) ((p)->lpVtbl->GetVRAMSize(p, aVRAMSize))
8673 #    define IMachine_GetVRAMSize(p, aVRAMSize) ((p)->lpVtbl->GetVRAMSize(p, aVRAMSize))
8674 #    define IMachine_put_VRAMSize(p, aVRAMSize) ((p)->lpVtbl->SetVRAMSize(p, aVRAMSize))
8675 #    define IMachine_SetVRAMSize(p, aVRAMSize) ((p)->lpVtbl->SetVRAMSize(p, aVRAMSize))
8676 #    define IMachine_get_Accelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->GetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8677 #    define IMachine_GetAccelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->GetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8678 #    define IMachine_put_Accelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->SetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8679 #    define IMachine_SetAccelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->SetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8680 #    define IMachine_get_Accelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8681 #    define IMachine_GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8682 #    define IMachine_put_Accelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8683 #    define IMachine_SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8684 #    define IMachine_get_MonitorCount(p, aMonitorCount) ((p)->lpVtbl->GetMonitorCount(p, aMonitorCount))
8685 #    define IMachine_GetMonitorCount(p, aMonitorCount) ((p)->lpVtbl->GetMonitorCount(p, aMonitorCount))
8686 #    define IMachine_put_MonitorCount(p, aMonitorCount) ((p)->lpVtbl->SetMonitorCount(p, aMonitorCount))
8687 #    define IMachine_SetMonitorCount(p, aMonitorCount) ((p)->lpVtbl->SetMonitorCount(p, aMonitorCount))
8688 #    define IMachine_get_BIOSSettings(p, aBIOSSettings) ((p)->lpVtbl->GetBIOSSettings(p, aBIOSSettings))
8689 #    define IMachine_GetBIOSSettings(p, aBIOSSettings) ((p)->lpVtbl->GetBIOSSettings(p, aBIOSSettings))
8690 #    define IMachine_get_RecordingSettings(p, aRecordingSettings) ((p)->lpVtbl->GetRecordingSettings(p, aRecordingSettings))
8691 #    define IMachine_GetRecordingSettings(p, aRecordingSettings) ((p)->lpVtbl->GetRecordingSettings(p, aRecordingSettings))
8692 #    define IMachine_get_FirmwareType(p, aFirmwareType) ((p)->lpVtbl->GetFirmwareType(p, aFirmwareType))
8693 #    define IMachine_GetFirmwareType(p, aFirmwareType) ((p)->lpVtbl->GetFirmwareType(p, aFirmwareType))
8694 #    define IMachine_put_FirmwareType(p, aFirmwareType) ((p)->lpVtbl->SetFirmwareType(p, aFirmwareType))
8695 #    define IMachine_SetFirmwareType(p, aFirmwareType) ((p)->lpVtbl->SetFirmwareType(p, aFirmwareType))
8696 #    define IMachine_get_PointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->GetPointingHIDType(p, aPointingHIDType))
8697 #    define IMachine_GetPointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->GetPointingHIDType(p, aPointingHIDType))
8698 #    define IMachine_put_PointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->SetPointingHIDType(p, aPointingHIDType))
8699 #    define IMachine_SetPointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->SetPointingHIDType(p, aPointingHIDType))
8700 #    define IMachine_get_KeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->GetKeyboardHIDType(p, aKeyboardHIDType))
8701 #    define IMachine_GetKeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->GetKeyboardHIDType(p, aKeyboardHIDType))
8702 #    define IMachine_put_KeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->SetKeyboardHIDType(p, aKeyboardHIDType))
8703 #    define IMachine_SetKeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->SetKeyboardHIDType(p, aKeyboardHIDType))
8704 #    define IMachine_get_HPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->GetHPETEnabled(p, aHPETEnabled))
8705 #    define IMachine_GetHPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->GetHPETEnabled(p, aHPETEnabled))
8706 #    define IMachine_put_HPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->SetHPETEnabled(p, aHPETEnabled))
8707 #    define IMachine_SetHPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->SetHPETEnabled(p, aHPETEnabled))
8708 #    define IMachine_get_ChipsetType(p, aChipsetType) ((p)->lpVtbl->GetChipsetType(p, aChipsetType))
8709 #    define IMachine_GetChipsetType(p, aChipsetType) ((p)->lpVtbl->GetChipsetType(p, aChipsetType))
8710 #    define IMachine_put_ChipsetType(p, aChipsetType) ((p)->lpVtbl->SetChipsetType(p, aChipsetType))
8711 #    define IMachine_SetChipsetType(p, aChipsetType) ((p)->lpVtbl->SetChipsetType(p, aChipsetType))
8712 #    define IMachine_get_SnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->GetSnapshotFolder(p, aSnapshotFolder))
8713 #    define IMachine_GetSnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->GetSnapshotFolder(p, aSnapshotFolder))
8714 #    define IMachine_put_SnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->SetSnapshotFolder(p, aSnapshotFolder))
8715 #    define IMachine_SetSnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->SetSnapshotFolder(p, aSnapshotFolder))
8716 #    define IMachine_get_VRDEServer(p, aVRDEServer) ((p)->lpVtbl->GetVRDEServer(p, aVRDEServer))
8717 #    define IMachine_GetVRDEServer(p, aVRDEServer) ((p)->lpVtbl->GetVRDEServer(p, aVRDEServer))
8718 #    define IMachine_get_EmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8719 #    define IMachine_GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8720 #    define IMachine_put_EmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8721 #    define IMachine_SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8722 #    define IMachine_get_MediumAttachments(p, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachments(p, aMediumAttachments))
8723 #    define IMachine_GetMediumAttachments(p, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachments(p, aMediumAttachments))
8724 #    define IMachine_get_USBControllers(p, aUSBControllers) ((p)->lpVtbl->GetUSBControllers(p, aUSBControllers))
8725 #    define IMachine_GetUSBControllers(p, aUSBControllers) ((p)->lpVtbl->GetUSBControllers(p, aUSBControllers))
8726 #    define IMachine_get_USBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
8727 #    define IMachine_GetUSBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
8728 #    define IMachine_get_AudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
8729 #    define IMachine_GetAudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
8730 #    define IMachine_get_StorageControllers(p, aStorageControllers) ((p)->lpVtbl->GetStorageControllers(p, aStorageControllers))
8731 #    define IMachine_GetStorageControllers(p, aStorageControllers) ((p)->lpVtbl->GetStorageControllers(p, aStorageControllers))
8732 #    define IMachine_get_SettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
8733 #    define IMachine_GetSettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
8734 #    define IMachine_get_SettingsAuxFilePath(p, aSettingsAuxFilePath) ((p)->lpVtbl->GetSettingsAuxFilePath(p, aSettingsAuxFilePath))
8735 #    define IMachine_GetSettingsAuxFilePath(p, aSettingsAuxFilePath) ((p)->lpVtbl->GetSettingsAuxFilePath(p, aSettingsAuxFilePath))
8736 #    define IMachine_get_SettingsModified(p, aSettingsModified) ((p)->lpVtbl->GetSettingsModified(p, aSettingsModified))
8737 #    define IMachine_GetSettingsModified(p, aSettingsModified) ((p)->lpVtbl->GetSettingsModified(p, aSettingsModified))
8738 #    define IMachine_get_SessionState(p, aSessionState) ((p)->lpVtbl->GetSessionState(p, aSessionState))
8739 #    define IMachine_GetSessionState(p, aSessionState) ((p)->lpVtbl->GetSessionState(p, aSessionState))
8740 #    define IMachine_get_SessionName(p, aSessionName) ((p)->lpVtbl->GetSessionName(p, aSessionName))
8741 #    define IMachine_GetSessionName(p, aSessionName) ((p)->lpVtbl->GetSessionName(p, aSessionName))
8742 #    define IMachine_get_SessionPID(p, aSessionPID) ((p)->lpVtbl->GetSessionPID(p, aSessionPID))
8743 #    define IMachine_GetSessionPID(p, aSessionPID) ((p)->lpVtbl->GetSessionPID(p, aSessionPID))
8744 #    define IMachine_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
8745 #    define IMachine_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
8746 #    define IMachine_get_LastStateChange(p, aLastStateChange) ((p)->lpVtbl->GetLastStateChange(p, aLastStateChange))
8747 #    define IMachine_GetLastStateChange(p, aLastStateChange) ((p)->lpVtbl->GetLastStateChange(p, aLastStateChange))
8748 #    define IMachine_get_StateFilePath(p, aStateFilePath) ((p)->lpVtbl->GetStateFilePath(p, aStateFilePath))
8749 #    define IMachine_GetStateFilePath(p, aStateFilePath) ((p)->lpVtbl->GetStateFilePath(p, aStateFilePath))
8750 #    define IMachine_get_LogFolder(p, aLogFolder) ((p)->lpVtbl->GetLogFolder(p, aLogFolder))
8751 #    define IMachine_GetLogFolder(p, aLogFolder) ((p)->lpVtbl->GetLogFolder(p, aLogFolder))
8752 #    define IMachine_get_CurrentSnapshot(p, aCurrentSnapshot) ((p)->lpVtbl->GetCurrentSnapshot(p, aCurrentSnapshot))
8753 #    define IMachine_GetCurrentSnapshot(p, aCurrentSnapshot) ((p)->lpVtbl->GetCurrentSnapshot(p, aCurrentSnapshot))
8754 #    define IMachine_get_SnapshotCount(p, aSnapshotCount) ((p)->lpVtbl->GetSnapshotCount(p, aSnapshotCount))
8755 #    define IMachine_GetSnapshotCount(p, aSnapshotCount) ((p)->lpVtbl->GetSnapshotCount(p, aSnapshotCount))
8756 #    define IMachine_get_CurrentStateModified(p, aCurrentStateModified) ((p)->lpVtbl->GetCurrentStateModified(p, aCurrentStateModified))
8757 #    define IMachine_GetCurrentStateModified(p, aCurrentStateModified) ((p)->lpVtbl->GetCurrentStateModified(p, aCurrentStateModified))
8758 #    define IMachine_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
8759 #    define IMachine_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
8760 #    define IMachine_get_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
8761 #    define IMachine_GetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
8762 #    define IMachine_put_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->SetClipboardMode(p, aClipboardMode))
8763 #    define IMachine_SetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->SetClipboardMode(p, aClipboardMode))
8764 #    define IMachine_get_DnDMode(p, aDnDMode) ((p)->lpVtbl->GetDnDMode(p, aDnDMode))
8765 #    define IMachine_GetDnDMode(p, aDnDMode) ((p)->lpVtbl->GetDnDMode(p, aDnDMode))
8766 #    define IMachine_put_DnDMode(p, aDnDMode) ((p)->lpVtbl->SetDnDMode(p, aDnDMode))
8767 #    define IMachine_SetDnDMode(p, aDnDMode) ((p)->lpVtbl->SetDnDMode(p, aDnDMode))
8768 #    define IMachine_get_TeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->GetTeleporterEnabled(p, aTeleporterEnabled))
8769 #    define IMachine_GetTeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->GetTeleporterEnabled(p, aTeleporterEnabled))
8770 #    define IMachine_put_TeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->SetTeleporterEnabled(p, aTeleporterEnabled))
8771 #    define IMachine_SetTeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->SetTeleporterEnabled(p, aTeleporterEnabled))
8772 #    define IMachine_get_TeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->GetTeleporterPort(p, aTeleporterPort))
8773 #    define IMachine_GetTeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->GetTeleporterPort(p, aTeleporterPort))
8774 #    define IMachine_put_TeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->SetTeleporterPort(p, aTeleporterPort))
8775 #    define IMachine_SetTeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->SetTeleporterPort(p, aTeleporterPort))
8776 #    define IMachine_get_TeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->GetTeleporterAddress(p, aTeleporterAddress))
8777 #    define IMachine_GetTeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->GetTeleporterAddress(p, aTeleporterAddress))
8778 #    define IMachine_put_TeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->SetTeleporterAddress(p, aTeleporterAddress))
8779 #    define IMachine_SetTeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->SetTeleporterAddress(p, aTeleporterAddress))
8780 #    define IMachine_get_TeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->GetTeleporterPassword(p, aTeleporterPassword))
8781 #    define IMachine_GetTeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->GetTeleporterPassword(p, aTeleporterPassword))
8782 #    define IMachine_put_TeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->SetTeleporterPassword(p, aTeleporterPassword))
8783 #    define IMachine_SetTeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->SetTeleporterPassword(p, aTeleporterPassword))
8784 #    define IMachine_get_ParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetParavirtProvider(p, aParavirtProvider))
8785 #    define IMachine_GetParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetParavirtProvider(p, aParavirtProvider))
8786 #    define IMachine_put_ParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->SetParavirtProvider(p, aParavirtProvider))
8787 #    define IMachine_SetParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->SetParavirtProvider(p, aParavirtProvider))
8788 #    define IMachine_get_FaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->GetFaultToleranceState(p, aFaultToleranceState))
8789 #    define IMachine_GetFaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->GetFaultToleranceState(p, aFaultToleranceState))
8790 #    define IMachine_put_FaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->SetFaultToleranceState(p, aFaultToleranceState))
8791 #    define IMachine_SetFaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->SetFaultToleranceState(p, aFaultToleranceState))
8792 #    define IMachine_get_FaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->GetFaultTolerancePort(p, aFaultTolerancePort))
8793 #    define IMachine_GetFaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->GetFaultTolerancePort(p, aFaultTolerancePort))
8794 #    define IMachine_put_FaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->SetFaultTolerancePort(p, aFaultTolerancePort))
8795 #    define IMachine_SetFaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->SetFaultTolerancePort(p, aFaultTolerancePort))
8796 #    define IMachine_get_FaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->GetFaultToleranceAddress(p, aFaultToleranceAddress))
8797 #    define IMachine_GetFaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->GetFaultToleranceAddress(p, aFaultToleranceAddress))
8798 #    define IMachine_put_FaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->SetFaultToleranceAddress(p, aFaultToleranceAddress))
8799 #    define IMachine_SetFaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->SetFaultToleranceAddress(p, aFaultToleranceAddress))
8800 #    define IMachine_get_FaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->GetFaultTolerancePassword(p, aFaultTolerancePassword))
8801 #    define IMachine_GetFaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->GetFaultTolerancePassword(p, aFaultTolerancePassword))
8802 #    define IMachine_put_FaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->SetFaultTolerancePassword(p, aFaultTolerancePassword))
8803 #    define IMachine_SetFaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->SetFaultTolerancePassword(p, aFaultTolerancePassword))
8804 #    define IMachine_get_FaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->GetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8805 #    define IMachine_GetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->GetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8806 #    define IMachine_put_FaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->SetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8807 #    define IMachine_SetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->SetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8808 #    define IMachine_get_RTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->GetRTCUseUTC(p, aRTCUseUTC))
8809 #    define IMachine_GetRTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->GetRTCUseUTC(p, aRTCUseUTC))
8810 #    define IMachine_put_RTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->SetRTCUseUTC(p, aRTCUseUTC))
8811 #    define IMachine_SetRTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->SetRTCUseUTC(p, aRTCUseUTC))
8812 #    define IMachine_get_IOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->GetIOCacheEnabled(p, aIOCacheEnabled))
8813 #    define IMachine_GetIOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->GetIOCacheEnabled(p, aIOCacheEnabled))
8814 #    define IMachine_put_IOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->SetIOCacheEnabled(p, aIOCacheEnabled))
8815 #    define IMachine_SetIOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->SetIOCacheEnabled(p, aIOCacheEnabled))
8816 #    define IMachine_get_IOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->GetIOCacheSize(p, aIOCacheSize))
8817 #    define IMachine_GetIOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->GetIOCacheSize(p, aIOCacheSize))
8818 #    define IMachine_put_IOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->SetIOCacheSize(p, aIOCacheSize))
8819 #    define IMachine_SetIOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->SetIOCacheSize(p, aIOCacheSize))
8820 #    define IMachine_get_PCIDeviceAssignments(p, aPCIDeviceAssignments) ((p)->lpVtbl->GetPCIDeviceAssignments(p, aPCIDeviceAssignments))
8821 #    define IMachine_GetPCIDeviceAssignments(p, aPCIDeviceAssignments) ((p)->lpVtbl->GetPCIDeviceAssignments(p, aPCIDeviceAssignments))
8822 #    define IMachine_get_BandwidthControl(p, aBandwidthControl) ((p)->lpVtbl->GetBandwidthControl(p, aBandwidthControl))
8823 #    define IMachine_GetBandwidthControl(p, aBandwidthControl) ((p)->lpVtbl->GetBandwidthControl(p, aBandwidthControl))
8824 #    define IMachine_get_TracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->GetTracingEnabled(p, aTracingEnabled))
8825 #    define IMachine_GetTracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->GetTracingEnabled(p, aTracingEnabled))
8826 #    define IMachine_put_TracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->SetTracingEnabled(p, aTracingEnabled))
8827 #    define IMachine_SetTracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->SetTracingEnabled(p, aTracingEnabled))
8828 #    define IMachine_get_TracingConfig(p, aTracingConfig) ((p)->lpVtbl->GetTracingConfig(p, aTracingConfig))
8829 #    define IMachine_GetTracingConfig(p, aTracingConfig) ((p)->lpVtbl->GetTracingConfig(p, aTracingConfig))
8830 #    define IMachine_put_TracingConfig(p, aTracingConfig) ((p)->lpVtbl->SetTracingConfig(p, aTracingConfig))
8831 #    define IMachine_SetTracingConfig(p, aTracingConfig) ((p)->lpVtbl->SetTracingConfig(p, aTracingConfig))
8832 #    define IMachine_get_AllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8833 #    define IMachine_GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8834 #    define IMachine_put_AllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8835 #    define IMachine_SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8836 #    define IMachine_get_AutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->GetAutostartEnabled(p, aAutostartEnabled))
8837 #    define IMachine_GetAutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->GetAutostartEnabled(p, aAutostartEnabled))
8838 #    define IMachine_put_AutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->SetAutostartEnabled(p, aAutostartEnabled))
8839 #    define IMachine_SetAutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->SetAutostartEnabled(p, aAutostartEnabled))
8840 #    define IMachine_get_AutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->GetAutostartDelay(p, aAutostartDelay))
8841 #    define IMachine_GetAutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->GetAutostartDelay(p, aAutostartDelay))
8842 #    define IMachine_put_AutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->SetAutostartDelay(p, aAutostartDelay))
8843 #    define IMachine_SetAutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->SetAutostartDelay(p, aAutostartDelay))
8844 #    define IMachine_get_AutostopType(p, aAutostopType) ((p)->lpVtbl->GetAutostopType(p, aAutostopType))
8845 #    define IMachine_GetAutostopType(p, aAutostopType) ((p)->lpVtbl->GetAutostopType(p, aAutostopType))
8846 #    define IMachine_put_AutostopType(p, aAutostopType) ((p)->lpVtbl->SetAutostopType(p, aAutostopType))
8847 #    define IMachine_SetAutostopType(p, aAutostopType) ((p)->lpVtbl->SetAutostopType(p, aAutostopType))
8848 #    define IMachine_get_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
8849 #    define IMachine_GetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
8850 #    define IMachine_put_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
8851 #    define IMachine_SetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
8852 #    define IMachine_get_USBProxyAvailable(p, aUSBProxyAvailable) ((p)->lpVtbl->GetUSBProxyAvailable(p, aUSBProxyAvailable))
8853 #    define IMachine_GetUSBProxyAvailable(p, aUSBProxyAvailable) ((p)->lpVtbl->GetUSBProxyAvailable(p, aUSBProxyAvailable))
8854 #    define IMachine_get_VMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->GetVMProcessPriority(p, aVMProcessPriority))
8855 #    define IMachine_GetVMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->GetVMProcessPriority(p, aVMProcessPriority))
8856 #    define IMachine_put_VMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->SetVMProcessPriority(p, aVMProcessPriority))
8857 #    define IMachine_SetVMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->SetVMProcessPriority(p, aVMProcessPriority))
8858 #    define IMachine_get_ParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->GetParavirtDebug(p, aParavirtDebug))
8859 #    define IMachine_GetParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->GetParavirtDebug(p, aParavirtDebug))
8860 #    define IMachine_put_ParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->SetParavirtDebug(p, aParavirtDebug))
8861 #    define IMachine_SetParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->SetParavirtDebug(p, aParavirtDebug))
8862 #    define IMachine_get_CPUProfile(p, aCPUProfile) ((p)->lpVtbl->GetCPUProfile(p, aCPUProfile))
8863 #    define IMachine_GetCPUProfile(p, aCPUProfile) ((p)->lpVtbl->GetCPUProfile(p, aCPUProfile))
8864 #    define IMachine_put_CPUProfile(p, aCPUProfile) ((p)->lpVtbl->SetCPUProfile(p, aCPUProfile))
8865 #    define IMachine_SetCPUProfile(p, aCPUProfile) ((p)->lpVtbl->SetCPUProfile(p, aCPUProfile))
8866 #    define IMachine_LockMachine(p, aSession, aLockType) ((p)->lpVtbl->LockMachine(p, aSession, aLockType))
8867 #    define IMachine_LaunchVMProcess(p, aSession, aName, aEnvironment, aProgress) ((p)->lpVtbl->LaunchVMProcess(p, aSession, aName, aEnvironment, aProgress))
8868 #    define IMachine_SetBootOrder(p, aPosition, aDevice) ((p)->lpVtbl->SetBootOrder(p, aPosition, aDevice))
8869 #    define IMachine_GetBootOrder(p, aPosition, aDevice) ((p)->lpVtbl->GetBootOrder(p, aPosition, aDevice))
8870 #    define IMachine_AttachDevice(p, aName, aControllerPort, aDevice, aType, aMedium) ((p)->lpVtbl->AttachDevice(p, aName, aControllerPort, aDevice, aType, aMedium))
8871 #    define IMachine_AttachDeviceWithoutMedium(p, aName, aControllerPort, aDevice, aType) ((p)->lpVtbl->AttachDeviceWithoutMedium(p, aName, aControllerPort, aDevice, aType))
8872 #    define IMachine_DetachDevice(p, aName, aControllerPort, aDevice) ((p)->lpVtbl->DetachDevice(p, aName, aControllerPort, aDevice))
8873 #    define IMachine_PassthroughDevice(p, aName, aControllerPort, aDevice, aPassthrough) ((p)->lpVtbl->PassthroughDevice(p, aName, aControllerPort, aDevice, aPassthrough))
8874 #    define IMachine_TemporaryEjectDevice(p, aName, aControllerPort, aDevice, aTemporaryEject) ((p)->lpVtbl->TemporaryEjectDevice(p, aName, aControllerPort, aDevice, aTemporaryEject))
8875 #    define IMachine_NonRotationalDevice(p, aName, aControllerPort, aDevice, aNonRotational) ((p)->lpVtbl->NonRotationalDevice(p, aName, aControllerPort, aDevice, aNonRotational))
8876 #    define IMachine_SetAutoDiscardForDevice(p, aName, aControllerPort, aDevice, aDiscard) ((p)->lpVtbl->SetAutoDiscardForDevice(p, aName, aControllerPort, aDevice, aDiscard))
8877 #    define IMachine_SetHotPluggableForDevice(p, aName, aControllerPort, aDevice, aHotPluggable) ((p)->lpVtbl->SetHotPluggableForDevice(p, aName, aControllerPort, aDevice, aHotPluggable))
8878 #    define IMachine_SetBandwidthGroupForDevice(p, aName, aControllerPort, aDevice, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroupForDevice(p, aName, aControllerPort, aDevice, aBandwidthGroup))
8879 #    define IMachine_SetNoBandwidthGroupForDevice(p, aName, aControllerPort, aDevice) ((p)->lpVtbl->SetNoBandwidthGroupForDevice(p, aName, aControllerPort, aDevice))
8880 #    define IMachine_UnmountMedium(p, aName, aControllerPort, aDevice, aForce) ((p)->lpVtbl->UnmountMedium(p, aName, aControllerPort, aDevice, aForce))
8881 #    define IMachine_MountMedium(p, aName, aControllerPort, aDevice, aMedium, aForce) ((p)->lpVtbl->MountMedium(p, aName, aControllerPort, aDevice, aMedium, aForce))
8882 #    define IMachine_GetMedium(p, aName, aControllerPort, aDevice, aMedium) ((p)->lpVtbl->GetMedium(p, aName, aControllerPort, aDevice, aMedium))
8883 #    define IMachine_GetMediumAttachmentsOfController(p, aName, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachmentsOfController(p, aName, aMediumAttachments))
8884 #    define IMachine_GetMediumAttachment(p, aName, aControllerPort, aDevice, aAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aName, aControllerPort, aDevice, aAttachment))
8885 #    define IMachine_AttachHostPCIDevice(p, aHostAddress, aDesiredGuestAddress, aTryToUnbind) ((p)->lpVtbl->AttachHostPCIDevice(p, aHostAddress, aDesiredGuestAddress, aTryToUnbind))
8886 #    define IMachine_DetachHostPCIDevice(p, aHostAddress) ((p)->lpVtbl->DetachHostPCIDevice(p, aHostAddress))
8887 #    define IMachine_GetNetworkAdapter(p, aSlot, aAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aSlot, aAdapter))
8888 #    define IMachine_AddStorageController(p, aName, aConnectionType, aController) ((p)->lpVtbl->AddStorageController(p, aName, aConnectionType, aController))
8889 #    define IMachine_GetStorageControllerByName(p, aName, aStorageController) ((p)->lpVtbl->GetStorageControllerByName(p, aName, aStorageController))
8890 #    define IMachine_GetStorageControllerByInstance(p, aConnectionType, aInstance, aStorageController) ((p)->lpVtbl->GetStorageControllerByInstance(p, aConnectionType, aInstance, aStorageController))
8891 #    define IMachine_RemoveStorageController(p, aName) ((p)->lpVtbl->RemoveStorageController(p, aName))
8892 #    define IMachine_SetStorageControllerBootable(p, aName, aBootable) ((p)->lpVtbl->SetStorageControllerBootable(p, aName, aBootable))
8893 #    define IMachine_AddUSBController(p, aName, aType, aController) ((p)->lpVtbl->AddUSBController(p, aName, aType, aController))
8894 #    define IMachine_RemoveUSBController(p, aName) ((p)->lpVtbl->RemoveUSBController(p, aName))
8895 #    define IMachine_GetUSBControllerByName(p, aName, aController) ((p)->lpVtbl->GetUSBControllerByName(p, aName, aController))
8896 #    define IMachine_GetUSBControllerCountByType(p, aType, aControllers) ((p)->lpVtbl->GetUSBControllerCountByType(p, aType, aControllers))
8897 #    define IMachine_GetSerialPort(p, aSlot, aPort) ((p)->lpVtbl->GetSerialPort(p, aSlot, aPort))
8898 #    define IMachine_GetParallelPort(p, aSlot, aPort) ((p)->lpVtbl->GetParallelPort(p, aSlot, aPort))
8899 #    define IMachine_GetExtraDataKeys(p, aKeys) ((p)->lpVtbl->GetExtraDataKeys(p, aKeys))
8900 #    define IMachine_GetExtraData(p, aKey, aValue) ((p)->lpVtbl->GetExtraData(p, aKey, aValue))
8901 #    define IMachine_SetExtraData(p, aKey, aValue) ((p)->lpVtbl->SetExtraData(p, aKey, aValue))
8902 #    define IMachine_GetCPUProperty(p, aProperty, aValue) ((p)->lpVtbl->GetCPUProperty(p, aProperty, aValue))
8903 #    define IMachine_SetCPUProperty(p, aProperty, aValue) ((p)->lpVtbl->SetCPUProperty(p, aProperty, aValue))
8904 #    define IMachine_GetCPUIDLeafByOrdinal(p, aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetCPUIDLeafByOrdinal(p, aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
8905 #    define IMachine_GetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
8906 #    define IMachine_SetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->SetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
8907 #    define IMachine_RemoveCPUIDLeaf(p, aIdx, aIdxSub) ((p)->lpVtbl->RemoveCPUIDLeaf(p, aIdx, aIdxSub))
8908 #    define IMachine_RemoveAllCPUIDLeaves(p) ((p)->lpVtbl->RemoveAllCPUIDLeaves(p))
8909 #    define IMachine_GetHWVirtExProperty(p, aProperty, aValue) ((p)->lpVtbl->GetHWVirtExProperty(p, aProperty, aValue))
8910 #    define IMachine_SetHWVirtExProperty(p, aProperty, aValue) ((p)->lpVtbl->SetHWVirtExProperty(p, aProperty, aValue))
8911 #    define IMachine_SetSettingsFilePath(p, aSettingsFilePath, aProgress) ((p)->lpVtbl->SetSettingsFilePath(p, aSettingsFilePath, aProgress))
8912 #    define IMachine_SaveSettings(p) ((p)->lpVtbl->SaveSettings(p))
8913 #    define IMachine_DiscardSettings(p) ((p)->lpVtbl->DiscardSettings(p))
8914 #    define IMachine_Unregister(p, aCleanupMode, aMedia) ((p)->lpVtbl->Unregister(p, aCleanupMode, aMedia))
8915 #    define IMachine_DeleteConfig(p, aMedia, aProgress) ((p)->lpVtbl->DeleteConfig(p, aMedia, aProgress))
8916 #    define IMachine_ExportTo(p, aAppliance, aLocation, aDescription) ((p)->lpVtbl->ExportTo(p, aAppliance, aLocation, aDescription))
8917 #    define IMachine_FindSnapshot(p, aNameOrId, aSnapshot) ((p)->lpVtbl->FindSnapshot(p, aNameOrId, aSnapshot))
8918 #    define IMachine_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint))
8919 #    define IMachine_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
8920 #    define IMachine_CanShowConsoleWindow(p, aCanShow) ((p)->lpVtbl->CanShowConsoleWindow(p, aCanShow))
8921 #    define IMachine_ShowConsoleWindow(p, aWinId) ((p)->lpVtbl->ShowConsoleWindow(p, aWinId))
8922 #    define IMachine_GetGuestProperty(p, aName, aValue, aTimestamp, aFlags) ((p)->lpVtbl->GetGuestProperty(p, aName, aValue, aTimestamp, aFlags))
8923 #    define IMachine_GetGuestPropertyValue(p, aProperty, aValue) ((p)->lpVtbl->GetGuestPropertyValue(p, aProperty, aValue))
8924 #    define IMachine_GetGuestPropertyTimestamp(p, aProperty, aValue) ((p)->lpVtbl->GetGuestPropertyTimestamp(p, aProperty, aValue))
8925 #    define IMachine_SetGuestProperty(p, aProperty, aValue, aFlags) ((p)->lpVtbl->SetGuestProperty(p, aProperty, aValue, aFlags))
8926 #    define IMachine_SetGuestPropertyValue(p, aProperty, aValue) ((p)->lpVtbl->SetGuestPropertyValue(p, aProperty, aValue))
8927 #    define IMachine_DeleteGuestProperty(p, aName) ((p)->lpVtbl->DeleteGuestProperty(p, aName))
8928 #    define IMachine_EnumerateGuestProperties(p, aPatterns, aNames, aValues, aTimestamps, aFlags) ((p)->lpVtbl->EnumerateGuestProperties(p, aPatterns, aNames, aValues, aTimestamps, aFlags))
8929 #    define IMachine_QuerySavedGuestScreenInfo(p, aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled) ((p)->lpVtbl->QuerySavedGuestScreenInfo(p, aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled))
8930 #    define IMachine_ReadSavedThumbnailToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData) ((p)->lpVtbl->ReadSavedThumbnailToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData))
8931 #    define IMachine_QuerySavedScreenshotInfo(p, aScreenId, aWidth, aHeight, aBitmapFormats) ((p)->lpVtbl->QuerySavedScreenshotInfo(p, aScreenId, aWidth, aHeight, aBitmapFormats))
8932 #    define IMachine_ReadSavedScreenshotToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData) ((p)->lpVtbl->ReadSavedScreenshotToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData))
8933 #    define IMachine_HotPlugCPU(p, aCpu) ((p)->lpVtbl->HotPlugCPU(p, aCpu))
8934 #    define IMachine_HotUnplugCPU(p, aCpu) ((p)->lpVtbl->HotUnplugCPU(p, aCpu))
8935 #    define IMachine_GetCPUStatus(p, aCpu, aAttached) ((p)->lpVtbl->GetCPUStatus(p, aCpu, aAttached))
8936 #    define IMachine_GetEffectiveParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetEffectiveParavirtProvider(p, aParavirtProvider))
8937 #    define IMachine_QueryLogFilename(p, aIdx, aFilename) ((p)->lpVtbl->QueryLogFilename(p, aIdx, aFilename))
8938 #    define IMachine_ReadLog(p, aIdx, aOffset, aSize, aData) ((p)->lpVtbl->ReadLog(p, aIdx, aOffset, aSize, aData))
8939 #    define IMachine_CloneTo(p, aTarget, aMode, aOptions, aProgress) ((p)->lpVtbl->CloneTo(p, aTarget, aMode, aOptions, aProgress))
8940 #    define IMachine_MoveTo(p, aFolder, aType, aProgress) ((p)->lpVtbl->MoveTo(p, aFolder, aType, aProgress))
8941 #    define IMachine_SaveState(p, aProgress) ((p)->lpVtbl->SaveState(p, aProgress))
8942 #    define IMachine_AdoptSavedState(p, aSavedStateFile) ((p)->lpVtbl->AdoptSavedState(p, aSavedStateFile))
8943 #    define IMachine_DiscardSavedState(p, aFRemoveFile) ((p)->lpVtbl->DiscardSavedState(p, aFRemoveFile))
8944 #    define IMachine_TakeSnapshot(p, aName, aDescription, aPause, aId, aProgress) ((p)->lpVtbl->TakeSnapshot(p, aName, aDescription, aPause, aId, aProgress))
8945 #    define IMachine_DeleteSnapshot(p, aId, aProgress) ((p)->lpVtbl->DeleteSnapshot(p, aId, aProgress))
8946 #    define IMachine_DeleteSnapshotAndAllChildren(p, aId, aProgress) ((p)->lpVtbl->DeleteSnapshotAndAllChildren(p, aId, aProgress))
8947 #    define IMachine_DeleteSnapshotRange(p, aStartId, aEndId, aProgress) ((p)->lpVtbl->DeleteSnapshotRange(p, aStartId, aEndId, aProgress))
8948 #    define IMachine_RestoreSnapshot(p, aSnapshot, aProgress) ((p)->lpVtbl->RestoreSnapshot(p, aSnapshot, aProgress))
8949 #    define IMachine_ApplyDefaults(p, aFlags) ((p)->lpVtbl->ApplyDefaults(p, aFlags))
8950 #   endif /* VBOX_WITH_GLUE */
8951 
8952 interface IMachine
8953 {
8954 #   ifndef VBOX_WITH_GLUE
8955     struct IMachine_vtbl *vtbl;
8956 #   else /* VBOX_WITH_GLUE */
8957     CONST_VTBL struct IMachineVtbl *lpVtbl;
8958 #   endif /* VBOX_WITH_GLUE */
8959 };
8960 /* End of struct IMachine declaration */
8961 
8962 
8963 /* Start of struct IEmulatedUSB declaration */
8964 #   define IEMULATEDUSB_IID_STR "6e253ee8-477a-2497-6759-88b8292a5af0"
8965 #   define IEMULATEDUSB_IID { \
8966     0x6e253ee8, 0x477a, 0x2497, \
8967     { 0x67, 0x59, 0x88, 0xb8, 0x29, 0x2a, 0x5a, 0xf0 } \
8968 }
8969 /* COM compatibility */
8970 VBOX_EXTERN_CONST(nsIID, IID_IEmulatedUSB);
8971 #   ifndef VBOX_WITH_GLUE
8972 struct IEmulatedUSB_vtbl
8973 {
8974     struct nsISupports_vtbl nsisupports;
8975 
8976     nsresult (*GetWebcams)(IEmulatedUSB *pThis, PRUint32 *webcamsSize, PRUnichar * **webcams);
8977 
8978     nsresult (*GetInternalAndReservedAttribute1IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8979 
8980     nsresult (*GetInternalAndReservedAttribute2IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8981 
8982     nsresult (*GetInternalAndReservedAttribute3IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8983 
8984     nsresult (*GetInternalAndReservedAttribute4IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8985 
8986     nsresult (*WebcamAttach)(
8987         IEmulatedUSB *pThis,
8988         PRUnichar * path,
8989         PRUnichar * settings
8990     );
8991 
8992     nsresult (*WebcamDetach)(
8993         IEmulatedUSB *pThis,
8994         PRUnichar * path
8995     );
8996 
8997     nsresult (*InternalAndReservedMethod1IEmulatedUSB)(IEmulatedUSB *pThis);
8998 
8999     nsresult (*InternalAndReservedMethod2IEmulatedUSB)(IEmulatedUSB *pThis);
9000 
9001     nsresult (*InternalAndReservedMethod3IEmulatedUSB)(IEmulatedUSB *pThis);
9002 
9003     nsresult (*InternalAndReservedMethod4IEmulatedUSB)(IEmulatedUSB *pThis);
9004 
9005 };
9006 #   else /* VBOX_WITH_GLUE */
9007 struct IEmulatedUSBVtbl
9008 {
9009     nsresult (*QueryInterface)(IEmulatedUSB *pThis, const nsID *iid, void **resultp);
9010     nsrefcnt (*AddRef)(IEmulatedUSB *pThis);
9011     nsrefcnt (*Release)(IEmulatedUSB *pThis);
9012     nsresult (*GetWebcams)(IEmulatedUSB *pThis, PRUint32 *webcamsSize, PRUnichar * **webcams);
9013 
9014     nsresult (*GetInternalAndReservedAttribute1IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
9015 
9016     nsresult (*GetInternalAndReservedAttribute2IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
9017 
9018     nsresult (*GetInternalAndReservedAttribute3IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
9019 
9020     nsresult (*GetInternalAndReservedAttribute4IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
9021 
9022     nsresult (*WebcamAttach)(
9023         IEmulatedUSB *pThis,
9024         PRUnichar * path,
9025         PRUnichar * settings
9026     );
9027 
9028     nsresult (*WebcamDetach)(
9029         IEmulatedUSB *pThis,
9030         PRUnichar * path
9031     );
9032 
9033     nsresult (*InternalAndReservedMethod1IEmulatedUSB)(IEmulatedUSB *pThis);
9034 
9035     nsresult (*InternalAndReservedMethod2IEmulatedUSB)(IEmulatedUSB *pThis);
9036 
9037     nsresult (*InternalAndReservedMethod3IEmulatedUSB)(IEmulatedUSB *pThis);
9038 
9039     nsresult (*InternalAndReservedMethod4IEmulatedUSB)(IEmulatedUSB *pThis);
9040 
9041 };
9042 #    define IEmulatedUSB_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9043 #    define IEmulatedUSB_AddRef(p) ((p)->lpVtbl->AddRef(p))
9044 #    define IEmulatedUSB_Release(p) ((p)->lpVtbl->Release(p))
9045 #    define IEmulatedUSB_get_Webcams(p, aWebcams) ((p)->lpVtbl->GetWebcams(p, aWebcams))
9046 #    define IEmulatedUSB_GetWebcams(p, aWebcams) ((p)->lpVtbl->GetWebcams(p, aWebcams))
9047 #    define IEmulatedUSB_WebcamAttach(p, aPath, aSettings) ((p)->lpVtbl->WebcamAttach(p, aPath, aSettings))
9048 #    define IEmulatedUSB_WebcamDetach(p, aPath) ((p)->lpVtbl->WebcamDetach(p, aPath))
9049 #   endif /* VBOX_WITH_GLUE */
9050 
9051 interface IEmulatedUSB
9052 {
9053 #   ifndef VBOX_WITH_GLUE
9054     struct IEmulatedUSB_vtbl *vtbl;
9055 #   else /* VBOX_WITH_GLUE */
9056     CONST_VTBL struct IEmulatedUSBVtbl *lpVtbl;
9057 #   endif /* VBOX_WITH_GLUE */
9058 };
9059 /* End of struct IEmulatedUSB declaration */
9060 
9061 
9062 /* Start of struct IVRDEServerInfo declaration */
9063 #   define IVRDESERVERINFO_IID_STR "c39ef4d6-7532-45e8-96da-eb5986ae76e4"
9064 #   define IVRDESERVERINFO_IID { \
9065     0xc39ef4d6, 0x7532, 0x45e8, \
9066     { 0x96, 0xda, 0xeb, 0x59, 0x86, 0xae, 0x76, 0xe4 } \
9067 }
9068 /* COM compatibility */
9069 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerInfo);
9070 #   ifndef VBOX_WITH_GLUE
9071 struct IVRDEServerInfo_vtbl
9072 {
9073     struct nsISupports_vtbl nsisupports;
9074 
9075     nsresult (*GetActive)(IVRDEServerInfo *pThis, PRBool *active);
9076 
9077     nsresult (*GetPort)(IVRDEServerInfo *pThis, PRInt32 *port);
9078 
9079     nsresult (*GetNumberOfClients)(IVRDEServerInfo *pThis, PRUint32 *numberOfClients);
9080 
9081     nsresult (*GetBeginTime)(IVRDEServerInfo *pThis, PRInt64 *beginTime);
9082 
9083     nsresult (*GetEndTime)(IVRDEServerInfo *pThis, PRInt64 *endTime);
9084 
9085     nsresult (*GetBytesSent)(IVRDEServerInfo *pThis, PRInt64 *bytesSent);
9086 
9087     nsresult (*GetBytesSentTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesSentTotal);
9088 
9089     nsresult (*GetBytesReceived)(IVRDEServerInfo *pThis, PRInt64 *bytesReceived);
9090 
9091     nsresult (*GetBytesReceivedTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesReceivedTotal);
9092 
9093     nsresult (*GetUser)(IVRDEServerInfo *pThis, PRUnichar * *user);
9094 
9095     nsresult (*GetDomain)(IVRDEServerInfo *pThis, PRUnichar * *domain);
9096 
9097     nsresult (*GetClientName)(IVRDEServerInfo *pThis, PRUnichar * *clientName);
9098 
9099     nsresult (*GetClientIP)(IVRDEServerInfo *pThis, PRUnichar * *clientIP);
9100 
9101     nsresult (*GetClientVersion)(IVRDEServerInfo *pThis, PRUint32 *clientVersion);
9102 
9103     nsresult (*GetEncryptionStyle)(IVRDEServerInfo *pThis, PRUint32 *encryptionStyle);
9104 
9105     nsresult (*GetInternalAndReservedAttribute1IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9106 
9107     nsresult (*GetInternalAndReservedAttribute2IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9108 
9109     nsresult (*GetInternalAndReservedAttribute3IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9110 
9111     nsresult (*GetInternalAndReservedAttribute4IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9112 
9113     nsresult (*GetInternalAndReservedAttribute5IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9114 
9115     nsresult (*GetInternalAndReservedAttribute6IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9116 
9117     nsresult (*GetInternalAndReservedAttribute7IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9118 
9119     nsresult (*GetInternalAndReservedAttribute8IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9120 
9121 };
9122 #   else /* VBOX_WITH_GLUE */
9123 struct IVRDEServerInfoVtbl
9124 {
9125     nsresult (*QueryInterface)(IVRDEServerInfo *pThis, const nsID *iid, void **resultp);
9126     nsrefcnt (*AddRef)(IVRDEServerInfo *pThis);
9127     nsrefcnt (*Release)(IVRDEServerInfo *pThis);
9128     nsresult (*GetActive)(IVRDEServerInfo *pThis, PRBool *active);
9129 
9130     nsresult (*GetPort)(IVRDEServerInfo *pThis, PRInt32 *port);
9131 
9132     nsresult (*GetNumberOfClients)(IVRDEServerInfo *pThis, PRUint32 *numberOfClients);
9133 
9134     nsresult (*GetBeginTime)(IVRDEServerInfo *pThis, PRInt64 *beginTime);
9135 
9136     nsresult (*GetEndTime)(IVRDEServerInfo *pThis, PRInt64 *endTime);
9137 
9138     nsresult (*GetBytesSent)(IVRDEServerInfo *pThis, PRInt64 *bytesSent);
9139 
9140     nsresult (*GetBytesSentTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesSentTotal);
9141 
9142     nsresult (*GetBytesReceived)(IVRDEServerInfo *pThis, PRInt64 *bytesReceived);
9143 
9144     nsresult (*GetBytesReceivedTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesReceivedTotal);
9145 
9146     nsresult (*GetUser)(IVRDEServerInfo *pThis, PRUnichar * *user);
9147 
9148     nsresult (*GetDomain)(IVRDEServerInfo *pThis, PRUnichar * *domain);
9149 
9150     nsresult (*GetClientName)(IVRDEServerInfo *pThis, PRUnichar * *clientName);
9151 
9152     nsresult (*GetClientIP)(IVRDEServerInfo *pThis, PRUnichar * *clientIP);
9153 
9154     nsresult (*GetClientVersion)(IVRDEServerInfo *pThis, PRUint32 *clientVersion);
9155 
9156     nsresult (*GetEncryptionStyle)(IVRDEServerInfo *pThis, PRUint32 *encryptionStyle);
9157 
9158     nsresult (*GetInternalAndReservedAttribute1IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9159 
9160     nsresult (*GetInternalAndReservedAttribute2IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9161 
9162     nsresult (*GetInternalAndReservedAttribute3IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9163 
9164     nsresult (*GetInternalAndReservedAttribute4IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9165 
9166     nsresult (*GetInternalAndReservedAttribute5IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9167 
9168     nsresult (*GetInternalAndReservedAttribute6IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9169 
9170     nsresult (*GetInternalAndReservedAttribute7IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9171 
9172     nsresult (*GetInternalAndReservedAttribute8IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
9173 
9174 };
9175 #    define IVRDEServerInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9176 #    define IVRDEServerInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
9177 #    define IVRDEServerInfo_Release(p) ((p)->lpVtbl->Release(p))
9178 #    define IVRDEServerInfo_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
9179 #    define IVRDEServerInfo_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
9180 #    define IVRDEServerInfo_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
9181 #    define IVRDEServerInfo_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
9182 #    define IVRDEServerInfo_get_NumberOfClients(p, aNumberOfClients) ((p)->lpVtbl->GetNumberOfClients(p, aNumberOfClients))
9183 #    define IVRDEServerInfo_GetNumberOfClients(p, aNumberOfClients) ((p)->lpVtbl->GetNumberOfClients(p, aNumberOfClients))
9184 #    define IVRDEServerInfo_get_BeginTime(p, aBeginTime) ((p)->lpVtbl->GetBeginTime(p, aBeginTime))
9185 #    define IVRDEServerInfo_GetBeginTime(p, aBeginTime) ((p)->lpVtbl->GetBeginTime(p, aBeginTime))
9186 #    define IVRDEServerInfo_get_EndTime(p, aEndTime) ((p)->lpVtbl->GetEndTime(p, aEndTime))
9187 #    define IVRDEServerInfo_GetEndTime(p, aEndTime) ((p)->lpVtbl->GetEndTime(p, aEndTime))
9188 #    define IVRDEServerInfo_get_BytesSent(p, aBytesSent) ((p)->lpVtbl->GetBytesSent(p, aBytesSent))
9189 #    define IVRDEServerInfo_GetBytesSent(p, aBytesSent) ((p)->lpVtbl->GetBytesSent(p, aBytesSent))
9190 #    define IVRDEServerInfo_get_BytesSentTotal(p, aBytesSentTotal) ((p)->lpVtbl->GetBytesSentTotal(p, aBytesSentTotal))
9191 #    define IVRDEServerInfo_GetBytesSentTotal(p, aBytesSentTotal) ((p)->lpVtbl->GetBytesSentTotal(p, aBytesSentTotal))
9192 #    define IVRDEServerInfo_get_BytesReceived(p, aBytesReceived) ((p)->lpVtbl->GetBytesReceived(p, aBytesReceived))
9193 #    define IVRDEServerInfo_GetBytesReceived(p, aBytesReceived) ((p)->lpVtbl->GetBytesReceived(p, aBytesReceived))
9194 #    define IVRDEServerInfo_get_BytesReceivedTotal(p, aBytesReceivedTotal) ((p)->lpVtbl->GetBytesReceivedTotal(p, aBytesReceivedTotal))
9195 #    define IVRDEServerInfo_GetBytesReceivedTotal(p, aBytesReceivedTotal) ((p)->lpVtbl->GetBytesReceivedTotal(p, aBytesReceivedTotal))
9196 #    define IVRDEServerInfo_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
9197 #    define IVRDEServerInfo_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
9198 #    define IVRDEServerInfo_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
9199 #    define IVRDEServerInfo_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
9200 #    define IVRDEServerInfo_get_ClientName(p, aClientName) ((p)->lpVtbl->GetClientName(p, aClientName))
9201 #    define IVRDEServerInfo_GetClientName(p, aClientName) ((p)->lpVtbl->GetClientName(p, aClientName))
9202 #    define IVRDEServerInfo_get_ClientIP(p, aClientIP) ((p)->lpVtbl->GetClientIP(p, aClientIP))
9203 #    define IVRDEServerInfo_GetClientIP(p, aClientIP) ((p)->lpVtbl->GetClientIP(p, aClientIP))
9204 #    define IVRDEServerInfo_get_ClientVersion(p, aClientVersion) ((p)->lpVtbl->GetClientVersion(p, aClientVersion))
9205 #    define IVRDEServerInfo_GetClientVersion(p, aClientVersion) ((p)->lpVtbl->GetClientVersion(p, aClientVersion))
9206 #    define IVRDEServerInfo_get_EncryptionStyle(p, aEncryptionStyle) ((p)->lpVtbl->GetEncryptionStyle(p, aEncryptionStyle))
9207 #    define IVRDEServerInfo_GetEncryptionStyle(p, aEncryptionStyle) ((p)->lpVtbl->GetEncryptionStyle(p, aEncryptionStyle))
9208 #   endif /* VBOX_WITH_GLUE */
9209 
9210 interface IVRDEServerInfo
9211 {
9212 #   ifndef VBOX_WITH_GLUE
9213     struct IVRDEServerInfo_vtbl *vtbl;
9214 #   else /* VBOX_WITH_GLUE */
9215     CONST_VTBL struct IVRDEServerInfoVtbl *lpVtbl;
9216 #   endif /* VBOX_WITH_GLUE */
9217 };
9218 /* End of struct IVRDEServerInfo declaration */
9219 
9220 
9221 /* Start of struct IConsole declaration */
9222 #   define ICONSOLE_IID_STR "872da645-4a9b-1727-bee2-5585105b9eed"
9223 #   define ICONSOLE_IID { \
9224     0x872da645, 0x4a9b, 0x1727, \
9225     { 0xbe, 0xe2, 0x55, 0x85, 0x10, 0x5b, 0x9e, 0xed } \
9226 }
9227 /* COM compatibility */
9228 VBOX_EXTERN_CONST(nsIID, IID_IConsole);
9229 #   ifndef VBOX_WITH_GLUE
9230 struct IConsole_vtbl
9231 {
9232     struct nsISupports_vtbl nsisupports;
9233 
9234     nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
9235 
9236     nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
9237 
9238     nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
9239 
9240     nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
9241 
9242     nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
9243 
9244     nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
9245 
9246     nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
9247 
9248     nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
9249 
9250     nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
9251 
9252     nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
9253 
9254     nsresult (*GetVRDEServerInfo)(IConsole *pThis, IVRDEServerInfo * *VRDEServerInfo);
9255 
9256     nsresult (*GetEventSource)(IConsole *pThis, IEventSource * *eventSource);
9257 
9258     nsresult (*GetAttachedPCIDevices)(IConsole *pThis, PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment * **attachedPCIDevices);
9259 
9260     nsresult (*GetUseHostClipboard)(IConsole *pThis, PRBool *useHostClipboard);
9261     nsresult (*SetUseHostClipboard)(IConsole *pThis, PRBool useHostClipboard);
9262 
9263     nsresult (*GetEmulatedUSB)(IConsole *pThis, IEmulatedUSB * *emulatedUSB);
9264 
9265     nsresult (*GetInternalAndReservedAttribute1IConsole)(IConsole *pThis, PRUint32 *reserved);
9266 
9267     nsresult (*GetInternalAndReservedAttribute2IConsole)(IConsole *pThis, PRUint32 *reserved);
9268 
9269     nsresult (*GetInternalAndReservedAttribute3IConsole)(IConsole *pThis, PRUint32 *reserved);
9270 
9271     nsresult (*GetInternalAndReservedAttribute4IConsole)(IConsole *pThis, PRUint32 *reserved);
9272 
9273     nsresult (*GetInternalAndReservedAttribute5IConsole)(IConsole *pThis, PRUint32 *reserved);
9274 
9275     nsresult (*GetInternalAndReservedAttribute6IConsole)(IConsole *pThis, PRUint32 *reserved);
9276 
9277     nsresult (*GetInternalAndReservedAttribute7IConsole)(IConsole *pThis, PRUint32 *reserved);
9278 
9279     nsresult (*GetInternalAndReservedAttribute8IConsole)(IConsole *pThis, PRUint32 *reserved);
9280 
9281     nsresult (*PowerUp)(
9282         IConsole *pThis,
9283         IProgress * * progress
9284     );
9285 
9286     nsresult (*PowerUpPaused)(
9287         IConsole *pThis,
9288         IProgress * * progress
9289     );
9290 
9291     nsresult (*PowerDown)(
9292         IConsole *pThis,
9293         IProgress * * progress
9294     );
9295 
9296     nsresult (*Reset)(IConsole *pThis );
9297 
9298     nsresult (*Pause)(IConsole *pThis );
9299 
9300     nsresult (*Resume)(IConsole *pThis );
9301 
9302     nsresult (*PowerButton)(IConsole *pThis );
9303 
9304     nsresult (*SleepButton)(IConsole *pThis );
9305 
9306     nsresult (*GetPowerButtonHandled)(
9307         IConsole *pThis,
9308         PRBool * handled
9309     );
9310 
9311     nsresult (*GetGuestEnteredACPIMode)(
9312         IConsole *pThis,
9313         PRBool * entered
9314     );
9315 
9316     nsresult (*GetDeviceActivity)(
9317         IConsole *pThis,
9318         PRUint32 typeSize,
9319         PRUint32* type,
9320         PRUint32 *activitySize,
9321         PRUint32** activity
9322     );
9323 
9324     nsresult (*AttachUSBDevice)(
9325         IConsole *pThis,
9326         PRUnichar * id,
9327         PRUnichar * captureFilename
9328     );
9329 
9330     nsresult (*DetachUSBDevice)(
9331         IConsole *pThis,
9332         PRUnichar * id,
9333         IUSBDevice * * device
9334     );
9335 
9336     nsresult (*FindUSBDeviceByAddress)(
9337         IConsole *pThis,
9338         PRUnichar * name,
9339         IUSBDevice * * device
9340     );
9341 
9342     nsresult (*FindUSBDeviceById)(
9343         IConsole *pThis,
9344         PRUnichar * id,
9345         IUSBDevice * * device
9346     );
9347 
9348     nsresult (*CreateSharedFolder)(
9349         IConsole *pThis,
9350         PRUnichar * name,
9351         PRUnichar * hostPath,
9352         PRBool writable,
9353         PRBool automount,
9354         PRUnichar * autoMountPoint
9355     );
9356 
9357     nsresult (*RemoveSharedFolder)(
9358         IConsole *pThis,
9359         PRUnichar * name
9360     );
9361 
9362     nsresult (*Teleport)(
9363         IConsole *pThis,
9364         PRUnichar * hostname,
9365         PRUint32 tcpport,
9366         PRUnichar * password,
9367         PRUint32 maxDowntime,
9368         IProgress * * progress
9369     );
9370 
9371     nsresult (*AddDiskEncryptionPassword)(
9372         IConsole *pThis,
9373         PRUnichar * id,
9374         PRUnichar * password,
9375         PRBool clearOnSuspend
9376     );
9377 
9378     nsresult (*AddDiskEncryptionPasswords)(
9379         IConsole *pThis,
9380         PRUint32 idsSize,
9381         PRUnichar ** ids,
9382         PRUint32 passwordsSize,
9383         PRUnichar ** passwords,
9384         PRBool clearOnSuspend
9385     );
9386 
9387     nsresult (*RemoveDiskEncryptionPassword)(
9388         IConsole *pThis,
9389         PRUnichar * id
9390     );
9391 
9392     nsresult (*ClearAllDiskEncryptionPasswords)(IConsole *pThis );
9393 
9394     nsresult (*InternalAndReservedMethod1IConsole)(IConsole *pThis);
9395 
9396     nsresult (*InternalAndReservedMethod2IConsole)(IConsole *pThis);
9397 
9398     nsresult (*InternalAndReservedMethod3IConsole)(IConsole *pThis);
9399 
9400     nsresult (*InternalAndReservedMethod4IConsole)(IConsole *pThis);
9401 
9402     nsresult (*InternalAndReservedMethod5IConsole)(IConsole *pThis);
9403 
9404     nsresult (*InternalAndReservedMethod6IConsole)(IConsole *pThis);
9405 
9406     nsresult (*InternalAndReservedMethod7IConsole)(IConsole *pThis);
9407 
9408     nsresult (*InternalAndReservedMethod8IConsole)(IConsole *pThis);
9409 
9410 };
9411 #   else /* VBOX_WITH_GLUE */
9412 struct IConsoleVtbl
9413 {
9414     nsresult (*QueryInterface)(IConsole *pThis, const nsID *iid, void **resultp);
9415     nsrefcnt (*AddRef)(IConsole *pThis);
9416     nsrefcnt (*Release)(IConsole *pThis);
9417     nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
9418 
9419     nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
9420 
9421     nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
9422 
9423     nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
9424 
9425     nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
9426 
9427     nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
9428 
9429     nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
9430 
9431     nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
9432 
9433     nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
9434 
9435     nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
9436 
9437     nsresult (*GetVRDEServerInfo)(IConsole *pThis, IVRDEServerInfo * *VRDEServerInfo);
9438 
9439     nsresult (*GetEventSource)(IConsole *pThis, IEventSource * *eventSource);
9440 
9441     nsresult (*GetAttachedPCIDevices)(IConsole *pThis, PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment * **attachedPCIDevices);
9442 
9443     nsresult (*GetUseHostClipboard)(IConsole *pThis, PRBool *useHostClipboard);
9444     nsresult (*SetUseHostClipboard)(IConsole *pThis, PRBool useHostClipboard);
9445 
9446     nsresult (*GetEmulatedUSB)(IConsole *pThis, IEmulatedUSB * *emulatedUSB);
9447 
9448     nsresult (*GetInternalAndReservedAttribute1IConsole)(IConsole *pThis, PRUint32 *reserved);
9449 
9450     nsresult (*GetInternalAndReservedAttribute2IConsole)(IConsole *pThis, PRUint32 *reserved);
9451 
9452     nsresult (*GetInternalAndReservedAttribute3IConsole)(IConsole *pThis, PRUint32 *reserved);
9453 
9454     nsresult (*GetInternalAndReservedAttribute4IConsole)(IConsole *pThis, PRUint32 *reserved);
9455 
9456     nsresult (*GetInternalAndReservedAttribute5IConsole)(IConsole *pThis, PRUint32 *reserved);
9457 
9458     nsresult (*GetInternalAndReservedAttribute6IConsole)(IConsole *pThis, PRUint32 *reserved);
9459 
9460     nsresult (*GetInternalAndReservedAttribute7IConsole)(IConsole *pThis, PRUint32 *reserved);
9461 
9462     nsresult (*GetInternalAndReservedAttribute8IConsole)(IConsole *pThis, PRUint32 *reserved);
9463 
9464     nsresult (*PowerUp)(
9465         IConsole *pThis,
9466         IProgress * * progress
9467     );
9468 
9469     nsresult (*PowerUpPaused)(
9470         IConsole *pThis,
9471         IProgress * * progress
9472     );
9473 
9474     nsresult (*PowerDown)(
9475         IConsole *pThis,
9476         IProgress * * progress
9477     );
9478 
9479     nsresult (*Reset)(IConsole *pThis );
9480 
9481     nsresult (*Pause)(IConsole *pThis );
9482 
9483     nsresult (*Resume)(IConsole *pThis );
9484 
9485     nsresult (*PowerButton)(IConsole *pThis );
9486 
9487     nsresult (*SleepButton)(IConsole *pThis );
9488 
9489     nsresult (*GetPowerButtonHandled)(
9490         IConsole *pThis,
9491         PRBool * handled
9492     );
9493 
9494     nsresult (*GetGuestEnteredACPIMode)(
9495         IConsole *pThis,
9496         PRBool * entered
9497     );
9498 
9499     nsresult (*GetDeviceActivity)(
9500         IConsole *pThis,
9501         PRUint32 typeSize,
9502         PRUint32* type,
9503         PRUint32 *activitySize,
9504         PRUint32** activity
9505     );
9506 
9507     nsresult (*AttachUSBDevice)(
9508         IConsole *pThis,
9509         PRUnichar * id,
9510         PRUnichar * captureFilename
9511     );
9512 
9513     nsresult (*DetachUSBDevice)(
9514         IConsole *pThis,
9515         PRUnichar * id,
9516         IUSBDevice * * device
9517     );
9518 
9519     nsresult (*FindUSBDeviceByAddress)(
9520         IConsole *pThis,
9521         PRUnichar * name,
9522         IUSBDevice * * device
9523     );
9524 
9525     nsresult (*FindUSBDeviceById)(
9526         IConsole *pThis,
9527         PRUnichar * id,
9528         IUSBDevice * * device
9529     );
9530 
9531     nsresult (*CreateSharedFolder)(
9532         IConsole *pThis,
9533         PRUnichar * name,
9534         PRUnichar * hostPath,
9535         PRBool writable,
9536         PRBool automount,
9537         PRUnichar * autoMountPoint
9538     );
9539 
9540     nsresult (*RemoveSharedFolder)(
9541         IConsole *pThis,
9542         PRUnichar * name
9543     );
9544 
9545     nsresult (*Teleport)(
9546         IConsole *pThis,
9547         PRUnichar * hostname,
9548         PRUint32 tcpport,
9549         PRUnichar * password,
9550         PRUint32 maxDowntime,
9551         IProgress * * progress
9552     );
9553 
9554     nsresult (*AddDiskEncryptionPassword)(
9555         IConsole *pThis,
9556         PRUnichar * id,
9557         PRUnichar * password,
9558         PRBool clearOnSuspend
9559     );
9560 
9561     nsresult (*AddDiskEncryptionPasswords)(
9562         IConsole *pThis,
9563         PRUint32 idsSize,
9564         PRUnichar ** ids,
9565         PRUint32 passwordsSize,
9566         PRUnichar ** passwords,
9567         PRBool clearOnSuspend
9568     );
9569 
9570     nsresult (*RemoveDiskEncryptionPassword)(
9571         IConsole *pThis,
9572         PRUnichar * id
9573     );
9574 
9575     nsresult (*ClearAllDiskEncryptionPasswords)(IConsole *pThis );
9576 
9577     nsresult (*InternalAndReservedMethod1IConsole)(IConsole *pThis);
9578 
9579     nsresult (*InternalAndReservedMethod2IConsole)(IConsole *pThis);
9580 
9581     nsresult (*InternalAndReservedMethod3IConsole)(IConsole *pThis);
9582 
9583     nsresult (*InternalAndReservedMethod4IConsole)(IConsole *pThis);
9584 
9585     nsresult (*InternalAndReservedMethod5IConsole)(IConsole *pThis);
9586 
9587     nsresult (*InternalAndReservedMethod6IConsole)(IConsole *pThis);
9588 
9589     nsresult (*InternalAndReservedMethod7IConsole)(IConsole *pThis);
9590 
9591     nsresult (*InternalAndReservedMethod8IConsole)(IConsole *pThis);
9592 
9593 };
9594 #    define IConsole_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9595 #    define IConsole_AddRef(p) ((p)->lpVtbl->AddRef(p))
9596 #    define IConsole_Release(p) ((p)->lpVtbl->Release(p))
9597 #    define IConsole_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
9598 #    define IConsole_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
9599 #    define IConsole_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
9600 #    define IConsole_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
9601 #    define IConsole_get_Guest(p, aGuest) ((p)->lpVtbl->GetGuest(p, aGuest))
9602 #    define IConsole_GetGuest(p, aGuest) ((p)->lpVtbl->GetGuest(p, aGuest))
9603 #    define IConsole_get_Keyboard(p, aKeyboard) ((p)->lpVtbl->GetKeyboard(p, aKeyboard))
9604 #    define IConsole_GetKeyboard(p, aKeyboard) ((p)->lpVtbl->GetKeyboard(p, aKeyboard))
9605 #    define IConsole_get_Mouse(p, aMouse) ((p)->lpVtbl->GetMouse(p, aMouse))
9606 #    define IConsole_GetMouse(p, aMouse) ((p)->lpVtbl->GetMouse(p, aMouse))
9607 #    define IConsole_get_Display(p, aDisplay) ((p)->lpVtbl->GetDisplay(p, aDisplay))
9608 #    define IConsole_GetDisplay(p, aDisplay) ((p)->lpVtbl->GetDisplay(p, aDisplay))
9609 #    define IConsole_get_Debugger(p, aDebugger) ((p)->lpVtbl->GetDebugger(p, aDebugger))
9610 #    define IConsole_GetDebugger(p, aDebugger) ((p)->lpVtbl->GetDebugger(p, aDebugger))
9611 #    define IConsole_get_USBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
9612 #    define IConsole_GetUSBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
9613 #    define IConsole_get_RemoteUSBDevices(p, aRemoteUSBDevices) ((p)->lpVtbl->GetRemoteUSBDevices(p, aRemoteUSBDevices))
9614 #    define IConsole_GetRemoteUSBDevices(p, aRemoteUSBDevices) ((p)->lpVtbl->GetRemoteUSBDevices(p, aRemoteUSBDevices))
9615 #    define IConsole_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
9616 #    define IConsole_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
9617 #    define IConsole_get_VRDEServerInfo(p, aVRDEServerInfo) ((p)->lpVtbl->GetVRDEServerInfo(p, aVRDEServerInfo))
9618 #    define IConsole_GetVRDEServerInfo(p, aVRDEServerInfo) ((p)->lpVtbl->GetVRDEServerInfo(p, aVRDEServerInfo))
9619 #    define IConsole_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
9620 #    define IConsole_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
9621 #    define IConsole_get_AttachedPCIDevices(p, aAttachedPCIDevices) ((p)->lpVtbl->GetAttachedPCIDevices(p, aAttachedPCIDevices))
9622 #    define IConsole_GetAttachedPCIDevices(p, aAttachedPCIDevices) ((p)->lpVtbl->GetAttachedPCIDevices(p, aAttachedPCIDevices))
9623 #    define IConsole_get_UseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->GetUseHostClipboard(p, aUseHostClipboard))
9624 #    define IConsole_GetUseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->GetUseHostClipboard(p, aUseHostClipboard))
9625 #    define IConsole_put_UseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->SetUseHostClipboard(p, aUseHostClipboard))
9626 #    define IConsole_SetUseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->SetUseHostClipboard(p, aUseHostClipboard))
9627 #    define IConsole_get_EmulatedUSB(p, aEmulatedUSB) ((p)->lpVtbl->GetEmulatedUSB(p, aEmulatedUSB))
9628 #    define IConsole_GetEmulatedUSB(p, aEmulatedUSB) ((p)->lpVtbl->GetEmulatedUSB(p, aEmulatedUSB))
9629 #    define IConsole_PowerUp(p, aProgress) ((p)->lpVtbl->PowerUp(p, aProgress))
9630 #    define IConsole_PowerUpPaused(p, aProgress) ((p)->lpVtbl->PowerUpPaused(p, aProgress))
9631 #    define IConsole_PowerDown(p, aProgress) ((p)->lpVtbl->PowerDown(p, aProgress))
9632 #    define IConsole_Reset(p) ((p)->lpVtbl->Reset(p))
9633 #    define IConsole_Pause(p) ((p)->lpVtbl->Pause(p))
9634 #    define IConsole_Resume(p) ((p)->lpVtbl->Resume(p))
9635 #    define IConsole_PowerButton(p) ((p)->lpVtbl->PowerButton(p))
9636 #    define IConsole_SleepButton(p) ((p)->lpVtbl->SleepButton(p))
9637 #    define IConsole_GetPowerButtonHandled(p, aHandled) ((p)->lpVtbl->GetPowerButtonHandled(p, aHandled))
9638 #    define IConsole_GetGuestEnteredACPIMode(p, aEntered) ((p)->lpVtbl->GetGuestEnteredACPIMode(p, aEntered))
9639 #    define IConsole_GetDeviceActivity(p, aType, aActivity) ((p)->lpVtbl->GetDeviceActivity(p, aType, aActivity))
9640 #    define IConsole_AttachUSBDevice(p, aId, aCaptureFilename) ((p)->lpVtbl->AttachUSBDevice(p, aId, aCaptureFilename))
9641 #    define IConsole_DetachUSBDevice(p, aId, aDevice) ((p)->lpVtbl->DetachUSBDevice(p, aId, aDevice))
9642 #    define IConsole_FindUSBDeviceByAddress(p, aName, aDevice) ((p)->lpVtbl->FindUSBDeviceByAddress(p, aName, aDevice))
9643 #    define IConsole_FindUSBDeviceById(p, aId, aDevice) ((p)->lpVtbl->FindUSBDeviceById(p, aId, aDevice))
9644 #    define IConsole_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint))
9645 #    define IConsole_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
9646 #    define IConsole_Teleport(p, aHostname, aTcpport, aPassword, aMaxDowntime, aProgress) ((p)->lpVtbl->Teleport(p, aHostname, aTcpport, aPassword, aMaxDowntime, aProgress))
9647 #    define IConsole_AddDiskEncryptionPassword(p, aId, aPassword, aClearOnSuspend) ((p)->lpVtbl->AddDiskEncryptionPassword(p, aId, aPassword, aClearOnSuspend))
9648 #    define IConsole_AddDiskEncryptionPasswords(p, aIds, aPasswords, aClearOnSuspend) ((p)->lpVtbl->AddDiskEncryptionPasswords(p, aIds, aPasswords, aClearOnSuspend))
9649 #    define IConsole_RemoveDiskEncryptionPassword(p, aId) ((p)->lpVtbl->RemoveDiskEncryptionPassword(p, aId))
9650 #    define IConsole_ClearAllDiskEncryptionPasswords(p) ((p)->lpVtbl->ClearAllDiskEncryptionPasswords(p))
9651 #   endif /* VBOX_WITH_GLUE */
9652 
9653 interface IConsole
9654 {
9655 #   ifndef VBOX_WITH_GLUE
9656     struct IConsole_vtbl *vtbl;
9657 #   else /* VBOX_WITH_GLUE */
9658     CONST_VTBL struct IConsoleVtbl *lpVtbl;
9659 #   endif /* VBOX_WITH_GLUE */
9660 };
9661 /* End of struct IConsole declaration */
9662 
9663 
9664 /* Start of struct IHostNetworkInterface declaration */
9665 #   define IHOSTNETWORKINTERFACE_IID_STR "455f8c45-44a0-a470-ba20-27890b96dba9"
9666 #   define IHOSTNETWORKINTERFACE_IID { \
9667     0x455f8c45, 0x44a0, 0xa470, \
9668     { 0xba, 0x20, 0x27, 0x89, 0x0b, 0x96, 0xdb, 0xa9 } \
9669 }
9670 /* COM compatibility */
9671 VBOX_EXTERN_CONST(nsIID, IID_IHostNetworkInterface);
9672 #   ifndef VBOX_WITH_GLUE
9673 struct IHostNetworkInterface_vtbl
9674 {
9675     struct nsISupports_vtbl nsisupports;
9676 
9677     nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
9678 
9679     nsresult (*GetShortName)(IHostNetworkInterface *pThis, PRUnichar * *shortName);
9680 
9681     nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
9682 
9683     nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
9684 
9685     nsresult (*GetDHCPEnabled)(IHostNetworkInterface *pThis, PRBool *DHCPEnabled);
9686 
9687     nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
9688 
9689     nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
9690 
9691     nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
9692 
9693     nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
9694 
9695     nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
9696 
9697     nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
9698 
9699     nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
9700 
9701     nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
9702 
9703     nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
9704 
9705     nsresult (*GetWireless)(IHostNetworkInterface *pThis, PRBool *wireless);
9706 
9707     nsresult (*GetInternalAndReservedAttribute1IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9708 
9709     nsresult (*GetInternalAndReservedAttribute2IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9710 
9711     nsresult (*GetInternalAndReservedAttribute3IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9712 
9713     nsresult (*GetInternalAndReservedAttribute4IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9714 
9715     nsresult (*EnableStaticIPConfig)(
9716         IHostNetworkInterface *pThis,
9717         PRUnichar * IPAddress,
9718         PRUnichar * networkMask
9719     );
9720 
9721     nsresult (*EnableStaticIPConfigV6)(
9722         IHostNetworkInterface *pThis,
9723         PRUnichar * IPV6Address,
9724         PRUint32 IPV6NetworkMaskPrefixLength
9725     );
9726 
9727     nsresult (*EnableDynamicIPConfig)(IHostNetworkInterface *pThis );
9728 
9729     nsresult (*DHCPRediscover)(IHostNetworkInterface *pThis );
9730 
9731     nsresult (*InternalAndReservedMethod1IHostNetworkInterface)(IHostNetworkInterface *pThis);
9732 
9733     nsresult (*InternalAndReservedMethod2IHostNetworkInterface)(IHostNetworkInterface *pThis);
9734 
9735 };
9736 #   else /* VBOX_WITH_GLUE */
9737 struct IHostNetworkInterfaceVtbl
9738 {
9739     nsresult (*QueryInterface)(IHostNetworkInterface *pThis, const nsID *iid, void **resultp);
9740     nsrefcnt (*AddRef)(IHostNetworkInterface *pThis);
9741     nsrefcnt (*Release)(IHostNetworkInterface *pThis);
9742     nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
9743 
9744     nsresult (*GetShortName)(IHostNetworkInterface *pThis, PRUnichar * *shortName);
9745 
9746     nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
9747 
9748     nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
9749 
9750     nsresult (*GetDHCPEnabled)(IHostNetworkInterface *pThis, PRBool *DHCPEnabled);
9751 
9752     nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
9753 
9754     nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
9755 
9756     nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
9757 
9758     nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
9759 
9760     nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
9761 
9762     nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
9763 
9764     nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
9765 
9766     nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
9767 
9768     nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
9769 
9770     nsresult (*GetWireless)(IHostNetworkInterface *pThis, PRBool *wireless);
9771 
9772     nsresult (*GetInternalAndReservedAttribute1IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9773 
9774     nsresult (*GetInternalAndReservedAttribute2IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9775 
9776     nsresult (*GetInternalAndReservedAttribute3IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9777 
9778     nsresult (*GetInternalAndReservedAttribute4IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9779 
9780     nsresult (*EnableStaticIPConfig)(
9781         IHostNetworkInterface *pThis,
9782         PRUnichar * IPAddress,
9783         PRUnichar * networkMask
9784     );
9785 
9786     nsresult (*EnableStaticIPConfigV6)(
9787         IHostNetworkInterface *pThis,
9788         PRUnichar * IPV6Address,
9789         PRUint32 IPV6NetworkMaskPrefixLength
9790     );
9791 
9792     nsresult (*EnableDynamicIPConfig)(IHostNetworkInterface *pThis );
9793 
9794     nsresult (*DHCPRediscover)(IHostNetworkInterface *pThis );
9795 
9796     nsresult (*InternalAndReservedMethod1IHostNetworkInterface)(IHostNetworkInterface *pThis);
9797 
9798     nsresult (*InternalAndReservedMethod2IHostNetworkInterface)(IHostNetworkInterface *pThis);
9799 
9800 };
9801 #    define IHostNetworkInterface_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9802 #    define IHostNetworkInterface_AddRef(p) ((p)->lpVtbl->AddRef(p))
9803 #    define IHostNetworkInterface_Release(p) ((p)->lpVtbl->Release(p))
9804 #    define IHostNetworkInterface_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
9805 #    define IHostNetworkInterface_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
9806 #    define IHostNetworkInterface_get_ShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
9807 #    define IHostNetworkInterface_GetShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
9808 #    define IHostNetworkInterface_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
9809 #    define IHostNetworkInterface_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
9810 #    define IHostNetworkInterface_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
9811 #    define IHostNetworkInterface_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
9812 #    define IHostNetworkInterface_get_DHCPEnabled(p, aDHCPEnabled) ((p)->lpVtbl->GetDHCPEnabled(p, aDHCPEnabled))
9813 #    define IHostNetworkInterface_GetDHCPEnabled(p, aDHCPEnabled) ((p)->lpVtbl->GetDHCPEnabled(p, aDHCPEnabled))
9814 #    define IHostNetworkInterface_get_IPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
9815 #    define IHostNetworkInterface_GetIPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
9816 #    define IHostNetworkInterface_get_NetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
9817 #    define IHostNetworkInterface_GetNetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
9818 #    define IHostNetworkInterface_get_IPV6Supported(p, aIPV6Supported) ((p)->lpVtbl->GetIPV6Supported(p, aIPV6Supported))
9819 #    define IHostNetworkInterface_GetIPV6Supported(p, aIPV6Supported) ((p)->lpVtbl->GetIPV6Supported(p, aIPV6Supported))
9820 #    define IHostNetworkInterface_get_IPV6Address(p, aIPV6Address) ((p)->lpVtbl->GetIPV6Address(p, aIPV6Address))
9821 #    define IHostNetworkInterface_GetIPV6Address(p, aIPV6Address) ((p)->lpVtbl->GetIPV6Address(p, aIPV6Address))
9822 #    define IHostNetworkInterface_get_IPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength))
9823 #    define IHostNetworkInterface_GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength))
9824 #    define IHostNetworkInterface_get_HardwareAddress(p, aHardwareAddress) ((p)->lpVtbl->GetHardwareAddress(p, aHardwareAddress))
9825 #    define IHostNetworkInterface_GetHardwareAddress(p, aHardwareAddress) ((p)->lpVtbl->GetHardwareAddress(p, aHardwareAddress))
9826 #    define IHostNetworkInterface_get_MediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
9827 #    define IHostNetworkInterface_GetMediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
9828 #    define IHostNetworkInterface_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
9829 #    define IHostNetworkInterface_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
9830 #    define IHostNetworkInterface_get_InterfaceType(p, aInterfaceType) ((p)->lpVtbl->GetInterfaceType(p, aInterfaceType))
9831 #    define IHostNetworkInterface_GetInterfaceType(p, aInterfaceType) ((p)->lpVtbl->GetInterfaceType(p, aInterfaceType))
9832 #    define IHostNetworkInterface_get_Wireless(p, aWireless) ((p)->lpVtbl->GetWireless(p, aWireless))
9833 #    define IHostNetworkInterface_GetWireless(p, aWireless) ((p)->lpVtbl->GetWireless(p, aWireless))
9834 #    define IHostNetworkInterface_EnableStaticIPConfig(p, aIPAddress, aNetworkMask) ((p)->lpVtbl->EnableStaticIPConfig(p, aIPAddress, aNetworkMask))
9835 #    define IHostNetworkInterface_EnableStaticIPConfigV6(p, aIPV6Address, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->EnableStaticIPConfigV6(p, aIPV6Address, aIPV6NetworkMaskPrefixLength))
9836 #    define IHostNetworkInterface_EnableDynamicIPConfig(p) ((p)->lpVtbl->EnableDynamicIPConfig(p))
9837 #    define IHostNetworkInterface_DHCPRediscover(p) ((p)->lpVtbl->DHCPRediscover(p))
9838 #   endif /* VBOX_WITH_GLUE */
9839 
9840 interface IHostNetworkInterface
9841 {
9842 #   ifndef VBOX_WITH_GLUE
9843     struct IHostNetworkInterface_vtbl *vtbl;
9844 #   else /* VBOX_WITH_GLUE */
9845     CONST_VTBL struct IHostNetworkInterfaceVtbl *lpVtbl;
9846 #   endif /* VBOX_WITH_GLUE */
9847 };
9848 /* End of struct IHostNetworkInterface declaration */
9849 
9850 
9851 /* Start of struct IHostVideoInputDevice declaration */
9852 #   define IHOSTVIDEOINPUTDEVICE_IID_STR "e8c25d4d-ac97-4c16-b3e2-81bd8a57cc27"
9853 #   define IHOSTVIDEOINPUTDEVICE_IID { \
9854     0xe8c25d4d, 0xac97, 0x4c16, \
9855     { 0xb3, 0xe2, 0x81, 0xbd, 0x8a, 0x57, 0xcc, 0x27 } \
9856 }
9857 /* COM compatibility */
9858 VBOX_EXTERN_CONST(nsIID, IID_IHostVideoInputDevice);
9859 #   ifndef VBOX_WITH_GLUE
9860 struct IHostVideoInputDevice_vtbl
9861 {
9862     struct nsISupports_vtbl nsisupports;
9863 
9864     nsresult (*GetName)(IHostVideoInputDevice *pThis, PRUnichar * *name);
9865 
9866     nsresult (*GetPath)(IHostVideoInputDevice *pThis, PRUnichar * *path);
9867 
9868     nsresult (*GetAlias)(IHostVideoInputDevice *pThis, PRUnichar * *alias);
9869 
9870     nsresult (*GetInternalAndReservedAttribute1IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9871 
9872     nsresult (*GetInternalAndReservedAttribute2IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9873 
9874     nsresult (*GetInternalAndReservedAttribute3IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9875 
9876     nsresult (*GetInternalAndReservedAttribute4IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9877 
9878 };
9879 #   else /* VBOX_WITH_GLUE */
9880 struct IHostVideoInputDeviceVtbl
9881 {
9882     nsresult (*QueryInterface)(IHostVideoInputDevice *pThis, const nsID *iid, void **resultp);
9883     nsrefcnt (*AddRef)(IHostVideoInputDevice *pThis);
9884     nsrefcnt (*Release)(IHostVideoInputDevice *pThis);
9885     nsresult (*GetName)(IHostVideoInputDevice *pThis, PRUnichar * *name);
9886 
9887     nsresult (*GetPath)(IHostVideoInputDevice *pThis, PRUnichar * *path);
9888 
9889     nsresult (*GetAlias)(IHostVideoInputDevice *pThis, PRUnichar * *alias);
9890 
9891     nsresult (*GetInternalAndReservedAttribute1IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9892 
9893     nsresult (*GetInternalAndReservedAttribute2IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9894 
9895     nsresult (*GetInternalAndReservedAttribute3IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9896 
9897     nsresult (*GetInternalAndReservedAttribute4IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9898 
9899 };
9900 #    define IHostVideoInputDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9901 #    define IHostVideoInputDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
9902 #    define IHostVideoInputDevice_Release(p) ((p)->lpVtbl->Release(p))
9903 #    define IHostVideoInputDevice_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
9904 #    define IHostVideoInputDevice_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
9905 #    define IHostVideoInputDevice_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
9906 #    define IHostVideoInputDevice_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
9907 #    define IHostVideoInputDevice_get_Alias(p, aAlias) ((p)->lpVtbl->GetAlias(p, aAlias))
9908 #    define IHostVideoInputDevice_GetAlias(p, aAlias) ((p)->lpVtbl->GetAlias(p, aAlias))
9909 #   endif /* VBOX_WITH_GLUE */
9910 
9911 interface IHostVideoInputDevice
9912 {
9913 #   ifndef VBOX_WITH_GLUE
9914     struct IHostVideoInputDevice_vtbl *vtbl;
9915 #   else /* VBOX_WITH_GLUE */
9916     CONST_VTBL struct IHostVideoInputDeviceVtbl *lpVtbl;
9917 #   endif /* VBOX_WITH_GLUE */
9918 };
9919 /* End of struct IHostVideoInputDevice declaration */
9920 
9921 
9922 /* Start of struct IHost declaration */
9923 #   define IHOST_IID_STR "dbe11e5f-7f10-46e7-94c4-1e95bf4b6627"
9924 #   define IHOST_IID { \
9925     0xdbe11e5f, 0x7f10, 0x46e7, \
9926     { 0x94, 0xc4, 0x1e, 0x95, 0xbf, 0x4b, 0x66, 0x27 } \
9927 }
9928 /* COM compatibility */
9929 VBOX_EXTERN_CONST(nsIID, IID_IHost);
9930 #   ifndef VBOX_WITH_GLUE
9931 struct IHost_vtbl
9932 {
9933     struct nsISupports_vtbl nsisupports;
9934 
9935     nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
9936 
9937     nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
9938 
9939     nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
9940 
9941     nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
9942 
9943     nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
9944 
9945     nsresult (*GetNameServers)(IHost *pThis, PRUint32 *nameServersSize, PRUnichar * **nameServers);
9946 
9947     nsresult (*GetDomainName)(IHost *pThis, PRUnichar * *domainName);
9948 
9949     nsresult (*GetSearchStrings)(IHost *pThis, PRUint32 *searchStringsSize, PRUnichar * **searchStrings);
9950 
9951     nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
9952 
9953     nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
9954 
9955     nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
9956 
9957     nsresult (*GetProcessorOnlineCoreCount)(IHost *pThis, PRUint32 *processorOnlineCoreCount);
9958 
9959     nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
9960 
9961     nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
9962 
9963     nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
9964 
9965     nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
9966 
9967     nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
9968 
9969     nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *acceleration3DAvailable);
9970 
9971     nsresult (*GetVideoInputDevices)(IHost *pThis, PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices);
9972 
9973     nsresult (*GetInternalAndReservedAttribute1IHost)(IHost *pThis, PRUint32 *reserved);
9974 
9975     nsresult (*GetInternalAndReservedAttribute2IHost)(IHost *pThis, PRUint32 *reserved);
9976 
9977     nsresult (*GetInternalAndReservedAttribute3IHost)(IHost *pThis, PRUint32 *reserved);
9978 
9979     nsresult (*GetInternalAndReservedAttribute4IHost)(IHost *pThis, PRUint32 *reserved);
9980 
9981     nsresult (*GetInternalAndReservedAttribute5IHost)(IHost *pThis, PRUint32 *reserved);
9982 
9983     nsresult (*GetInternalAndReservedAttribute6IHost)(IHost *pThis, PRUint32 *reserved);
9984 
9985     nsresult (*GetInternalAndReservedAttribute7IHost)(IHost *pThis, PRUint32 *reserved);
9986 
9987     nsresult (*GetInternalAndReservedAttribute8IHost)(IHost *pThis, PRUint32 *reserved);
9988 
9989     nsresult (*GetInternalAndReservedAttribute9IHost)(IHost *pThis, PRUint32 *reserved);
9990 
9991     nsresult (*GetInternalAndReservedAttribute10IHost)(IHost *pThis, PRUint32 *reserved);
9992 
9993     nsresult (*GetInternalAndReservedAttribute11IHost)(IHost *pThis, PRUint32 *reserved);
9994 
9995     nsresult (*GetInternalAndReservedAttribute12IHost)(IHost *pThis, PRUint32 *reserved);
9996 
9997     nsresult (*GetProcessorSpeed)(
9998         IHost *pThis,
9999         PRUint32 cpuId,
10000         PRUint32 * speed
10001     );
10002 
10003     nsresult (*GetProcessorFeature)(
10004         IHost *pThis,
10005         PRUint32 feature,
10006         PRBool * supported
10007     );
10008 
10009     nsresult (*GetProcessorDescription)(
10010         IHost *pThis,
10011         PRUint32 cpuId,
10012         PRUnichar * * description
10013     );
10014 
10015     nsresult (*GetProcessorCPUIDLeaf)(
10016         IHost *pThis,
10017         PRUint32 cpuId,
10018         PRUint32 leaf,
10019         PRUint32 subLeaf,
10020         PRUint32 * valEax,
10021         PRUint32 * valEbx,
10022         PRUint32 * valEcx,
10023         PRUint32 * valEdx
10024     );
10025 
10026     nsresult (*CreateHostOnlyNetworkInterface)(
10027         IHost *pThis,
10028         IHostNetworkInterface * * hostInterface,
10029         IProgress * * progress
10030     );
10031 
10032     nsresult (*RemoveHostOnlyNetworkInterface)(
10033         IHost *pThis,
10034         PRUnichar * id,
10035         IProgress * * progress
10036     );
10037 
10038     nsresult (*CreateUSBDeviceFilter)(
10039         IHost *pThis,
10040         PRUnichar * name,
10041         IHostUSBDeviceFilter * * filter
10042     );
10043 
10044     nsresult (*InsertUSBDeviceFilter)(
10045         IHost *pThis,
10046         PRUint32 position,
10047         IHostUSBDeviceFilter * filter
10048     );
10049 
10050     nsresult (*RemoveUSBDeviceFilter)(
10051         IHost *pThis,
10052         PRUint32 position
10053     );
10054 
10055     nsresult (*FindHostDVDDrive)(
10056         IHost *pThis,
10057         PRUnichar * name,
10058         IMedium * * drive
10059     );
10060 
10061     nsresult (*FindHostFloppyDrive)(
10062         IHost *pThis,
10063         PRUnichar * name,
10064         IMedium * * drive
10065     );
10066 
10067     nsresult (*FindHostNetworkInterfaceByName)(
10068         IHost *pThis,
10069         PRUnichar * name,
10070         IHostNetworkInterface * * networkInterface
10071     );
10072 
10073     nsresult (*FindHostNetworkInterfaceById)(
10074         IHost *pThis,
10075         PRUnichar * id,
10076         IHostNetworkInterface * * networkInterface
10077     );
10078 
10079     nsresult (*FindHostNetworkInterfacesOfType)(
10080         IHost *pThis,
10081         PRUint32 type,
10082         PRUint32 *networkInterfacesSize,
10083         IHostNetworkInterface *** networkInterfaces
10084     );
10085 
10086     nsresult (*FindUSBDeviceById)(
10087         IHost *pThis,
10088         PRUnichar * id,
10089         IHostUSBDevice * * device
10090     );
10091 
10092     nsresult (*FindUSBDeviceByAddress)(
10093         IHost *pThis,
10094         PRUnichar * name,
10095         IHostUSBDevice * * device
10096     );
10097 
10098     nsresult (*GenerateMACAddress)(
10099         IHost *pThis,
10100         PRUnichar * * address
10101     );
10102 
10103     nsresult (*AddUSBDeviceSource)(
10104         IHost *pThis,
10105         PRUnichar * backend,
10106         PRUnichar * id,
10107         PRUnichar * address,
10108         PRUint32 propertyNamesSize,
10109         PRUnichar ** propertyNames,
10110         PRUint32 propertyValuesSize,
10111         PRUnichar ** propertyValues
10112     );
10113 
10114     nsresult (*RemoveUSBDeviceSource)(
10115         IHost *pThis,
10116         PRUnichar * id
10117     );
10118 
10119     nsresult (*InternalAndReservedMethod1IHost)(IHost *pThis);
10120 
10121     nsresult (*InternalAndReservedMethod2IHost)(IHost *pThis);
10122 
10123     nsresult (*InternalAndReservedMethod3IHost)(IHost *pThis);
10124 
10125     nsresult (*InternalAndReservedMethod4IHost)(IHost *pThis);
10126 
10127     nsresult (*InternalAndReservedMethod5IHost)(IHost *pThis);
10128 
10129     nsresult (*InternalAndReservedMethod6IHost)(IHost *pThis);
10130 
10131 };
10132 #   else /* VBOX_WITH_GLUE */
10133 struct IHostVtbl
10134 {
10135     nsresult (*QueryInterface)(IHost *pThis, const nsID *iid, void **resultp);
10136     nsrefcnt (*AddRef)(IHost *pThis);
10137     nsrefcnt (*Release)(IHost *pThis);
10138     nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
10139 
10140     nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
10141 
10142     nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
10143 
10144     nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
10145 
10146     nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
10147 
10148     nsresult (*GetNameServers)(IHost *pThis, PRUint32 *nameServersSize, PRUnichar * **nameServers);
10149 
10150     nsresult (*GetDomainName)(IHost *pThis, PRUnichar * *domainName);
10151 
10152     nsresult (*GetSearchStrings)(IHost *pThis, PRUint32 *searchStringsSize, PRUnichar * **searchStrings);
10153 
10154     nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
10155 
10156     nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
10157 
10158     nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
10159 
10160     nsresult (*GetProcessorOnlineCoreCount)(IHost *pThis, PRUint32 *processorOnlineCoreCount);
10161 
10162     nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
10163 
10164     nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
10165 
10166     nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
10167 
10168     nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
10169 
10170     nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
10171 
10172     nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *acceleration3DAvailable);
10173 
10174     nsresult (*GetVideoInputDevices)(IHost *pThis, PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices);
10175 
10176     nsresult (*GetInternalAndReservedAttribute1IHost)(IHost *pThis, PRUint32 *reserved);
10177 
10178     nsresult (*GetInternalAndReservedAttribute2IHost)(IHost *pThis, PRUint32 *reserved);
10179 
10180     nsresult (*GetInternalAndReservedAttribute3IHost)(IHost *pThis, PRUint32 *reserved);
10181 
10182     nsresult (*GetInternalAndReservedAttribute4IHost)(IHost *pThis, PRUint32 *reserved);
10183 
10184     nsresult (*GetInternalAndReservedAttribute5IHost)(IHost *pThis, PRUint32 *reserved);
10185 
10186     nsresult (*GetInternalAndReservedAttribute6IHost)(IHost *pThis, PRUint32 *reserved);
10187 
10188     nsresult (*GetInternalAndReservedAttribute7IHost)(IHost *pThis, PRUint32 *reserved);
10189 
10190     nsresult (*GetInternalAndReservedAttribute8IHost)(IHost *pThis, PRUint32 *reserved);
10191 
10192     nsresult (*GetInternalAndReservedAttribute9IHost)(IHost *pThis, PRUint32 *reserved);
10193 
10194     nsresult (*GetInternalAndReservedAttribute10IHost)(IHost *pThis, PRUint32 *reserved);
10195 
10196     nsresult (*GetInternalAndReservedAttribute11IHost)(IHost *pThis, PRUint32 *reserved);
10197 
10198     nsresult (*GetInternalAndReservedAttribute12IHost)(IHost *pThis, PRUint32 *reserved);
10199 
10200     nsresult (*GetProcessorSpeed)(
10201         IHost *pThis,
10202         PRUint32 cpuId,
10203         PRUint32 * speed
10204     );
10205 
10206     nsresult (*GetProcessorFeature)(
10207         IHost *pThis,
10208         PRUint32 feature,
10209         PRBool * supported
10210     );
10211 
10212     nsresult (*GetProcessorDescription)(
10213         IHost *pThis,
10214         PRUint32 cpuId,
10215         PRUnichar * * description
10216     );
10217 
10218     nsresult (*GetProcessorCPUIDLeaf)(
10219         IHost *pThis,
10220         PRUint32 cpuId,
10221         PRUint32 leaf,
10222         PRUint32 subLeaf,
10223         PRUint32 * valEax,
10224         PRUint32 * valEbx,
10225         PRUint32 * valEcx,
10226         PRUint32 * valEdx
10227     );
10228 
10229     nsresult (*CreateHostOnlyNetworkInterface)(
10230         IHost *pThis,
10231         IHostNetworkInterface * * hostInterface,
10232         IProgress * * progress
10233     );
10234 
10235     nsresult (*RemoveHostOnlyNetworkInterface)(
10236         IHost *pThis,
10237         PRUnichar * id,
10238         IProgress * * progress
10239     );
10240 
10241     nsresult (*CreateUSBDeviceFilter)(
10242         IHost *pThis,
10243         PRUnichar * name,
10244         IHostUSBDeviceFilter * * filter
10245     );
10246 
10247     nsresult (*InsertUSBDeviceFilter)(
10248         IHost *pThis,
10249         PRUint32 position,
10250         IHostUSBDeviceFilter * filter
10251     );
10252 
10253     nsresult (*RemoveUSBDeviceFilter)(
10254         IHost *pThis,
10255         PRUint32 position
10256     );
10257 
10258     nsresult (*FindHostDVDDrive)(
10259         IHost *pThis,
10260         PRUnichar * name,
10261         IMedium * * drive
10262     );
10263 
10264     nsresult (*FindHostFloppyDrive)(
10265         IHost *pThis,
10266         PRUnichar * name,
10267         IMedium * * drive
10268     );
10269 
10270     nsresult (*FindHostNetworkInterfaceByName)(
10271         IHost *pThis,
10272         PRUnichar * name,
10273         IHostNetworkInterface * * networkInterface
10274     );
10275 
10276     nsresult (*FindHostNetworkInterfaceById)(
10277         IHost *pThis,
10278         PRUnichar * id,
10279         IHostNetworkInterface * * networkInterface
10280     );
10281 
10282     nsresult (*FindHostNetworkInterfacesOfType)(
10283         IHost *pThis,
10284         PRUint32 type,
10285         PRUint32 *networkInterfacesSize,
10286         IHostNetworkInterface *** networkInterfaces
10287     );
10288 
10289     nsresult (*FindUSBDeviceById)(
10290         IHost *pThis,
10291         PRUnichar * id,
10292         IHostUSBDevice * * device
10293     );
10294 
10295     nsresult (*FindUSBDeviceByAddress)(
10296         IHost *pThis,
10297         PRUnichar * name,
10298         IHostUSBDevice * * device
10299     );
10300 
10301     nsresult (*GenerateMACAddress)(
10302         IHost *pThis,
10303         PRUnichar * * address
10304     );
10305 
10306     nsresult (*AddUSBDeviceSource)(
10307         IHost *pThis,
10308         PRUnichar * backend,
10309         PRUnichar * id,
10310         PRUnichar * address,
10311         PRUint32 propertyNamesSize,
10312         PRUnichar ** propertyNames,
10313         PRUint32 propertyValuesSize,
10314         PRUnichar ** propertyValues
10315     );
10316 
10317     nsresult (*RemoveUSBDeviceSource)(
10318         IHost *pThis,
10319         PRUnichar * id
10320     );
10321 
10322     nsresult (*InternalAndReservedMethod1IHost)(IHost *pThis);
10323 
10324     nsresult (*InternalAndReservedMethod2IHost)(IHost *pThis);
10325 
10326     nsresult (*InternalAndReservedMethod3IHost)(IHost *pThis);
10327 
10328     nsresult (*InternalAndReservedMethod4IHost)(IHost *pThis);
10329 
10330     nsresult (*InternalAndReservedMethod5IHost)(IHost *pThis);
10331 
10332     nsresult (*InternalAndReservedMethod6IHost)(IHost *pThis);
10333 
10334 };
10335 #    define IHost_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10336 #    define IHost_AddRef(p) ((p)->lpVtbl->AddRef(p))
10337 #    define IHost_Release(p) ((p)->lpVtbl->Release(p))
10338 #    define IHost_get_DVDDrives(p, aDVDDrives) ((p)->lpVtbl->GetDVDDrives(p, aDVDDrives))
10339 #    define IHost_GetDVDDrives(p, aDVDDrives) ((p)->lpVtbl->GetDVDDrives(p, aDVDDrives))
10340 #    define IHost_get_FloppyDrives(p, aFloppyDrives) ((p)->lpVtbl->GetFloppyDrives(p, aFloppyDrives))
10341 #    define IHost_GetFloppyDrives(p, aFloppyDrives) ((p)->lpVtbl->GetFloppyDrives(p, aFloppyDrives))
10342 #    define IHost_get_USBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
10343 #    define IHost_GetUSBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
10344 #    define IHost_get_USBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
10345 #    define IHost_GetUSBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
10346 #    define IHost_get_NetworkInterfaces(p, aNetworkInterfaces) ((p)->lpVtbl->GetNetworkInterfaces(p, aNetworkInterfaces))
10347 #    define IHost_GetNetworkInterfaces(p, aNetworkInterfaces) ((p)->lpVtbl->GetNetworkInterfaces(p, aNetworkInterfaces))
10348 #    define IHost_get_NameServers(p, aNameServers) ((p)->lpVtbl->GetNameServers(p, aNameServers))
10349 #    define IHost_GetNameServers(p, aNameServers) ((p)->lpVtbl->GetNameServers(p, aNameServers))
10350 #    define IHost_get_DomainName(p, aDomainName) ((p)->lpVtbl->GetDomainName(p, aDomainName))
10351 #    define IHost_GetDomainName(p, aDomainName) ((p)->lpVtbl->GetDomainName(p, aDomainName))
10352 #    define IHost_get_SearchStrings(p, aSearchStrings) ((p)->lpVtbl->GetSearchStrings(p, aSearchStrings))
10353 #    define IHost_GetSearchStrings(p, aSearchStrings) ((p)->lpVtbl->GetSearchStrings(p, aSearchStrings))
10354 #    define IHost_get_ProcessorCount(p, aProcessorCount) ((p)->lpVtbl->GetProcessorCount(p, aProcessorCount))
10355 #    define IHost_GetProcessorCount(p, aProcessorCount) ((p)->lpVtbl->GetProcessorCount(p, aProcessorCount))
10356 #    define IHost_get_ProcessorOnlineCount(p, aProcessorOnlineCount) ((p)->lpVtbl->GetProcessorOnlineCount(p, aProcessorOnlineCount))
10357 #    define IHost_GetProcessorOnlineCount(p, aProcessorOnlineCount) ((p)->lpVtbl->GetProcessorOnlineCount(p, aProcessorOnlineCount))
10358 #    define IHost_get_ProcessorCoreCount(p, aProcessorCoreCount) ((p)->lpVtbl->GetProcessorCoreCount(p, aProcessorCoreCount))
10359 #    define IHost_GetProcessorCoreCount(p, aProcessorCoreCount) ((p)->lpVtbl->GetProcessorCoreCount(p, aProcessorCoreCount))
10360 #    define IHost_get_ProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount) ((p)->lpVtbl->GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount))
10361 #    define IHost_GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount) ((p)->lpVtbl->GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount))
10362 #    define IHost_get_MemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
10363 #    define IHost_GetMemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
10364 #    define IHost_get_MemoryAvailable(p, aMemoryAvailable) ((p)->lpVtbl->GetMemoryAvailable(p, aMemoryAvailable))
10365 #    define IHost_GetMemoryAvailable(p, aMemoryAvailable) ((p)->lpVtbl->GetMemoryAvailable(p, aMemoryAvailable))
10366 #    define IHost_get_OperatingSystem(p, aOperatingSystem) ((p)->lpVtbl->GetOperatingSystem(p, aOperatingSystem))
10367 #    define IHost_GetOperatingSystem(p, aOperatingSystem) ((p)->lpVtbl->GetOperatingSystem(p, aOperatingSystem))
10368 #    define IHost_get_OSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
10369 #    define IHost_GetOSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
10370 #    define IHost_get_UTCTime(p, aUTCTime) ((p)->lpVtbl->GetUTCTime(p, aUTCTime))
10371 #    define IHost_GetUTCTime(p, aUTCTime) ((p)->lpVtbl->GetUTCTime(p, aUTCTime))
10372 #    define IHost_get_Acceleration3DAvailable(p, aAcceleration3DAvailable) ((p)->lpVtbl->GetAcceleration3DAvailable(p, aAcceleration3DAvailable))
10373 #    define IHost_GetAcceleration3DAvailable(p, aAcceleration3DAvailable) ((p)->lpVtbl->GetAcceleration3DAvailable(p, aAcceleration3DAvailable))
10374 #    define IHost_get_VideoInputDevices(p, aVideoInputDevices) ((p)->lpVtbl->GetVideoInputDevices(p, aVideoInputDevices))
10375 #    define IHost_GetVideoInputDevices(p, aVideoInputDevices) ((p)->lpVtbl->GetVideoInputDevices(p, aVideoInputDevices))
10376 #    define IHost_GetProcessorSpeed(p, aCpuId, aSpeed) ((p)->lpVtbl->GetProcessorSpeed(p, aCpuId, aSpeed))
10377 #    define IHost_GetProcessorFeature(p, aFeature, aSupported) ((p)->lpVtbl->GetProcessorFeature(p, aFeature, aSupported))
10378 #    define IHost_GetProcessorDescription(p, aCpuId, aDescription) ((p)->lpVtbl->GetProcessorDescription(p, aCpuId, aDescription))
10379 #    define IHost_GetProcessorCPUIDLeaf(p, aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetProcessorCPUIDLeaf(p, aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx))
10380 #    define IHost_CreateHostOnlyNetworkInterface(p, aHostInterface, aProgress) ((p)->lpVtbl->CreateHostOnlyNetworkInterface(p, aHostInterface, aProgress))
10381 #    define IHost_RemoveHostOnlyNetworkInterface(p, aId, aProgress) ((p)->lpVtbl->RemoveHostOnlyNetworkInterface(p, aId, aProgress))
10382 #    define IHost_CreateUSBDeviceFilter(p, aName, aFilter) ((p)->lpVtbl->CreateUSBDeviceFilter(p, aName, aFilter))
10383 #    define IHost_InsertUSBDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->InsertUSBDeviceFilter(p, aPosition, aFilter))
10384 #    define IHost_RemoveUSBDeviceFilter(p, aPosition) ((p)->lpVtbl->RemoveUSBDeviceFilter(p, aPosition))
10385 #    define IHost_FindHostDVDDrive(p, aName, aDrive) ((p)->lpVtbl->FindHostDVDDrive(p, aName, aDrive))
10386 #    define IHost_FindHostFloppyDrive(p, aName, aDrive) ((p)->lpVtbl->FindHostFloppyDrive(p, aName, aDrive))
10387 #    define IHost_FindHostNetworkInterfaceByName(p, aName, aNetworkInterface) ((p)->lpVtbl->FindHostNetworkInterfaceByName(p, aName, aNetworkInterface))
10388 #    define IHost_FindHostNetworkInterfaceById(p, aId, aNetworkInterface) ((p)->lpVtbl->FindHostNetworkInterfaceById(p, aId, aNetworkInterface))
10389 #    define IHost_FindHostNetworkInterfacesOfType(p, aType, aNetworkInterfaces) ((p)->lpVtbl->FindHostNetworkInterfacesOfType(p, aType, aNetworkInterfaces))
10390 #    define IHost_FindUSBDeviceById(p, aId, aDevice) ((p)->lpVtbl->FindUSBDeviceById(p, aId, aDevice))
10391 #    define IHost_FindUSBDeviceByAddress(p, aName, aDevice) ((p)->lpVtbl->FindUSBDeviceByAddress(p, aName, aDevice))
10392 #    define IHost_GenerateMACAddress(p, aAddress) ((p)->lpVtbl->GenerateMACAddress(p, aAddress))
10393 #    define IHost_AddUSBDeviceSource(p, aBackend, aId, aAddress, aPropertyNames, aPropertyValues) ((p)->lpVtbl->AddUSBDeviceSource(p, aBackend, aId, aAddress, aPropertyNames, aPropertyValues))
10394 #    define IHost_RemoveUSBDeviceSource(p, aId) ((p)->lpVtbl->RemoveUSBDeviceSource(p, aId))
10395 #   endif /* VBOX_WITH_GLUE */
10396 
10397 interface IHost
10398 {
10399 #   ifndef VBOX_WITH_GLUE
10400     struct IHost_vtbl *vtbl;
10401 #   else /* VBOX_WITH_GLUE */
10402     CONST_VTBL struct IHostVtbl *lpVtbl;
10403 #   endif /* VBOX_WITH_GLUE */
10404 };
10405 /* End of struct IHost declaration */
10406 
10407 
10408 /* Start of struct ISystemProperties declaration */
10409 #   define ISYSTEMPROPERTIES_IID_STR "d55176e5-6730-4e9e-fc1f-a59b1f44f78f"
10410 #   define ISYSTEMPROPERTIES_IID { \
10411     0xd55176e5, 0x6730, 0x4e9e, \
10412     { 0xfc, 0x1f, 0xa5, 0x9b, 0x1f, 0x44, 0xf7, 0x8f } \
10413 }
10414 /* COM compatibility */
10415 VBOX_EXTERN_CONST(nsIID, IID_ISystemProperties);
10416 #   ifndef VBOX_WITH_GLUE
10417 struct ISystemProperties_vtbl
10418 {
10419     struct nsISupports_vtbl nsisupports;
10420 
10421     nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
10422 
10423     nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
10424 
10425     nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
10426 
10427     nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
10428 
10429     nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
10430 
10431     nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
10432 
10433     nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
10434 
10435     nsresult (*GetInfoVDSize)(ISystemProperties *pThis, PRInt64 *infoVDSize);
10436 
10437     nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
10438 
10439     nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
10440 
10441     nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
10442 
10443     nsresult (*GetRawModeSupported)(ISystemProperties *pThis, PRBool *rawModeSupported);
10444 
10445     nsresult (*GetExclusiveHwVirt)(ISystemProperties *pThis, PRBool *exclusiveHwVirt);
10446     nsresult (*SetExclusiveHwVirt)(ISystemProperties *pThis, PRBool exclusiveHwVirt);
10447 
10448     nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
10449     nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
10450 
10451     nsresult (*GetLoggingLevel)(ISystemProperties *pThis, PRUnichar * *loggingLevel);
10452     nsresult (*SetLoggingLevel)(ISystemProperties *pThis, PRUnichar * loggingLevel);
10453 
10454     nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
10455 
10456     nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
10457     nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
10458 
10459     nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceWarning);
10460     nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 freeDiskSpaceWarning);
10461 
10462     nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
10463     nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
10464 
10465     nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceError);
10466     nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 freeDiskSpaceError);
10467 
10468     nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
10469     nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
10470 
10471     nsresult (*GetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * *VRDEAuthLibrary);
10472     nsresult (*SetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * VRDEAuthLibrary);
10473 
10474     nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
10475     nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
10476 
10477     nsresult (*GetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * *defaultVRDEExtPack);
10478     nsresult (*SetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * defaultVRDEExtPack);
10479 
10480     nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *logHistoryCount);
10481     nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 logHistoryCount);
10482 
10483     nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
10484 
10485     nsresult (*GetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * *autostartDatabasePath);
10486     nsresult (*SetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * autostartDatabasePath);
10487 
10488     nsresult (*GetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * *defaultAdditionsISO);
10489     nsresult (*SetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * defaultAdditionsISO);
10490 
10491     nsresult (*GetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * *defaultFrontend);
10492     nsresult (*SetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * defaultFrontend);
10493 
10494     nsresult (*GetScreenShotFormats)(ISystemProperties *pThis, PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats);
10495 
10496     nsresult (*GetProxyMode)(ISystemProperties *pThis, PRUint32 *proxyMode);
10497     nsresult (*SetProxyMode)(ISystemProperties *pThis, PRUint32 proxyMode);
10498 
10499     nsresult (*GetProxyURL)(ISystemProperties *pThis, PRUnichar * *proxyURL);
10500     nsresult (*SetProxyURL)(ISystemProperties *pThis, PRUnichar * proxyURL);
10501 
10502     nsresult (*GetInternalAndReservedAttribute1ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10503 
10504     nsresult (*GetInternalAndReservedAttribute2ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10505 
10506     nsresult (*GetInternalAndReservedAttribute3ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10507 
10508     nsresult (*GetInternalAndReservedAttribute4ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10509 
10510     nsresult (*GetInternalAndReservedAttribute5ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10511 
10512     nsresult (*GetInternalAndReservedAttribute6ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10513 
10514     nsresult (*GetInternalAndReservedAttribute7ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10515 
10516     nsresult (*GetInternalAndReservedAttribute8ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10517 
10518     nsresult (*GetInternalAndReservedAttribute9ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10519 
10520     nsresult (*GetInternalAndReservedAttribute10ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10521 
10522     nsresult (*GetInternalAndReservedAttribute11ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10523 
10524     nsresult (*GetInternalAndReservedAttribute12ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10525 
10526     nsresult (*GetInternalAndReservedAttribute13ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10527 
10528     nsresult (*GetInternalAndReservedAttribute14ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10529 
10530     nsresult (*GetInternalAndReservedAttribute15ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10531 
10532     nsresult (*GetInternalAndReservedAttribute16ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10533 
10534     nsresult (*GetMaxNetworkAdapters)(
10535         ISystemProperties *pThis,
10536         PRUint32 chipset,
10537         PRUint32 * maxNetworkAdapters
10538     );
10539 
10540     nsresult (*GetMaxNetworkAdaptersOfType)(
10541         ISystemProperties *pThis,
10542         PRUint32 chipset,
10543         PRUint32 type,
10544         PRUint32 * maxNetworkAdapters
10545     );
10546 
10547     nsresult (*GetMaxDevicesPerPortForStorageBus)(
10548         ISystemProperties *pThis,
10549         PRUint32 bus,
10550         PRUint32 * maxDevicesPerPort
10551     );
10552 
10553     nsresult (*GetMinPortCountForStorageBus)(
10554         ISystemProperties *pThis,
10555         PRUint32 bus,
10556         PRUint32 * minPortCount
10557     );
10558 
10559     nsresult (*GetMaxPortCountForStorageBus)(
10560         ISystemProperties *pThis,
10561         PRUint32 bus,
10562         PRUint32 * maxPortCount
10563     );
10564 
10565     nsresult (*GetMaxInstancesOfStorageBus)(
10566         ISystemProperties *pThis,
10567         PRUint32 chipset,
10568         PRUint32 bus,
10569         PRUint32 * maxInstances
10570     );
10571 
10572     nsresult (*GetDeviceTypesForStorageBus)(
10573         ISystemProperties *pThis,
10574         PRUint32 bus,
10575         PRUint32 *deviceTypesSize,
10576         PRUint32** deviceTypes
10577     );
10578 
10579     nsresult (*GetDefaultIoCacheSettingForStorageController)(
10580         ISystemProperties *pThis,
10581         PRUint32 controllerType,
10582         PRBool * enabled
10583     );
10584 
10585     nsresult (*GetStorageControllerHotplugCapable)(
10586         ISystemProperties *pThis,
10587         PRUint32 controllerType,
10588         PRBool * hotplugCapable
10589     );
10590 
10591     nsresult (*GetMaxInstancesOfUSBControllerType)(
10592         ISystemProperties *pThis,
10593         PRUint32 chipset,
10594         PRUint32 type,
10595         PRUint32 * maxInstances
10596     );
10597 
10598     nsresult (*InternalAndReservedMethod1ISystemProperties)(ISystemProperties *pThis);
10599 
10600     nsresult (*InternalAndReservedMethod2ISystemProperties)(ISystemProperties *pThis);
10601 
10602     nsresult (*InternalAndReservedMethod3ISystemProperties)(ISystemProperties *pThis);
10603 
10604     nsresult (*InternalAndReservedMethod4ISystemProperties)(ISystemProperties *pThis);
10605 
10606 };
10607 #   else /* VBOX_WITH_GLUE */
10608 struct ISystemPropertiesVtbl
10609 {
10610     nsresult (*QueryInterface)(ISystemProperties *pThis, const nsID *iid, void **resultp);
10611     nsrefcnt (*AddRef)(ISystemProperties *pThis);
10612     nsrefcnt (*Release)(ISystemProperties *pThis);
10613     nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
10614 
10615     nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
10616 
10617     nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
10618 
10619     nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
10620 
10621     nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
10622 
10623     nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
10624 
10625     nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
10626 
10627     nsresult (*GetInfoVDSize)(ISystemProperties *pThis, PRInt64 *infoVDSize);
10628 
10629     nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
10630 
10631     nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
10632 
10633     nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
10634 
10635     nsresult (*GetRawModeSupported)(ISystemProperties *pThis, PRBool *rawModeSupported);
10636 
10637     nsresult (*GetExclusiveHwVirt)(ISystemProperties *pThis, PRBool *exclusiveHwVirt);
10638     nsresult (*SetExclusiveHwVirt)(ISystemProperties *pThis, PRBool exclusiveHwVirt);
10639 
10640     nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
10641     nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
10642 
10643     nsresult (*GetLoggingLevel)(ISystemProperties *pThis, PRUnichar * *loggingLevel);
10644     nsresult (*SetLoggingLevel)(ISystemProperties *pThis, PRUnichar * loggingLevel);
10645 
10646     nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
10647 
10648     nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
10649     nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
10650 
10651     nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceWarning);
10652     nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 freeDiskSpaceWarning);
10653 
10654     nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
10655     nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
10656 
10657     nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceError);
10658     nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 freeDiskSpaceError);
10659 
10660     nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
10661     nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
10662 
10663     nsresult (*GetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * *VRDEAuthLibrary);
10664     nsresult (*SetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * VRDEAuthLibrary);
10665 
10666     nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
10667     nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
10668 
10669     nsresult (*GetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * *defaultVRDEExtPack);
10670     nsresult (*SetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * defaultVRDEExtPack);
10671 
10672     nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *logHistoryCount);
10673     nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 logHistoryCount);
10674 
10675     nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
10676 
10677     nsresult (*GetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * *autostartDatabasePath);
10678     nsresult (*SetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * autostartDatabasePath);
10679 
10680     nsresult (*GetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * *defaultAdditionsISO);
10681     nsresult (*SetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * defaultAdditionsISO);
10682 
10683     nsresult (*GetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * *defaultFrontend);
10684     nsresult (*SetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * defaultFrontend);
10685 
10686     nsresult (*GetScreenShotFormats)(ISystemProperties *pThis, PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats);
10687 
10688     nsresult (*GetProxyMode)(ISystemProperties *pThis, PRUint32 *proxyMode);
10689     nsresult (*SetProxyMode)(ISystemProperties *pThis, PRUint32 proxyMode);
10690 
10691     nsresult (*GetProxyURL)(ISystemProperties *pThis, PRUnichar * *proxyURL);
10692     nsresult (*SetProxyURL)(ISystemProperties *pThis, PRUnichar * proxyURL);
10693 
10694     nsresult (*GetInternalAndReservedAttribute1ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10695 
10696     nsresult (*GetInternalAndReservedAttribute2ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10697 
10698     nsresult (*GetInternalAndReservedAttribute3ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10699 
10700     nsresult (*GetInternalAndReservedAttribute4ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10701 
10702     nsresult (*GetInternalAndReservedAttribute5ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10703 
10704     nsresult (*GetInternalAndReservedAttribute6ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10705 
10706     nsresult (*GetInternalAndReservedAttribute7ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10707 
10708     nsresult (*GetInternalAndReservedAttribute8ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10709 
10710     nsresult (*GetInternalAndReservedAttribute9ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10711 
10712     nsresult (*GetInternalAndReservedAttribute10ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10713 
10714     nsresult (*GetInternalAndReservedAttribute11ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10715 
10716     nsresult (*GetInternalAndReservedAttribute12ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10717 
10718     nsresult (*GetInternalAndReservedAttribute13ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10719 
10720     nsresult (*GetInternalAndReservedAttribute14ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10721 
10722     nsresult (*GetInternalAndReservedAttribute15ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10723 
10724     nsresult (*GetInternalAndReservedAttribute16ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10725 
10726     nsresult (*GetMaxNetworkAdapters)(
10727         ISystemProperties *pThis,
10728         PRUint32 chipset,
10729         PRUint32 * maxNetworkAdapters
10730     );
10731 
10732     nsresult (*GetMaxNetworkAdaptersOfType)(
10733         ISystemProperties *pThis,
10734         PRUint32 chipset,
10735         PRUint32 type,
10736         PRUint32 * maxNetworkAdapters
10737     );
10738 
10739     nsresult (*GetMaxDevicesPerPortForStorageBus)(
10740         ISystemProperties *pThis,
10741         PRUint32 bus,
10742         PRUint32 * maxDevicesPerPort
10743     );
10744 
10745     nsresult (*GetMinPortCountForStorageBus)(
10746         ISystemProperties *pThis,
10747         PRUint32 bus,
10748         PRUint32 * minPortCount
10749     );
10750 
10751     nsresult (*GetMaxPortCountForStorageBus)(
10752         ISystemProperties *pThis,
10753         PRUint32 bus,
10754         PRUint32 * maxPortCount
10755     );
10756 
10757     nsresult (*GetMaxInstancesOfStorageBus)(
10758         ISystemProperties *pThis,
10759         PRUint32 chipset,
10760         PRUint32 bus,
10761         PRUint32 * maxInstances
10762     );
10763 
10764     nsresult (*GetDeviceTypesForStorageBus)(
10765         ISystemProperties *pThis,
10766         PRUint32 bus,
10767         PRUint32 *deviceTypesSize,
10768         PRUint32** deviceTypes
10769     );
10770 
10771     nsresult (*GetDefaultIoCacheSettingForStorageController)(
10772         ISystemProperties *pThis,
10773         PRUint32 controllerType,
10774         PRBool * enabled
10775     );
10776 
10777     nsresult (*GetStorageControllerHotplugCapable)(
10778         ISystemProperties *pThis,
10779         PRUint32 controllerType,
10780         PRBool * hotplugCapable
10781     );
10782 
10783     nsresult (*GetMaxInstancesOfUSBControllerType)(
10784         ISystemProperties *pThis,
10785         PRUint32 chipset,
10786         PRUint32 type,
10787         PRUint32 * maxInstances
10788     );
10789 
10790     nsresult (*InternalAndReservedMethod1ISystemProperties)(ISystemProperties *pThis);
10791 
10792     nsresult (*InternalAndReservedMethod2ISystemProperties)(ISystemProperties *pThis);
10793 
10794     nsresult (*InternalAndReservedMethod3ISystemProperties)(ISystemProperties *pThis);
10795 
10796     nsresult (*InternalAndReservedMethod4ISystemProperties)(ISystemProperties *pThis);
10797 
10798 };
10799 #    define ISystemProperties_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10800 #    define ISystemProperties_AddRef(p) ((p)->lpVtbl->AddRef(p))
10801 #    define ISystemProperties_Release(p) ((p)->lpVtbl->Release(p))
10802 #    define ISystemProperties_get_MinGuestRAM(p, aMinGuestRAM) ((p)->lpVtbl->GetMinGuestRAM(p, aMinGuestRAM))
10803 #    define ISystemProperties_GetMinGuestRAM(p, aMinGuestRAM) ((p)->lpVtbl->GetMinGuestRAM(p, aMinGuestRAM))
10804 #    define ISystemProperties_get_MaxGuestRAM(p, aMaxGuestRAM) ((p)->lpVtbl->GetMaxGuestRAM(p, aMaxGuestRAM))
10805 #    define ISystemProperties_GetMaxGuestRAM(p, aMaxGuestRAM) ((p)->lpVtbl->GetMaxGuestRAM(p, aMaxGuestRAM))
10806 #    define ISystemProperties_get_MinGuestVRAM(p, aMinGuestVRAM) ((p)->lpVtbl->GetMinGuestVRAM(p, aMinGuestVRAM))
10807 #    define ISystemProperties_GetMinGuestVRAM(p, aMinGuestVRAM) ((p)->lpVtbl->GetMinGuestVRAM(p, aMinGuestVRAM))
10808 #    define ISystemProperties_get_MaxGuestVRAM(p, aMaxGuestVRAM) ((p)->lpVtbl->GetMaxGuestVRAM(p, aMaxGuestVRAM))
10809 #    define ISystemProperties_GetMaxGuestVRAM(p, aMaxGuestVRAM) ((p)->lpVtbl->GetMaxGuestVRAM(p, aMaxGuestVRAM))
10810 #    define ISystemProperties_get_MinGuestCPUCount(p, aMinGuestCPUCount) ((p)->lpVtbl->GetMinGuestCPUCount(p, aMinGuestCPUCount))
10811 #    define ISystemProperties_GetMinGuestCPUCount(p, aMinGuestCPUCount) ((p)->lpVtbl->GetMinGuestCPUCount(p, aMinGuestCPUCount))
10812 #    define ISystemProperties_get_MaxGuestCPUCount(p, aMaxGuestCPUCount) ((p)->lpVtbl->GetMaxGuestCPUCount(p, aMaxGuestCPUCount))
10813 #    define ISystemProperties_GetMaxGuestCPUCount(p, aMaxGuestCPUCount) ((p)->lpVtbl->GetMaxGuestCPUCount(p, aMaxGuestCPUCount))
10814 #    define ISystemProperties_get_MaxGuestMonitors(p, aMaxGuestMonitors) ((p)->lpVtbl->GetMaxGuestMonitors(p, aMaxGuestMonitors))
10815 #    define ISystemProperties_GetMaxGuestMonitors(p, aMaxGuestMonitors) ((p)->lpVtbl->GetMaxGuestMonitors(p, aMaxGuestMonitors))
10816 #    define ISystemProperties_get_InfoVDSize(p, aInfoVDSize) ((p)->lpVtbl->GetInfoVDSize(p, aInfoVDSize))
10817 #    define ISystemProperties_GetInfoVDSize(p, aInfoVDSize) ((p)->lpVtbl->GetInfoVDSize(p, aInfoVDSize))
10818 #    define ISystemProperties_get_SerialPortCount(p, aSerialPortCount) ((p)->lpVtbl->GetSerialPortCount(p, aSerialPortCount))
10819 #    define ISystemProperties_GetSerialPortCount(p, aSerialPortCount) ((p)->lpVtbl->GetSerialPortCount(p, aSerialPortCount))
10820 #    define ISystemProperties_get_ParallelPortCount(p, aParallelPortCount) ((p)->lpVtbl->GetParallelPortCount(p, aParallelPortCount))
10821 #    define ISystemProperties_GetParallelPortCount(p, aParallelPortCount) ((p)->lpVtbl->GetParallelPortCount(p, aParallelPortCount))
10822 #    define ISystemProperties_get_MaxBootPosition(p, aMaxBootPosition) ((p)->lpVtbl->GetMaxBootPosition(p, aMaxBootPosition))
10823 #    define ISystemProperties_GetMaxBootPosition(p, aMaxBootPosition) ((p)->lpVtbl->GetMaxBootPosition(p, aMaxBootPosition))
10824 #    define ISystemProperties_get_RawModeSupported(p, aRawModeSupported) ((p)->lpVtbl->GetRawModeSupported(p, aRawModeSupported))
10825 #    define ISystemProperties_GetRawModeSupported(p, aRawModeSupported) ((p)->lpVtbl->GetRawModeSupported(p, aRawModeSupported))
10826 #    define ISystemProperties_get_ExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->GetExclusiveHwVirt(p, aExclusiveHwVirt))
10827 #    define ISystemProperties_GetExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->GetExclusiveHwVirt(p, aExclusiveHwVirt))
10828 #    define ISystemProperties_put_ExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->SetExclusiveHwVirt(p, aExclusiveHwVirt))
10829 #    define ISystemProperties_SetExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->SetExclusiveHwVirt(p, aExclusiveHwVirt))
10830 #    define ISystemProperties_get_DefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->GetDefaultMachineFolder(p, aDefaultMachineFolder))
10831 #    define ISystemProperties_GetDefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->GetDefaultMachineFolder(p, aDefaultMachineFolder))
10832 #    define ISystemProperties_put_DefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->SetDefaultMachineFolder(p, aDefaultMachineFolder))
10833 #    define ISystemProperties_SetDefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->SetDefaultMachineFolder(p, aDefaultMachineFolder))
10834 #    define ISystemProperties_get_LoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->GetLoggingLevel(p, aLoggingLevel))
10835 #    define ISystemProperties_GetLoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->GetLoggingLevel(p, aLoggingLevel))
10836 #    define ISystemProperties_put_LoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->SetLoggingLevel(p, aLoggingLevel))
10837 #    define ISystemProperties_SetLoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->SetLoggingLevel(p, aLoggingLevel))
10838 #    define ISystemProperties_get_MediumFormats(p, aMediumFormats) ((p)->lpVtbl->GetMediumFormats(p, aMediumFormats))
10839 #    define ISystemProperties_GetMediumFormats(p, aMediumFormats) ((p)->lpVtbl->GetMediumFormats(p, aMediumFormats))
10840 #    define ISystemProperties_get_DefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10841 #    define ISystemProperties_GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10842 #    define ISystemProperties_put_DefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10843 #    define ISystemProperties_SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10844 #    define ISystemProperties_get_FreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10845 #    define ISystemProperties_GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10846 #    define ISystemProperties_put_FreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10847 #    define ISystemProperties_SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10848 #    define ISystemProperties_get_FreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10849 #    define ISystemProperties_GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10850 #    define ISystemProperties_put_FreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10851 #    define ISystemProperties_SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10852 #    define ISystemProperties_get_FreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->GetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10853 #    define ISystemProperties_GetFreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->GetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10854 #    define ISystemProperties_put_FreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->SetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10855 #    define ISystemProperties_SetFreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->SetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10856 #    define ISystemProperties_get_FreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10857 #    define ISystemProperties_GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10858 #    define ISystemProperties_put_FreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10859 #    define ISystemProperties_SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10860 #    define ISystemProperties_get_VRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->GetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10861 #    define ISystemProperties_GetVRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->GetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10862 #    define ISystemProperties_put_VRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->SetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10863 #    define ISystemProperties_SetVRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->SetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10864 #    define ISystemProperties_get_WebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10865 #    define ISystemProperties_GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10866 #    define ISystemProperties_put_WebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10867 #    define ISystemProperties_SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10868 #    define ISystemProperties_get_DefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10869 #    define ISystemProperties_GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10870 #    define ISystemProperties_put_DefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10871 #    define ISystemProperties_SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10872 #    define ISystemProperties_get_LogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->GetLogHistoryCount(p, aLogHistoryCount))
10873 #    define ISystemProperties_GetLogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->GetLogHistoryCount(p, aLogHistoryCount))
10874 #    define ISystemProperties_put_LogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->SetLogHistoryCount(p, aLogHistoryCount))
10875 #    define ISystemProperties_SetLogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->SetLogHistoryCount(p, aLogHistoryCount))
10876 #    define ISystemProperties_get_DefaultAudioDriver(p, aDefaultAudioDriver) ((p)->lpVtbl->GetDefaultAudioDriver(p, aDefaultAudioDriver))
10877 #    define ISystemProperties_GetDefaultAudioDriver(p, aDefaultAudioDriver) ((p)->lpVtbl->GetDefaultAudioDriver(p, aDefaultAudioDriver))
10878 #    define ISystemProperties_get_AutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->GetAutostartDatabasePath(p, aAutostartDatabasePath))
10879 #    define ISystemProperties_GetAutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->GetAutostartDatabasePath(p, aAutostartDatabasePath))
10880 #    define ISystemProperties_put_AutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->SetAutostartDatabasePath(p, aAutostartDatabasePath))
10881 #    define ISystemProperties_SetAutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->SetAutostartDatabasePath(p, aAutostartDatabasePath))
10882 #    define ISystemProperties_get_DefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->GetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10883 #    define ISystemProperties_GetDefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->GetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10884 #    define ISystemProperties_put_DefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->SetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10885 #    define ISystemProperties_SetDefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->SetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10886 #    define ISystemProperties_get_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
10887 #    define ISystemProperties_GetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
10888 #    define ISystemProperties_put_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
10889 #    define ISystemProperties_SetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
10890 #    define ISystemProperties_get_ScreenShotFormats(p, aScreenShotFormats) ((p)->lpVtbl->GetScreenShotFormats(p, aScreenShotFormats))
10891 #    define ISystemProperties_GetScreenShotFormats(p, aScreenShotFormats) ((p)->lpVtbl->GetScreenShotFormats(p, aScreenShotFormats))
10892 #    define ISystemProperties_get_ProxyMode(p, aProxyMode) ((p)->lpVtbl->GetProxyMode(p, aProxyMode))
10893 #    define ISystemProperties_GetProxyMode(p, aProxyMode) ((p)->lpVtbl->GetProxyMode(p, aProxyMode))
10894 #    define ISystemProperties_put_ProxyMode(p, aProxyMode) ((p)->lpVtbl->SetProxyMode(p, aProxyMode))
10895 #    define ISystemProperties_SetProxyMode(p, aProxyMode) ((p)->lpVtbl->SetProxyMode(p, aProxyMode))
10896 #    define ISystemProperties_get_ProxyURL(p, aProxyURL) ((p)->lpVtbl->GetProxyURL(p, aProxyURL))
10897 #    define ISystemProperties_GetProxyURL(p, aProxyURL) ((p)->lpVtbl->GetProxyURL(p, aProxyURL))
10898 #    define ISystemProperties_put_ProxyURL(p, aProxyURL) ((p)->lpVtbl->SetProxyURL(p, aProxyURL))
10899 #    define ISystemProperties_SetProxyURL(p, aProxyURL) ((p)->lpVtbl->SetProxyURL(p, aProxyURL))
10900 #    define ISystemProperties_GetMaxNetworkAdapters(p, aChipset, aMaxNetworkAdapters) ((p)->lpVtbl->GetMaxNetworkAdapters(p, aChipset, aMaxNetworkAdapters))
10901 #    define ISystemProperties_GetMaxNetworkAdaptersOfType(p, aChipset, aType, aMaxNetworkAdapters) ((p)->lpVtbl->GetMaxNetworkAdaptersOfType(p, aChipset, aType, aMaxNetworkAdapters))
10902 #    define ISystemProperties_GetMaxDevicesPerPortForStorageBus(p, aBus, aMaxDevicesPerPort) ((p)->lpVtbl->GetMaxDevicesPerPortForStorageBus(p, aBus, aMaxDevicesPerPort))
10903 #    define ISystemProperties_GetMinPortCountForStorageBus(p, aBus, aMinPortCount) ((p)->lpVtbl->GetMinPortCountForStorageBus(p, aBus, aMinPortCount))
10904 #    define ISystemProperties_GetMaxPortCountForStorageBus(p, aBus, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCountForStorageBus(p, aBus, aMaxPortCount))
10905 #    define ISystemProperties_GetMaxInstancesOfStorageBus(p, aChipset, aBus, aMaxInstances) ((p)->lpVtbl->GetMaxInstancesOfStorageBus(p, aChipset, aBus, aMaxInstances))
10906 #    define ISystemProperties_GetDeviceTypesForStorageBus(p, aBus, aDeviceTypes) ((p)->lpVtbl->GetDeviceTypesForStorageBus(p, aBus, aDeviceTypes))
10907 #    define ISystemProperties_GetDefaultIoCacheSettingForStorageController(p, aControllerType, aEnabled) ((p)->lpVtbl->GetDefaultIoCacheSettingForStorageController(p, aControllerType, aEnabled))
10908 #    define ISystemProperties_GetStorageControllerHotplugCapable(p, aControllerType, aHotplugCapable) ((p)->lpVtbl->GetStorageControllerHotplugCapable(p, aControllerType, aHotplugCapable))
10909 #    define ISystemProperties_GetMaxInstancesOfUSBControllerType(p, aChipset, aType, aMaxInstances) ((p)->lpVtbl->GetMaxInstancesOfUSBControllerType(p, aChipset, aType, aMaxInstances))
10910 #   endif /* VBOX_WITH_GLUE */
10911 
10912 interface ISystemProperties
10913 {
10914 #   ifndef VBOX_WITH_GLUE
10915     struct ISystemProperties_vtbl *vtbl;
10916 #   else /* VBOX_WITH_GLUE */
10917     CONST_VTBL struct ISystemPropertiesVtbl *lpVtbl;
10918 #   endif /* VBOX_WITH_GLUE */
10919 };
10920 /* End of struct ISystemProperties declaration */
10921 
10922 
10923 /* Start of struct IGuestOSType declaration */
10924 #   define IGUESTOSTYPE_IID_STR "d0d6c6d8-e5db-4d2c-baaa-c71053a6236d"
10925 #   define IGUESTOSTYPE_IID { \
10926     0xd0d6c6d8, 0xe5db, 0x4d2c, \
10927     { 0xba, 0xaa, 0xc7, 0x10, 0x53, 0xa6, 0x23, 0x6d } \
10928 }
10929 /* COM compatibility */
10930 VBOX_EXTERN_CONST(nsIID, IID_IGuestOSType);
10931 #   ifndef VBOX_WITH_GLUE
10932 struct IGuestOSType_vtbl
10933 {
10934     struct nsISupports_vtbl nsisupports;
10935 
10936     nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
10937 
10938     nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
10939 
10940     nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
10941 
10942     nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
10943 
10944     nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
10945 
10946     nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
10947 
10948     nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
10949 
10950     nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
10951 
10952     nsresult (*GetRecommendedGraphicsController)(IGuestOSType *pThis, PRUint32 *recommendedGraphicsController);
10953 
10954     nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
10955 
10956     nsresult (*GetRecommended2DVideoAcceleration)(IGuestOSType *pThis, PRBool *recommended2DVideoAcceleration);
10957 
10958     nsresult (*GetRecommended3DAcceleration)(IGuestOSType *pThis, PRBool *recommended3DAcceleration);
10959 
10960     nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRInt64 *recommendedHDD);
10961 
10962     nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
10963 
10964     nsresult (*GetRecommendedPAE)(IGuestOSType *pThis, PRBool *recommendedPAE);
10965 
10966     nsresult (*GetRecommendedDVDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageController);
10967 
10968     nsresult (*GetRecommendedDVDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageBus);
10969 
10970     nsresult (*GetRecommendedHDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageController);
10971 
10972     nsresult (*GetRecommendedHDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageBus);
10973 
10974     nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
10975 
10976     nsresult (*GetRecommendedUSBHID)(IGuestOSType *pThis, PRBool *recommendedUSBHID);
10977 
10978     nsresult (*GetRecommendedHPET)(IGuestOSType *pThis, PRBool *recommendedHPET);
10979 
10980     nsresult (*GetRecommendedUSBTablet)(IGuestOSType *pThis, PRBool *recommendedUSBTablet);
10981 
10982     nsresult (*GetRecommendedRTCUseUTC)(IGuestOSType *pThis, PRBool *recommendedRTCUseUTC);
10983 
10984     nsresult (*GetRecommendedChipset)(IGuestOSType *pThis, PRUint32 *recommendedChipset);
10985 
10986     nsresult (*GetRecommendedAudioController)(IGuestOSType *pThis, PRUint32 *recommendedAudioController);
10987 
10988     nsresult (*GetRecommendedAudioCodec)(IGuestOSType *pThis, PRUint32 *recommendedAudioCodec);
10989 
10990     nsresult (*GetRecommendedFloppy)(IGuestOSType *pThis, PRBool *recommendedFloppy);
10991 
10992     nsresult (*GetRecommendedUSB)(IGuestOSType *pThis, PRBool *recommendedUSB);
10993 
10994     nsresult (*GetRecommendedUSB3)(IGuestOSType *pThis, PRBool *recommendedUSB3);
10995 
10996     nsresult (*GetRecommendedTFReset)(IGuestOSType *pThis, PRBool *recommendedTFReset);
10997 
10998     nsresult (*GetRecommendedX2APIC)(IGuestOSType *pThis, PRBool *recommendedX2APIC);
10999 
11000     nsresult (*GetInternalAndReservedAttribute1IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11001 
11002     nsresult (*GetInternalAndReservedAttribute2IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11003 
11004     nsresult (*GetInternalAndReservedAttribute3IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11005 
11006     nsresult (*GetInternalAndReservedAttribute4IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11007 
11008     nsresult (*GetInternalAndReservedAttribute5IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11009 
11010     nsresult (*GetInternalAndReservedAttribute6IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11011 
11012     nsresult (*GetInternalAndReservedAttribute7IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11013 
11014     nsresult (*GetInternalAndReservedAttribute8IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11015 
11016     nsresult (*GetInternalAndReservedAttribute9IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11017 
11018     nsresult (*GetInternalAndReservedAttribute10IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11019 
11020     nsresult (*GetInternalAndReservedAttribute11IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11021 
11022     nsresult (*GetInternalAndReservedAttribute12IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11023 
11024     nsresult (*GetInternalAndReservedAttribute13IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11025 
11026     nsresult (*GetInternalAndReservedAttribute14IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11027 
11028     nsresult (*GetInternalAndReservedAttribute15IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11029 
11030     nsresult (*GetInternalAndReservedAttribute16IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11031 
11032 };
11033 #   else /* VBOX_WITH_GLUE */
11034 struct IGuestOSTypeVtbl
11035 {
11036     nsresult (*QueryInterface)(IGuestOSType *pThis, const nsID *iid, void **resultp);
11037     nsrefcnt (*AddRef)(IGuestOSType *pThis);
11038     nsrefcnt (*Release)(IGuestOSType *pThis);
11039     nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
11040 
11041     nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
11042 
11043     nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
11044 
11045     nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
11046 
11047     nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
11048 
11049     nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
11050 
11051     nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
11052 
11053     nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
11054 
11055     nsresult (*GetRecommendedGraphicsController)(IGuestOSType *pThis, PRUint32 *recommendedGraphicsController);
11056 
11057     nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
11058 
11059     nsresult (*GetRecommended2DVideoAcceleration)(IGuestOSType *pThis, PRBool *recommended2DVideoAcceleration);
11060 
11061     nsresult (*GetRecommended3DAcceleration)(IGuestOSType *pThis, PRBool *recommended3DAcceleration);
11062 
11063     nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRInt64 *recommendedHDD);
11064 
11065     nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
11066 
11067     nsresult (*GetRecommendedPAE)(IGuestOSType *pThis, PRBool *recommendedPAE);
11068 
11069     nsresult (*GetRecommendedDVDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageController);
11070 
11071     nsresult (*GetRecommendedDVDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageBus);
11072 
11073     nsresult (*GetRecommendedHDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageController);
11074 
11075     nsresult (*GetRecommendedHDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageBus);
11076 
11077     nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
11078 
11079     nsresult (*GetRecommendedUSBHID)(IGuestOSType *pThis, PRBool *recommendedUSBHID);
11080 
11081     nsresult (*GetRecommendedHPET)(IGuestOSType *pThis, PRBool *recommendedHPET);
11082 
11083     nsresult (*GetRecommendedUSBTablet)(IGuestOSType *pThis, PRBool *recommendedUSBTablet);
11084 
11085     nsresult (*GetRecommendedRTCUseUTC)(IGuestOSType *pThis, PRBool *recommendedRTCUseUTC);
11086 
11087     nsresult (*GetRecommendedChipset)(IGuestOSType *pThis, PRUint32 *recommendedChipset);
11088 
11089     nsresult (*GetRecommendedAudioController)(IGuestOSType *pThis, PRUint32 *recommendedAudioController);
11090 
11091     nsresult (*GetRecommendedAudioCodec)(IGuestOSType *pThis, PRUint32 *recommendedAudioCodec);
11092 
11093     nsresult (*GetRecommendedFloppy)(IGuestOSType *pThis, PRBool *recommendedFloppy);
11094 
11095     nsresult (*GetRecommendedUSB)(IGuestOSType *pThis, PRBool *recommendedUSB);
11096 
11097     nsresult (*GetRecommendedUSB3)(IGuestOSType *pThis, PRBool *recommendedUSB3);
11098 
11099     nsresult (*GetRecommendedTFReset)(IGuestOSType *pThis, PRBool *recommendedTFReset);
11100 
11101     nsresult (*GetRecommendedX2APIC)(IGuestOSType *pThis, PRBool *recommendedX2APIC);
11102 
11103     nsresult (*GetInternalAndReservedAttribute1IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11104 
11105     nsresult (*GetInternalAndReservedAttribute2IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11106 
11107     nsresult (*GetInternalAndReservedAttribute3IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11108 
11109     nsresult (*GetInternalAndReservedAttribute4IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11110 
11111     nsresult (*GetInternalAndReservedAttribute5IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11112 
11113     nsresult (*GetInternalAndReservedAttribute6IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11114 
11115     nsresult (*GetInternalAndReservedAttribute7IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11116 
11117     nsresult (*GetInternalAndReservedAttribute8IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11118 
11119     nsresult (*GetInternalAndReservedAttribute9IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11120 
11121     nsresult (*GetInternalAndReservedAttribute10IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11122 
11123     nsresult (*GetInternalAndReservedAttribute11IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11124 
11125     nsresult (*GetInternalAndReservedAttribute12IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11126 
11127     nsresult (*GetInternalAndReservedAttribute13IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11128 
11129     nsresult (*GetInternalAndReservedAttribute14IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11130 
11131     nsresult (*GetInternalAndReservedAttribute15IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11132 
11133     nsresult (*GetInternalAndReservedAttribute16IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
11134 
11135 };
11136 #    define IGuestOSType_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11137 #    define IGuestOSType_AddRef(p) ((p)->lpVtbl->AddRef(p))
11138 #    define IGuestOSType_Release(p) ((p)->lpVtbl->Release(p))
11139 #    define IGuestOSType_get_FamilyId(p, aFamilyId) ((p)->lpVtbl->GetFamilyId(p, aFamilyId))
11140 #    define IGuestOSType_GetFamilyId(p, aFamilyId) ((p)->lpVtbl->GetFamilyId(p, aFamilyId))
11141 #    define IGuestOSType_get_FamilyDescription(p, aFamilyDescription) ((p)->lpVtbl->GetFamilyDescription(p, aFamilyDescription))
11142 #    define IGuestOSType_GetFamilyDescription(p, aFamilyDescription) ((p)->lpVtbl->GetFamilyDescription(p, aFamilyDescription))
11143 #    define IGuestOSType_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
11144 #    define IGuestOSType_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
11145 #    define IGuestOSType_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
11146 #    define IGuestOSType_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
11147 #    define IGuestOSType_get_Is64Bit(p, aIs64Bit) ((p)->lpVtbl->GetIs64Bit(p, aIs64Bit))
11148 #    define IGuestOSType_GetIs64Bit(p, aIs64Bit) ((p)->lpVtbl->GetIs64Bit(p, aIs64Bit))
11149 #    define IGuestOSType_get_RecommendedIOAPIC(p, aRecommendedIOAPIC) ((p)->lpVtbl->GetRecommendedIOAPIC(p, aRecommendedIOAPIC))
11150 #    define IGuestOSType_GetRecommendedIOAPIC(p, aRecommendedIOAPIC) ((p)->lpVtbl->GetRecommendedIOAPIC(p, aRecommendedIOAPIC))
11151 #    define IGuestOSType_get_RecommendedVirtEx(p, aRecommendedVirtEx) ((p)->lpVtbl->GetRecommendedVirtEx(p, aRecommendedVirtEx))
11152 #    define IGuestOSType_GetRecommendedVirtEx(p, aRecommendedVirtEx) ((p)->lpVtbl->GetRecommendedVirtEx(p, aRecommendedVirtEx))
11153 #    define IGuestOSType_get_RecommendedRAM(p, aRecommendedRAM) ((p)->lpVtbl->GetRecommendedRAM(p, aRecommendedRAM))
11154 #    define IGuestOSType_GetRecommendedRAM(p, aRecommendedRAM) ((p)->lpVtbl->GetRecommendedRAM(p, aRecommendedRAM))
11155 #    define IGuestOSType_get_RecommendedGraphicsController(p, aRecommendedGraphicsController) ((p)->lpVtbl->GetRecommendedGraphicsController(p, aRecommendedGraphicsController))
11156 #    define IGuestOSType_GetRecommendedGraphicsController(p, aRecommendedGraphicsController) ((p)->lpVtbl->GetRecommendedGraphicsController(p, aRecommendedGraphicsController))
11157 #    define IGuestOSType_get_RecommendedVRAM(p, aRecommendedVRAM) ((p)->lpVtbl->GetRecommendedVRAM(p, aRecommendedVRAM))
11158 #    define IGuestOSType_GetRecommendedVRAM(p, aRecommendedVRAM) ((p)->lpVtbl->GetRecommendedVRAM(p, aRecommendedVRAM))
11159 #    define IGuestOSType_get_Recommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration) ((p)->lpVtbl->GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration))
11160 #    define IGuestOSType_GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration) ((p)->lpVtbl->GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration))
11161 #    define IGuestOSType_get_Recommended3DAcceleration(p, aRecommended3DAcceleration) ((p)->lpVtbl->GetRecommended3DAcceleration(p, aRecommended3DAcceleration))
11162 #    define IGuestOSType_GetRecommended3DAcceleration(p, aRecommended3DAcceleration) ((p)->lpVtbl->GetRecommended3DAcceleration(p, aRecommended3DAcceleration))
11163 #    define IGuestOSType_get_RecommendedHDD(p, aRecommendedHDD) ((p)->lpVtbl->GetRecommendedHDD(p, aRecommendedHDD))
11164 #    define IGuestOSType_GetRecommendedHDD(p, aRecommendedHDD) ((p)->lpVtbl->GetRecommendedHDD(p, aRecommendedHDD))
11165 #    define IGuestOSType_get_AdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
11166 #    define IGuestOSType_GetAdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
11167 #    define IGuestOSType_get_RecommendedPAE(p, aRecommendedPAE) ((p)->lpVtbl->GetRecommendedPAE(p, aRecommendedPAE))
11168 #    define IGuestOSType_GetRecommendedPAE(p, aRecommendedPAE) ((p)->lpVtbl->GetRecommendedPAE(p, aRecommendedPAE))
11169 #    define IGuestOSType_get_RecommendedDVDStorageController(p, aRecommendedDVDStorageController) ((p)->lpVtbl->GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController))
11170 #    define IGuestOSType_GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController) ((p)->lpVtbl->GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController))
11171 #    define IGuestOSType_get_RecommendedDVDStorageBus(p, aRecommendedDVDStorageBus) ((p)->lpVtbl->GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus))
11172 #    define IGuestOSType_GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus) ((p)->lpVtbl->GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus))
11173 #    define IGuestOSType_get_RecommendedHDStorageController(p, aRecommendedHDStorageController) ((p)->lpVtbl->GetRecommendedHDStorageController(p, aRecommendedHDStorageController))
11174 #    define IGuestOSType_GetRecommendedHDStorageController(p, aRecommendedHDStorageController) ((p)->lpVtbl->GetRecommendedHDStorageController(p, aRecommendedHDStorageController))
11175 #    define IGuestOSType_get_RecommendedHDStorageBus(p, aRecommendedHDStorageBus) ((p)->lpVtbl->GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus))
11176 #    define IGuestOSType_GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus) ((p)->lpVtbl->GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus))
11177 #    define IGuestOSType_get_RecommendedFirmware(p, aRecommendedFirmware) ((p)->lpVtbl->GetRecommendedFirmware(p, aRecommendedFirmware))
11178 #    define IGuestOSType_GetRecommendedFirmware(p, aRecommendedFirmware) ((p)->lpVtbl->GetRecommendedFirmware(p, aRecommendedFirmware))
11179 #    define IGuestOSType_get_RecommendedUSBHID(p, aRecommendedUSBHID) ((p)->lpVtbl->GetRecommendedUSBHID(p, aRecommendedUSBHID))
11180 #    define IGuestOSType_GetRecommendedUSBHID(p, aRecommendedUSBHID) ((p)->lpVtbl->GetRecommendedUSBHID(p, aRecommendedUSBHID))
11181 #    define IGuestOSType_get_RecommendedHPET(p, aRecommendedHPET) ((p)->lpVtbl->GetRecommendedHPET(p, aRecommendedHPET))
11182 #    define IGuestOSType_GetRecommendedHPET(p, aRecommendedHPET) ((p)->lpVtbl->GetRecommendedHPET(p, aRecommendedHPET))
11183 #    define IGuestOSType_get_RecommendedUSBTablet(p, aRecommendedUSBTablet) ((p)->lpVtbl->GetRecommendedUSBTablet(p, aRecommendedUSBTablet))
11184 #    define IGuestOSType_GetRecommendedUSBTablet(p, aRecommendedUSBTablet) ((p)->lpVtbl->GetRecommendedUSBTablet(p, aRecommendedUSBTablet))
11185 #    define IGuestOSType_get_RecommendedRTCUseUTC(p, aRecommendedRTCUseUTC) ((p)->lpVtbl->GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC))
11186 #    define IGuestOSType_GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC) ((p)->lpVtbl->GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC))
11187 #    define IGuestOSType_get_RecommendedChipset(p, aRecommendedChipset) ((p)->lpVtbl->GetRecommendedChipset(p, aRecommendedChipset))
11188 #    define IGuestOSType_GetRecommendedChipset(p, aRecommendedChipset) ((p)->lpVtbl->GetRecommendedChipset(p, aRecommendedChipset))
11189 #    define IGuestOSType_get_RecommendedAudioController(p, aRecommendedAudioController) ((p)->lpVtbl->GetRecommendedAudioController(p, aRecommendedAudioController))
11190 #    define IGuestOSType_GetRecommendedAudioController(p, aRecommendedAudioController) ((p)->lpVtbl->GetRecommendedAudioController(p, aRecommendedAudioController))
11191 #    define IGuestOSType_get_RecommendedAudioCodec(p, aRecommendedAudioCodec) ((p)->lpVtbl->GetRecommendedAudioCodec(p, aRecommendedAudioCodec))
11192 #    define IGuestOSType_GetRecommendedAudioCodec(p, aRecommendedAudioCodec) ((p)->lpVtbl->GetRecommendedAudioCodec(p, aRecommendedAudioCodec))
11193 #    define IGuestOSType_get_RecommendedFloppy(p, aRecommendedFloppy) ((p)->lpVtbl->GetRecommendedFloppy(p, aRecommendedFloppy))
11194 #    define IGuestOSType_GetRecommendedFloppy(p, aRecommendedFloppy) ((p)->lpVtbl->GetRecommendedFloppy(p, aRecommendedFloppy))
11195 #    define IGuestOSType_get_RecommendedUSB(p, aRecommendedUSB) ((p)->lpVtbl->GetRecommendedUSB(p, aRecommendedUSB))
11196 #    define IGuestOSType_GetRecommendedUSB(p, aRecommendedUSB) ((p)->lpVtbl->GetRecommendedUSB(p, aRecommendedUSB))
11197 #    define IGuestOSType_get_RecommendedUSB3(p, aRecommendedUSB3) ((p)->lpVtbl->GetRecommendedUSB3(p, aRecommendedUSB3))
11198 #    define IGuestOSType_GetRecommendedUSB3(p, aRecommendedUSB3) ((p)->lpVtbl->GetRecommendedUSB3(p, aRecommendedUSB3))
11199 #    define IGuestOSType_get_RecommendedTFReset(p, aRecommendedTFReset) ((p)->lpVtbl->GetRecommendedTFReset(p, aRecommendedTFReset))
11200 #    define IGuestOSType_GetRecommendedTFReset(p, aRecommendedTFReset) ((p)->lpVtbl->GetRecommendedTFReset(p, aRecommendedTFReset))
11201 #    define IGuestOSType_get_RecommendedX2APIC(p, aRecommendedX2APIC) ((p)->lpVtbl->GetRecommendedX2APIC(p, aRecommendedX2APIC))
11202 #    define IGuestOSType_GetRecommendedX2APIC(p, aRecommendedX2APIC) ((p)->lpVtbl->GetRecommendedX2APIC(p, aRecommendedX2APIC))
11203 #   endif /* VBOX_WITH_GLUE */
11204 
11205 interface IGuestOSType
11206 {
11207 #   ifndef VBOX_WITH_GLUE
11208     struct IGuestOSType_vtbl *vtbl;
11209 #   else /* VBOX_WITH_GLUE */
11210     CONST_VTBL struct IGuestOSTypeVtbl *lpVtbl;
11211 #   endif /* VBOX_WITH_GLUE */
11212 };
11213 /* End of struct IGuestOSType declaration */
11214 
11215 
11216 /* Start of struct IAdditionsFacility declaration */
11217 #   define IADDITIONSFACILITY_IID_STR "f2f7fae4-4a06-81fc-a916-78b2da1fa0e5"
11218 #   define IADDITIONSFACILITY_IID { \
11219     0xf2f7fae4, 0x4a06, 0x81fc, \
11220     { 0xa9, 0x16, 0x78, 0xb2, 0xda, 0x1f, 0xa0, 0xe5 } \
11221 }
11222 /* COM compatibility */
11223 VBOX_EXTERN_CONST(nsIID, IID_IAdditionsFacility);
11224 #   ifndef VBOX_WITH_GLUE
11225 struct IAdditionsFacility_vtbl
11226 {
11227     struct nsISupports_vtbl nsisupports;
11228 
11229     nsresult (*GetClassType)(IAdditionsFacility *pThis, PRUint32 *classType);
11230 
11231     nsresult (*GetLastUpdated)(IAdditionsFacility *pThis, PRInt64 *lastUpdated);
11232 
11233     nsresult (*GetName)(IAdditionsFacility *pThis, PRUnichar * *name);
11234 
11235     nsresult (*GetStatus)(IAdditionsFacility *pThis, PRUint32 *status);
11236 
11237     nsresult (*GetType)(IAdditionsFacility *pThis, PRUint32 *type);
11238 
11239     nsresult (*GetInternalAndReservedAttribute1IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
11240 
11241     nsresult (*GetInternalAndReservedAttribute2IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
11242 
11243 };
11244 #   else /* VBOX_WITH_GLUE */
11245 struct IAdditionsFacilityVtbl
11246 {
11247     nsresult (*QueryInterface)(IAdditionsFacility *pThis, const nsID *iid, void **resultp);
11248     nsrefcnt (*AddRef)(IAdditionsFacility *pThis);
11249     nsrefcnt (*Release)(IAdditionsFacility *pThis);
11250     nsresult (*GetClassType)(IAdditionsFacility *pThis, PRUint32 *classType);
11251 
11252     nsresult (*GetLastUpdated)(IAdditionsFacility *pThis, PRInt64 *lastUpdated);
11253 
11254     nsresult (*GetName)(IAdditionsFacility *pThis, PRUnichar * *name);
11255 
11256     nsresult (*GetStatus)(IAdditionsFacility *pThis, PRUint32 *status);
11257 
11258     nsresult (*GetType)(IAdditionsFacility *pThis, PRUint32 *type);
11259 
11260     nsresult (*GetInternalAndReservedAttribute1IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
11261 
11262     nsresult (*GetInternalAndReservedAttribute2IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
11263 
11264 };
11265 #    define IAdditionsFacility_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11266 #    define IAdditionsFacility_AddRef(p) ((p)->lpVtbl->AddRef(p))
11267 #    define IAdditionsFacility_Release(p) ((p)->lpVtbl->Release(p))
11268 #    define IAdditionsFacility_get_ClassType(p, aClassType) ((p)->lpVtbl->GetClassType(p, aClassType))
11269 #    define IAdditionsFacility_GetClassType(p, aClassType) ((p)->lpVtbl->GetClassType(p, aClassType))
11270 #    define IAdditionsFacility_get_LastUpdated(p, aLastUpdated) ((p)->lpVtbl->GetLastUpdated(p, aLastUpdated))
11271 #    define IAdditionsFacility_GetLastUpdated(p, aLastUpdated) ((p)->lpVtbl->GetLastUpdated(p, aLastUpdated))
11272 #    define IAdditionsFacility_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
11273 #    define IAdditionsFacility_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
11274 #    define IAdditionsFacility_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
11275 #    define IAdditionsFacility_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
11276 #    define IAdditionsFacility_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
11277 #    define IAdditionsFacility_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
11278 #   endif /* VBOX_WITH_GLUE */
11279 
11280 interface IAdditionsFacility
11281 {
11282 #   ifndef VBOX_WITH_GLUE
11283     struct IAdditionsFacility_vtbl *vtbl;
11284 #   else /* VBOX_WITH_GLUE */
11285     CONST_VTBL struct IAdditionsFacilityVtbl *lpVtbl;
11286 #   endif /* VBOX_WITH_GLUE */
11287 };
11288 /* End of struct IAdditionsFacility declaration */
11289 
11290 
11291 /* Start of struct IDnDBase declaration */
11292 #   define IDNDBASE_IID_STR "4132147b-42f8-cd96-7570-6a8800e3342c"
11293 #   define IDNDBASE_IID { \
11294     0x4132147b, 0x42f8, 0xcd96, \
11295     { 0x75, 0x70, 0x6a, 0x88, 0x00, 0xe3, 0x34, 0x2c } \
11296 }
11297 /* COM compatibility */
11298 VBOX_EXTERN_CONST(nsIID, IID_IDnDBase);
11299 #   ifndef VBOX_WITH_GLUE
11300 struct IDnDBase_vtbl
11301 {
11302     struct nsISupports_vtbl nsisupports;
11303 
11304     nsresult (*GetFormats)(IDnDBase *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11305 
11306     nsresult (*GetProtocolVersion)(IDnDBase *pThis, PRUint32 *protocolVersion);
11307 
11308     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
11309 
11310     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
11311 
11312     nsresult (*IsFormatSupported)(
11313         IDnDBase *pThis,
11314         PRUnichar * format,
11315         PRBool * supported
11316     );
11317 
11318     nsresult (*AddFormats)(
11319         IDnDBase *pThis,
11320         PRUint32 formatsSize,
11321         PRUnichar ** formats
11322     );
11323 
11324     nsresult (*RemoveFormats)(
11325         IDnDBase *pThis,
11326         PRUint32 formatsSize,
11327         PRUnichar ** formats
11328     );
11329 
11330     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDBase *pThis);
11331 
11332 };
11333 #   else /* VBOX_WITH_GLUE */
11334 struct IDnDBaseVtbl
11335 {
11336     nsresult (*QueryInterface)(IDnDBase *pThis, const nsID *iid, void **resultp);
11337     nsrefcnt (*AddRef)(IDnDBase *pThis);
11338     nsrefcnt (*Release)(IDnDBase *pThis);
11339     nsresult (*GetFormats)(IDnDBase *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11340 
11341     nsresult (*GetProtocolVersion)(IDnDBase *pThis, PRUint32 *protocolVersion);
11342 
11343     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
11344 
11345     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
11346 
11347     nsresult (*IsFormatSupported)(
11348         IDnDBase *pThis,
11349         PRUnichar * format,
11350         PRBool * supported
11351     );
11352 
11353     nsresult (*AddFormats)(
11354         IDnDBase *pThis,
11355         PRUint32 formatsSize,
11356         PRUnichar ** formats
11357     );
11358 
11359     nsresult (*RemoveFormats)(
11360         IDnDBase *pThis,
11361         PRUint32 formatsSize,
11362         PRUnichar ** formats
11363     );
11364 
11365     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDBase *pThis);
11366 
11367 };
11368 #    define IDnDBase_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11369 #    define IDnDBase_AddRef(p) ((p)->lpVtbl->AddRef(p))
11370 #    define IDnDBase_Release(p) ((p)->lpVtbl->Release(p))
11371 #    define IDnDBase_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11372 #    define IDnDBase_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11373 #    define IDnDBase_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11374 #    define IDnDBase_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11375 #    define IDnDBase_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11376 #    define IDnDBase_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11377 #    define IDnDBase_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11378 #   endif /* VBOX_WITH_GLUE */
11379 
11380 interface IDnDBase
11381 {
11382 #   ifndef VBOX_WITH_GLUE
11383     struct IDnDBase_vtbl *vtbl;
11384 #   else /* VBOX_WITH_GLUE */
11385     CONST_VTBL struct IDnDBaseVtbl *lpVtbl;
11386 #   endif /* VBOX_WITH_GLUE */
11387 };
11388 /* End of struct IDnDBase declaration */
11389 
11390 
11391 /* Start of struct IDnDSource declaration */
11392 #   define IDNDSOURCE_IID_STR "d23a9ca3-42da-c94b-8aec-21968e08355d"
11393 #   define IDNDSOURCE_IID { \
11394     0xd23a9ca3, 0x42da, 0xc94b, \
11395     { 0x8a, 0xec, 0x21, 0x96, 0x8e, 0x08, 0x35, 0x5d } \
11396 }
11397 /* COM compatibility */
11398 VBOX_EXTERN_CONST(nsIID, IID_IDnDSource);
11399 #   ifndef VBOX_WITH_GLUE
11400 struct IDnDSource_vtbl
11401 {
11402     struct IDnDBase_vtbl idndbase;
11403 
11404     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
11405 
11406     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
11407 
11408     nsresult (*DragIsPending)(
11409         IDnDSource *pThis,
11410         PRUint32 screenId,
11411         PRUint32 *formatsSize,
11412         PRUnichar *** formats,
11413         PRUint32 *allowedActionsSize,
11414         PRUint32** allowedActions,
11415         PRUint32 * defaultAction
11416     );
11417 
11418     nsresult (*Drop)(
11419         IDnDSource *pThis,
11420         PRUnichar * format,
11421         PRUint32 action,
11422         IProgress * * progress
11423     );
11424 
11425     nsresult (*ReceiveData)(
11426         IDnDSource *pThis,
11427         PRUint32 *dataSize,
11428         PRUint8** data
11429     );
11430 
11431     nsresult (*InternalAndReservedMethod1IDnDSource)(IDnDSource *pThis);
11432 
11433 };
11434 #   else /* VBOX_WITH_GLUE */
11435 struct IDnDSourceVtbl
11436 {
11437     nsresult (*QueryInterface)(IDnDSource *pThis, const nsID *iid, void **resultp);
11438     nsrefcnt (*AddRef)(IDnDSource *pThis);
11439     nsrefcnt (*Release)(IDnDSource *pThis);
11440     nsresult (*GetFormats)(IDnDSource *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11441 
11442     nsresult (*GetProtocolVersion)(IDnDSource *pThis, PRUint32 *protocolVersion);
11443 
11444     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDSource *pThis, PRUint32 *reserved);
11445 
11446     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDSource *pThis, PRUint32 *reserved);
11447 
11448     nsresult (*IsFormatSupported)(
11449         IDnDSource *pThis,
11450         PRUnichar * format,
11451         PRBool * supported
11452     );
11453 
11454     nsresult (*AddFormats)(
11455         IDnDSource *pThis,
11456         PRUint32 formatsSize,
11457         PRUnichar ** formats
11458     );
11459 
11460     nsresult (*RemoveFormats)(
11461         IDnDSource *pThis,
11462         PRUint32 formatsSize,
11463         PRUnichar ** formats
11464     );
11465 
11466     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDSource *pThis);
11467 
11468     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
11469 
11470     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
11471 
11472     nsresult (*DragIsPending)(
11473         IDnDSource *pThis,
11474         PRUint32 screenId,
11475         PRUint32 *formatsSize,
11476         PRUnichar *** formats,
11477         PRUint32 *allowedActionsSize,
11478         PRUint32** allowedActions,
11479         PRUint32 * defaultAction
11480     );
11481 
11482     nsresult (*Drop)(
11483         IDnDSource *pThis,
11484         PRUnichar * format,
11485         PRUint32 action,
11486         IProgress * * progress
11487     );
11488 
11489     nsresult (*ReceiveData)(
11490         IDnDSource *pThis,
11491         PRUint32 *dataSize,
11492         PRUint8** data
11493     );
11494 
11495     nsresult (*InternalAndReservedMethod1IDnDSource)(IDnDSource *pThis);
11496 
11497 };
11498 #    define IDnDSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11499 #    define IDnDSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
11500 #    define IDnDSource_Release(p) ((p)->lpVtbl->Release(p))
11501 #    define IDnDSource_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11502 #    define IDnDSource_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11503 #    define IDnDSource_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11504 #    define IDnDSource_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11505 #    define IDnDSource_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11506 #    define IDnDSource_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11507 #    define IDnDSource_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11508 #    define IDnDSource_DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction) ((p)->lpVtbl->DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction))
11509 #    define IDnDSource_Drop(p, aFormat, aAction, aProgress) ((p)->lpVtbl->Drop(p, aFormat, aAction, aProgress))
11510 #    define IDnDSource_ReceiveData(p, aData) ((p)->lpVtbl->ReceiveData(p, aData))
11511 #   endif /* VBOX_WITH_GLUE */
11512 
11513 interface IDnDSource
11514 {
11515 #   ifndef VBOX_WITH_GLUE
11516     struct IDnDSource_vtbl *vtbl;
11517 #   else /* VBOX_WITH_GLUE */
11518     CONST_VTBL struct IDnDSourceVtbl *lpVtbl;
11519 #   endif /* VBOX_WITH_GLUE */
11520 };
11521 /* End of struct IDnDSource declaration */
11522 
11523 
11524 /* Start of struct IGuestDnDSource declaration */
11525 #   define IGUESTDNDSOURCE_IID_STR "dedfb5d9-4c1b-edf7-fdf3-c1be6827dc28"
11526 #   define IGUESTDNDSOURCE_IID { \
11527     0xdedfb5d9, 0x4c1b, 0xedf7, \
11528     { 0xfd, 0xf3, 0xc1, 0xbe, 0x68, 0x27, 0xdc, 0x28 } \
11529 }
11530 /* COM compatibility */
11531 VBOX_EXTERN_CONST(nsIID, IID_IGuestDnDSource);
11532 #   ifndef VBOX_WITH_GLUE
11533 struct IGuestDnDSource_vtbl
11534 {
11535     struct IDnDSource_vtbl idndsource;
11536 
11537     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDSource *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
11538 
11539 };
11540 #   else /* VBOX_WITH_GLUE */
11541 struct IGuestDnDSourceVtbl
11542 {
11543     nsresult (*QueryInterface)(IGuestDnDSource *pThis, const nsID *iid, void **resultp);
11544     nsrefcnt (*AddRef)(IGuestDnDSource *pThis);
11545     nsrefcnt (*Release)(IGuestDnDSource *pThis);
11546     nsresult (*GetFormats)(IGuestDnDSource *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11547 
11548     nsresult (*GetProtocolVersion)(IGuestDnDSource *pThis, PRUint32 *protocolVersion);
11549 
11550     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IGuestDnDSource *pThis, PRUint32 *reserved);
11551 
11552     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IGuestDnDSource *pThis, PRUint32 *reserved);
11553 
11554     nsresult (*IsFormatSupported)(
11555         IGuestDnDSource *pThis,
11556         PRUnichar * format,
11557         PRBool * supported
11558     );
11559 
11560     nsresult (*AddFormats)(
11561         IGuestDnDSource *pThis,
11562         PRUint32 formatsSize,
11563         PRUnichar ** formats
11564     );
11565 
11566     nsresult (*RemoveFormats)(
11567         IGuestDnDSource *pThis,
11568         PRUint32 formatsSize,
11569         PRUnichar ** formats
11570     );
11571 
11572     nsresult (*InternalAndReservedMethod1IDnDBase)(IGuestDnDSource *pThis);
11573 
11574     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IGuestDnDSource *pThis, PRUint32 *reserved);
11575 
11576     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IGuestDnDSource *pThis, PRUint32 *reserved);
11577 
11578     nsresult (*DragIsPending)(
11579         IGuestDnDSource *pThis,
11580         PRUint32 screenId,
11581         PRUint32 *formatsSize,
11582         PRUnichar *** formats,
11583         PRUint32 *allowedActionsSize,
11584         PRUint32** allowedActions,
11585         PRUint32 * defaultAction
11586     );
11587 
11588     nsresult (*Drop)(
11589         IGuestDnDSource *pThis,
11590         PRUnichar * format,
11591         PRUint32 action,
11592         IProgress * * progress
11593     );
11594 
11595     nsresult (*ReceiveData)(
11596         IGuestDnDSource *pThis,
11597         PRUint32 *dataSize,
11598         PRUint8** data
11599     );
11600 
11601     nsresult (*InternalAndReservedMethod1IDnDSource)(IGuestDnDSource *pThis);
11602 
11603     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDSource *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
11604 
11605 };
11606 #    define IGuestDnDSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11607 #    define IGuestDnDSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
11608 #    define IGuestDnDSource_Release(p) ((p)->lpVtbl->Release(p))
11609 #    define IGuestDnDSource_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11610 #    define IGuestDnDSource_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11611 #    define IGuestDnDSource_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11612 #    define IGuestDnDSource_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11613 #    define IGuestDnDSource_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11614 #    define IGuestDnDSource_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11615 #    define IGuestDnDSource_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11616 #    define IGuestDnDSource_DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction) ((p)->lpVtbl->DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction))
11617 #    define IGuestDnDSource_Drop(p, aFormat, aAction, aProgress) ((p)->lpVtbl->Drop(p, aFormat, aAction, aProgress))
11618 #    define IGuestDnDSource_ReceiveData(p, aData) ((p)->lpVtbl->ReceiveData(p, aData))
11619 #    define IGuestDnDSource_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11620 #    define IGuestDnDSource_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11621 #   endif /* VBOX_WITH_GLUE */
11622 
11623 interface IGuestDnDSource
11624 {
11625 #   ifndef VBOX_WITH_GLUE
11626     struct IGuestDnDSource_vtbl *vtbl;
11627 #   else /* VBOX_WITH_GLUE */
11628     CONST_VTBL struct IGuestDnDSourceVtbl *lpVtbl;
11629 #   endif /* VBOX_WITH_GLUE */
11630 };
11631 /* End of struct IGuestDnDSource declaration */
11632 
11633 
11634 /* Start of struct IDnDTarget declaration */
11635 #   define IDNDTARGET_IID_STR "ff5befc3-4ba3-7903-2aa4-43988ba11554"
11636 #   define IDNDTARGET_IID { \
11637     0xff5befc3, 0x4ba3, 0x7903, \
11638     { 0x2a, 0xa4, 0x43, 0x98, 0x8b, 0xa1, 0x15, 0x54 } \
11639 }
11640 /* COM compatibility */
11641 VBOX_EXTERN_CONST(nsIID, IID_IDnDTarget);
11642 #   ifndef VBOX_WITH_GLUE
11643 struct IDnDTarget_vtbl
11644 {
11645     struct IDnDBase_vtbl idndbase;
11646 
11647     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11648 
11649     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11650 
11651     nsresult (*Enter)(
11652         IDnDTarget *pThis,
11653         PRUint32 screenId,
11654         PRUint32 y,
11655         PRUint32 x,
11656         PRUint32 defaultAction,
11657         PRUint32 allowedActionsSize,
11658         PRUint32* allowedActions,
11659         PRUint32 formatsSize,
11660         PRUnichar ** formats,
11661         PRUint32 * resultAction
11662     );
11663 
11664     nsresult (*Move)(
11665         IDnDTarget *pThis,
11666         PRUint32 screenId,
11667         PRUint32 x,
11668         PRUint32 y,
11669         PRUint32 defaultAction,
11670         PRUint32 allowedActionsSize,
11671         PRUint32* allowedActions,
11672         PRUint32 formatsSize,
11673         PRUnichar ** formats,
11674         PRUint32 * resultAction
11675     );
11676 
11677     nsresult (*Leave)(
11678         IDnDTarget *pThis,
11679         PRUint32 screenId
11680     );
11681 
11682     nsresult (*Drop)(
11683         IDnDTarget *pThis,
11684         PRUint32 screenId,
11685         PRUint32 x,
11686         PRUint32 y,
11687         PRUint32 defaultAction,
11688         PRUint32 allowedActionsSize,
11689         PRUint32* allowedActions,
11690         PRUint32 formatsSize,
11691         PRUnichar ** formats,
11692         PRUnichar * * format,
11693         PRUint32 * resultAction
11694     );
11695 
11696     nsresult (*SendData)(
11697         IDnDTarget *pThis,
11698         PRUint32 screenId,
11699         PRUnichar * format,
11700         PRUint32 dataSize,
11701         PRUint8* data,
11702         IProgress * * progress
11703     );
11704 
11705     nsresult (*Cancel)(
11706         IDnDTarget *pThis,
11707         PRBool * veto
11708     );
11709 
11710     nsresult (*InternalAndReservedMethod1IDnDTarget)(IDnDTarget *pThis);
11711 
11712 };
11713 #   else /* VBOX_WITH_GLUE */
11714 struct IDnDTargetVtbl
11715 {
11716     nsresult (*QueryInterface)(IDnDTarget *pThis, const nsID *iid, void **resultp);
11717     nsrefcnt (*AddRef)(IDnDTarget *pThis);
11718     nsrefcnt (*Release)(IDnDTarget *pThis);
11719     nsresult (*GetFormats)(IDnDTarget *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11720 
11721     nsresult (*GetProtocolVersion)(IDnDTarget *pThis, PRUint32 *protocolVersion);
11722 
11723     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDTarget *pThis, PRUint32 *reserved);
11724 
11725     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDTarget *pThis, PRUint32 *reserved);
11726 
11727     nsresult (*IsFormatSupported)(
11728         IDnDTarget *pThis,
11729         PRUnichar * format,
11730         PRBool * supported
11731     );
11732 
11733     nsresult (*AddFormats)(
11734         IDnDTarget *pThis,
11735         PRUint32 formatsSize,
11736         PRUnichar ** formats
11737     );
11738 
11739     nsresult (*RemoveFormats)(
11740         IDnDTarget *pThis,
11741         PRUint32 formatsSize,
11742         PRUnichar ** formats
11743     );
11744 
11745     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDTarget *pThis);
11746 
11747     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11748 
11749     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11750 
11751     nsresult (*Enter)(
11752         IDnDTarget *pThis,
11753         PRUint32 screenId,
11754         PRUint32 y,
11755         PRUint32 x,
11756         PRUint32 defaultAction,
11757         PRUint32 allowedActionsSize,
11758         PRUint32* allowedActions,
11759         PRUint32 formatsSize,
11760         PRUnichar ** formats,
11761         PRUint32 * resultAction
11762     );
11763 
11764     nsresult (*Move)(
11765         IDnDTarget *pThis,
11766         PRUint32 screenId,
11767         PRUint32 x,
11768         PRUint32 y,
11769         PRUint32 defaultAction,
11770         PRUint32 allowedActionsSize,
11771         PRUint32* allowedActions,
11772         PRUint32 formatsSize,
11773         PRUnichar ** formats,
11774         PRUint32 * resultAction
11775     );
11776 
11777     nsresult (*Leave)(
11778         IDnDTarget *pThis,
11779         PRUint32 screenId
11780     );
11781 
11782     nsresult (*Drop)(
11783         IDnDTarget *pThis,
11784         PRUint32 screenId,
11785         PRUint32 x,
11786         PRUint32 y,
11787         PRUint32 defaultAction,
11788         PRUint32 allowedActionsSize,
11789         PRUint32* allowedActions,
11790         PRUint32 formatsSize,
11791         PRUnichar ** formats,
11792         PRUnichar * * format,
11793         PRUint32 * resultAction
11794     );
11795 
11796     nsresult (*SendData)(
11797         IDnDTarget *pThis,
11798         PRUint32 screenId,
11799         PRUnichar * format,
11800         PRUint32 dataSize,
11801         PRUint8* data,
11802         IProgress * * progress
11803     );
11804 
11805     nsresult (*Cancel)(
11806         IDnDTarget *pThis,
11807         PRBool * veto
11808     );
11809 
11810     nsresult (*InternalAndReservedMethod1IDnDTarget)(IDnDTarget *pThis);
11811 
11812 };
11813 #    define IDnDTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11814 #    define IDnDTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
11815 #    define IDnDTarget_Release(p) ((p)->lpVtbl->Release(p))
11816 #    define IDnDTarget_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11817 #    define IDnDTarget_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11818 #    define IDnDTarget_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11819 #    define IDnDTarget_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11820 #    define IDnDTarget_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11821 #    define IDnDTarget_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11822 #    define IDnDTarget_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11823 #    define IDnDTarget_Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11824 #    define IDnDTarget_Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11825 #    define IDnDTarget_Leave(p, aScreenId) ((p)->lpVtbl->Leave(p, aScreenId))
11826 #    define IDnDTarget_Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction) ((p)->lpVtbl->Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction))
11827 #    define IDnDTarget_SendData(p, aScreenId, aFormat, aData, aProgress) ((p)->lpVtbl->SendData(p, aScreenId, aFormat, aData, aProgress))
11828 #    define IDnDTarget_Cancel(p, aVeto) ((p)->lpVtbl->Cancel(p, aVeto))
11829 #   endif /* VBOX_WITH_GLUE */
11830 
11831 interface IDnDTarget
11832 {
11833 #   ifndef VBOX_WITH_GLUE
11834     struct IDnDTarget_vtbl *vtbl;
11835 #   else /* VBOX_WITH_GLUE */
11836     CONST_VTBL struct IDnDTargetVtbl *lpVtbl;
11837 #   endif /* VBOX_WITH_GLUE */
11838 };
11839 /* End of struct IDnDTarget declaration */
11840 
11841 
11842 /* Start of struct IGuestDnDTarget declaration */
11843 #   define IGUESTDNDTARGET_IID_STR "50ce4b51-0ff7-46b7-a138-3c6e5ac946b4"
11844 #   define IGUESTDNDTARGET_IID { \
11845     0x50ce4b51, 0x0ff7, 0x46b7, \
11846     { 0xa1, 0x38, 0x3c, 0x6e, 0x5a, 0xc9, 0x46, 0xb4 } \
11847 }
11848 /* COM compatibility */
11849 VBOX_EXTERN_CONST(nsIID, IID_IGuestDnDTarget);
11850 #   ifndef VBOX_WITH_GLUE
11851 struct IGuestDnDTarget_vtbl
11852 {
11853     struct IDnDTarget_vtbl idndtarget;
11854 
11855     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDTarget *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
11856 
11857 };
11858 #   else /* VBOX_WITH_GLUE */
11859 struct IGuestDnDTargetVtbl
11860 {
11861     nsresult (*QueryInterface)(IGuestDnDTarget *pThis, const nsID *iid, void **resultp);
11862     nsrefcnt (*AddRef)(IGuestDnDTarget *pThis);
11863     nsrefcnt (*Release)(IGuestDnDTarget *pThis);
11864     nsresult (*GetFormats)(IGuestDnDTarget *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11865 
11866     nsresult (*GetProtocolVersion)(IGuestDnDTarget *pThis, PRUint32 *protocolVersion);
11867 
11868     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11869 
11870     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11871 
11872     nsresult (*IsFormatSupported)(
11873         IGuestDnDTarget *pThis,
11874         PRUnichar * format,
11875         PRBool * supported
11876     );
11877 
11878     nsresult (*AddFormats)(
11879         IGuestDnDTarget *pThis,
11880         PRUint32 formatsSize,
11881         PRUnichar ** formats
11882     );
11883 
11884     nsresult (*RemoveFormats)(
11885         IGuestDnDTarget *pThis,
11886         PRUint32 formatsSize,
11887         PRUnichar ** formats
11888     );
11889 
11890     nsresult (*InternalAndReservedMethod1IDnDBase)(IGuestDnDTarget *pThis);
11891 
11892     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11893 
11894     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11895 
11896     nsresult (*Enter)(
11897         IGuestDnDTarget *pThis,
11898         PRUint32 screenId,
11899         PRUint32 y,
11900         PRUint32 x,
11901         PRUint32 defaultAction,
11902         PRUint32 allowedActionsSize,
11903         PRUint32* allowedActions,
11904         PRUint32 formatsSize,
11905         PRUnichar ** formats,
11906         PRUint32 * resultAction
11907     );
11908 
11909     nsresult (*Move)(
11910         IGuestDnDTarget *pThis,
11911         PRUint32 screenId,
11912         PRUint32 x,
11913         PRUint32 y,
11914         PRUint32 defaultAction,
11915         PRUint32 allowedActionsSize,
11916         PRUint32* allowedActions,
11917         PRUint32 formatsSize,
11918         PRUnichar ** formats,
11919         PRUint32 * resultAction
11920     );
11921 
11922     nsresult (*Leave)(
11923         IGuestDnDTarget *pThis,
11924         PRUint32 screenId
11925     );
11926 
11927     nsresult (*Drop)(
11928         IGuestDnDTarget *pThis,
11929         PRUint32 screenId,
11930         PRUint32 x,
11931         PRUint32 y,
11932         PRUint32 defaultAction,
11933         PRUint32 allowedActionsSize,
11934         PRUint32* allowedActions,
11935         PRUint32 formatsSize,
11936         PRUnichar ** formats,
11937         PRUnichar * * format,
11938         PRUint32 * resultAction
11939     );
11940 
11941     nsresult (*SendData)(
11942         IGuestDnDTarget *pThis,
11943         PRUint32 screenId,
11944         PRUnichar * format,
11945         PRUint32 dataSize,
11946         PRUint8* data,
11947         IProgress * * progress
11948     );
11949 
11950     nsresult (*Cancel)(
11951         IGuestDnDTarget *pThis,
11952         PRBool * veto
11953     );
11954 
11955     nsresult (*InternalAndReservedMethod1IDnDTarget)(IGuestDnDTarget *pThis);
11956 
11957     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDTarget *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
11958 
11959 };
11960 #    define IGuestDnDTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11961 #    define IGuestDnDTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
11962 #    define IGuestDnDTarget_Release(p) ((p)->lpVtbl->Release(p))
11963 #    define IGuestDnDTarget_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11964 #    define IGuestDnDTarget_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11965 #    define IGuestDnDTarget_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11966 #    define IGuestDnDTarget_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11967 #    define IGuestDnDTarget_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11968 #    define IGuestDnDTarget_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11969 #    define IGuestDnDTarget_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11970 #    define IGuestDnDTarget_Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11971 #    define IGuestDnDTarget_Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11972 #    define IGuestDnDTarget_Leave(p, aScreenId) ((p)->lpVtbl->Leave(p, aScreenId))
11973 #    define IGuestDnDTarget_Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction) ((p)->lpVtbl->Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction))
11974 #    define IGuestDnDTarget_SendData(p, aScreenId, aFormat, aData, aProgress) ((p)->lpVtbl->SendData(p, aScreenId, aFormat, aData, aProgress))
11975 #    define IGuestDnDTarget_Cancel(p, aVeto) ((p)->lpVtbl->Cancel(p, aVeto))
11976 #    define IGuestDnDTarget_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11977 #    define IGuestDnDTarget_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11978 #   endif /* VBOX_WITH_GLUE */
11979 
11980 interface IGuestDnDTarget
11981 {
11982 #   ifndef VBOX_WITH_GLUE
11983     struct IGuestDnDTarget_vtbl *vtbl;
11984 #   else /* VBOX_WITH_GLUE */
11985     CONST_VTBL struct IGuestDnDTargetVtbl *lpVtbl;
11986 #   endif /* VBOX_WITH_GLUE */
11987 };
11988 /* End of struct IGuestDnDTarget declaration */
11989 
11990 
11991 /* Start of struct IGuestSession declaration */
11992 #   define IGUESTSESSION_IID_STR "3E14C189-4A75-437E-B0BB-7E7C90D0DF2A"
11993 #   define IGUESTSESSION_IID { \
11994     0x3E14C189, 0x4A75, 0x437E, \
11995     { 0xB0, 0xBB, 0x7E, 0x7C, 0x90, 0xD0, 0xDF, 0x2A } \
11996 }
11997 /* COM compatibility */
11998 VBOX_EXTERN_CONST(nsIID, IID_IGuestSession);
11999 #   ifndef VBOX_WITH_GLUE
12000 struct IGuestSession_vtbl
12001 {
12002     struct nsISupports_vtbl nsisupports;
12003 
12004     nsresult (*GetUser)(IGuestSession *pThis, PRUnichar * *user);
12005 
12006     nsresult (*GetDomain)(IGuestSession *pThis, PRUnichar * *domain);
12007 
12008     nsresult (*GetName)(IGuestSession *pThis, PRUnichar * *name);
12009 
12010     nsresult (*GetId)(IGuestSession *pThis, PRUint32 *id);
12011 
12012     nsresult (*GetTimeout)(IGuestSession *pThis, PRUint32 *timeout);
12013     nsresult (*SetTimeout)(IGuestSession *pThis, PRUint32 timeout);
12014 
12015     nsresult (*GetProtocolVersion)(IGuestSession *pThis, PRUint32 *protocolVersion);
12016 
12017     nsresult (*GetStatus)(IGuestSession *pThis, PRUint32 *status);
12018 
12019     nsresult (*GetEnvironmentChanges)(IGuestSession *pThis, PRUint32 *environmentChangesSize, PRUnichar * **environmentChanges);
12020     nsresult (*SetEnvironmentChanges)(IGuestSession *pThis, PRUint32 environmentChangesSize, PRUnichar * *environmentChanges);
12021 
12022     nsresult (*GetEnvironmentBase)(IGuestSession *pThis, PRUint32 *environmentBaseSize, PRUnichar * **environmentBase);
12023 
12024     nsresult (*GetProcesses)(IGuestSession *pThis, PRUint32 *processesSize, IGuestProcess * **processes);
12025 
12026     nsresult (*GetPathStyle)(IGuestSession *pThis, PRUint32 *pathStyle);
12027 
12028     nsresult (*GetCurrentDirectory)(IGuestSession *pThis, PRUnichar * *currentDirectory);
12029     nsresult (*SetCurrentDirectory)(IGuestSession *pThis, PRUnichar * currentDirectory);
12030 
12031     nsresult (*GetUserHome)(IGuestSession *pThis, PRUnichar * *userHome);
12032 
12033     nsresult (*GetUserDocuments)(IGuestSession *pThis, PRUnichar * *userDocuments);
12034 
12035     nsresult (*GetDirectories)(IGuestSession *pThis, PRUint32 *directoriesSize, IGuestDirectory * **directories);
12036 
12037     nsresult (*GetFiles)(IGuestSession *pThis, PRUint32 *filesSize, IGuestFile * **files);
12038 
12039     nsresult (*GetEventSource)(IGuestSession *pThis, IEventSource * *eventSource);
12040 
12041     nsresult (*GetInternalAndReservedAttribute1IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12042 
12043     nsresult (*GetInternalAndReservedAttribute2IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12044 
12045     nsresult (*GetInternalAndReservedAttribute3IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12046 
12047     nsresult (*GetInternalAndReservedAttribute4IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12048 
12049     nsresult (*GetInternalAndReservedAttribute5IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12050 
12051     nsresult (*GetInternalAndReservedAttribute6IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12052 
12053     nsresult (*GetInternalAndReservedAttribute7IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12054 
12055     nsresult (*GetInternalAndReservedAttribute8IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12056 
12057     nsresult (*GetInternalAndReservedAttribute9IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12058 
12059     nsresult (*GetInternalAndReservedAttribute10IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12060 
12061     nsresult (*GetInternalAndReservedAttribute11IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12062 
12063     nsresult (*GetInternalAndReservedAttribute12IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12064 
12065     nsresult (*Close)(IGuestSession *pThis );
12066 
12067     nsresult (*CopyFromGuest)(
12068         IGuestSession *pThis,
12069         PRUint32 sourcesSize,
12070         PRUnichar ** sources,
12071         PRUint32 filtersSize,
12072         PRUnichar ** filters,
12073         PRUint32 flagsSize,
12074         PRUnichar ** flags,
12075         PRUnichar * destination,
12076         IProgress * * progress
12077     );
12078 
12079     nsresult (*CopyToGuest)(
12080         IGuestSession *pThis,
12081         PRUint32 sourcesSize,
12082         PRUnichar ** sources,
12083         PRUint32 filtersSize,
12084         PRUnichar ** filters,
12085         PRUint32 flagsSize,
12086         PRUnichar ** flags,
12087         PRUnichar * destination,
12088         IProgress * * progress
12089     );
12090 
12091     nsresult (*DirectoryCopy)(
12092         IGuestSession *pThis,
12093         PRUnichar * source,
12094         PRUnichar * destination,
12095         PRUint32 flagsSize,
12096         PRUint32* flags,
12097         IProgress * * progress
12098     );
12099 
12100     nsresult (*DirectoryCopyFromGuest)(
12101         IGuestSession *pThis,
12102         PRUnichar * source,
12103         PRUnichar * destination,
12104         PRUint32 flagsSize,
12105         PRUint32* flags,
12106         IProgress * * progress
12107     );
12108 
12109     nsresult (*DirectoryCopyToGuest)(
12110         IGuestSession *pThis,
12111         PRUnichar * source,
12112         PRUnichar * destination,
12113         PRUint32 flagsSize,
12114         PRUint32* flags,
12115         IProgress * * progress
12116     );
12117 
12118     nsresult (*DirectoryCreate)(
12119         IGuestSession *pThis,
12120         PRUnichar * path,
12121         PRUint32 mode,
12122         PRUint32 flagsSize,
12123         PRUint32* flags
12124     );
12125 
12126     nsresult (*DirectoryCreateTemp)(
12127         IGuestSession *pThis,
12128         PRUnichar * templateName,
12129         PRUint32 mode,
12130         PRUnichar * path,
12131         PRBool secure,
12132         PRUnichar * * directory
12133     );
12134 
12135     nsresult (*DirectoryExists)(
12136         IGuestSession *pThis,
12137         PRUnichar * path,
12138         PRBool followSymlinks,
12139         PRBool * exists
12140     );
12141 
12142     nsresult (*DirectoryOpen)(
12143         IGuestSession *pThis,
12144         PRUnichar * path,
12145         PRUnichar * filter,
12146         PRUint32 flagsSize,
12147         PRUint32* flags,
12148         IGuestDirectory * * directory
12149     );
12150 
12151     nsresult (*DirectoryRemove)(
12152         IGuestSession *pThis,
12153         PRUnichar * path
12154     );
12155 
12156     nsresult (*DirectoryRemoveRecursive)(
12157         IGuestSession *pThis,
12158         PRUnichar * path,
12159         PRUint32 flagsSize,
12160         PRUint32* flags,
12161         IProgress * * progress
12162     );
12163 
12164     nsresult (*EnvironmentScheduleSet)(
12165         IGuestSession *pThis,
12166         PRUnichar * name,
12167         PRUnichar * value
12168     );
12169 
12170     nsresult (*EnvironmentScheduleUnset)(
12171         IGuestSession *pThis,
12172         PRUnichar * name
12173     );
12174 
12175     nsresult (*EnvironmentGetBaseVariable)(
12176         IGuestSession *pThis,
12177         PRUnichar * name,
12178         PRUnichar * * value
12179     );
12180 
12181     nsresult (*EnvironmentDoesBaseVariableExist)(
12182         IGuestSession *pThis,
12183         PRUnichar * name,
12184         PRBool * exists
12185     );
12186 
12187     nsresult (*FileCopy)(
12188         IGuestSession *pThis,
12189         PRUnichar * source,
12190         PRUnichar * destination,
12191         PRUint32 flagsSize,
12192         PRUint32* flags,
12193         IProgress * * progress
12194     );
12195 
12196     nsresult (*FileCopyFromGuest)(
12197         IGuestSession *pThis,
12198         PRUnichar * source,
12199         PRUnichar * destination,
12200         PRUint32 flagsSize,
12201         PRUint32* flags,
12202         IProgress * * progress
12203     );
12204 
12205     nsresult (*FileCopyToGuest)(
12206         IGuestSession *pThis,
12207         PRUnichar * source,
12208         PRUnichar * destination,
12209         PRUint32 flagsSize,
12210         PRUint32* flags,
12211         IProgress * * progress
12212     );
12213 
12214     nsresult (*FileCreateTemp)(
12215         IGuestSession *pThis,
12216         PRUnichar * templateName,
12217         PRUint32 mode,
12218         PRUnichar * path,
12219         PRBool secure,
12220         IGuestFile * * file
12221     );
12222 
12223     nsresult (*FileExists)(
12224         IGuestSession *pThis,
12225         PRUnichar * path,
12226         PRBool followSymlinks,
12227         PRBool * exists
12228     );
12229 
12230     nsresult (*FileOpen)(
12231         IGuestSession *pThis,
12232         PRUnichar * path,
12233         PRUint32 accessMode,
12234         PRUint32 openAction,
12235         PRUint32 creationMode,
12236         IGuestFile * * file
12237     );
12238 
12239     nsresult (*FileOpenEx)(
12240         IGuestSession *pThis,
12241         PRUnichar * path,
12242         PRUint32 accessMode,
12243         PRUint32 openAction,
12244         PRUint32 sharingMode,
12245         PRUint32 creationMode,
12246         PRUint32 flagsSize,
12247         PRUint32* flags,
12248         IGuestFile * * file
12249     );
12250 
12251     nsresult (*FileQuerySize)(
12252         IGuestSession *pThis,
12253         PRUnichar * path,
12254         PRBool followSymlinks,
12255         PRInt64 * size
12256     );
12257 
12258     nsresult (*FsObjExists)(
12259         IGuestSession *pThis,
12260         PRUnichar * path,
12261         PRBool followSymlinks,
12262         PRBool * exists
12263     );
12264 
12265     nsresult (*FsObjQueryInfo)(
12266         IGuestSession *pThis,
12267         PRUnichar * path,
12268         PRBool followSymlinks,
12269         IGuestFsObjInfo * * info
12270     );
12271 
12272     nsresult (*FsObjRemove)(
12273         IGuestSession *pThis,
12274         PRUnichar * path
12275     );
12276 
12277     nsresult (*FsObjRemoveArray)(
12278         IGuestSession *pThis,
12279         PRUint32 pathSize,
12280         PRUnichar ** path,
12281         IProgress * * progress
12282     );
12283 
12284     nsresult (*FsObjRename)(
12285         IGuestSession *pThis,
12286         PRUnichar * oldPath,
12287         PRUnichar * newPath,
12288         PRUint32 flagsSize,
12289         PRUint32* flags
12290     );
12291 
12292     nsresult (*FsObjMove)(
12293         IGuestSession *pThis,
12294         PRUnichar * source,
12295         PRUnichar * destination,
12296         PRUint32 flagsSize,
12297         PRUint32* flags,
12298         IProgress * * progress
12299     );
12300 
12301     nsresult (*FsObjMoveArray)(
12302         IGuestSession *pThis,
12303         PRUint32 sourceSize,
12304         PRUnichar ** source,
12305         PRUnichar * destination,
12306         PRUint32 flagsSize,
12307         PRUint32* flags,
12308         IProgress * * progress
12309     );
12310 
12311     nsresult (*FsObjCopyArray)(
12312         IGuestSession *pThis,
12313         PRUint32 sourceSize,
12314         PRUnichar ** source,
12315         PRUnichar * destination,
12316         PRUint32 flagsSize,
12317         PRUint32* flags,
12318         IProgress * * progress
12319     );
12320 
12321     nsresult (*FsObjSetACL)(
12322         IGuestSession *pThis,
12323         PRUnichar * path,
12324         PRBool followSymlinks,
12325         PRUnichar * acl,
12326         PRUint32 mode
12327     );
12328 
12329     nsresult (*ProcessCreate)(
12330         IGuestSession *pThis,
12331         PRUnichar * executable,
12332         PRUint32 argumentsSize,
12333         PRUnichar ** arguments,
12334         PRUint32 environmentChangesSize,
12335         PRUnichar ** environmentChanges,
12336         PRUint32 flagsSize,
12337         PRUint32* flags,
12338         PRUint32 timeoutMS,
12339         IGuestProcess * * guestProcess
12340     );
12341 
12342     nsresult (*ProcessCreateEx)(
12343         IGuestSession *pThis,
12344         PRUnichar * executable,
12345         PRUint32 argumentsSize,
12346         PRUnichar ** arguments,
12347         PRUint32 environmentChangesSize,
12348         PRUnichar ** environmentChanges,
12349         PRUint32 flagsSize,
12350         PRUint32* flags,
12351         PRUint32 timeoutMS,
12352         PRUint32 priority,
12353         PRUint32 affinitySize,
12354         PRInt32* affinity,
12355         IGuestProcess * * guestProcess
12356     );
12357 
12358     nsresult (*ProcessGet)(
12359         IGuestSession *pThis,
12360         PRUint32 pid,
12361         IGuestProcess * * guestProcess
12362     );
12363 
12364     nsresult (*SymlinkCreate)(
12365         IGuestSession *pThis,
12366         PRUnichar * symlink,
12367         PRUnichar * target,
12368         PRUint32 type
12369     );
12370 
12371     nsresult (*SymlinkExists)(
12372         IGuestSession *pThis,
12373         PRUnichar * symlink,
12374         PRBool * exists
12375     );
12376 
12377     nsresult (*SymlinkRead)(
12378         IGuestSession *pThis,
12379         PRUnichar * symlink,
12380         PRUint32 flagsSize,
12381         PRUint32* flags,
12382         PRUnichar * * target
12383     );
12384 
12385     nsresult (*WaitFor)(
12386         IGuestSession *pThis,
12387         PRUint32 waitFor,
12388         PRUint32 timeoutMS,
12389         PRUint32 * reason
12390     );
12391 
12392     nsresult (*WaitForArray)(
12393         IGuestSession *pThis,
12394         PRUint32 waitForSize,
12395         PRUint32* waitFor,
12396         PRUint32 timeoutMS,
12397         PRUint32 * reason
12398     );
12399 
12400     nsresult (*InternalAndReservedMethod1IGuestSession)(IGuestSession *pThis);
12401 
12402     nsresult (*InternalAndReservedMethod2IGuestSession)(IGuestSession *pThis);
12403 
12404     nsresult (*InternalAndReservedMethod3IGuestSession)(IGuestSession *pThis);
12405 
12406     nsresult (*InternalAndReservedMethod4IGuestSession)(IGuestSession *pThis);
12407 
12408     nsresult (*InternalAndReservedMethod5IGuestSession)(IGuestSession *pThis);
12409 
12410     nsresult (*InternalAndReservedMethod6IGuestSession)(IGuestSession *pThis);
12411 
12412     nsresult (*InternalAndReservedMethod7IGuestSession)(IGuestSession *pThis);
12413 
12414     nsresult (*InternalAndReservedMethod8IGuestSession)(IGuestSession *pThis);
12415 
12416 };
12417 #   else /* VBOX_WITH_GLUE */
12418 struct IGuestSessionVtbl
12419 {
12420     nsresult (*QueryInterface)(IGuestSession *pThis, const nsID *iid, void **resultp);
12421     nsrefcnt (*AddRef)(IGuestSession *pThis);
12422     nsrefcnt (*Release)(IGuestSession *pThis);
12423     nsresult (*GetUser)(IGuestSession *pThis, PRUnichar * *user);
12424 
12425     nsresult (*GetDomain)(IGuestSession *pThis, PRUnichar * *domain);
12426 
12427     nsresult (*GetName)(IGuestSession *pThis, PRUnichar * *name);
12428 
12429     nsresult (*GetId)(IGuestSession *pThis, PRUint32 *id);
12430 
12431     nsresult (*GetTimeout)(IGuestSession *pThis, PRUint32 *timeout);
12432     nsresult (*SetTimeout)(IGuestSession *pThis, PRUint32 timeout);
12433 
12434     nsresult (*GetProtocolVersion)(IGuestSession *pThis, PRUint32 *protocolVersion);
12435 
12436     nsresult (*GetStatus)(IGuestSession *pThis, PRUint32 *status);
12437 
12438     nsresult (*GetEnvironmentChanges)(IGuestSession *pThis, PRUint32 *environmentChangesSize, PRUnichar * **environmentChanges);
12439     nsresult (*SetEnvironmentChanges)(IGuestSession *pThis, PRUint32 environmentChangesSize, PRUnichar * *environmentChanges);
12440 
12441     nsresult (*GetEnvironmentBase)(IGuestSession *pThis, PRUint32 *environmentBaseSize, PRUnichar * **environmentBase);
12442 
12443     nsresult (*GetProcesses)(IGuestSession *pThis, PRUint32 *processesSize, IGuestProcess * **processes);
12444 
12445     nsresult (*GetPathStyle)(IGuestSession *pThis, PRUint32 *pathStyle);
12446 
12447     nsresult (*GetCurrentDirectory)(IGuestSession *pThis, PRUnichar * *currentDirectory);
12448     nsresult (*SetCurrentDirectory)(IGuestSession *pThis, PRUnichar * currentDirectory);
12449 
12450     nsresult (*GetUserHome)(IGuestSession *pThis, PRUnichar * *userHome);
12451 
12452     nsresult (*GetUserDocuments)(IGuestSession *pThis, PRUnichar * *userDocuments);
12453 
12454     nsresult (*GetDirectories)(IGuestSession *pThis, PRUint32 *directoriesSize, IGuestDirectory * **directories);
12455 
12456     nsresult (*GetFiles)(IGuestSession *pThis, PRUint32 *filesSize, IGuestFile * **files);
12457 
12458     nsresult (*GetEventSource)(IGuestSession *pThis, IEventSource * *eventSource);
12459 
12460     nsresult (*GetInternalAndReservedAttribute1IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12461 
12462     nsresult (*GetInternalAndReservedAttribute2IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12463 
12464     nsresult (*GetInternalAndReservedAttribute3IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12465 
12466     nsresult (*GetInternalAndReservedAttribute4IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12467 
12468     nsresult (*GetInternalAndReservedAttribute5IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12469 
12470     nsresult (*GetInternalAndReservedAttribute6IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12471 
12472     nsresult (*GetInternalAndReservedAttribute7IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12473 
12474     nsresult (*GetInternalAndReservedAttribute8IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12475 
12476     nsresult (*GetInternalAndReservedAttribute9IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12477 
12478     nsresult (*GetInternalAndReservedAttribute10IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12479 
12480     nsresult (*GetInternalAndReservedAttribute11IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12481 
12482     nsresult (*GetInternalAndReservedAttribute12IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
12483 
12484     nsresult (*Close)(IGuestSession *pThis );
12485 
12486     nsresult (*CopyFromGuest)(
12487         IGuestSession *pThis,
12488         PRUint32 sourcesSize,
12489         PRUnichar ** sources,
12490         PRUint32 filtersSize,
12491         PRUnichar ** filters,
12492         PRUint32 flagsSize,
12493         PRUnichar ** flags,
12494         PRUnichar * destination,
12495         IProgress * * progress
12496     );
12497 
12498     nsresult (*CopyToGuest)(
12499         IGuestSession *pThis,
12500         PRUint32 sourcesSize,
12501         PRUnichar ** sources,
12502         PRUint32 filtersSize,
12503         PRUnichar ** filters,
12504         PRUint32 flagsSize,
12505         PRUnichar ** flags,
12506         PRUnichar * destination,
12507         IProgress * * progress
12508     );
12509 
12510     nsresult (*DirectoryCopy)(
12511         IGuestSession *pThis,
12512         PRUnichar * source,
12513         PRUnichar * destination,
12514         PRUint32 flagsSize,
12515         PRUint32* flags,
12516         IProgress * * progress
12517     );
12518 
12519     nsresult (*DirectoryCopyFromGuest)(
12520         IGuestSession *pThis,
12521         PRUnichar * source,
12522         PRUnichar * destination,
12523         PRUint32 flagsSize,
12524         PRUint32* flags,
12525         IProgress * * progress
12526     );
12527 
12528     nsresult (*DirectoryCopyToGuest)(
12529         IGuestSession *pThis,
12530         PRUnichar * source,
12531         PRUnichar * destination,
12532         PRUint32 flagsSize,
12533         PRUint32* flags,
12534         IProgress * * progress
12535     );
12536 
12537     nsresult (*DirectoryCreate)(
12538         IGuestSession *pThis,
12539         PRUnichar * path,
12540         PRUint32 mode,
12541         PRUint32 flagsSize,
12542         PRUint32* flags
12543     );
12544 
12545     nsresult (*DirectoryCreateTemp)(
12546         IGuestSession *pThis,
12547         PRUnichar * templateName,
12548         PRUint32 mode,
12549         PRUnichar * path,
12550         PRBool secure,
12551         PRUnichar * * directory
12552     );
12553 
12554     nsresult (*DirectoryExists)(
12555         IGuestSession *pThis,
12556         PRUnichar * path,
12557         PRBool followSymlinks,
12558         PRBool * exists
12559     );
12560 
12561     nsresult (*DirectoryOpen)(
12562         IGuestSession *pThis,
12563         PRUnichar * path,
12564         PRUnichar * filter,
12565         PRUint32 flagsSize,
12566         PRUint32* flags,
12567         IGuestDirectory * * directory
12568     );
12569 
12570     nsresult (*DirectoryRemove)(
12571         IGuestSession *pThis,
12572         PRUnichar * path
12573     );
12574 
12575     nsresult (*DirectoryRemoveRecursive)(
12576         IGuestSession *pThis,
12577         PRUnichar * path,
12578         PRUint32 flagsSize,
12579         PRUint32* flags,
12580         IProgress * * progress
12581     );
12582 
12583     nsresult (*EnvironmentScheduleSet)(
12584         IGuestSession *pThis,
12585         PRUnichar * name,
12586         PRUnichar * value
12587     );
12588 
12589     nsresult (*EnvironmentScheduleUnset)(
12590         IGuestSession *pThis,
12591         PRUnichar * name
12592     );
12593 
12594     nsresult (*EnvironmentGetBaseVariable)(
12595         IGuestSession *pThis,
12596         PRUnichar * name,
12597         PRUnichar * * value
12598     );
12599 
12600     nsresult (*EnvironmentDoesBaseVariableExist)(
12601         IGuestSession *pThis,
12602         PRUnichar * name,
12603         PRBool * exists
12604     );
12605 
12606     nsresult (*FileCopy)(
12607         IGuestSession *pThis,
12608         PRUnichar * source,
12609         PRUnichar * destination,
12610         PRUint32 flagsSize,
12611         PRUint32* flags,
12612         IProgress * * progress
12613     );
12614 
12615     nsresult (*FileCopyFromGuest)(
12616         IGuestSession *pThis,
12617         PRUnichar * source,
12618         PRUnichar * destination,
12619         PRUint32 flagsSize,
12620         PRUint32* flags,
12621         IProgress * * progress
12622     );
12623 
12624     nsresult (*FileCopyToGuest)(
12625         IGuestSession *pThis,
12626         PRUnichar * source,
12627         PRUnichar * destination,
12628         PRUint32 flagsSize,
12629         PRUint32* flags,
12630         IProgress * * progress
12631     );
12632 
12633     nsresult (*FileCreateTemp)(
12634         IGuestSession *pThis,
12635         PRUnichar * templateName,
12636         PRUint32 mode,
12637         PRUnichar * path,
12638         PRBool secure,
12639         IGuestFile * * file
12640     );
12641 
12642     nsresult (*FileExists)(
12643         IGuestSession *pThis,
12644         PRUnichar * path,
12645         PRBool followSymlinks,
12646         PRBool * exists
12647     );
12648 
12649     nsresult (*FileOpen)(
12650         IGuestSession *pThis,
12651         PRUnichar * path,
12652         PRUint32 accessMode,
12653         PRUint32 openAction,
12654         PRUint32 creationMode,
12655         IGuestFile * * file
12656     );
12657 
12658     nsresult (*FileOpenEx)(
12659         IGuestSession *pThis,
12660         PRUnichar * path,
12661         PRUint32 accessMode,
12662         PRUint32 openAction,
12663         PRUint32 sharingMode,
12664         PRUint32 creationMode,
12665         PRUint32 flagsSize,
12666         PRUint32* flags,
12667         IGuestFile * * file
12668     );
12669 
12670     nsresult (*FileQuerySize)(
12671         IGuestSession *pThis,
12672         PRUnichar * path,
12673         PRBool followSymlinks,
12674         PRInt64 * size
12675     );
12676 
12677     nsresult (*FsObjExists)(
12678         IGuestSession *pThis,
12679         PRUnichar * path,
12680         PRBool followSymlinks,
12681         PRBool * exists
12682     );
12683 
12684     nsresult (*FsObjQueryInfo)(
12685         IGuestSession *pThis,
12686         PRUnichar * path,
12687         PRBool followSymlinks,
12688         IGuestFsObjInfo * * info
12689     );
12690 
12691     nsresult (*FsObjRemove)(
12692         IGuestSession *pThis,
12693         PRUnichar * path
12694     );
12695 
12696     nsresult (*FsObjRemoveArray)(
12697         IGuestSession *pThis,
12698         PRUint32 pathSize,
12699         PRUnichar ** path,
12700         IProgress * * progress
12701     );
12702 
12703     nsresult (*FsObjRename)(
12704         IGuestSession *pThis,
12705         PRUnichar * oldPath,
12706         PRUnichar * newPath,
12707         PRUint32 flagsSize,
12708         PRUint32* flags
12709     );
12710 
12711     nsresult (*FsObjMove)(
12712         IGuestSession *pThis,
12713         PRUnichar * source,
12714         PRUnichar * destination,
12715         PRUint32 flagsSize,
12716         PRUint32* flags,
12717         IProgress * * progress
12718     );
12719 
12720     nsresult (*FsObjMoveArray)(
12721         IGuestSession *pThis,
12722         PRUint32 sourceSize,
12723         PRUnichar ** source,
12724         PRUnichar * destination,
12725         PRUint32 flagsSize,
12726         PRUint32* flags,
12727         IProgress * * progress
12728     );
12729 
12730     nsresult (*FsObjCopyArray)(
12731         IGuestSession *pThis,
12732         PRUint32 sourceSize,
12733         PRUnichar ** source,
12734         PRUnichar * destination,
12735         PRUint32 flagsSize,
12736         PRUint32* flags,
12737         IProgress * * progress
12738     );
12739 
12740     nsresult (*FsObjSetACL)(
12741         IGuestSession *pThis,
12742         PRUnichar * path,
12743         PRBool followSymlinks,
12744         PRUnichar * acl,
12745         PRUint32 mode
12746     );
12747 
12748     nsresult (*ProcessCreate)(
12749         IGuestSession *pThis,
12750         PRUnichar * executable,
12751         PRUint32 argumentsSize,
12752         PRUnichar ** arguments,
12753         PRUint32 environmentChangesSize,
12754         PRUnichar ** environmentChanges,
12755         PRUint32 flagsSize,
12756         PRUint32* flags,
12757         PRUint32 timeoutMS,
12758         IGuestProcess * * guestProcess
12759     );
12760 
12761     nsresult (*ProcessCreateEx)(
12762         IGuestSession *pThis,
12763         PRUnichar * executable,
12764         PRUint32 argumentsSize,
12765         PRUnichar ** arguments,
12766         PRUint32 environmentChangesSize,
12767         PRUnichar ** environmentChanges,
12768         PRUint32 flagsSize,
12769         PRUint32* flags,
12770         PRUint32 timeoutMS,
12771         PRUint32 priority,
12772         PRUint32 affinitySize,
12773         PRInt32* affinity,
12774         IGuestProcess * * guestProcess
12775     );
12776 
12777     nsresult (*ProcessGet)(
12778         IGuestSession *pThis,
12779         PRUint32 pid,
12780         IGuestProcess * * guestProcess
12781     );
12782 
12783     nsresult (*SymlinkCreate)(
12784         IGuestSession *pThis,
12785         PRUnichar * symlink,
12786         PRUnichar * target,
12787         PRUint32 type
12788     );
12789 
12790     nsresult (*SymlinkExists)(
12791         IGuestSession *pThis,
12792         PRUnichar * symlink,
12793         PRBool * exists
12794     );
12795 
12796     nsresult (*SymlinkRead)(
12797         IGuestSession *pThis,
12798         PRUnichar * symlink,
12799         PRUint32 flagsSize,
12800         PRUint32* flags,
12801         PRUnichar * * target
12802     );
12803 
12804     nsresult (*WaitFor)(
12805         IGuestSession *pThis,
12806         PRUint32 waitFor,
12807         PRUint32 timeoutMS,
12808         PRUint32 * reason
12809     );
12810 
12811     nsresult (*WaitForArray)(
12812         IGuestSession *pThis,
12813         PRUint32 waitForSize,
12814         PRUint32* waitFor,
12815         PRUint32 timeoutMS,
12816         PRUint32 * reason
12817     );
12818 
12819     nsresult (*InternalAndReservedMethod1IGuestSession)(IGuestSession *pThis);
12820 
12821     nsresult (*InternalAndReservedMethod2IGuestSession)(IGuestSession *pThis);
12822 
12823     nsresult (*InternalAndReservedMethod3IGuestSession)(IGuestSession *pThis);
12824 
12825     nsresult (*InternalAndReservedMethod4IGuestSession)(IGuestSession *pThis);
12826 
12827     nsresult (*InternalAndReservedMethod5IGuestSession)(IGuestSession *pThis);
12828 
12829     nsresult (*InternalAndReservedMethod6IGuestSession)(IGuestSession *pThis);
12830 
12831     nsresult (*InternalAndReservedMethod7IGuestSession)(IGuestSession *pThis);
12832 
12833     nsresult (*InternalAndReservedMethod8IGuestSession)(IGuestSession *pThis);
12834 
12835 };
12836 #    define IGuestSession_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12837 #    define IGuestSession_AddRef(p) ((p)->lpVtbl->AddRef(p))
12838 #    define IGuestSession_Release(p) ((p)->lpVtbl->Release(p))
12839 #    define IGuestSession_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
12840 #    define IGuestSession_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
12841 #    define IGuestSession_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
12842 #    define IGuestSession_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
12843 #    define IGuestSession_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
12844 #    define IGuestSession_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
12845 #    define IGuestSession_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
12846 #    define IGuestSession_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
12847 #    define IGuestSession_get_Timeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
12848 #    define IGuestSession_GetTimeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
12849 #    define IGuestSession_put_Timeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
12850 #    define IGuestSession_SetTimeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
12851 #    define IGuestSession_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
12852 #    define IGuestSession_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
12853 #    define IGuestSession_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12854 #    define IGuestSession_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12855 #    define IGuestSession_get_EnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->GetEnvironmentChanges(p, aEnvironmentChanges))
12856 #    define IGuestSession_GetEnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->GetEnvironmentChanges(p, aEnvironmentChanges))
12857 #    define IGuestSession_put_EnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->SetEnvironmentChanges(p, aEnvironmentChanges))
12858 #    define IGuestSession_SetEnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->SetEnvironmentChanges(p, aEnvironmentChanges))
12859 #    define IGuestSession_get_EnvironmentBase(p, aEnvironmentBase) ((p)->lpVtbl->GetEnvironmentBase(p, aEnvironmentBase))
12860 #    define IGuestSession_GetEnvironmentBase(p, aEnvironmentBase) ((p)->lpVtbl->GetEnvironmentBase(p, aEnvironmentBase))
12861 #    define IGuestSession_get_Processes(p, aProcesses) ((p)->lpVtbl->GetProcesses(p, aProcesses))
12862 #    define IGuestSession_GetProcesses(p, aProcesses) ((p)->lpVtbl->GetProcesses(p, aProcesses))
12863 #    define IGuestSession_get_PathStyle(p, aPathStyle) ((p)->lpVtbl->GetPathStyle(p, aPathStyle))
12864 #    define IGuestSession_GetPathStyle(p, aPathStyle) ((p)->lpVtbl->GetPathStyle(p, aPathStyle))
12865 #    define IGuestSession_get_CurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->GetCurrentDirectory(p, aCurrentDirectory))
12866 #    define IGuestSession_GetCurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->GetCurrentDirectory(p, aCurrentDirectory))
12867 #    define IGuestSession_put_CurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->SetCurrentDirectory(p, aCurrentDirectory))
12868 #    define IGuestSession_SetCurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->SetCurrentDirectory(p, aCurrentDirectory))
12869 #    define IGuestSession_get_UserHome(p, aUserHome) ((p)->lpVtbl->GetUserHome(p, aUserHome))
12870 #    define IGuestSession_GetUserHome(p, aUserHome) ((p)->lpVtbl->GetUserHome(p, aUserHome))
12871 #    define IGuestSession_get_UserDocuments(p, aUserDocuments) ((p)->lpVtbl->GetUserDocuments(p, aUserDocuments))
12872 #    define IGuestSession_GetUserDocuments(p, aUserDocuments) ((p)->lpVtbl->GetUserDocuments(p, aUserDocuments))
12873 #    define IGuestSession_get_Directories(p, aDirectories) ((p)->lpVtbl->GetDirectories(p, aDirectories))
12874 #    define IGuestSession_GetDirectories(p, aDirectories) ((p)->lpVtbl->GetDirectories(p, aDirectories))
12875 #    define IGuestSession_get_Files(p, aFiles) ((p)->lpVtbl->GetFiles(p, aFiles))
12876 #    define IGuestSession_GetFiles(p, aFiles) ((p)->lpVtbl->GetFiles(p, aFiles))
12877 #    define IGuestSession_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12878 #    define IGuestSession_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12879 #    define IGuestSession_Close(p) ((p)->lpVtbl->Close(p))
12880 #    define IGuestSession_CopyFromGuest(p, aSources, aFilters, aFlags, aDestination, aProgress) ((p)->lpVtbl->CopyFromGuest(p, aSources, aFilters, aFlags, aDestination, aProgress))
12881 #    define IGuestSession_CopyToGuest(p, aSources, aFilters, aFlags, aDestination, aProgress) ((p)->lpVtbl->CopyToGuest(p, aSources, aFilters, aFlags, aDestination, aProgress))
12882 #    define IGuestSession_DirectoryCopy(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopy(p, aSource, aDestination, aFlags, aProgress))
12883 #    define IGuestSession_DirectoryCopyFromGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopyFromGuest(p, aSource, aDestination, aFlags, aProgress))
12884 #    define IGuestSession_DirectoryCopyToGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopyToGuest(p, aSource, aDestination, aFlags, aProgress))
12885 #    define IGuestSession_DirectoryCreate(p, aPath, aMode, aFlags) ((p)->lpVtbl->DirectoryCreate(p, aPath, aMode, aFlags))
12886 #    define IGuestSession_DirectoryCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aDirectory) ((p)->lpVtbl->DirectoryCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aDirectory))
12887 #    define IGuestSession_DirectoryExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->DirectoryExists(p, aPath, aFollowSymlinks, aExists))
12888 #    define IGuestSession_DirectoryOpen(p, aPath, aFilter, aFlags, aDirectory) ((p)->lpVtbl->DirectoryOpen(p, aPath, aFilter, aFlags, aDirectory))
12889 #    define IGuestSession_DirectoryRemove(p, aPath) ((p)->lpVtbl->DirectoryRemove(p, aPath))
12890 #    define IGuestSession_DirectoryRemoveRecursive(p, aPath, aFlags, aProgress) ((p)->lpVtbl->DirectoryRemoveRecursive(p, aPath, aFlags, aProgress))
12891 #    define IGuestSession_EnvironmentScheduleSet(p, aName, aValue) ((p)->lpVtbl->EnvironmentScheduleSet(p, aName, aValue))
12892 #    define IGuestSession_EnvironmentScheduleUnset(p, aName) ((p)->lpVtbl->EnvironmentScheduleUnset(p, aName))
12893 #    define IGuestSession_EnvironmentGetBaseVariable(p, aName, aValue) ((p)->lpVtbl->EnvironmentGetBaseVariable(p, aName, aValue))
12894 #    define IGuestSession_EnvironmentDoesBaseVariableExist(p, aName, aExists) ((p)->lpVtbl->EnvironmentDoesBaseVariableExist(p, aName, aExists))
12895 #    define IGuestSession_FileCopy(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopy(p, aSource, aDestination, aFlags, aProgress))
12896 #    define IGuestSession_FileCopyFromGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopyFromGuest(p, aSource, aDestination, aFlags, aProgress))
12897 #    define IGuestSession_FileCopyToGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopyToGuest(p, aSource, aDestination, aFlags, aProgress))
12898 #    define IGuestSession_FileCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aFile) ((p)->lpVtbl->FileCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aFile))
12899 #    define IGuestSession_FileExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->FileExists(p, aPath, aFollowSymlinks, aExists))
12900 #    define IGuestSession_FileOpen(p, aPath, aAccessMode, aOpenAction, aCreationMode, aFile) ((p)->lpVtbl->FileOpen(p, aPath, aAccessMode, aOpenAction, aCreationMode, aFile))
12901 #    define IGuestSession_FileOpenEx(p, aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlags, aFile) ((p)->lpVtbl->FileOpenEx(p, aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlags, aFile))
12902 #    define IGuestSession_FileQuerySize(p, aPath, aFollowSymlinks, aSize) ((p)->lpVtbl->FileQuerySize(p, aPath, aFollowSymlinks, aSize))
12903 #    define IGuestSession_FsObjExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->FsObjExists(p, aPath, aFollowSymlinks, aExists))
12904 #    define IGuestSession_FsObjQueryInfo(p, aPath, aFollowSymlinks, aInfo) ((p)->lpVtbl->FsObjQueryInfo(p, aPath, aFollowSymlinks, aInfo))
12905 #    define IGuestSession_FsObjRemove(p, aPath) ((p)->lpVtbl->FsObjRemove(p, aPath))
12906 #    define IGuestSession_FsObjRemoveArray(p, aPath, aProgress) ((p)->lpVtbl->FsObjRemoveArray(p, aPath, aProgress))
12907 #    define IGuestSession_FsObjRename(p, aOldPath, aNewPath, aFlags) ((p)->lpVtbl->FsObjRename(p, aOldPath, aNewPath, aFlags))
12908 #    define IGuestSession_FsObjMove(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FsObjMove(p, aSource, aDestination, aFlags, aProgress))
12909 #    define IGuestSession_FsObjMoveArray(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FsObjMoveArray(p, aSource, aDestination, aFlags, aProgress))
12910 #    define IGuestSession_FsObjCopyArray(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FsObjCopyArray(p, aSource, aDestination, aFlags, aProgress))
12911 #    define IGuestSession_FsObjSetACL(p, aPath, aFollowSymlinks, aAcl, aMode) ((p)->lpVtbl->FsObjSetACL(p, aPath, aFollowSymlinks, aAcl, aMode))
12912 #    define IGuestSession_ProcessCreate(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aGuestProcess) ((p)->lpVtbl->ProcessCreate(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aGuestProcess))
12913 #    define IGuestSession_ProcessCreateEx(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aPriority, aAffinity, aGuestProcess) ((p)->lpVtbl->ProcessCreateEx(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aPriority, aAffinity, aGuestProcess))
12914 #    define IGuestSession_ProcessGet(p, aPid, aGuestProcess) ((p)->lpVtbl->ProcessGet(p, aPid, aGuestProcess))
12915 #    define IGuestSession_SymlinkCreate(p, aSymlink, aTarget, aType) ((p)->lpVtbl->SymlinkCreate(p, aSymlink, aTarget, aType))
12916 #    define IGuestSession_SymlinkExists(p, aSymlink, aExists) ((p)->lpVtbl->SymlinkExists(p, aSymlink, aExists))
12917 #    define IGuestSession_SymlinkRead(p, aSymlink, aFlags, aTarget) ((p)->lpVtbl->SymlinkRead(p, aSymlink, aFlags, aTarget))
12918 #    define IGuestSession_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
12919 #    define IGuestSession_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
12920 #   endif /* VBOX_WITH_GLUE */
12921 
12922 interface IGuestSession
12923 {
12924 #   ifndef VBOX_WITH_GLUE
12925     struct IGuestSession_vtbl *vtbl;
12926 #   else /* VBOX_WITH_GLUE */
12927     CONST_VTBL struct IGuestSessionVtbl *lpVtbl;
12928 #   endif /* VBOX_WITH_GLUE */
12929 };
12930 /* End of struct IGuestSession declaration */
12931 
12932 
12933 /* Start of struct IProcess declaration */
12934 #   define IPROCESS_IID_STR "bc68370c-8a02-45f3-a07d-a67aa72756aa"
12935 #   define IPROCESS_IID { \
12936     0xbc68370c, 0x8a02, 0x45f3, \
12937     { 0xa0, 0x7d, 0xa6, 0x7a, 0xa7, 0x27, 0x56, 0xaa } \
12938 }
12939 /* COM compatibility */
12940 VBOX_EXTERN_CONST(nsIID, IID_IProcess);
12941 #   ifndef VBOX_WITH_GLUE
12942 struct IProcess_vtbl
12943 {
12944     struct nsISupports_vtbl nsisupports;
12945 
12946     nsresult (*GetArguments)(IProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
12947 
12948     nsresult (*GetEnvironment)(IProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
12949 
12950     nsresult (*GetEventSource)(IProcess *pThis, IEventSource * *eventSource);
12951 
12952     nsresult (*GetExecutablePath)(IProcess *pThis, PRUnichar * *executablePath);
12953 
12954     nsresult (*GetExitCode)(IProcess *pThis, PRInt32 *exitCode);
12955 
12956     nsresult (*GetName)(IProcess *pThis, PRUnichar * *name);
12957 
12958     nsresult (*GetPID)(IProcess *pThis, PRUint32 *PID);
12959 
12960     nsresult (*GetStatus)(IProcess *pThis, PRUint32 *status);
12961 
12962     nsresult (*GetInternalAndReservedAttribute1IProcess)(IProcess *pThis, PRUint32 *reserved);
12963 
12964     nsresult (*GetInternalAndReservedAttribute2IProcess)(IProcess *pThis, PRUint32 *reserved);
12965 
12966     nsresult (*GetInternalAndReservedAttribute3IProcess)(IProcess *pThis, PRUint32 *reserved);
12967 
12968     nsresult (*GetInternalAndReservedAttribute4IProcess)(IProcess *pThis, PRUint32 *reserved);
12969 
12970     nsresult (*GetInternalAndReservedAttribute5IProcess)(IProcess *pThis, PRUint32 *reserved);
12971 
12972     nsresult (*GetInternalAndReservedAttribute6IProcess)(IProcess *pThis, PRUint32 *reserved);
12973 
12974     nsresult (*GetInternalAndReservedAttribute7IProcess)(IProcess *pThis, PRUint32 *reserved);
12975 
12976     nsresult (*GetInternalAndReservedAttribute8IProcess)(IProcess *pThis, PRUint32 *reserved);
12977 
12978     nsresult (*WaitFor)(
12979         IProcess *pThis,
12980         PRUint32 waitFor,
12981         PRUint32 timeoutMS,
12982         PRUint32 * reason
12983     );
12984 
12985     nsresult (*WaitForArray)(
12986         IProcess *pThis,
12987         PRUint32 waitForSize,
12988         PRUint32* waitFor,
12989         PRUint32 timeoutMS,
12990         PRUint32 * reason
12991     );
12992 
12993     nsresult (*Read)(
12994         IProcess *pThis,
12995         PRUint32 handle,
12996         PRUint32 toRead,
12997         PRUint32 timeoutMS,
12998         PRUint32 *dataSize,
12999         PRUint8** data
13000     );
13001 
13002     nsresult (*Write)(
13003         IProcess *pThis,
13004         PRUint32 handle,
13005         PRUint32 flags,
13006         PRUint32 dataSize,
13007         PRUint8* data,
13008         PRUint32 timeoutMS,
13009         PRUint32 * written
13010     );
13011 
13012     nsresult (*WriteArray)(
13013         IProcess *pThis,
13014         PRUint32 handle,
13015         PRUint32 flagsSize,
13016         PRUint32* flags,
13017         PRUint32 dataSize,
13018         PRUint8* data,
13019         PRUint32 timeoutMS,
13020         PRUint32 * written
13021     );
13022 
13023     nsresult (*Terminate)(IProcess *pThis );
13024 
13025     nsresult (*InternalAndReservedMethod1IProcess)(IProcess *pThis);
13026 
13027     nsresult (*InternalAndReservedMethod2IProcess)(IProcess *pThis);
13028 
13029     nsresult (*InternalAndReservedMethod3IProcess)(IProcess *pThis);
13030 
13031     nsresult (*InternalAndReservedMethod4IProcess)(IProcess *pThis);
13032 
13033 };
13034 #   else /* VBOX_WITH_GLUE */
13035 struct IProcessVtbl
13036 {
13037     nsresult (*QueryInterface)(IProcess *pThis, const nsID *iid, void **resultp);
13038     nsrefcnt (*AddRef)(IProcess *pThis);
13039     nsrefcnt (*Release)(IProcess *pThis);
13040     nsresult (*GetArguments)(IProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
13041 
13042     nsresult (*GetEnvironment)(IProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
13043 
13044     nsresult (*GetEventSource)(IProcess *pThis, IEventSource * *eventSource);
13045 
13046     nsresult (*GetExecutablePath)(IProcess *pThis, PRUnichar * *executablePath);
13047 
13048     nsresult (*GetExitCode)(IProcess *pThis, PRInt32 *exitCode);
13049 
13050     nsresult (*GetName)(IProcess *pThis, PRUnichar * *name);
13051 
13052     nsresult (*GetPID)(IProcess *pThis, PRUint32 *PID);
13053 
13054     nsresult (*GetStatus)(IProcess *pThis, PRUint32 *status);
13055 
13056     nsresult (*GetInternalAndReservedAttribute1IProcess)(IProcess *pThis, PRUint32 *reserved);
13057 
13058     nsresult (*GetInternalAndReservedAttribute2IProcess)(IProcess *pThis, PRUint32 *reserved);
13059 
13060     nsresult (*GetInternalAndReservedAttribute3IProcess)(IProcess *pThis, PRUint32 *reserved);
13061 
13062     nsresult (*GetInternalAndReservedAttribute4IProcess)(IProcess *pThis, PRUint32 *reserved);
13063 
13064     nsresult (*GetInternalAndReservedAttribute5IProcess)(IProcess *pThis, PRUint32 *reserved);
13065 
13066     nsresult (*GetInternalAndReservedAttribute6IProcess)(IProcess *pThis, PRUint32 *reserved);
13067 
13068     nsresult (*GetInternalAndReservedAttribute7IProcess)(IProcess *pThis, PRUint32 *reserved);
13069 
13070     nsresult (*GetInternalAndReservedAttribute8IProcess)(IProcess *pThis, PRUint32 *reserved);
13071 
13072     nsresult (*WaitFor)(
13073         IProcess *pThis,
13074         PRUint32 waitFor,
13075         PRUint32 timeoutMS,
13076         PRUint32 * reason
13077     );
13078 
13079     nsresult (*WaitForArray)(
13080         IProcess *pThis,
13081         PRUint32 waitForSize,
13082         PRUint32* waitFor,
13083         PRUint32 timeoutMS,
13084         PRUint32 * reason
13085     );
13086 
13087     nsresult (*Read)(
13088         IProcess *pThis,
13089         PRUint32 handle,
13090         PRUint32 toRead,
13091         PRUint32 timeoutMS,
13092         PRUint32 *dataSize,
13093         PRUint8** data
13094     );
13095 
13096     nsresult (*Write)(
13097         IProcess *pThis,
13098         PRUint32 handle,
13099         PRUint32 flags,
13100         PRUint32 dataSize,
13101         PRUint8* data,
13102         PRUint32 timeoutMS,
13103         PRUint32 * written
13104     );
13105 
13106     nsresult (*WriteArray)(
13107         IProcess *pThis,
13108         PRUint32 handle,
13109         PRUint32 flagsSize,
13110         PRUint32* flags,
13111         PRUint32 dataSize,
13112         PRUint8* data,
13113         PRUint32 timeoutMS,
13114         PRUint32 * written
13115     );
13116 
13117     nsresult (*Terminate)(IProcess *pThis );
13118 
13119     nsresult (*InternalAndReservedMethod1IProcess)(IProcess *pThis);
13120 
13121     nsresult (*InternalAndReservedMethod2IProcess)(IProcess *pThis);
13122 
13123     nsresult (*InternalAndReservedMethod3IProcess)(IProcess *pThis);
13124 
13125     nsresult (*InternalAndReservedMethod4IProcess)(IProcess *pThis);
13126 
13127 };
13128 #    define IProcess_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13129 #    define IProcess_AddRef(p) ((p)->lpVtbl->AddRef(p))
13130 #    define IProcess_Release(p) ((p)->lpVtbl->Release(p))
13131 #    define IProcess_get_Arguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
13132 #    define IProcess_GetArguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
13133 #    define IProcess_get_Environment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
13134 #    define IProcess_GetEnvironment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
13135 #    define IProcess_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13136 #    define IProcess_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13137 #    define IProcess_get_ExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
13138 #    define IProcess_GetExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
13139 #    define IProcess_get_ExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
13140 #    define IProcess_GetExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
13141 #    define IProcess_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
13142 #    define IProcess_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
13143 #    define IProcess_get_PID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
13144 #    define IProcess_GetPID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
13145 #    define IProcess_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13146 #    define IProcess_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13147 #    define IProcess_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
13148 #    define IProcess_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
13149 #    define IProcess_Read(p, aHandle, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aHandle, aToRead, aTimeoutMS, aData))
13150 #    define IProcess_Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
13151 #    define IProcess_WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
13152 #    define IProcess_Terminate(p) ((p)->lpVtbl->Terminate(p))
13153 #   endif /* VBOX_WITH_GLUE */
13154 
13155 interface IProcess
13156 {
13157 #   ifndef VBOX_WITH_GLUE
13158     struct IProcess_vtbl *vtbl;
13159 #   else /* VBOX_WITH_GLUE */
13160     CONST_VTBL struct IProcessVtbl *lpVtbl;
13161 #   endif /* VBOX_WITH_GLUE */
13162 };
13163 /* End of struct IProcess declaration */
13164 
13165 
13166 /* Start of struct IGuestProcess declaration */
13167 #   define IGUESTPROCESS_IID_STR "35cf4b3f-4453-4f3e-c9b8-5686939c80b6"
13168 #   define IGUESTPROCESS_IID { \
13169     0x35cf4b3f, 0x4453, 0x4f3e, \
13170     { 0xc9, 0xb8, 0x56, 0x86, 0x93, 0x9c, 0x80, 0xb6 } \
13171 }
13172 /* COM compatibility */
13173 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcess);
13174 #   ifndef VBOX_WITH_GLUE
13175 struct IGuestProcess_vtbl
13176 {
13177     struct IProcess_vtbl iprocess;
13178 
13179     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestProcess *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13180 
13181 };
13182 #   else /* VBOX_WITH_GLUE */
13183 struct IGuestProcessVtbl
13184 {
13185     nsresult (*QueryInterface)(IGuestProcess *pThis, const nsID *iid, void **resultp);
13186     nsrefcnt (*AddRef)(IGuestProcess *pThis);
13187     nsrefcnt (*Release)(IGuestProcess *pThis);
13188     nsresult (*GetArguments)(IGuestProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
13189 
13190     nsresult (*GetEnvironment)(IGuestProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
13191 
13192     nsresult (*GetEventSource)(IGuestProcess *pThis, IEventSource * *eventSource);
13193 
13194     nsresult (*GetExecutablePath)(IGuestProcess *pThis, PRUnichar * *executablePath);
13195 
13196     nsresult (*GetExitCode)(IGuestProcess *pThis, PRInt32 *exitCode);
13197 
13198     nsresult (*GetName)(IGuestProcess *pThis, PRUnichar * *name);
13199 
13200     nsresult (*GetPID)(IGuestProcess *pThis, PRUint32 *PID);
13201 
13202     nsresult (*GetStatus)(IGuestProcess *pThis, PRUint32 *status);
13203 
13204     nsresult (*GetInternalAndReservedAttribute1IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13205 
13206     nsresult (*GetInternalAndReservedAttribute2IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13207 
13208     nsresult (*GetInternalAndReservedAttribute3IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13209 
13210     nsresult (*GetInternalAndReservedAttribute4IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13211 
13212     nsresult (*GetInternalAndReservedAttribute5IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13213 
13214     nsresult (*GetInternalAndReservedAttribute6IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13215 
13216     nsresult (*GetInternalAndReservedAttribute7IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13217 
13218     nsresult (*GetInternalAndReservedAttribute8IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
13219 
13220     nsresult (*WaitFor)(
13221         IGuestProcess *pThis,
13222         PRUint32 waitFor,
13223         PRUint32 timeoutMS,
13224         PRUint32 * reason
13225     );
13226 
13227     nsresult (*WaitForArray)(
13228         IGuestProcess *pThis,
13229         PRUint32 waitForSize,
13230         PRUint32* waitFor,
13231         PRUint32 timeoutMS,
13232         PRUint32 * reason
13233     );
13234 
13235     nsresult (*Read)(
13236         IGuestProcess *pThis,
13237         PRUint32 handle,
13238         PRUint32 toRead,
13239         PRUint32 timeoutMS,
13240         PRUint32 *dataSize,
13241         PRUint8** data
13242     );
13243 
13244     nsresult (*Write)(
13245         IGuestProcess *pThis,
13246         PRUint32 handle,
13247         PRUint32 flags,
13248         PRUint32 dataSize,
13249         PRUint8* data,
13250         PRUint32 timeoutMS,
13251         PRUint32 * written
13252     );
13253 
13254     nsresult (*WriteArray)(
13255         IGuestProcess *pThis,
13256         PRUint32 handle,
13257         PRUint32 flagsSize,
13258         PRUint32* flags,
13259         PRUint32 dataSize,
13260         PRUint8* data,
13261         PRUint32 timeoutMS,
13262         PRUint32 * written
13263     );
13264 
13265     nsresult (*Terminate)(IGuestProcess *pThis );
13266 
13267     nsresult (*InternalAndReservedMethod1IProcess)(IGuestProcess *pThis);
13268 
13269     nsresult (*InternalAndReservedMethod2IProcess)(IGuestProcess *pThis);
13270 
13271     nsresult (*InternalAndReservedMethod3IProcess)(IGuestProcess *pThis);
13272 
13273     nsresult (*InternalAndReservedMethod4IProcess)(IGuestProcess *pThis);
13274 
13275     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestProcess *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13276 
13277 };
13278 #    define IGuestProcess_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13279 #    define IGuestProcess_AddRef(p) ((p)->lpVtbl->AddRef(p))
13280 #    define IGuestProcess_Release(p) ((p)->lpVtbl->Release(p))
13281 #    define IGuestProcess_get_Arguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
13282 #    define IGuestProcess_GetArguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
13283 #    define IGuestProcess_get_Environment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
13284 #    define IGuestProcess_GetEnvironment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
13285 #    define IGuestProcess_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13286 #    define IGuestProcess_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13287 #    define IGuestProcess_get_ExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
13288 #    define IGuestProcess_GetExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
13289 #    define IGuestProcess_get_ExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
13290 #    define IGuestProcess_GetExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
13291 #    define IGuestProcess_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
13292 #    define IGuestProcess_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
13293 #    define IGuestProcess_get_PID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
13294 #    define IGuestProcess_GetPID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
13295 #    define IGuestProcess_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13296 #    define IGuestProcess_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13297 #    define IGuestProcess_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
13298 #    define IGuestProcess_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
13299 #    define IGuestProcess_Read(p, aHandle, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aHandle, aToRead, aTimeoutMS, aData))
13300 #    define IGuestProcess_Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
13301 #    define IGuestProcess_WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
13302 #    define IGuestProcess_Terminate(p) ((p)->lpVtbl->Terminate(p))
13303 #    define IGuestProcess_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13304 #    define IGuestProcess_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13305 #   endif /* VBOX_WITH_GLUE */
13306 
13307 interface IGuestProcess
13308 {
13309 #   ifndef VBOX_WITH_GLUE
13310     struct IGuestProcess_vtbl *vtbl;
13311 #   else /* VBOX_WITH_GLUE */
13312     CONST_VTBL struct IGuestProcessVtbl *lpVtbl;
13313 #   endif /* VBOX_WITH_GLUE */
13314 };
13315 /* End of struct IGuestProcess declaration */
13316 
13317 
13318 /* Start of struct IDirectory declaration */
13319 #   define IDIRECTORY_IID_STR "758d7eac-e4b1-486a-8f2e-747ae346c3e9"
13320 #   define IDIRECTORY_IID { \
13321     0x758d7eac, 0xe4b1, 0x486a, \
13322     { 0x8f, 0x2e, 0x74, 0x7a, 0xe3, 0x46, 0xc3, 0xe9 } \
13323 }
13324 /* COM compatibility */
13325 VBOX_EXTERN_CONST(nsIID, IID_IDirectory);
13326 #   ifndef VBOX_WITH_GLUE
13327 struct IDirectory_vtbl
13328 {
13329     struct nsISupports_vtbl nsisupports;
13330 
13331     nsresult (*GetDirectoryName)(IDirectory *pThis, PRUnichar * *directoryName);
13332 
13333     nsresult (*GetFilter)(IDirectory *pThis, PRUnichar * *filter);
13334 
13335     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13336 
13337     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13338 
13339     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13340 
13341     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13342 
13343     nsresult (*GetInternalAndReservedAttribute5IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13344 
13345     nsresult (*GetInternalAndReservedAttribute6IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13346 
13347     nsresult (*GetInternalAndReservedAttribute7IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13348 
13349     nsresult (*GetInternalAndReservedAttribute8IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13350 
13351     nsresult (*Close)(IDirectory *pThis );
13352 
13353     nsresult (*Read)(
13354         IDirectory *pThis,
13355         IFsObjInfo * * objInfo
13356     );
13357 
13358     nsresult (*InternalAndReservedMethod1IDirectory)(IDirectory *pThis);
13359 
13360     nsresult (*InternalAndReservedMethod2IDirectory)(IDirectory *pThis);
13361 
13362     nsresult (*InternalAndReservedMethod3IDirectory)(IDirectory *pThis);
13363 
13364     nsresult (*InternalAndReservedMethod4IDirectory)(IDirectory *pThis);
13365 
13366 };
13367 #   else /* VBOX_WITH_GLUE */
13368 struct IDirectoryVtbl
13369 {
13370     nsresult (*QueryInterface)(IDirectory *pThis, const nsID *iid, void **resultp);
13371     nsrefcnt (*AddRef)(IDirectory *pThis);
13372     nsrefcnt (*Release)(IDirectory *pThis);
13373     nsresult (*GetDirectoryName)(IDirectory *pThis, PRUnichar * *directoryName);
13374 
13375     nsresult (*GetFilter)(IDirectory *pThis, PRUnichar * *filter);
13376 
13377     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13378 
13379     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13380 
13381     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13382 
13383     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13384 
13385     nsresult (*GetInternalAndReservedAttribute5IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13386 
13387     nsresult (*GetInternalAndReservedAttribute6IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13388 
13389     nsresult (*GetInternalAndReservedAttribute7IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13390 
13391     nsresult (*GetInternalAndReservedAttribute8IDirectory)(IDirectory *pThis, PRUint32 *reserved);
13392 
13393     nsresult (*Close)(IDirectory *pThis );
13394 
13395     nsresult (*Read)(
13396         IDirectory *pThis,
13397         IFsObjInfo * * objInfo
13398     );
13399 
13400     nsresult (*InternalAndReservedMethod1IDirectory)(IDirectory *pThis);
13401 
13402     nsresult (*InternalAndReservedMethod2IDirectory)(IDirectory *pThis);
13403 
13404     nsresult (*InternalAndReservedMethod3IDirectory)(IDirectory *pThis);
13405 
13406     nsresult (*InternalAndReservedMethod4IDirectory)(IDirectory *pThis);
13407 
13408 };
13409 #    define IDirectory_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13410 #    define IDirectory_AddRef(p) ((p)->lpVtbl->AddRef(p))
13411 #    define IDirectory_Release(p) ((p)->lpVtbl->Release(p))
13412 #    define IDirectory_get_DirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
13413 #    define IDirectory_GetDirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
13414 #    define IDirectory_get_Filter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
13415 #    define IDirectory_GetFilter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
13416 #    define IDirectory_Close(p) ((p)->lpVtbl->Close(p))
13417 #    define IDirectory_Read(p, aObjInfo) ((p)->lpVtbl->Read(p, aObjInfo))
13418 #   endif /* VBOX_WITH_GLUE */
13419 
13420 interface IDirectory
13421 {
13422 #   ifndef VBOX_WITH_GLUE
13423     struct IDirectory_vtbl *vtbl;
13424 #   else /* VBOX_WITH_GLUE */
13425     CONST_VTBL struct IDirectoryVtbl *lpVtbl;
13426 #   endif /* VBOX_WITH_GLUE */
13427 };
13428 /* End of struct IDirectory declaration */
13429 
13430 
13431 /* Start of struct IGuestDirectory declaration */
13432 #   define IGUESTDIRECTORY_IID_STR "cc830458-4974-a19c-4dc6-cc98c2269626"
13433 #   define IGUESTDIRECTORY_IID { \
13434     0xcc830458, 0x4974, 0xa19c, \
13435     { 0x4d, 0xc6, 0xcc, 0x98, 0xc2, 0x26, 0x96, 0x26 } \
13436 }
13437 /* COM compatibility */
13438 VBOX_EXTERN_CONST(nsIID, IID_IGuestDirectory);
13439 #   ifndef VBOX_WITH_GLUE
13440 struct IGuestDirectory_vtbl
13441 {
13442     struct IDirectory_vtbl idirectory;
13443 
13444     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDirectory *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13445 
13446 };
13447 #   else /* VBOX_WITH_GLUE */
13448 struct IGuestDirectoryVtbl
13449 {
13450     nsresult (*QueryInterface)(IGuestDirectory *pThis, const nsID *iid, void **resultp);
13451     nsrefcnt (*AddRef)(IGuestDirectory *pThis);
13452     nsrefcnt (*Release)(IGuestDirectory *pThis);
13453     nsresult (*GetDirectoryName)(IGuestDirectory *pThis, PRUnichar * *directoryName);
13454 
13455     nsresult (*GetFilter)(IGuestDirectory *pThis, PRUnichar * *filter);
13456 
13457     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13458 
13459     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13460 
13461     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13462 
13463     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13464 
13465     nsresult (*GetInternalAndReservedAttribute5IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13466 
13467     nsresult (*GetInternalAndReservedAttribute6IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13468 
13469     nsresult (*GetInternalAndReservedAttribute7IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13470 
13471     nsresult (*GetInternalAndReservedAttribute8IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
13472 
13473     nsresult (*Close)(IGuestDirectory *pThis );
13474 
13475     nsresult (*Read)(
13476         IGuestDirectory *pThis,
13477         IFsObjInfo * * objInfo
13478     );
13479 
13480     nsresult (*InternalAndReservedMethod1IDirectory)(IGuestDirectory *pThis);
13481 
13482     nsresult (*InternalAndReservedMethod2IDirectory)(IGuestDirectory *pThis);
13483 
13484     nsresult (*InternalAndReservedMethod3IDirectory)(IGuestDirectory *pThis);
13485 
13486     nsresult (*InternalAndReservedMethod4IDirectory)(IGuestDirectory *pThis);
13487 
13488     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDirectory *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13489 
13490 };
13491 #    define IGuestDirectory_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13492 #    define IGuestDirectory_AddRef(p) ((p)->lpVtbl->AddRef(p))
13493 #    define IGuestDirectory_Release(p) ((p)->lpVtbl->Release(p))
13494 #    define IGuestDirectory_get_DirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
13495 #    define IGuestDirectory_GetDirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
13496 #    define IGuestDirectory_get_Filter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
13497 #    define IGuestDirectory_GetFilter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
13498 #    define IGuestDirectory_Close(p) ((p)->lpVtbl->Close(p))
13499 #    define IGuestDirectory_Read(p, aObjInfo) ((p)->lpVtbl->Read(p, aObjInfo))
13500 #    define IGuestDirectory_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13501 #    define IGuestDirectory_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13502 #   endif /* VBOX_WITH_GLUE */
13503 
13504 interface IGuestDirectory
13505 {
13506 #   ifndef VBOX_WITH_GLUE
13507     struct IGuestDirectory_vtbl *vtbl;
13508 #   else /* VBOX_WITH_GLUE */
13509     CONST_VTBL struct IGuestDirectoryVtbl *lpVtbl;
13510 #   endif /* VBOX_WITH_GLUE */
13511 };
13512 /* End of struct IGuestDirectory declaration */
13513 
13514 
13515 /* Start of struct IFile declaration */
13516 #   define IFILE_IID_STR "59a235ac-2f1a-4d6c-81fc-e3fa843f49ae"
13517 #   define IFILE_IID { \
13518     0x59a235ac, 0x2f1a, 0x4d6c, \
13519     { 0x81, 0xfc, 0xe3, 0xfa, 0x84, 0x3f, 0x49, 0xae } \
13520 }
13521 /* COM compatibility */
13522 VBOX_EXTERN_CONST(nsIID, IID_IFile);
13523 #   ifndef VBOX_WITH_GLUE
13524 struct IFile_vtbl
13525 {
13526     struct nsISupports_vtbl nsisupports;
13527 
13528     nsresult (*GetEventSource)(IFile *pThis, IEventSource * *eventSource);
13529 
13530     nsresult (*GetId)(IFile *pThis, PRUint32 *id);
13531 
13532     nsresult (*GetInitialSize)(IFile *pThis, PRInt64 *initialSize);
13533 
13534     nsresult (*GetOffset)(IFile *pThis, PRInt64 *offset);
13535 
13536     nsresult (*GetStatus)(IFile *pThis, PRUint32 *status);
13537 
13538     nsresult (*GetFilename)(IFile *pThis, PRUnichar * *filename);
13539 
13540     nsresult (*GetCreationMode)(IFile *pThis, PRUint32 *creationMode);
13541 
13542     nsresult (*GetOpenAction)(IFile *pThis, PRUint32 *openAction);
13543 
13544     nsresult (*GetAccessMode)(IFile *pThis, PRUint32 *accessMode);
13545 
13546     nsresult (*GetInternalAndReservedAttribute1IFile)(IFile *pThis, PRUint32 *reserved);
13547 
13548     nsresult (*GetInternalAndReservedAttribute2IFile)(IFile *pThis, PRUint32 *reserved);
13549 
13550     nsresult (*GetInternalAndReservedAttribute3IFile)(IFile *pThis, PRUint32 *reserved);
13551 
13552     nsresult (*GetInternalAndReservedAttribute4IFile)(IFile *pThis, PRUint32 *reserved);
13553 
13554     nsresult (*GetInternalAndReservedAttribute5IFile)(IFile *pThis, PRUint32 *reserved);
13555 
13556     nsresult (*GetInternalAndReservedAttribute6IFile)(IFile *pThis, PRUint32 *reserved);
13557 
13558     nsresult (*GetInternalAndReservedAttribute7IFile)(IFile *pThis, PRUint32 *reserved);
13559 
13560     nsresult (*GetInternalAndReservedAttribute8IFile)(IFile *pThis, PRUint32 *reserved);
13561 
13562     nsresult (*Close)(IFile *pThis );
13563 
13564     nsresult (*QueryInfo)(
13565         IFile *pThis,
13566         IFsObjInfo * * objInfo
13567     );
13568 
13569     nsresult (*QuerySize)(
13570         IFile *pThis,
13571         PRInt64 * size
13572     );
13573 
13574     nsresult (*Read)(
13575         IFile *pThis,
13576         PRUint32 toRead,
13577         PRUint32 timeoutMS,
13578         PRUint32 *dataSize,
13579         PRUint8** data
13580     );
13581 
13582     nsresult (*ReadAt)(
13583         IFile *pThis,
13584         PRInt64 offset,
13585         PRUint32 toRead,
13586         PRUint32 timeoutMS,
13587         PRUint32 *dataSize,
13588         PRUint8** data
13589     );
13590 
13591     nsresult (*Seek)(
13592         IFile *pThis,
13593         PRInt64 offset,
13594         PRUint32 whence,
13595         PRInt64 * newOffset
13596     );
13597 
13598     nsresult (*SetACL)(
13599         IFile *pThis,
13600         PRUnichar * acl,
13601         PRUint32 mode
13602     );
13603 
13604     nsresult (*SetSize)(
13605         IFile *pThis,
13606         PRInt64 size
13607     );
13608 
13609     nsresult (*Write)(
13610         IFile *pThis,
13611         PRUint32 dataSize,
13612         PRUint8* data,
13613         PRUint32 timeoutMS,
13614         PRUint32 * written
13615     );
13616 
13617     nsresult (*WriteAt)(
13618         IFile *pThis,
13619         PRInt64 offset,
13620         PRUint32 dataSize,
13621         PRUint8* data,
13622         PRUint32 timeoutMS,
13623         PRUint32 * written
13624     );
13625 
13626     nsresult (*InternalAndReservedMethod1IFile)(IFile *pThis);
13627 
13628     nsresult (*InternalAndReservedMethod2IFile)(IFile *pThis);
13629 
13630     nsresult (*InternalAndReservedMethod3IFile)(IFile *pThis);
13631 
13632     nsresult (*InternalAndReservedMethod4IFile)(IFile *pThis);
13633 
13634 };
13635 #   else /* VBOX_WITH_GLUE */
13636 struct IFileVtbl
13637 {
13638     nsresult (*QueryInterface)(IFile *pThis, const nsID *iid, void **resultp);
13639     nsrefcnt (*AddRef)(IFile *pThis);
13640     nsrefcnt (*Release)(IFile *pThis);
13641     nsresult (*GetEventSource)(IFile *pThis, IEventSource * *eventSource);
13642 
13643     nsresult (*GetId)(IFile *pThis, PRUint32 *id);
13644 
13645     nsresult (*GetInitialSize)(IFile *pThis, PRInt64 *initialSize);
13646 
13647     nsresult (*GetOffset)(IFile *pThis, PRInt64 *offset);
13648 
13649     nsresult (*GetStatus)(IFile *pThis, PRUint32 *status);
13650 
13651     nsresult (*GetFilename)(IFile *pThis, PRUnichar * *filename);
13652 
13653     nsresult (*GetCreationMode)(IFile *pThis, PRUint32 *creationMode);
13654 
13655     nsresult (*GetOpenAction)(IFile *pThis, PRUint32 *openAction);
13656 
13657     nsresult (*GetAccessMode)(IFile *pThis, PRUint32 *accessMode);
13658 
13659     nsresult (*GetInternalAndReservedAttribute1IFile)(IFile *pThis, PRUint32 *reserved);
13660 
13661     nsresult (*GetInternalAndReservedAttribute2IFile)(IFile *pThis, PRUint32 *reserved);
13662 
13663     nsresult (*GetInternalAndReservedAttribute3IFile)(IFile *pThis, PRUint32 *reserved);
13664 
13665     nsresult (*GetInternalAndReservedAttribute4IFile)(IFile *pThis, PRUint32 *reserved);
13666 
13667     nsresult (*GetInternalAndReservedAttribute5IFile)(IFile *pThis, PRUint32 *reserved);
13668 
13669     nsresult (*GetInternalAndReservedAttribute6IFile)(IFile *pThis, PRUint32 *reserved);
13670 
13671     nsresult (*GetInternalAndReservedAttribute7IFile)(IFile *pThis, PRUint32 *reserved);
13672 
13673     nsresult (*GetInternalAndReservedAttribute8IFile)(IFile *pThis, PRUint32 *reserved);
13674 
13675     nsresult (*Close)(IFile *pThis );
13676 
13677     nsresult (*QueryInfo)(
13678         IFile *pThis,
13679         IFsObjInfo * * objInfo
13680     );
13681 
13682     nsresult (*QuerySize)(
13683         IFile *pThis,
13684         PRInt64 * size
13685     );
13686 
13687     nsresult (*Read)(
13688         IFile *pThis,
13689         PRUint32 toRead,
13690         PRUint32 timeoutMS,
13691         PRUint32 *dataSize,
13692         PRUint8** data
13693     );
13694 
13695     nsresult (*ReadAt)(
13696         IFile *pThis,
13697         PRInt64 offset,
13698         PRUint32 toRead,
13699         PRUint32 timeoutMS,
13700         PRUint32 *dataSize,
13701         PRUint8** data
13702     );
13703 
13704     nsresult (*Seek)(
13705         IFile *pThis,
13706         PRInt64 offset,
13707         PRUint32 whence,
13708         PRInt64 * newOffset
13709     );
13710 
13711     nsresult (*SetACL)(
13712         IFile *pThis,
13713         PRUnichar * acl,
13714         PRUint32 mode
13715     );
13716 
13717     nsresult (*SetSize)(
13718         IFile *pThis,
13719         PRInt64 size
13720     );
13721 
13722     nsresult (*Write)(
13723         IFile *pThis,
13724         PRUint32 dataSize,
13725         PRUint8* data,
13726         PRUint32 timeoutMS,
13727         PRUint32 * written
13728     );
13729 
13730     nsresult (*WriteAt)(
13731         IFile *pThis,
13732         PRInt64 offset,
13733         PRUint32 dataSize,
13734         PRUint8* data,
13735         PRUint32 timeoutMS,
13736         PRUint32 * written
13737     );
13738 
13739     nsresult (*InternalAndReservedMethod1IFile)(IFile *pThis);
13740 
13741     nsresult (*InternalAndReservedMethod2IFile)(IFile *pThis);
13742 
13743     nsresult (*InternalAndReservedMethod3IFile)(IFile *pThis);
13744 
13745     nsresult (*InternalAndReservedMethod4IFile)(IFile *pThis);
13746 
13747 };
13748 #    define IFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13749 #    define IFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
13750 #    define IFile_Release(p) ((p)->lpVtbl->Release(p))
13751 #    define IFile_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13752 #    define IFile_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13753 #    define IFile_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
13754 #    define IFile_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
13755 #    define IFile_get_InitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
13756 #    define IFile_GetInitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
13757 #    define IFile_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
13758 #    define IFile_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
13759 #    define IFile_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13760 #    define IFile_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13761 #    define IFile_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
13762 #    define IFile_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
13763 #    define IFile_get_CreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
13764 #    define IFile_GetCreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
13765 #    define IFile_get_OpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
13766 #    define IFile_GetOpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
13767 #    define IFile_get_AccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
13768 #    define IFile_GetAccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
13769 #    define IFile_Close(p) ((p)->lpVtbl->Close(p))
13770 #    define IFile_QueryInfo(p, aObjInfo) ((p)->lpVtbl->QueryInfo(p, aObjInfo))
13771 #    define IFile_QuerySize(p, aSize) ((p)->lpVtbl->QuerySize(p, aSize))
13772 #    define IFile_Read(p, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aToRead, aTimeoutMS, aData))
13773 #    define IFile_ReadAt(p, aOffset, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->ReadAt(p, aOffset, aToRead, aTimeoutMS, aData))
13774 #    define IFile_Seek(p, aOffset, aWhence, aNewOffset) ((p)->lpVtbl->Seek(p, aOffset, aWhence, aNewOffset))
13775 #    define IFile_SetACL(p, aAcl, aMode) ((p)->lpVtbl->SetACL(p, aAcl, aMode))
13776 #    define IFile_SetSize(p, aSize) ((p)->lpVtbl->SetSize(p, aSize))
13777 #    define IFile_Write(p, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aData, aTimeoutMS, aWritten))
13778 #    define IFile_WriteAt(p, aOffset, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteAt(p, aOffset, aData, aTimeoutMS, aWritten))
13779 #   endif /* VBOX_WITH_GLUE */
13780 
13781 interface IFile
13782 {
13783 #   ifndef VBOX_WITH_GLUE
13784     struct IFile_vtbl *vtbl;
13785 #   else /* VBOX_WITH_GLUE */
13786     CONST_VTBL struct IFileVtbl *lpVtbl;
13787 #   endif /* VBOX_WITH_GLUE */
13788 };
13789 /* End of struct IFile declaration */
13790 
13791 
13792 /* Start of struct IGuestFile declaration */
13793 #   define IGUESTFILE_IID_STR "92f21dc0-44de-1653-b717-2ebf0ca9b664"
13794 #   define IGUESTFILE_IID { \
13795     0x92f21dc0, 0x44de, 0x1653, \
13796     { 0xb7, 0x17, 0x2e, 0xbf, 0x0c, 0xa9, 0xb6, 0x64 } \
13797 }
13798 /* COM compatibility */
13799 VBOX_EXTERN_CONST(nsIID, IID_IGuestFile);
13800 #   ifndef VBOX_WITH_GLUE
13801 struct IGuestFile_vtbl
13802 {
13803     struct IFile_vtbl ifile;
13804 
13805     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFile *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13806 
13807 };
13808 #   else /* VBOX_WITH_GLUE */
13809 struct IGuestFileVtbl
13810 {
13811     nsresult (*QueryInterface)(IGuestFile *pThis, const nsID *iid, void **resultp);
13812     nsrefcnt (*AddRef)(IGuestFile *pThis);
13813     nsrefcnt (*Release)(IGuestFile *pThis);
13814     nsresult (*GetEventSource)(IGuestFile *pThis, IEventSource * *eventSource);
13815 
13816     nsresult (*GetId)(IGuestFile *pThis, PRUint32 *id);
13817 
13818     nsresult (*GetInitialSize)(IGuestFile *pThis, PRInt64 *initialSize);
13819 
13820     nsresult (*GetOffset)(IGuestFile *pThis, PRInt64 *offset);
13821 
13822     nsresult (*GetStatus)(IGuestFile *pThis, PRUint32 *status);
13823 
13824     nsresult (*GetFilename)(IGuestFile *pThis, PRUnichar * *filename);
13825 
13826     nsresult (*GetCreationMode)(IGuestFile *pThis, PRUint32 *creationMode);
13827 
13828     nsresult (*GetOpenAction)(IGuestFile *pThis, PRUint32 *openAction);
13829 
13830     nsresult (*GetAccessMode)(IGuestFile *pThis, PRUint32 *accessMode);
13831 
13832     nsresult (*GetInternalAndReservedAttribute1IFile)(IGuestFile *pThis, PRUint32 *reserved);
13833 
13834     nsresult (*GetInternalAndReservedAttribute2IFile)(IGuestFile *pThis, PRUint32 *reserved);
13835 
13836     nsresult (*GetInternalAndReservedAttribute3IFile)(IGuestFile *pThis, PRUint32 *reserved);
13837 
13838     nsresult (*GetInternalAndReservedAttribute4IFile)(IGuestFile *pThis, PRUint32 *reserved);
13839 
13840     nsresult (*GetInternalAndReservedAttribute5IFile)(IGuestFile *pThis, PRUint32 *reserved);
13841 
13842     nsresult (*GetInternalAndReservedAttribute6IFile)(IGuestFile *pThis, PRUint32 *reserved);
13843 
13844     nsresult (*GetInternalAndReservedAttribute7IFile)(IGuestFile *pThis, PRUint32 *reserved);
13845 
13846     nsresult (*GetInternalAndReservedAttribute8IFile)(IGuestFile *pThis, PRUint32 *reserved);
13847 
13848     nsresult (*Close)(IGuestFile *pThis );
13849 
13850     nsresult (*QueryInfo)(
13851         IGuestFile *pThis,
13852         IFsObjInfo * * objInfo
13853     );
13854 
13855     nsresult (*QuerySize)(
13856         IGuestFile *pThis,
13857         PRInt64 * size
13858     );
13859 
13860     nsresult (*Read)(
13861         IGuestFile *pThis,
13862         PRUint32 toRead,
13863         PRUint32 timeoutMS,
13864         PRUint32 *dataSize,
13865         PRUint8** data
13866     );
13867 
13868     nsresult (*ReadAt)(
13869         IGuestFile *pThis,
13870         PRInt64 offset,
13871         PRUint32 toRead,
13872         PRUint32 timeoutMS,
13873         PRUint32 *dataSize,
13874         PRUint8** data
13875     );
13876 
13877     nsresult (*Seek)(
13878         IGuestFile *pThis,
13879         PRInt64 offset,
13880         PRUint32 whence,
13881         PRInt64 * newOffset
13882     );
13883 
13884     nsresult (*SetACL)(
13885         IGuestFile *pThis,
13886         PRUnichar * acl,
13887         PRUint32 mode
13888     );
13889 
13890     nsresult (*SetSize)(
13891         IGuestFile *pThis,
13892         PRInt64 size
13893     );
13894 
13895     nsresult (*Write)(
13896         IGuestFile *pThis,
13897         PRUint32 dataSize,
13898         PRUint8* data,
13899         PRUint32 timeoutMS,
13900         PRUint32 * written
13901     );
13902 
13903     nsresult (*WriteAt)(
13904         IGuestFile *pThis,
13905         PRInt64 offset,
13906         PRUint32 dataSize,
13907         PRUint8* data,
13908         PRUint32 timeoutMS,
13909         PRUint32 * written
13910     );
13911 
13912     nsresult (*InternalAndReservedMethod1IFile)(IGuestFile *pThis);
13913 
13914     nsresult (*InternalAndReservedMethod2IFile)(IGuestFile *pThis);
13915 
13916     nsresult (*InternalAndReservedMethod3IFile)(IGuestFile *pThis);
13917 
13918     nsresult (*InternalAndReservedMethod4IFile)(IGuestFile *pThis);
13919 
13920     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFile *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13921 
13922 };
13923 #    define IGuestFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13924 #    define IGuestFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
13925 #    define IGuestFile_Release(p) ((p)->lpVtbl->Release(p))
13926 #    define IGuestFile_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13927 #    define IGuestFile_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13928 #    define IGuestFile_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
13929 #    define IGuestFile_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
13930 #    define IGuestFile_get_InitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
13931 #    define IGuestFile_GetInitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
13932 #    define IGuestFile_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
13933 #    define IGuestFile_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
13934 #    define IGuestFile_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13935 #    define IGuestFile_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13936 #    define IGuestFile_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
13937 #    define IGuestFile_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
13938 #    define IGuestFile_get_CreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
13939 #    define IGuestFile_GetCreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
13940 #    define IGuestFile_get_OpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
13941 #    define IGuestFile_GetOpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
13942 #    define IGuestFile_get_AccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
13943 #    define IGuestFile_GetAccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
13944 #    define IGuestFile_Close(p) ((p)->lpVtbl->Close(p))
13945 #    define IGuestFile_QueryInfo(p, aObjInfo) ((p)->lpVtbl->QueryInfo(p, aObjInfo))
13946 #    define IGuestFile_QuerySize(p, aSize) ((p)->lpVtbl->QuerySize(p, aSize))
13947 #    define IGuestFile_Read(p, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aToRead, aTimeoutMS, aData))
13948 #    define IGuestFile_ReadAt(p, aOffset, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->ReadAt(p, aOffset, aToRead, aTimeoutMS, aData))
13949 #    define IGuestFile_Seek(p, aOffset, aWhence, aNewOffset) ((p)->lpVtbl->Seek(p, aOffset, aWhence, aNewOffset))
13950 #    define IGuestFile_SetACL(p, aAcl, aMode) ((p)->lpVtbl->SetACL(p, aAcl, aMode))
13951 #    define IGuestFile_SetSize(p, aSize) ((p)->lpVtbl->SetSize(p, aSize))
13952 #    define IGuestFile_Write(p, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aData, aTimeoutMS, aWritten))
13953 #    define IGuestFile_WriteAt(p, aOffset, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteAt(p, aOffset, aData, aTimeoutMS, aWritten))
13954 #    define IGuestFile_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13955 #    define IGuestFile_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13956 #   endif /* VBOX_WITH_GLUE */
13957 
13958 interface IGuestFile
13959 {
13960 #   ifndef VBOX_WITH_GLUE
13961     struct IGuestFile_vtbl *vtbl;
13962 #   else /* VBOX_WITH_GLUE */
13963     CONST_VTBL struct IGuestFileVtbl *lpVtbl;
13964 #   endif /* VBOX_WITH_GLUE */
13965 };
13966 /* End of struct IGuestFile declaration */
13967 
13968 
13969 /* Start of struct IFsObjInfo declaration */
13970 #   define IFSOBJINFO_IID_STR "081fc833-c6fa-430e-6020-6a505d086387"
13971 #   define IFSOBJINFO_IID { \
13972     0x081fc833, 0xc6fa, 0x430e, \
13973     { 0x60, 0x20, 0x6a, 0x50, 0x5d, 0x08, 0x63, 0x87 } \
13974 }
13975 /* COM compatibility */
13976 VBOX_EXTERN_CONST(nsIID, IID_IFsObjInfo);
13977 #   ifndef VBOX_WITH_GLUE
13978 struct IFsObjInfo_vtbl
13979 {
13980     struct nsISupports_vtbl nsisupports;
13981 
13982     nsresult (*GetName)(IFsObjInfo *pThis, PRUnichar * *name);
13983 
13984     nsresult (*GetType)(IFsObjInfo *pThis, PRUint32 *type);
13985 
13986     nsresult (*GetFileAttributes)(IFsObjInfo *pThis, PRUnichar * *fileAttributes);
13987 
13988     nsresult (*GetObjectSize)(IFsObjInfo *pThis, PRInt64 *objectSize);
13989 
13990     nsresult (*GetAllocatedSize)(IFsObjInfo *pThis, PRInt64 *allocatedSize);
13991 
13992     nsresult (*GetAccessTime)(IFsObjInfo *pThis, PRInt64 *accessTime);
13993 
13994     nsresult (*GetBirthTime)(IFsObjInfo *pThis, PRInt64 *birthTime);
13995 
13996     nsresult (*GetChangeTime)(IFsObjInfo *pThis, PRInt64 *changeTime);
13997 
13998     nsresult (*GetModificationTime)(IFsObjInfo *pThis, PRInt64 *modificationTime);
13999 
14000     nsresult (*GetUID)(IFsObjInfo *pThis, PRInt32 *UID);
14001 
14002     nsresult (*GetUserName)(IFsObjInfo *pThis, PRUnichar * *userName);
14003 
14004     nsresult (*GetGID)(IFsObjInfo *pThis, PRInt32 *GID);
14005 
14006     nsresult (*GetGroupName)(IFsObjInfo *pThis, PRUnichar * *groupName);
14007 
14008     nsresult (*GetNodeId)(IFsObjInfo *pThis, PRInt64 *nodeId);
14009 
14010     nsresult (*GetNodeIdDevice)(IFsObjInfo *pThis, PRUint32 *nodeIdDevice);
14011 
14012     nsresult (*GetHardLinks)(IFsObjInfo *pThis, PRUint32 *hardLinks);
14013 
14014     nsresult (*GetDeviceNumber)(IFsObjInfo *pThis, PRUint32 *deviceNumber);
14015 
14016     nsresult (*GetGenerationId)(IFsObjInfo *pThis, PRUint32 *generationId);
14017 
14018     nsresult (*GetUserFlags)(IFsObjInfo *pThis, PRUint32 *userFlags);
14019 
14020     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14021 
14022     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14023 
14024     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14025 
14026     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14027 
14028     nsresult (*GetInternalAndReservedAttribute5IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14029 
14030     nsresult (*GetInternalAndReservedAttribute6IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14031 
14032     nsresult (*GetInternalAndReservedAttribute7IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14033 
14034     nsresult (*GetInternalAndReservedAttribute8IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14035 
14036 };
14037 #   else /* VBOX_WITH_GLUE */
14038 struct IFsObjInfoVtbl
14039 {
14040     nsresult (*QueryInterface)(IFsObjInfo *pThis, const nsID *iid, void **resultp);
14041     nsrefcnt (*AddRef)(IFsObjInfo *pThis);
14042     nsrefcnt (*Release)(IFsObjInfo *pThis);
14043     nsresult (*GetName)(IFsObjInfo *pThis, PRUnichar * *name);
14044 
14045     nsresult (*GetType)(IFsObjInfo *pThis, PRUint32 *type);
14046 
14047     nsresult (*GetFileAttributes)(IFsObjInfo *pThis, PRUnichar * *fileAttributes);
14048 
14049     nsresult (*GetObjectSize)(IFsObjInfo *pThis, PRInt64 *objectSize);
14050 
14051     nsresult (*GetAllocatedSize)(IFsObjInfo *pThis, PRInt64 *allocatedSize);
14052 
14053     nsresult (*GetAccessTime)(IFsObjInfo *pThis, PRInt64 *accessTime);
14054 
14055     nsresult (*GetBirthTime)(IFsObjInfo *pThis, PRInt64 *birthTime);
14056 
14057     nsresult (*GetChangeTime)(IFsObjInfo *pThis, PRInt64 *changeTime);
14058 
14059     nsresult (*GetModificationTime)(IFsObjInfo *pThis, PRInt64 *modificationTime);
14060 
14061     nsresult (*GetUID)(IFsObjInfo *pThis, PRInt32 *UID);
14062 
14063     nsresult (*GetUserName)(IFsObjInfo *pThis, PRUnichar * *userName);
14064 
14065     nsresult (*GetGID)(IFsObjInfo *pThis, PRInt32 *GID);
14066 
14067     nsresult (*GetGroupName)(IFsObjInfo *pThis, PRUnichar * *groupName);
14068 
14069     nsresult (*GetNodeId)(IFsObjInfo *pThis, PRInt64 *nodeId);
14070 
14071     nsresult (*GetNodeIdDevice)(IFsObjInfo *pThis, PRUint32 *nodeIdDevice);
14072 
14073     nsresult (*GetHardLinks)(IFsObjInfo *pThis, PRUint32 *hardLinks);
14074 
14075     nsresult (*GetDeviceNumber)(IFsObjInfo *pThis, PRUint32 *deviceNumber);
14076 
14077     nsresult (*GetGenerationId)(IFsObjInfo *pThis, PRUint32 *generationId);
14078 
14079     nsresult (*GetUserFlags)(IFsObjInfo *pThis, PRUint32 *userFlags);
14080 
14081     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14082 
14083     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14084 
14085     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14086 
14087     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14088 
14089     nsresult (*GetInternalAndReservedAttribute5IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14090 
14091     nsresult (*GetInternalAndReservedAttribute6IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14092 
14093     nsresult (*GetInternalAndReservedAttribute7IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14094 
14095     nsresult (*GetInternalAndReservedAttribute8IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
14096 
14097 };
14098 #    define IFsObjInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14099 #    define IFsObjInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
14100 #    define IFsObjInfo_Release(p) ((p)->lpVtbl->Release(p))
14101 #    define IFsObjInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14102 #    define IFsObjInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14103 #    define IFsObjInfo_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
14104 #    define IFsObjInfo_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
14105 #    define IFsObjInfo_get_FileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
14106 #    define IFsObjInfo_GetFileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
14107 #    define IFsObjInfo_get_ObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
14108 #    define IFsObjInfo_GetObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
14109 #    define IFsObjInfo_get_AllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
14110 #    define IFsObjInfo_GetAllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
14111 #    define IFsObjInfo_get_AccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
14112 #    define IFsObjInfo_GetAccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
14113 #    define IFsObjInfo_get_BirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
14114 #    define IFsObjInfo_GetBirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
14115 #    define IFsObjInfo_get_ChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
14116 #    define IFsObjInfo_GetChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
14117 #    define IFsObjInfo_get_ModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
14118 #    define IFsObjInfo_GetModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
14119 #    define IFsObjInfo_get_UID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
14120 #    define IFsObjInfo_GetUID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
14121 #    define IFsObjInfo_get_UserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
14122 #    define IFsObjInfo_GetUserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
14123 #    define IFsObjInfo_get_GID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
14124 #    define IFsObjInfo_GetGID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
14125 #    define IFsObjInfo_get_GroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
14126 #    define IFsObjInfo_GetGroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
14127 #    define IFsObjInfo_get_NodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
14128 #    define IFsObjInfo_GetNodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
14129 #    define IFsObjInfo_get_NodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
14130 #    define IFsObjInfo_GetNodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
14131 #    define IFsObjInfo_get_HardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
14132 #    define IFsObjInfo_GetHardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
14133 #    define IFsObjInfo_get_DeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
14134 #    define IFsObjInfo_GetDeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
14135 #    define IFsObjInfo_get_GenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
14136 #    define IFsObjInfo_GetGenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
14137 #    define IFsObjInfo_get_UserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
14138 #    define IFsObjInfo_GetUserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
14139 #   endif /* VBOX_WITH_GLUE */
14140 
14141 interface IFsObjInfo
14142 {
14143 #   ifndef VBOX_WITH_GLUE
14144     struct IFsObjInfo_vtbl *vtbl;
14145 #   else /* VBOX_WITH_GLUE */
14146     CONST_VTBL struct IFsObjInfoVtbl *lpVtbl;
14147 #   endif /* VBOX_WITH_GLUE */
14148 };
14149 /* End of struct IFsObjInfo declaration */
14150 
14151 
14152 /* Start of struct IGuestFsObjInfo declaration */
14153 #   define IGUESTFSOBJINFO_IID_STR "6620db85-44e0-ca69-e9e0-d4907ceccbe5"
14154 #   define IGUESTFSOBJINFO_IID { \
14155     0x6620db85, 0x44e0, 0xca69, \
14156     { 0xe9, 0xe0, 0xd4, 0x90, 0x7c, 0xec, 0xcb, 0xe5 } \
14157 }
14158 /* COM compatibility */
14159 VBOX_EXTERN_CONST(nsIID, IID_IGuestFsObjInfo);
14160 #   ifndef VBOX_WITH_GLUE
14161 struct IGuestFsObjInfo_vtbl
14162 {
14163     struct IFsObjInfo_vtbl ifsobjinfo;
14164 
14165     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFsObjInfo *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
14166 
14167 };
14168 #   else /* VBOX_WITH_GLUE */
14169 struct IGuestFsObjInfoVtbl
14170 {
14171     nsresult (*QueryInterface)(IGuestFsObjInfo *pThis, const nsID *iid, void **resultp);
14172     nsrefcnt (*AddRef)(IGuestFsObjInfo *pThis);
14173     nsrefcnt (*Release)(IGuestFsObjInfo *pThis);
14174     nsresult (*GetName)(IGuestFsObjInfo *pThis, PRUnichar * *name);
14175 
14176     nsresult (*GetType)(IGuestFsObjInfo *pThis, PRUint32 *type);
14177 
14178     nsresult (*GetFileAttributes)(IGuestFsObjInfo *pThis, PRUnichar * *fileAttributes);
14179 
14180     nsresult (*GetObjectSize)(IGuestFsObjInfo *pThis, PRInt64 *objectSize);
14181 
14182     nsresult (*GetAllocatedSize)(IGuestFsObjInfo *pThis, PRInt64 *allocatedSize);
14183 
14184     nsresult (*GetAccessTime)(IGuestFsObjInfo *pThis, PRInt64 *accessTime);
14185 
14186     nsresult (*GetBirthTime)(IGuestFsObjInfo *pThis, PRInt64 *birthTime);
14187 
14188     nsresult (*GetChangeTime)(IGuestFsObjInfo *pThis, PRInt64 *changeTime);
14189 
14190     nsresult (*GetModificationTime)(IGuestFsObjInfo *pThis, PRInt64 *modificationTime);
14191 
14192     nsresult (*GetUID)(IGuestFsObjInfo *pThis, PRInt32 *UID);
14193 
14194     nsresult (*GetUserName)(IGuestFsObjInfo *pThis, PRUnichar * *userName);
14195 
14196     nsresult (*GetGID)(IGuestFsObjInfo *pThis, PRInt32 *GID);
14197 
14198     nsresult (*GetGroupName)(IGuestFsObjInfo *pThis, PRUnichar * *groupName);
14199 
14200     nsresult (*GetNodeId)(IGuestFsObjInfo *pThis, PRInt64 *nodeId);
14201 
14202     nsresult (*GetNodeIdDevice)(IGuestFsObjInfo *pThis, PRUint32 *nodeIdDevice);
14203 
14204     nsresult (*GetHardLinks)(IGuestFsObjInfo *pThis, PRUint32 *hardLinks);
14205 
14206     nsresult (*GetDeviceNumber)(IGuestFsObjInfo *pThis, PRUint32 *deviceNumber);
14207 
14208     nsresult (*GetGenerationId)(IGuestFsObjInfo *pThis, PRUint32 *generationId);
14209 
14210     nsresult (*GetUserFlags)(IGuestFsObjInfo *pThis, PRUint32 *userFlags);
14211 
14212     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14213 
14214     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14215 
14216     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14217 
14218     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14219 
14220     nsresult (*GetInternalAndReservedAttribute5IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14221 
14222     nsresult (*GetInternalAndReservedAttribute6IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14223 
14224     nsresult (*GetInternalAndReservedAttribute7IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14225 
14226     nsresult (*GetInternalAndReservedAttribute8IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
14227 
14228     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFsObjInfo *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
14229 
14230 };
14231 #    define IGuestFsObjInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14232 #    define IGuestFsObjInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
14233 #    define IGuestFsObjInfo_Release(p) ((p)->lpVtbl->Release(p))
14234 #    define IGuestFsObjInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14235 #    define IGuestFsObjInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14236 #    define IGuestFsObjInfo_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
14237 #    define IGuestFsObjInfo_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
14238 #    define IGuestFsObjInfo_get_FileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
14239 #    define IGuestFsObjInfo_GetFileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
14240 #    define IGuestFsObjInfo_get_ObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
14241 #    define IGuestFsObjInfo_GetObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
14242 #    define IGuestFsObjInfo_get_AllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
14243 #    define IGuestFsObjInfo_GetAllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
14244 #    define IGuestFsObjInfo_get_AccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
14245 #    define IGuestFsObjInfo_GetAccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
14246 #    define IGuestFsObjInfo_get_BirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
14247 #    define IGuestFsObjInfo_GetBirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
14248 #    define IGuestFsObjInfo_get_ChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
14249 #    define IGuestFsObjInfo_GetChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
14250 #    define IGuestFsObjInfo_get_ModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
14251 #    define IGuestFsObjInfo_GetModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
14252 #    define IGuestFsObjInfo_get_UID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
14253 #    define IGuestFsObjInfo_GetUID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
14254 #    define IGuestFsObjInfo_get_UserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
14255 #    define IGuestFsObjInfo_GetUserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
14256 #    define IGuestFsObjInfo_get_GID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
14257 #    define IGuestFsObjInfo_GetGID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
14258 #    define IGuestFsObjInfo_get_GroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
14259 #    define IGuestFsObjInfo_GetGroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
14260 #    define IGuestFsObjInfo_get_NodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
14261 #    define IGuestFsObjInfo_GetNodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
14262 #    define IGuestFsObjInfo_get_NodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
14263 #    define IGuestFsObjInfo_GetNodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
14264 #    define IGuestFsObjInfo_get_HardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
14265 #    define IGuestFsObjInfo_GetHardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
14266 #    define IGuestFsObjInfo_get_DeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
14267 #    define IGuestFsObjInfo_GetDeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
14268 #    define IGuestFsObjInfo_get_GenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
14269 #    define IGuestFsObjInfo_GetGenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
14270 #    define IGuestFsObjInfo_get_UserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
14271 #    define IGuestFsObjInfo_GetUserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
14272 #    define IGuestFsObjInfo_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
14273 #    define IGuestFsObjInfo_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
14274 #   endif /* VBOX_WITH_GLUE */
14275 
14276 interface IGuestFsObjInfo
14277 {
14278 #   ifndef VBOX_WITH_GLUE
14279     struct IGuestFsObjInfo_vtbl *vtbl;
14280 #   else /* VBOX_WITH_GLUE */
14281     CONST_VTBL struct IGuestFsObjInfoVtbl *lpVtbl;
14282 #   endif /* VBOX_WITH_GLUE */
14283 };
14284 /* End of struct IGuestFsObjInfo declaration */
14285 
14286 
14287 /* Start of struct IGuest declaration */
14288 #   define IGUEST_IID_STR "13a11514-402e-022e-6180-c3944de3f9c8"
14289 #   define IGUEST_IID { \
14290     0x13a11514, 0x402e, 0x022e, \
14291     { 0x61, 0x80, 0xc3, 0x94, 0x4d, 0xe3, 0xf9, 0xc8 } \
14292 }
14293 /* COM compatibility */
14294 VBOX_EXTERN_CONST(nsIID, IID_IGuest);
14295 #   ifndef VBOX_WITH_GLUE
14296 struct IGuest_vtbl
14297 {
14298     struct nsISupports_vtbl nsisupports;
14299 
14300     nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
14301 
14302     nsresult (*GetAdditionsRunLevel)(IGuest *pThis, PRUint32 *additionsRunLevel);
14303 
14304     nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
14305 
14306     nsresult (*GetAdditionsRevision)(IGuest *pThis, PRUint32 *additionsRevision);
14307 
14308     nsresult (*GetDnDSource)(IGuest *pThis, IGuestDnDSource * *dnDSource);
14309 
14310     nsresult (*GetDnDTarget)(IGuest *pThis, IGuestDnDTarget * *dnDTarget);
14311 
14312     nsresult (*GetEventSource)(IGuest *pThis, IEventSource * *eventSource);
14313 
14314     nsresult (*GetFacilities)(IGuest *pThis, PRUint32 *facilitiesSize, IAdditionsFacility * **facilities);
14315 
14316     nsresult (*GetSessions)(IGuest *pThis, PRUint32 *sessionsSize, IGuestSession * **sessions);
14317 
14318     nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
14319     nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
14320 
14321     nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
14322     nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
14323 
14324     nsresult (*GetInternalAndReservedAttribute1IGuest)(IGuest *pThis, PRUint32 *reserved);
14325 
14326     nsresult (*GetInternalAndReservedAttribute2IGuest)(IGuest *pThis, PRUint32 *reserved);
14327 
14328     nsresult (*GetInternalAndReservedAttribute3IGuest)(IGuest *pThis, PRUint32 *reserved);
14329 
14330     nsresult (*GetInternalAndReservedAttribute4IGuest)(IGuest *pThis, PRUint32 *reserved);
14331 
14332     nsresult (*GetInternalAndReservedAttribute5IGuest)(IGuest *pThis, PRUint32 *reserved);
14333 
14334     nsresult (*GetInternalAndReservedAttribute6IGuest)(IGuest *pThis, PRUint32 *reserved);
14335 
14336     nsresult (*GetInternalAndReservedAttribute7IGuest)(IGuest *pThis, PRUint32 *reserved);
14337 
14338     nsresult (*GetInternalAndReservedAttribute8IGuest)(IGuest *pThis, PRUint32 *reserved);
14339 
14340     nsresult (*GetInternalAndReservedAttribute9IGuest)(IGuest *pThis, PRUint32 *reserved);
14341 
14342     nsresult (*GetInternalAndReservedAttribute10IGuest)(IGuest *pThis, PRUint32 *reserved);
14343 
14344     nsresult (*GetInternalAndReservedAttribute11IGuest)(IGuest *pThis, PRUint32 *reserved);
14345 
14346     nsresult (*GetInternalAndReservedAttribute12IGuest)(IGuest *pThis, PRUint32 *reserved);
14347 
14348     nsresult (*GetInternalAndReservedAttribute13IGuest)(IGuest *pThis, PRUint32 *reserved);
14349 
14350     nsresult (*GetInternalAndReservedAttribute14IGuest)(IGuest *pThis, PRUint32 *reserved);
14351 
14352     nsresult (*GetInternalAndReservedAttribute15IGuest)(IGuest *pThis, PRUint32 *reserved);
14353 
14354     nsresult (*GetInternalAndReservedAttribute16IGuest)(IGuest *pThis, PRUint32 *reserved);
14355 
14356     nsresult (*InternalGetStatistics)(
14357         IGuest *pThis,
14358         PRUint32 * cpuUser,
14359         PRUint32 * cpuKernel,
14360         PRUint32 * cpuIdle,
14361         PRUint32 * memTotal,
14362         PRUint32 * memFree,
14363         PRUint32 * memBalloon,
14364         PRUint32 * memShared,
14365         PRUint32 * memCache,
14366         PRUint32 * pagedTotal,
14367         PRUint32 * memAllocTotal,
14368         PRUint32 * memFreeTotal,
14369         PRUint32 * memBalloonTotal,
14370         PRUint32 * memSharedTotal
14371     );
14372 
14373     nsresult (*GetFacilityStatus)(
14374         IGuest *pThis,
14375         PRUint32 facility,
14376         PRInt64 * timestamp,
14377         PRUint32 * status
14378     );
14379 
14380     nsresult (*GetAdditionsStatus)(
14381         IGuest *pThis,
14382         PRUint32 level,
14383         PRBool * active
14384     );
14385 
14386     nsresult (*SetCredentials)(
14387         IGuest *pThis,
14388         PRUnichar * userName,
14389         PRUnichar * password,
14390         PRUnichar * domain,
14391         PRBool allowInteractiveLogon
14392     );
14393 
14394     nsresult (*CreateSession)(
14395         IGuest *pThis,
14396         PRUnichar * user,
14397         PRUnichar * password,
14398         PRUnichar * domain,
14399         PRUnichar * sessionName,
14400         IGuestSession * * guestSession
14401     );
14402 
14403     nsresult (*FindSession)(
14404         IGuest *pThis,
14405         PRUnichar * sessionName,
14406         PRUint32 *sessionsSize,
14407         IGuestSession *** sessions
14408     );
14409 
14410     nsresult (*UpdateGuestAdditions)(
14411         IGuest *pThis,
14412         PRUnichar * source,
14413         PRUint32 argumentsSize,
14414         PRUnichar ** arguments,
14415         PRUint32 flagsSize,
14416         PRUint32* flags,
14417         IProgress * * progress
14418     );
14419 
14420     nsresult (*InternalAndReservedMethod1IGuest)(IGuest *pThis);
14421 
14422     nsresult (*InternalAndReservedMethod2IGuest)(IGuest *pThis);
14423 
14424     nsresult (*InternalAndReservedMethod3IGuest)(IGuest *pThis);
14425 
14426     nsresult (*InternalAndReservedMethod4IGuest)(IGuest *pThis);
14427 
14428     nsresult (*InternalAndReservedMethod5IGuest)(IGuest *pThis);
14429 
14430     nsresult (*InternalAndReservedMethod6IGuest)(IGuest *pThis);
14431 
14432     nsresult (*InternalAndReservedMethod7IGuest)(IGuest *pThis);
14433 
14434     nsresult (*InternalAndReservedMethod8IGuest)(IGuest *pThis);
14435 
14436 };
14437 #   else /* VBOX_WITH_GLUE */
14438 struct IGuestVtbl
14439 {
14440     nsresult (*QueryInterface)(IGuest *pThis, const nsID *iid, void **resultp);
14441     nsrefcnt (*AddRef)(IGuest *pThis);
14442     nsrefcnt (*Release)(IGuest *pThis);
14443     nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
14444 
14445     nsresult (*GetAdditionsRunLevel)(IGuest *pThis, PRUint32 *additionsRunLevel);
14446 
14447     nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
14448 
14449     nsresult (*GetAdditionsRevision)(IGuest *pThis, PRUint32 *additionsRevision);
14450 
14451     nsresult (*GetDnDSource)(IGuest *pThis, IGuestDnDSource * *dnDSource);
14452 
14453     nsresult (*GetDnDTarget)(IGuest *pThis, IGuestDnDTarget * *dnDTarget);
14454 
14455     nsresult (*GetEventSource)(IGuest *pThis, IEventSource * *eventSource);
14456 
14457     nsresult (*GetFacilities)(IGuest *pThis, PRUint32 *facilitiesSize, IAdditionsFacility * **facilities);
14458 
14459     nsresult (*GetSessions)(IGuest *pThis, PRUint32 *sessionsSize, IGuestSession * **sessions);
14460 
14461     nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
14462     nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
14463 
14464     nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
14465     nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
14466 
14467     nsresult (*GetInternalAndReservedAttribute1IGuest)(IGuest *pThis, PRUint32 *reserved);
14468 
14469     nsresult (*GetInternalAndReservedAttribute2IGuest)(IGuest *pThis, PRUint32 *reserved);
14470 
14471     nsresult (*GetInternalAndReservedAttribute3IGuest)(IGuest *pThis, PRUint32 *reserved);
14472 
14473     nsresult (*GetInternalAndReservedAttribute4IGuest)(IGuest *pThis, PRUint32 *reserved);
14474 
14475     nsresult (*GetInternalAndReservedAttribute5IGuest)(IGuest *pThis, PRUint32 *reserved);
14476 
14477     nsresult (*GetInternalAndReservedAttribute6IGuest)(IGuest *pThis, PRUint32 *reserved);
14478 
14479     nsresult (*GetInternalAndReservedAttribute7IGuest)(IGuest *pThis, PRUint32 *reserved);
14480 
14481     nsresult (*GetInternalAndReservedAttribute8IGuest)(IGuest *pThis, PRUint32 *reserved);
14482 
14483     nsresult (*GetInternalAndReservedAttribute9IGuest)(IGuest *pThis, PRUint32 *reserved);
14484 
14485     nsresult (*GetInternalAndReservedAttribute10IGuest)(IGuest *pThis, PRUint32 *reserved);
14486 
14487     nsresult (*GetInternalAndReservedAttribute11IGuest)(IGuest *pThis, PRUint32 *reserved);
14488 
14489     nsresult (*GetInternalAndReservedAttribute12IGuest)(IGuest *pThis, PRUint32 *reserved);
14490 
14491     nsresult (*GetInternalAndReservedAttribute13IGuest)(IGuest *pThis, PRUint32 *reserved);
14492 
14493     nsresult (*GetInternalAndReservedAttribute14IGuest)(IGuest *pThis, PRUint32 *reserved);
14494 
14495     nsresult (*GetInternalAndReservedAttribute15IGuest)(IGuest *pThis, PRUint32 *reserved);
14496 
14497     nsresult (*GetInternalAndReservedAttribute16IGuest)(IGuest *pThis, PRUint32 *reserved);
14498 
14499     nsresult (*InternalGetStatistics)(
14500         IGuest *pThis,
14501         PRUint32 * cpuUser,
14502         PRUint32 * cpuKernel,
14503         PRUint32 * cpuIdle,
14504         PRUint32 * memTotal,
14505         PRUint32 * memFree,
14506         PRUint32 * memBalloon,
14507         PRUint32 * memShared,
14508         PRUint32 * memCache,
14509         PRUint32 * pagedTotal,
14510         PRUint32 * memAllocTotal,
14511         PRUint32 * memFreeTotal,
14512         PRUint32 * memBalloonTotal,
14513         PRUint32 * memSharedTotal
14514     );
14515 
14516     nsresult (*GetFacilityStatus)(
14517         IGuest *pThis,
14518         PRUint32 facility,
14519         PRInt64 * timestamp,
14520         PRUint32 * status
14521     );
14522 
14523     nsresult (*GetAdditionsStatus)(
14524         IGuest *pThis,
14525         PRUint32 level,
14526         PRBool * active
14527     );
14528 
14529     nsresult (*SetCredentials)(
14530         IGuest *pThis,
14531         PRUnichar * userName,
14532         PRUnichar * password,
14533         PRUnichar * domain,
14534         PRBool allowInteractiveLogon
14535     );
14536 
14537     nsresult (*CreateSession)(
14538         IGuest *pThis,
14539         PRUnichar * user,
14540         PRUnichar * password,
14541         PRUnichar * domain,
14542         PRUnichar * sessionName,
14543         IGuestSession * * guestSession
14544     );
14545 
14546     nsresult (*FindSession)(
14547         IGuest *pThis,
14548         PRUnichar * sessionName,
14549         PRUint32 *sessionsSize,
14550         IGuestSession *** sessions
14551     );
14552 
14553     nsresult (*UpdateGuestAdditions)(
14554         IGuest *pThis,
14555         PRUnichar * source,
14556         PRUint32 argumentsSize,
14557         PRUnichar ** arguments,
14558         PRUint32 flagsSize,
14559         PRUint32* flags,
14560         IProgress * * progress
14561     );
14562 
14563     nsresult (*InternalAndReservedMethod1IGuest)(IGuest *pThis);
14564 
14565     nsresult (*InternalAndReservedMethod2IGuest)(IGuest *pThis);
14566 
14567     nsresult (*InternalAndReservedMethod3IGuest)(IGuest *pThis);
14568 
14569     nsresult (*InternalAndReservedMethod4IGuest)(IGuest *pThis);
14570 
14571     nsresult (*InternalAndReservedMethod5IGuest)(IGuest *pThis);
14572 
14573     nsresult (*InternalAndReservedMethod6IGuest)(IGuest *pThis);
14574 
14575     nsresult (*InternalAndReservedMethod7IGuest)(IGuest *pThis);
14576 
14577     nsresult (*InternalAndReservedMethod8IGuest)(IGuest *pThis);
14578 
14579 };
14580 #    define IGuest_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14581 #    define IGuest_AddRef(p) ((p)->lpVtbl->AddRef(p))
14582 #    define IGuest_Release(p) ((p)->lpVtbl->Release(p))
14583 #    define IGuest_get_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
14584 #    define IGuest_GetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
14585 #    define IGuest_get_AdditionsRunLevel(p, aAdditionsRunLevel) ((p)->lpVtbl->GetAdditionsRunLevel(p, aAdditionsRunLevel))
14586 #    define IGuest_GetAdditionsRunLevel(p, aAdditionsRunLevel) ((p)->lpVtbl->GetAdditionsRunLevel(p, aAdditionsRunLevel))
14587 #    define IGuest_get_AdditionsVersion(p, aAdditionsVersion) ((p)->lpVtbl->GetAdditionsVersion(p, aAdditionsVersion))
14588 #    define IGuest_GetAdditionsVersion(p, aAdditionsVersion) ((p)->lpVtbl->GetAdditionsVersion(p, aAdditionsVersion))
14589 #    define IGuest_get_AdditionsRevision(p, aAdditionsRevision) ((p)->lpVtbl->GetAdditionsRevision(p, aAdditionsRevision))
14590 #    define IGuest_GetAdditionsRevision(p, aAdditionsRevision) ((p)->lpVtbl->GetAdditionsRevision(p, aAdditionsRevision))
14591 #    define IGuest_get_DnDSource(p, aDnDSource) ((p)->lpVtbl->GetDnDSource(p, aDnDSource))
14592 #    define IGuest_GetDnDSource(p, aDnDSource) ((p)->lpVtbl->GetDnDSource(p, aDnDSource))
14593 #    define IGuest_get_DnDTarget(p, aDnDTarget) ((p)->lpVtbl->GetDnDTarget(p, aDnDTarget))
14594 #    define IGuest_GetDnDTarget(p, aDnDTarget) ((p)->lpVtbl->GetDnDTarget(p, aDnDTarget))
14595 #    define IGuest_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14596 #    define IGuest_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14597 #    define IGuest_get_Facilities(p, aFacilities) ((p)->lpVtbl->GetFacilities(p, aFacilities))
14598 #    define IGuest_GetFacilities(p, aFacilities) ((p)->lpVtbl->GetFacilities(p, aFacilities))
14599 #    define IGuest_get_Sessions(p, aSessions) ((p)->lpVtbl->GetSessions(p, aSessions))
14600 #    define IGuest_GetSessions(p, aSessions) ((p)->lpVtbl->GetSessions(p, aSessions))
14601 #    define IGuest_get_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
14602 #    define IGuest_GetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
14603 #    define IGuest_put_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
14604 #    define IGuest_SetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
14605 #    define IGuest_get_StatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
14606 #    define IGuest_GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
14607 #    define IGuest_put_StatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
14608 #    define IGuest_SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
14609 #    define IGuest_InternalGetStatistics(p, aCpuUser, aCpuKernel, aCpuIdle, aMemTotal, aMemFree, aMemBalloon, aMemShared, aMemCache, aPagedTotal, aMemAllocTotal, aMemFreeTotal, aMemBalloonTotal, aMemSharedTotal) ((p)->lpVtbl->InternalGetStatistics(p, aCpuUser, aCpuKernel, aCpuIdle, aMemTotal, aMemFree, aMemBalloon, aMemShared, aMemCache, aPagedTotal, aMemAllocTotal, aMemFreeTotal, aMemBalloonTotal, aMemSharedTotal))
14610 #    define IGuest_GetFacilityStatus(p, aFacility, aTimestamp, aStatus) ((p)->lpVtbl->GetFacilityStatus(p, aFacility, aTimestamp, aStatus))
14611 #    define IGuest_GetAdditionsStatus(p, aLevel, aActive) ((p)->lpVtbl->GetAdditionsStatus(p, aLevel, aActive))
14612 #    define IGuest_SetCredentials(p, aUserName, aPassword, aDomain, aAllowInteractiveLogon) ((p)->lpVtbl->SetCredentials(p, aUserName, aPassword, aDomain, aAllowInteractiveLogon))
14613 #    define IGuest_CreateSession(p, aUser, aPassword, aDomain, aSessionName, aGuestSession) ((p)->lpVtbl->CreateSession(p, aUser, aPassword, aDomain, aSessionName, aGuestSession))
14614 #    define IGuest_FindSession(p, aSessionName, aSessions) ((p)->lpVtbl->FindSession(p, aSessionName, aSessions))
14615 #    define IGuest_UpdateGuestAdditions(p, aSource, aArguments, aFlags, aProgress) ((p)->lpVtbl->UpdateGuestAdditions(p, aSource, aArguments, aFlags, aProgress))
14616 #   endif /* VBOX_WITH_GLUE */
14617 
14618 interface IGuest
14619 {
14620 #   ifndef VBOX_WITH_GLUE
14621     struct IGuest_vtbl *vtbl;
14622 #   else /* VBOX_WITH_GLUE */
14623     CONST_VTBL struct IGuestVtbl *lpVtbl;
14624 #   endif /* VBOX_WITH_GLUE */
14625 };
14626 /* End of struct IGuest declaration */
14627 
14628 
14629 /* Start of struct IProgress declaration */
14630 #   define IPROGRESS_IID_STR "d7b98d2b-30e8-447e-99cb-e31becae6ae4"
14631 #   define IPROGRESS_IID { \
14632     0xd7b98d2b, 0x30e8, 0x447e, \
14633     { 0x99, 0xcb, 0xe3, 0x1b, 0xec, 0xae, 0x6a, 0xe4 } \
14634 }
14635 /* COM compatibility */
14636 VBOX_EXTERN_CONST(nsIID, IID_IProgress);
14637 #   ifndef VBOX_WITH_GLUE
14638 struct IProgress_vtbl
14639 {
14640     struct nsISupports_vtbl nsisupports;
14641 
14642     nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
14643 
14644     nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
14645 
14646     nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
14647 
14648     nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
14649 
14650     nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
14651 
14652     nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
14653 
14654     nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
14655 
14656     nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
14657 
14658     nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
14659 
14660     nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
14661 
14662     nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
14663 
14664     nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
14665 
14666     nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
14667 
14668     nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
14669 
14670     nsresult (*GetOperationWeight)(IProgress *pThis, PRUint32 *operationWeight);
14671 
14672     nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
14673     nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
14674 
14675     nsresult (*GetEventSource)(IProgress *pThis, IEventSource * *eventSource);
14676 
14677     nsresult (*GetInternalAndReservedAttribute1IProgress)(IProgress *pThis, PRUint32 *reserved);
14678 
14679     nsresult (*GetInternalAndReservedAttribute2IProgress)(IProgress *pThis, PRUint32 *reserved);
14680 
14681     nsresult (*GetInternalAndReservedAttribute3IProgress)(IProgress *pThis, PRUint32 *reserved);
14682 
14683     nsresult (*GetInternalAndReservedAttribute4IProgress)(IProgress *pThis, PRUint32 *reserved);
14684 
14685     nsresult (*GetInternalAndReservedAttribute5IProgress)(IProgress *pThis, PRUint32 *reserved);
14686 
14687     nsresult (*GetInternalAndReservedAttribute6IProgress)(IProgress *pThis, PRUint32 *reserved);
14688 
14689     nsresult (*GetInternalAndReservedAttribute7IProgress)(IProgress *pThis, PRUint32 *reserved);
14690 
14691     nsresult (*GetInternalAndReservedAttribute8IProgress)(IProgress *pThis, PRUint32 *reserved);
14692 
14693     nsresult (*GetInternalAndReservedAttribute9IProgress)(IProgress *pThis, PRUint32 *reserved);
14694 
14695     nsresult (*GetInternalAndReservedAttribute10IProgress)(IProgress *pThis, PRUint32 *reserved);
14696 
14697     nsresult (*GetInternalAndReservedAttribute11IProgress)(IProgress *pThis, PRUint32 *reserved);
14698 
14699     nsresult (*GetInternalAndReservedAttribute12IProgress)(IProgress *pThis, PRUint32 *reserved);
14700 
14701     nsresult (*WaitForCompletion)(
14702         IProgress *pThis,
14703         PRInt32 timeout
14704     );
14705 
14706     nsresult (*WaitForOperationCompletion)(
14707         IProgress *pThis,
14708         PRUint32 operation,
14709         PRInt32 timeout
14710     );
14711 
14712     nsresult (*Cancel)(IProgress *pThis );
14713 
14714     nsresult (*InternalAndReservedMethod1IProgress)(IProgress *pThis);
14715 
14716     nsresult (*InternalAndReservedMethod2IProgress)(IProgress *pThis);
14717 
14718     nsresult (*InternalAndReservedMethod3IProgress)(IProgress *pThis);
14719 
14720     nsresult (*InternalAndReservedMethod4IProgress)(IProgress *pThis);
14721 
14722     nsresult (*InternalAndReservedMethod5IProgress)(IProgress *pThis);
14723 
14724     nsresult (*InternalAndReservedMethod6IProgress)(IProgress *pThis);
14725 
14726     nsresult (*InternalAndReservedMethod7IProgress)(IProgress *pThis);
14727 
14728     nsresult (*InternalAndReservedMethod8IProgress)(IProgress *pThis);
14729 
14730 };
14731 #   else /* VBOX_WITH_GLUE */
14732 struct IProgressVtbl
14733 {
14734     nsresult (*QueryInterface)(IProgress *pThis, const nsID *iid, void **resultp);
14735     nsrefcnt (*AddRef)(IProgress *pThis);
14736     nsrefcnt (*Release)(IProgress *pThis);
14737     nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
14738 
14739     nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
14740 
14741     nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
14742 
14743     nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
14744 
14745     nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
14746 
14747     nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
14748 
14749     nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
14750 
14751     nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
14752 
14753     nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
14754 
14755     nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
14756 
14757     nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
14758 
14759     nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
14760 
14761     nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
14762 
14763     nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
14764 
14765     nsresult (*GetOperationWeight)(IProgress *pThis, PRUint32 *operationWeight);
14766 
14767     nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
14768     nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
14769 
14770     nsresult (*GetEventSource)(IProgress *pThis, IEventSource * *eventSource);
14771 
14772     nsresult (*GetInternalAndReservedAttribute1IProgress)(IProgress *pThis, PRUint32 *reserved);
14773 
14774     nsresult (*GetInternalAndReservedAttribute2IProgress)(IProgress *pThis, PRUint32 *reserved);
14775 
14776     nsresult (*GetInternalAndReservedAttribute3IProgress)(IProgress *pThis, PRUint32 *reserved);
14777 
14778     nsresult (*GetInternalAndReservedAttribute4IProgress)(IProgress *pThis, PRUint32 *reserved);
14779 
14780     nsresult (*GetInternalAndReservedAttribute5IProgress)(IProgress *pThis, PRUint32 *reserved);
14781 
14782     nsresult (*GetInternalAndReservedAttribute6IProgress)(IProgress *pThis, PRUint32 *reserved);
14783 
14784     nsresult (*GetInternalAndReservedAttribute7IProgress)(IProgress *pThis, PRUint32 *reserved);
14785 
14786     nsresult (*GetInternalAndReservedAttribute8IProgress)(IProgress *pThis, PRUint32 *reserved);
14787 
14788     nsresult (*GetInternalAndReservedAttribute9IProgress)(IProgress *pThis, PRUint32 *reserved);
14789 
14790     nsresult (*GetInternalAndReservedAttribute10IProgress)(IProgress *pThis, PRUint32 *reserved);
14791 
14792     nsresult (*GetInternalAndReservedAttribute11IProgress)(IProgress *pThis, PRUint32 *reserved);
14793 
14794     nsresult (*GetInternalAndReservedAttribute12IProgress)(IProgress *pThis, PRUint32 *reserved);
14795 
14796     nsresult (*WaitForCompletion)(
14797         IProgress *pThis,
14798         PRInt32 timeout
14799     );
14800 
14801     nsresult (*WaitForOperationCompletion)(
14802         IProgress *pThis,
14803         PRUint32 operation,
14804         PRInt32 timeout
14805     );
14806 
14807     nsresult (*Cancel)(IProgress *pThis );
14808 
14809     nsresult (*InternalAndReservedMethod1IProgress)(IProgress *pThis);
14810 
14811     nsresult (*InternalAndReservedMethod2IProgress)(IProgress *pThis);
14812 
14813     nsresult (*InternalAndReservedMethod3IProgress)(IProgress *pThis);
14814 
14815     nsresult (*InternalAndReservedMethod4IProgress)(IProgress *pThis);
14816 
14817     nsresult (*InternalAndReservedMethod5IProgress)(IProgress *pThis);
14818 
14819     nsresult (*InternalAndReservedMethod6IProgress)(IProgress *pThis);
14820 
14821     nsresult (*InternalAndReservedMethod7IProgress)(IProgress *pThis);
14822 
14823     nsresult (*InternalAndReservedMethod8IProgress)(IProgress *pThis);
14824 
14825 };
14826 #    define IProgress_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14827 #    define IProgress_AddRef(p) ((p)->lpVtbl->AddRef(p))
14828 #    define IProgress_Release(p) ((p)->lpVtbl->Release(p))
14829 #    define IProgress_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
14830 #    define IProgress_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
14831 #    define IProgress_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
14832 #    define IProgress_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
14833 #    define IProgress_get_Initiator(p, aInitiator) ((p)->lpVtbl->GetInitiator(p, aInitiator))
14834 #    define IProgress_GetInitiator(p, aInitiator) ((p)->lpVtbl->GetInitiator(p, aInitiator))
14835 #    define IProgress_get_Cancelable(p, aCancelable) ((p)->lpVtbl->GetCancelable(p, aCancelable))
14836 #    define IProgress_GetCancelable(p, aCancelable) ((p)->lpVtbl->GetCancelable(p, aCancelable))
14837 #    define IProgress_get_Percent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
14838 #    define IProgress_GetPercent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
14839 #    define IProgress_get_TimeRemaining(p, aTimeRemaining) ((p)->lpVtbl->GetTimeRemaining(p, aTimeRemaining))
14840 #    define IProgress_GetTimeRemaining(p, aTimeRemaining) ((p)->lpVtbl->GetTimeRemaining(p, aTimeRemaining))
14841 #    define IProgress_get_Completed(p, aCompleted) ((p)->lpVtbl->GetCompleted(p, aCompleted))
14842 #    define IProgress_GetCompleted(p, aCompleted) ((p)->lpVtbl->GetCompleted(p, aCompleted))
14843 #    define IProgress_get_Canceled(p, aCanceled) ((p)->lpVtbl->GetCanceled(p, aCanceled))
14844 #    define IProgress_GetCanceled(p, aCanceled) ((p)->lpVtbl->GetCanceled(p, aCanceled))
14845 #    define IProgress_get_ResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
14846 #    define IProgress_GetResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
14847 #    define IProgress_get_ErrorInfo(p, aErrorInfo) ((p)->lpVtbl->GetErrorInfo(p, aErrorInfo))
14848 #    define IProgress_GetErrorInfo(p, aErrorInfo) ((p)->lpVtbl->GetErrorInfo(p, aErrorInfo))
14849 #    define IProgress_get_OperationCount(p, aOperationCount) ((p)->lpVtbl->GetOperationCount(p, aOperationCount))
14850 #    define IProgress_GetOperationCount(p, aOperationCount) ((p)->lpVtbl->GetOperationCount(p, aOperationCount))
14851 #    define IProgress_get_Operation(p, aOperation) ((p)->lpVtbl->GetOperation(p, aOperation))
14852 #    define IProgress_GetOperation(p, aOperation) ((p)->lpVtbl->GetOperation(p, aOperation))
14853 #    define IProgress_get_OperationDescription(p, aOperationDescription) ((p)->lpVtbl->GetOperationDescription(p, aOperationDescription))
14854 #    define IProgress_GetOperationDescription(p, aOperationDescription) ((p)->lpVtbl->GetOperationDescription(p, aOperationDescription))
14855 #    define IProgress_get_OperationPercent(p, aOperationPercent) ((p)->lpVtbl->GetOperationPercent(p, aOperationPercent))
14856 #    define IProgress_GetOperationPercent(p, aOperationPercent) ((p)->lpVtbl->GetOperationPercent(p, aOperationPercent))
14857 #    define IProgress_get_OperationWeight(p, aOperationWeight) ((p)->lpVtbl->GetOperationWeight(p, aOperationWeight))
14858 #    define IProgress_GetOperationWeight(p, aOperationWeight) ((p)->lpVtbl->GetOperationWeight(p, aOperationWeight))
14859 #    define IProgress_get_Timeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
14860 #    define IProgress_GetTimeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
14861 #    define IProgress_put_Timeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
14862 #    define IProgress_SetTimeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
14863 #    define IProgress_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14864 #    define IProgress_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14865 #    define IProgress_WaitForCompletion(p, aTimeout) ((p)->lpVtbl->WaitForCompletion(p, aTimeout))
14866 #    define IProgress_WaitForOperationCompletion(p, aOperation, aTimeout) ((p)->lpVtbl->WaitForOperationCompletion(p, aOperation, aTimeout))
14867 #    define IProgress_Cancel(p) ((p)->lpVtbl->Cancel(p))
14868 #   endif /* VBOX_WITH_GLUE */
14869 
14870 interface IProgress
14871 {
14872 #   ifndef VBOX_WITH_GLUE
14873     struct IProgress_vtbl *vtbl;
14874 #   else /* VBOX_WITH_GLUE */
14875     CONST_VTBL struct IProgressVtbl *lpVtbl;
14876 #   endif /* VBOX_WITH_GLUE */
14877 };
14878 /* End of struct IProgress declaration */
14879 
14880 
14881 /* Start of struct ISnapshot declaration */
14882 #   define ISNAPSHOT_IID_STR "6cc49055-dad4-4496-85cf-3f76bcb3b5fa"
14883 #   define ISNAPSHOT_IID { \
14884     0x6cc49055, 0xdad4, 0x4496, \
14885     { 0x85, 0xcf, 0x3f, 0x76, 0xbc, 0xb3, 0xb5, 0xfa } \
14886 }
14887 /* COM compatibility */
14888 VBOX_EXTERN_CONST(nsIID, IID_ISnapshot);
14889 #   ifndef VBOX_WITH_GLUE
14890 struct ISnapshot_vtbl
14891 {
14892     struct nsISupports_vtbl nsisupports;
14893 
14894     nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
14895 
14896     nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
14897     nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
14898 
14899     nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
14900     nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
14901 
14902     nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
14903 
14904     nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
14905 
14906     nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
14907 
14908     nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
14909 
14910     nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
14911 
14912     nsresult (*GetChildrenCount)(ISnapshot *pThis, PRUint32 *childrenCount);
14913 
14914     nsresult (*GetInternalAndReservedAttribute1ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14915 
14916     nsresult (*GetInternalAndReservedAttribute2ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14917 
14918     nsresult (*GetInternalAndReservedAttribute3ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14919 
14920     nsresult (*GetInternalAndReservedAttribute4ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14921 
14922     nsresult (*GetInternalAndReservedAttribute5ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14923 
14924     nsresult (*GetInternalAndReservedAttribute6ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14925 
14926     nsresult (*GetInternalAndReservedAttribute7ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14927 
14928     nsresult (*GetInternalAndReservedAttribute8ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14929 
14930     nsresult (*InternalAndReservedMethod1ISnapshot)(ISnapshot *pThis);
14931 
14932     nsresult (*InternalAndReservedMethod2ISnapshot)(ISnapshot *pThis);
14933 
14934     nsresult (*InternalAndReservedMethod3ISnapshot)(ISnapshot *pThis);
14935 
14936     nsresult (*InternalAndReservedMethod4ISnapshot)(ISnapshot *pThis);
14937 
14938 };
14939 #   else /* VBOX_WITH_GLUE */
14940 struct ISnapshotVtbl
14941 {
14942     nsresult (*QueryInterface)(ISnapshot *pThis, const nsID *iid, void **resultp);
14943     nsrefcnt (*AddRef)(ISnapshot *pThis);
14944     nsrefcnt (*Release)(ISnapshot *pThis);
14945     nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
14946 
14947     nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
14948     nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
14949 
14950     nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
14951     nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
14952 
14953     nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
14954 
14955     nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
14956 
14957     nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
14958 
14959     nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
14960 
14961     nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
14962 
14963     nsresult (*GetChildrenCount)(ISnapshot *pThis, PRUint32 *childrenCount);
14964 
14965     nsresult (*GetInternalAndReservedAttribute1ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14966 
14967     nsresult (*GetInternalAndReservedAttribute2ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14968 
14969     nsresult (*GetInternalAndReservedAttribute3ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14970 
14971     nsresult (*GetInternalAndReservedAttribute4ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14972 
14973     nsresult (*GetInternalAndReservedAttribute5ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14974 
14975     nsresult (*GetInternalAndReservedAttribute6ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14976 
14977     nsresult (*GetInternalAndReservedAttribute7ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14978 
14979     nsresult (*GetInternalAndReservedAttribute8ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14980 
14981     nsresult (*InternalAndReservedMethod1ISnapshot)(ISnapshot *pThis);
14982 
14983     nsresult (*InternalAndReservedMethod2ISnapshot)(ISnapshot *pThis);
14984 
14985     nsresult (*InternalAndReservedMethod3ISnapshot)(ISnapshot *pThis);
14986 
14987     nsresult (*InternalAndReservedMethod4ISnapshot)(ISnapshot *pThis);
14988 
14989 };
14990 #    define ISnapshot_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14991 #    define ISnapshot_AddRef(p) ((p)->lpVtbl->AddRef(p))
14992 #    define ISnapshot_Release(p) ((p)->lpVtbl->Release(p))
14993 #    define ISnapshot_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
14994 #    define ISnapshot_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
14995 #    define ISnapshot_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14996 #    define ISnapshot_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14997 #    define ISnapshot_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
14998 #    define ISnapshot_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
14999 #    define ISnapshot_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
15000 #    define ISnapshot_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
15001 #    define ISnapshot_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
15002 #    define ISnapshot_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
15003 #    define ISnapshot_get_TimeStamp(p, aTimeStamp) ((p)->lpVtbl->GetTimeStamp(p, aTimeStamp))
15004 #    define ISnapshot_GetTimeStamp(p, aTimeStamp) ((p)->lpVtbl->GetTimeStamp(p, aTimeStamp))
15005 #    define ISnapshot_get_Online(p, aOnline) ((p)->lpVtbl->GetOnline(p, aOnline))
15006 #    define ISnapshot_GetOnline(p, aOnline) ((p)->lpVtbl->GetOnline(p, aOnline))
15007 #    define ISnapshot_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
15008 #    define ISnapshot_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
15009 #    define ISnapshot_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
15010 #    define ISnapshot_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
15011 #    define ISnapshot_get_Children(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
15012 #    define ISnapshot_GetChildren(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
15013 #    define ISnapshot_get_ChildrenCount(p, aChildrenCount) ((p)->lpVtbl->GetChildrenCount(p, aChildrenCount))
15014 #    define ISnapshot_GetChildrenCount(p, aChildrenCount) ((p)->lpVtbl->GetChildrenCount(p, aChildrenCount))
15015 #   endif /* VBOX_WITH_GLUE */
15016 
15017 interface ISnapshot
15018 {
15019 #   ifndef VBOX_WITH_GLUE
15020     struct ISnapshot_vtbl *vtbl;
15021 #   else /* VBOX_WITH_GLUE */
15022     CONST_VTBL struct ISnapshotVtbl *lpVtbl;
15023 #   endif /* VBOX_WITH_GLUE */
15024 };
15025 /* End of struct ISnapshot declaration */
15026 
15027 
15028 /* Start of struct IMediumAttachment declaration */
15029 #   define IMEDIUMATTACHMENT_IID_STR "cbc97ce0-dfae-4c70-a6aa-769e5186363b"
15030 #   define IMEDIUMATTACHMENT_IID { \
15031     0xcbc97ce0, 0xdfae, 0x4c70, \
15032     { 0xa6, 0xaa, 0x76, 0x9e, 0x51, 0x86, 0x36, 0x3b } \
15033 }
15034 /* COM compatibility */
15035 VBOX_EXTERN_CONST(nsIID, IID_IMediumAttachment);
15036 #   ifndef VBOX_WITH_GLUE
15037 struct IMediumAttachment_vtbl
15038 {
15039     struct nsISupports_vtbl nsisupports;
15040 
15041     nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
15042 
15043     nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
15044 
15045     nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
15046 
15047     nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
15048 
15049     nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
15050 
15051     nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
15052 
15053     nsresult (*GetTemporaryEject)(IMediumAttachment *pThis, PRBool *temporaryEject);
15054 
15055     nsresult (*GetIsEjected)(IMediumAttachment *pThis, PRBool *isEjected);
15056 
15057     nsresult (*GetNonRotational)(IMediumAttachment *pThis, PRBool *nonRotational);
15058 
15059     nsresult (*GetDiscard)(IMediumAttachment *pThis, PRBool *discard);
15060 
15061     nsresult (*GetHotPluggable)(IMediumAttachment *pThis, PRBool *hotPluggable);
15062 
15063     nsresult (*GetBandwidthGroup)(IMediumAttachment *pThis, IBandwidthGroup * *bandwidthGroup);
15064 
15065     nsresult (*GetInternalAndReservedAttribute1IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15066 
15067     nsresult (*GetInternalAndReservedAttribute2IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15068 
15069     nsresult (*GetInternalAndReservedAttribute3IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15070 
15071     nsresult (*GetInternalAndReservedAttribute4IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15072 
15073     nsresult (*GetInternalAndReservedAttribute5IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15074 
15075     nsresult (*GetInternalAndReservedAttribute6IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15076 
15077     nsresult (*GetInternalAndReservedAttribute7IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15078 
15079     nsresult (*GetInternalAndReservedAttribute8IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15080 
15081 };
15082 #   else /* VBOX_WITH_GLUE */
15083 struct IMediumAttachmentVtbl
15084 {
15085     nsresult (*QueryInterface)(IMediumAttachment *pThis, const nsID *iid, void **resultp);
15086     nsrefcnt (*AddRef)(IMediumAttachment *pThis);
15087     nsrefcnt (*Release)(IMediumAttachment *pThis);
15088     nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
15089 
15090     nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
15091 
15092     nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
15093 
15094     nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
15095 
15096     nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
15097 
15098     nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
15099 
15100     nsresult (*GetTemporaryEject)(IMediumAttachment *pThis, PRBool *temporaryEject);
15101 
15102     nsresult (*GetIsEjected)(IMediumAttachment *pThis, PRBool *isEjected);
15103 
15104     nsresult (*GetNonRotational)(IMediumAttachment *pThis, PRBool *nonRotational);
15105 
15106     nsresult (*GetDiscard)(IMediumAttachment *pThis, PRBool *discard);
15107 
15108     nsresult (*GetHotPluggable)(IMediumAttachment *pThis, PRBool *hotPluggable);
15109 
15110     nsresult (*GetBandwidthGroup)(IMediumAttachment *pThis, IBandwidthGroup * *bandwidthGroup);
15111 
15112     nsresult (*GetInternalAndReservedAttribute1IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15113 
15114     nsresult (*GetInternalAndReservedAttribute2IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15115 
15116     nsresult (*GetInternalAndReservedAttribute3IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15117 
15118     nsresult (*GetInternalAndReservedAttribute4IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15119 
15120     nsresult (*GetInternalAndReservedAttribute5IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15121 
15122     nsresult (*GetInternalAndReservedAttribute6IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15123 
15124     nsresult (*GetInternalAndReservedAttribute7IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15125 
15126     nsresult (*GetInternalAndReservedAttribute8IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
15127 
15128 };
15129 #    define IMediumAttachment_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15130 #    define IMediumAttachment_AddRef(p) ((p)->lpVtbl->AddRef(p))
15131 #    define IMediumAttachment_Release(p) ((p)->lpVtbl->Release(p))
15132 #    define IMediumAttachment_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
15133 #    define IMediumAttachment_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
15134 #    define IMediumAttachment_get_Controller(p, aController) ((p)->lpVtbl->GetController(p, aController))
15135 #    define IMediumAttachment_GetController(p, aController) ((p)->lpVtbl->GetController(p, aController))
15136 #    define IMediumAttachment_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
15137 #    define IMediumAttachment_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
15138 #    define IMediumAttachment_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
15139 #    define IMediumAttachment_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
15140 #    define IMediumAttachment_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
15141 #    define IMediumAttachment_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
15142 #    define IMediumAttachment_get_Passthrough(p, aPassthrough) ((p)->lpVtbl->GetPassthrough(p, aPassthrough))
15143 #    define IMediumAttachment_GetPassthrough(p, aPassthrough) ((p)->lpVtbl->GetPassthrough(p, aPassthrough))
15144 #    define IMediumAttachment_get_TemporaryEject(p, aTemporaryEject) ((p)->lpVtbl->GetTemporaryEject(p, aTemporaryEject))
15145 #    define IMediumAttachment_GetTemporaryEject(p, aTemporaryEject) ((p)->lpVtbl->GetTemporaryEject(p, aTemporaryEject))
15146 #    define IMediumAttachment_get_IsEjected(p, aIsEjected) ((p)->lpVtbl->GetIsEjected(p, aIsEjected))
15147 #    define IMediumAttachment_GetIsEjected(p, aIsEjected) ((p)->lpVtbl->GetIsEjected(p, aIsEjected))
15148 #    define IMediumAttachment_get_NonRotational(p, aNonRotational) ((p)->lpVtbl->GetNonRotational(p, aNonRotational))
15149 #    define IMediumAttachment_GetNonRotational(p, aNonRotational) ((p)->lpVtbl->GetNonRotational(p, aNonRotational))
15150 #    define IMediumAttachment_get_Discard(p, aDiscard) ((p)->lpVtbl->GetDiscard(p, aDiscard))
15151 #    define IMediumAttachment_GetDiscard(p, aDiscard) ((p)->lpVtbl->GetDiscard(p, aDiscard))
15152 #    define IMediumAttachment_get_HotPluggable(p, aHotPluggable) ((p)->lpVtbl->GetHotPluggable(p, aHotPluggable))
15153 #    define IMediumAttachment_GetHotPluggable(p, aHotPluggable) ((p)->lpVtbl->GetHotPluggable(p, aHotPluggable))
15154 #    define IMediumAttachment_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
15155 #    define IMediumAttachment_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
15156 #   endif /* VBOX_WITH_GLUE */
15157 
15158 interface IMediumAttachment
15159 {
15160 #   ifndef VBOX_WITH_GLUE
15161     struct IMediumAttachment_vtbl *vtbl;
15162 #   else /* VBOX_WITH_GLUE */
15163     CONST_VTBL struct IMediumAttachmentVtbl *lpVtbl;
15164 #   endif /* VBOX_WITH_GLUE */
15165 };
15166 /* End of struct IMediumAttachment declaration */
15167 
15168 
15169 /* Start of struct IMedium declaration */
15170 #   define IMEDIUM_IID_STR "ad47ad09-787b-44ab-b343-a082a3f2dfb1"
15171 #   define IMEDIUM_IID { \
15172     0xad47ad09, 0x787b, 0x44ab, \
15173     { 0xb3, 0x43, 0xa0, 0x82, 0xa3, 0xf2, 0xdf, 0xb1 } \
15174 }
15175 /* COM compatibility */
15176 VBOX_EXTERN_CONST(nsIID, IID_IMedium);
15177 #   ifndef VBOX_WITH_GLUE
15178 struct IMedium_vtbl
15179 {
15180     struct nsISupports_vtbl nsisupports;
15181 
15182     nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
15183 
15184     nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
15185     nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
15186 
15187     nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
15188 
15189     nsresult (*GetVariant)(IMedium *pThis, PRUint32 *variantSize, PRUint32 **variant);
15190 
15191     nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
15192     nsresult (*SetLocation)(IMedium *pThis, PRUnichar * location);
15193 
15194     nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
15195 
15196     nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
15197 
15198     nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
15199 
15200     nsresult (*GetSize)(IMedium *pThis, PRInt64 *size);
15201 
15202     nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
15203 
15204     nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
15205 
15206     nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
15207     nsresult (*SetType)(IMedium *pThis, PRUint32 type);
15208 
15209     nsresult (*GetAllowedTypes)(IMedium *pThis, PRUint32 *allowedTypesSize, PRUint32 **allowedTypes);
15210 
15211     nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
15212 
15213     nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
15214 
15215     nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
15216 
15217     nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
15218 
15219     nsresult (*GetLogicalSize)(IMedium *pThis, PRInt64 *logicalSize);
15220 
15221     nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
15222     nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
15223 
15224     nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
15225 
15226     nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
15227 
15228     nsresult (*GetInternalAndReservedAttribute1IMedium)(IMedium *pThis, PRUint32 *reserved);
15229 
15230     nsresult (*GetInternalAndReservedAttribute2IMedium)(IMedium *pThis, PRUint32 *reserved);
15231 
15232     nsresult (*GetInternalAndReservedAttribute3IMedium)(IMedium *pThis, PRUint32 *reserved);
15233 
15234     nsresult (*GetInternalAndReservedAttribute4IMedium)(IMedium *pThis, PRUint32 *reserved);
15235 
15236     nsresult (*GetInternalAndReservedAttribute5IMedium)(IMedium *pThis, PRUint32 *reserved);
15237 
15238     nsresult (*GetInternalAndReservedAttribute6IMedium)(IMedium *pThis, PRUint32 *reserved);
15239 
15240     nsresult (*GetInternalAndReservedAttribute7IMedium)(IMedium *pThis, PRUint32 *reserved);
15241 
15242     nsresult (*GetInternalAndReservedAttribute8IMedium)(IMedium *pThis, PRUint32 *reserved);
15243 
15244     nsresult (*GetInternalAndReservedAttribute9IMedium)(IMedium *pThis, PRUint32 *reserved);
15245 
15246     nsresult (*GetInternalAndReservedAttribute10IMedium)(IMedium *pThis, PRUint32 *reserved);
15247 
15248     nsresult (*GetInternalAndReservedAttribute11IMedium)(IMedium *pThis, PRUint32 *reserved);
15249 
15250     nsresult (*GetInternalAndReservedAttribute12IMedium)(IMedium *pThis, PRUint32 *reserved);
15251 
15252     nsresult (*SetIds)(
15253         IMedium *pThis,
15254         PRBool setImageId,
15255         PRUnichar * imageId,
15256         PRBool setParentId,
15257         PRUnichar * parentId
15258     );
15259 
15260     nsresult (*RefreshState)(
15261         IMedium *pThis,
15262         PRUint32 * state
15263     );
15264 
15265     nsresult (*GetSnapshotIds)(
15266         IMedium *pThis,
15267         PRUnichar * machineId,
15268         PRUint32 *snapshotIdsSize,
15269         PRUnichar *** snapshotIds
15270     );
15271 
15272     nsresult (*LockRead)(
15273         IMedium *pThis,
15274         IToken * * token
15275     );
15276 
15277     nsresult (*LockWrite)(
15278         IMedium *pThis,
15279         IToken * * token
15280     );
15281 
15282     nsresult (*Close)(IMedium *pThis );
15283 
15284     nsresult (*GetProperty)(
15285         IMedium *pThis,
15286         PRUnichar * name,
15287         PRUnichar * * value
15288     );
15289 
15290     nsresult (*SetProperty)(
15291         IMedium *pThis,
15292         PRUnichar * name,
15293         PRUnichar * value
15294     );
15295 
15296     nsresult (*GetProperties)(
15297         IMedium *pThis,
15298         PRUnichar * names,
15299         PRUint32 *returnNamesSize,
15300         PRUnichar *** returnNames,
15301         PRUint32 *returnValuesSize,
15302         PRUnichar *** returnValues
15303     );
15304 
15305     nsresult (*SetProperties)(
15306         IMedium *pThis,
15307         PRUint32 namesSize,
15308         PRUnichar ** names,
15309         PRUint32 valuesSize,
15310         PRUnichar ** values
15311     );
15312 
15313     nsresult (*CreateBaseStorage)(
15314         IMedium *pThis,
15315         PRInt64 logicalSize,
15316         PRUint32 variantSize,
15317         PRUint32* variant,
15318         IProgress * * progress
15319     );
15320 
15321     nsresult (*DeleteStorage)(
15322         IMedium *pThis,
15323         IProgress * * progress
15324     );
15325 
15326     nsresult (*CreateDiffStorage)(
15327         IMedium *pThis,
15328         IMedium * target,
15329         PRUint32 variantSize,
15330         PRUint32* variant,
15331         IProgress * * progress
15332     );
15333 
15334     nsresult (*MergeTo)(
15335         IMedium *pThis,
15336         IMedium * target,
15337         IProgress * * progress
15338     );
15339 
15340     nsresult (*CloneTo)(
15341         IMedium *pThis,
15342         IMedium * target,
15343         PRUint32 variantSize,
15344         PRUint32* variant,
15345         IMedium * parent,
15346         IProgress * * progress
15347     );
15348 
15349     nsresult (*CloneToBase)(
15350         IMedium *pThis,
15351         IMedium * target,
15352         PRUint32 variantSize,
15353         PRUint32* variant,
15354         IProgress * * progress
15355     );
15356 
15357     nsresult (*MoveTo)(
15358         IMedium *pThis,
15359         PRUnichar * location,
15360         IProgress * * progress
15361     );
15362 
15363     nsresult (*Compact)(
15364         IMedium *pThis,
15365         IProgress * * progress
15366     );
15367 
15368     nsresult (*Resize)(
15369         IMedium *pThis,
15370         PRInt64 logicalSize,
15371         IProgress * * progress
15372     );
15373 
15374     nsresult (*Reset)(
15375         IMedium *pThis,
15376         IProgress * * progress
15377     );
15378 
15379     nsresult (*ChangeEncryption)(
15380         IMedium *pThis,
15381         PRUnichar * currentPassword,
15382         PRUnichar * cipher,
15383         PRUnichar * newPassword,
15384         PRUnichar * newPasswordId,
15385         IProgress * * progress
15386     );
15387 
15388     nsresult (*GetEncryptionSettings)(
15389         IMedium *pThis,
15390         PRUnichar * * cipher,
15391         PRUnichar * * passwordId
15392     );
15393 
15394     nsresult (*CheckEncryptionPassword)(
15395         IMedium *pThis,
15396         PRUnichar * password
15397     );
15398 
15399     nsresult (*OpenForIO)(
15400         IMedium *pThis,
15401         PRBool writable,
15402         PRUnichar * password,
15403         IMediumIO * * mediumIO
15404     );
15405 
15406     nsresult (*InternalAndReservedMethod1IMedium)(IMedium *pThis);
15407 
15408     nsresult (*InternalAndReservedMethod2IMedium)(IMedium *pThis);
15409 
15410     nsresult (*InternalAndReservedMethod3IMedium)(IMedium *pThis);
15411 
15412     nsresult (*InternalAndReservedMethod4IMedium)(IMedium *pThis);
15413 
15414     nsresult (*InternalAndReservedMethod5IMedium)(IMedium *pThis);
15415 
15416     nsresult (*InternalAndReservedMethod6IMedium)(IMedium *pThis);
15417 
15418     nsresult (*InternalAndReservedMethod7IMedium)(IMedium *pThis);
15419 
15420     nsresult (*InternalAndReservedMethod8IMedium)(IMedium *pThis);
15421 
15422 };
15423 #   else /* VBOX_WITH_GLUE */
15424 struct IMediumVtbl
15425 {
15426     nsresult (*QueryInterface)(IMedium *pThis, const nsID *iid, void **resultp);
15427     nsrefcnt (*AddRef)(IMedium *pThis);
15428     nsrefcnt (*Release)(IMedium *pThis);
15429     nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
15430 
15431     nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
15432     nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
15433 
15434     nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
15435 
15436     nsresult (*GetVariant)(IMedium *pThis, PRUint32 *variantSize, PRUint32 **variant);
15437 
15438     nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
15439     nsresult (*SetLocation)(IMedium *pThis, PRUnichar * location);
15440 
15441     nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
15442 
15443     nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
15444 
15445     nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
15446 
15447     nsresult (*GetSize)(IMedium *pThis, PRInt64 *size);
15448 
15449     nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
15450 
15451     nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
15452 
15453     nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
15454     nsresult (*SetType)(IMedium *pThis, PRUint32 type);
15455 
15456     nsresult (*GetAllowedTypes)(IMedium *pThis, PRUint32 *allowedTypesSize, PRUint32 **allowedTypes);
15457 
15458     nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
15459 
15460     nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
15461 
15462     nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
15463 
15464     nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
15465 
15466     nsresult (*GetLogicalSize)(IMedium *pThis, PRInt64 *logicalSize);
15467 
15468     nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
15469     nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
15470 
15471     nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
15472 
15473     nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
15474 
15475     nsresult (*GetInternalAndReservedAttribute1IMedium)(IMedium *pThis, PRUint32 *reserved);
15476 
15477     nsresult (*GetInternalAndReservedAttribute2IMedium)(IMedium *pThis, PRUint32 *reserved);
15478 
15479     nsresult (*GetInternalAndReservedAttribute3IMedium)(IMedium *pThis, PRUint32 *reserved);
15480 
15481     nsresult (*GetInternalAndReservedAttribute4IMedium)(IMedium *pThis, PRUint32 *reserved);
15482 
15483     nsresult (*GetInternalAndReservedAttribute5IMedium)(IMedium *pThis, PRUint32 *reserved);
15484 
15485     nsresult (*GetInternalAndReservedAttribute6IMedium)(IMedium *pThis, PRUint32 *reserved);
15486 
15487     nsresult (*GetInternalAndReservedAttribute7IMedium)(IMedium *pThis, PRUint32 *reserved);
15488 
15489     nsresult (*GetInternalAndReservedAttribute8IMedium)(IMedium *pThis, PRUint32 *reserved);
15490 
15491     nsresult (*GetInternalAndReservedAttribute9IMedium)(IMedium *pThis, PRUint32 *reserved);
15492 
15493     nsresult (*GetInternalAndReservedAttribute10IMedium)(IMedium *pThis, PRUint32 *reserved);
15494 
15495     nsresult (*GetInternalAndReservedAttribute11IMedium)(IMedium *pThis, PRUint32 *reserved);
15496 
15497     nsresult (*GetInternalAndReservedAttribute12IMedium)(IMedium *pThis, PRUint32 *reserved);
15498 
15499     nsresult (*SetIds)(
15500         IMedium *pThis,
15501         PRBool setImageId,
15502         PRUnichar * imageId,
15503         PRBool setParentId,
15504         PRUnichar * parentId
15505     );
15506 
15507     nsresult (*RefreshState)(
15508         IMedium *pThis,
15509         PRUint32 * state
15510     );
15511 
15512     nsresult (*GetSnapshotIds)(
15513         IMedium *pThis,
15514         PRUnichar * machineId,
15515         PRUint32 *snapshotIdsSize,
15516         PRUnichar *** snapshotIds
15517     );
15518 
15519     nsresult (*LockRead)(
15520         IMedium *pThis,
15521         IToken * * token
15522     );
15523 
15524     nsresult (*LockWrite)(
15525         IMedium *pThis,
15526         IToken * * token
15527     );
15528 
15529     nsresult (*Close)(IMedium *pThis );
15530 
15531     nsresult (*GetProperty)(
15532         IMedium *pThis,
15533         PRUnichar * name,
15534         PRUnichar * * value
15535     );
15536 
15537     nsresult (*SetProperty)(
15538         IMedium *pThis,
15539         PRUnichar * name,
15540         PRUnichar * value
15541     );
15542 
15543     nsresult (*GetProperties)(
15544         IMedium *pThis,
15545         PRUnichar * names,
15546         PRUint32 *returnNamesSize,
15547         PRUnichar *** returnNames,
15548         PRUint32 *returnValuesSize,
15549         PRUnichar *** returnValues
15550     );
15551 
15552     nsresult (*SetProperties)(
15553         IMedium *pThis,
15554         PRUint32 namesSize,
15555         PRUnichar ** names,
15556         PRUint32 valuesSize,
15557         PRUnichar ** values
15558     );
15559 
15560     nsresult (*CreateBaseStorage)(
15561         IMedium *pThis,
15562         PRInt64 logicalSize,
15563         PRUint32 variantSize,
15564         PRUint32* variant,
15565         IProgress * * progress
15566     );
15567 
15568     nsresult (*DeleteStorage)(
15569         IMedium *pThis,
15570         IProgress * * progress
15571     );
15572 
15573     nsresult (*CreateDiffStorage)(
15574         IMedium *pThis,
15575         IMedium * target,
15576         PRUint32 variantSize,
15577         PRUint32* variant,
15578         IProgress * * progress
15579     );
15580 
15581     nsresult (*MergeTo)(
15582         IMedium *pThis,
15583         IMedium * target,
15584         IProgress * * progress
15585     );
15586 
15587     nsresult (*CloneTo)(
15588         IMedium *pThis,
15589         IMedium * target,
15590         PRUint32 variantSize,
15591         PRUint32* variant,
15592         IMedium * parent,
15593         IProgress * * progress
15594     );
15595 
15596     nsresult (*CloneToBase)(
15597         IMedium *pThis,
15598         IMedium * target,
15599         PRUint32 variantSize,
15600         PRUint32* variant,
15601         IProgress * * progress
15602     );
15603 
15604     nsresult (*MoveTo)(
15605         IMedium *pThis,
15606         PRUnichar * location,
15607         IProgress * * progress
15608     );
15609 
15610     nsresult (*Compact)(
15611         IMedium *pThis,
15612         IProgress * * progress
15613     );
15614 
15615     nsresult (*Resize)(
15616         IMedium *pThis,
15617         PRInt64 logicalSize,
15618         IProgress * * progress
15619     );
15620 
15621     nsresult (*Reset)(
15622         IMedium *pThis,
15623         IProgress * * progress
15624     );
15625 
15626     nsresult (*ChangeEncryption)(
15627         IMedium *pThis,
15628         PRUnichar * currentPassword,
15629         PRUnichar * cipher,
15630         PRUnichar * newPassword,
15631         PRUnichar * newPasswordId,
15632         IProgress * * progress
15633     );
15634 
15635     nsresult (*GetEncryptionSettings)(
15636         IMedium *pThis,
15637         PRUnichar * * cipher,
15638         PRUnichar * * passwordId
15639     );
15640 
15641     nsresult (*CheckEncryptionPassword)(
15642         IMedium *pThis,
15643         PRUnichar * password
15644     );
15645 
15646     nsresult (*OpenForIO)(
15647         IMedium *pThis,
15648         PRBool writable,
15649         PRUnichar * password,
15650         IMediumIO * * mediumIO
15651     );
15652 
15653     nsresult (*InternalAndReservedMethod1IMedium)(IMedium *pThis);
15654 
15655     nsresult (*InternalAndReservedMethod2IMedium)(IMedium *pThis);
15656 
15657     nsresult (*InternalAndReservedMethod3IMedium)(IMedium *pThis);
15658 
15659     nsresult (*InternalAndReservedMethod4IMedium)(IMedium *pThis);
15660 
15661     nsresult (*InternalAndReservedMethod5IMedium)(IMedium *pThis);
15662 
15663     nsresult (*InternalAndReservedMethod6IMedium)(IMedium *pThis);
15664 
15665     nsresult (*InternalAndReservedMethod7IMedium)(IMedium *pThis);
15666 
15667     nsresult (*InternalAndReservedMethod8IMedium)(IMedium *pThis);
15668 
15669 };
15670 #    define IMedium_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15671 #    define IMedium_AddRef(p) ((p)->lpVtbl->AddRef(p))
15672 #    define IMedium_Release(p) ((p)->lpVtbl->Release(p))
15673 #    define IMedium_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
15674 #    define IMedium_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
15675 #    define IMedium_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
15676 #    define IMedium_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
15677 #    define IMedium_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
15678 #    define IMedium_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
15679 #    define IMedium_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
15680 #    define IMedium_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
15681 #    define IMedium_get_Variant(p, aVariant) ((p)->lpVtbl->GetVariant(p, aVariant))
15682 #    define IMedium_GetVariant(p, aVariant) ((p)->lpVtbl->GetVariant(p, aVariant))
15683 #    define IMedium_get_Location(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
15684 #    define IMedium_GetLocation(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
15685 #    define IMedium_put_Location(p, aLocation) ((p)->lpVtbl->SetLocation(p, aLocation))
15686 #    define IMedium_SetLocation(p, aLocation) ((p)->lpVtbl->SetLocation(p, aLocation))
15687 #    define IMedium_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
15688 #    define IMedium_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
15689 #    define IMedium_get_DeviceType(p, aDeviceType) ((p)->lpVtbl->GetDeviceType(p, aDeviceType))
15690 #    define IMedium_GetDeviceType(p, aDeviceType) ((p)->lpVtbl->GetDeviceType(p, aDeviceType))
15691 #    define IMedium_get_HostDrive(p, aHostDrive) ((p)->lpVtbl->GetHostDrive(p, aHostDrive))
15692 #    define IMedium_GetHostDrive(p, aHostDrive) ((p)->lpVtbl->GetHostDrive(p, aHostDrive))
15693 #    define IMedium_get_Size(p, aSize) ((p)->lpVtbl->GetSize(p, aSize))
15694 #    define IMedium_GetSize(p, aSize) ((p)->lpVtbl->GetSize(p, aSize))
15695 #    define IMedium_get_Format(p, aFormat) ((p)->lpVtbl->GetFormat(p, aFormat))
15696 #    define IMedium_GetFormat(p, aFormat) ((p)->lpVtbl->GetFormat(p, aFormat))
15697 #    define IMedium_get_MediumFormat(p, aMediumFormat) ((p)->lpVtbl->GetMediumFormat(p, aMediumFormat))
15698 #    define IMedium_GetMediumFormat(p, aMediumFormat) ((p)->lpVtbl->GetMediumFormat(p, aMediumFormat))
15699 #    define IMedium_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
15700 #    define IMedium_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
15701 #    define IMedium_put_Type(p, aType) ((p)->lpVtbl->SetType(p, aType))
15702 #    define IMedium_SetType(p, aType) ((p)->lpVtbl->SetType(p, aType))
15703 #    define IMedium_get_AllowedTypes(p, aAllowedTypes) ((p)->lpVtbl->GetAllowedTypes(p, aAllowedTypes))
15704 #    define IMedium_GetAllowedTypes(p, aAllowedTypes) ((p)->lpVtbl->GetAllowedTypes(p, aAllowedTypes))
15705 #    define IMedium_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
15706 #    define IMedium_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
15707 #    define IMedium_get_Children(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
15708 #    define IMedium_GetChildren(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
15709 #    define IMedium_get_Base(p, aBase) ((p)->lpVtbl->GetBase(p, aBase))
15710 #    define IMedium_GetBase(p, aBase) ((p)->lpVtbl->GetBase(p, aBase))
15711 #    define IMedium_get_ReadOnly(p, aReadOnly) ((p)->lpVtbl->GetReadOnly(p, aReadOnly))
15712 #    define IMedium_GetReadOnly(p, aReadOnly) ((p)->lpVtbl->GetReadOnly(p, aReadOnly))
15713 #    define IMedium_get_LogicalSize(p, aLogicalSize) ((p)->lpVtbl->GetLogicalSize(p, aLogicalSize))
15714 #    define IMedium_GetLogicalSize(p, aLogicalSize) ((p)->lpVtbl->GetLogicalSize(p, aLogicalSize))
15715 #    define IMedium_get_AutoReset(p, aAutoReset) ((p)->lpVtbl->GetAutoReset(p, aAutoReset))
15716 #    define IMedium_GetAutoReset(p, aAutoReset) ((p)->lpVtbl->GetAutoReset(p, aAutoReset))
15717 #    define IMedium_put_AutoReset(p, aAutoReset) ((p)->lpVtbl->SetAutoReset(p, aAutoReset))
15718 #    define IMedium_SetAutoReset(p, aAutoReset) ((p)->lpVtbl->SetAutoReset(p, aAutoReset))
15719 #    define IMedium_get_LastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
15720 #    define IMedium_GetLastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
15721 #    define IMedium_get_MachineIds(p, aMachineIds) ((p)->lpVtbl->GetMachineIds(p, aMachineIds))
15722 #    define IMedium_GetMachineIds(p, aMachineIds) ((p)->lpVtbl->GetMachineIds(p, aMachineIds))
15723 #    define IMedium_SetIds(p, aSetImageId, aImageId, aSetParentId, aParentId) ((p)->lpVtbl->SetIds(p, aSetImageId, aImageId, aSetParentId, aParentId))
15724 #    define IMedium_RefreshState(p, aState) ((p)->lpVtbl->RefreshState(p, aState))
15725 #    define IMedium_GetSnapshotIds(p, aMachineId, aSnapshotIds) ((p)->lpVtbl->GetSnapshotIds(p, aMachineId, aSnapshotIds))
15726 #    define IMedium_LockRead(p, aToken) ((p)->lpVtbl->LockRead(p, aToken))
15727 #    define IMedium_LockWrite(p, aToken) ((p)->lpVtbl->LockWrite(p, aToken))
15728 #    define IMedium_Close(p) ((p)->lpVtbl->Close(p))
15729 #    define IMedium_GetProperty(p, aName, aValue) ((p)->lpVtbl->GetProperty(p, aName, aValue))
15730 #    define IMedium_SetProperty(p, aName, aValue) ((p)->lpVtbl->SetProperty(p, aName, aValue))
15731 #    define IMedium_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
15732 #    define IMedium_SetProperties(p, aNames, aValues) ((p)->lpVtbl->SetProperties(p, aNames, aValues))
15733 #    define IMedium_CreateBaseStorage(p, aLogicalSize, aVariant, aProgress) ((p)->lpVtbl->CreateBaseStorage(p, aLogicalSize, aVariant, aProgress))
15734 #    define IMedium_DeleteStorage(p, aProgress) ((p)->lpVtbl->DeleteStorage(p, aProgress))
15735 #    define IMedium_CreateDiffStorage(p, aTarget, aVariant, aProgress) ((p)->lpVtbl->CreateDiffStorage(p, aTarget, aVariant, aProgress))
15736 #    define IMedium_MergeTo(p, aTarget, aProgress) ((p)->lpVtbl->MergeTo(p, aTarget, aProgress))
15737 #    define IMedium_CloneTo(p, aTarget, aVariant, aParent, aProgress) ((p)->lpVtbl->CloneTo(p, aTarget, aVariant, aParent, aProgress))
15738 #    define IMedium_CloneToBase(p, aTarget, aVariant, aProgress) ((p)->lpVtbl->CloneToBase(p, aTarget, aVariant, aProgress))
15739 #    define IMedium_MoveTo(p, aLocation, aProgress) ((p)->lpVtbl->MoveTo(p, aLocation, aProgress))
15740 #    define IMedium_Compact(p, aProgress) ((p)->lpVtbl->Compact(p, aProgress))
15741 #    define IMedium_Resize(p, aLogicalSize, aProgress) ((p)->lpVtbl->Resize(p, aLogicalSize, aProgress))
15742 #    define IMedium_Reset(p, aProgress) ((p)->lpVtbl->Reset(p, aProgress))
15743 #    define IMedium_ChangeEncryption(p, aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aProgress) ((p)->lpVtbl->ChangeEncryption(p, aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aProgress))
15744 #    define IMedium_GetEncryptionSettings(p, aCipher, aPasswordId) ((p)->lpVtbl->GetEncryptionSettings(p, aCipher, aPasswordId))
15745 #    define IMedium_CheckEncryptionPassword(p, aPassword) ((p)->lpVtbl->CheckEncryptionPassword(p, aPassword))
15746 #    define IMedium_OpenForIO(p, aWritable, aPassword, aMediumIO) ((p)->lpVtbl->OpenForIO(p, aWritable, aPassword, aMediumIO))
15747 #   endif /* VBOX_WITH_GLUE */
15748 
15749 interface IMedium
15750 {
15751 #   ifndef VBOX_WITH_GLUE
15752     struct IMedium_vtbl *vtbl;
15753 #   else /* VBOX_WITH_GLUE */
15754     CONST_VTBL struct IMediumVtbl *lpVtbl;
15755 #   endif /* VBOX_WITH_GLUE */
15756 };
15757 /* End of struct IMedium declaration */
15758 
15759 
15760 /* Start of struct IMediumFormat declaration */
15761 #   define IMEDIUMFORMAT_IID_STR "11be93c7-a862-4dc9-8c89-bf4ba74a886a"
15762 #   define IMEDIUMFORMAT_IID { \
15763     0x11be93c7, 0xa862, 0x4dc9, \
15764     { 0x8c, 0x89, 0xbf, 0x4b, 0xa7, 0x4a, 0x88, 0x6a } \
15765 }
15766 /* COM compatibility */
15767 VBOX_EXTERN_CONST(nsIID, IID_IMediumFormat);
15768 #   ifndef VBOX_WITH_GLUE
15769 struct IMediumFormat_vtbl
15770 {
15771     struct nsISupports_vtbl nsisupports;
15772 
15773     nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
15774 
15775     nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
15776 
15777     nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
15778 
15779     nsresult (*GetInternalAndReservedAttribute1IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15780 
15781     nsresult (*GetInternalAndReservedAttribute2IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15782 
15783     nsresult (*GetInternalAndReservedAttribute3IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15784 
15785     nsresult (*GetInternalAndReservedAttribute4IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15786 
15787     nsresult (*DescribeFileExtensions)(
15788         IMediumFormat *pThis,
15789         PRUint32 *extensionsSize,
15790         PRUnichar *** extensions,
15791         PRUint32 *typesSize,
15792         PRUint32** types
15793     );
15794 
15795     nsresult (*DescribeProperties)(
15796         IMediumFormat *pThis,
15797         PRUint32 *namesSize,
15798         PRUnichar *** names,
15799         PRUint32 *descriptionsSize,
15800         PRUnichar *** descriptions,
15801         PRUint32 *typesSize,
15802         PRUint32** types,
15803         PRUint32 *flagsSize,
15804         PRUint32** flags,
15805         PRUint32 *defaultsSize,
15806         PRUnichar *** defaults
15807     );
15808 
15809     nsresult (*InternalAndReservedMethod1IMediumFormat)(IMediumFormat *pThis);
15810 
15811     nsresult (*InternalAndReservedMethod2IMediumFormat)(IMediumFormat *pThis);
15812 
15813 };
15814 #   else /* VBOX_WITH_GLUE */
15815 struct IMediumFormatVtbl
15816 {
15817     nsresult (*QueryInterface)(IMediumFormat *pThis, const nsID *iid, void **resultp);
15818     nsrefcnt (*AddRef)(IMediumFormat *pThis);
15819     nsrefcnt (*Release)(IMediumFormat *pThis);
15820     nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
15821 
15822     nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
15823 
15824     nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
15825 
15826     nsresult (*GetInternalAndReservedAttribute1IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15827 
15828     nsresult (*GetInternalAndReservedAttribute2IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15829 
15830     nsresult (*GetInternalAndReservedAttribute3IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15831 
15832     nsresult (*GetInternalAndReservedAttribute4IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
15833 
15834     nsresult (*DescribeFileExtensions)(
15835         IMediumFormat *pThis,
15836         PRUint32 *extensionsSize,
15837         PRUnichar *** extensions,
15838         PRUint32 *typesSize,
15839         PRUint32** types
15840     );
15841 
15842     nsresult (*DescribeProperties)(
15843         IMediumFormat *pThis,
15844         PRUint32 *namesSize,
15845         PRUnichar *** names,
15846         PRUint32 *descriptionsSize,
15847         PRUnichar *** descriptions,
15848         PRUint32 *typesSize,
15849         PRUint32** types,
15850         PRUint32 *flagsSize,
15851         PRUint32** flags,
15852         PRUint32 *defaultsSize,
15853         PRUnichar *** defaults
15854     );
15855 
15856     nsresult (*InternalAndReservedMethod1IMediumFormat)(IMediumFormat *pThis);
15857 
15858     nsresult (*InternalAndReservedMethod2IMediumFormat)(IMediumFormat *pThis);
15859 
15860 };
15861 #    define IMediumFormat_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15862 #    define IMediumFormat_AddRef(p) ((p)->lpVtbl->AddRef(p))
15863 #    define IMediumFormat_Release(p) ((p)->lpVtbl->Release(p))
15864 #    define IMediumFormat_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
15865 #    define IMediumFormat_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
15866 #    define IMediumFormat_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
15867 #    define IMediumFormat_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
15868 #    define IMediumFormat_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
15869 #    define IMediumFormat_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
15870 #    define IMediumFormat_DescribeFileExtensions(p, aExtensions, aTypes) ((p)->lpVtbl->DescribeFileExtensions(p, aExtensions, aTypes))
15871 #    define IMediumFormat_DescribeProperties(p, aNames, aDescriptions, aTypes, aFlags, aDefaults) ((p)->lpVtbl->DescribeProperties(p, aNames, aDescriptions, aTypes, aFlags, aDefaults))
15872 #   endif /* VBOX_WITH_GLUE */
15873 
15874 interface IMediumFormat
15875 {
15876 #   ifndef VBOX_WITH_GLUE
15877     struct IMediumFormat_vtbl *vtbl;
15878 #   else /* VBOX_WITH_GLUE */
15879     CONST_VTBL struct IMediumFormatVtbl *lpVtbl;
15880 #   endif /* VBOX_WITH_GLUE */
15881 };
15882 /* End of struct IMediumFormat declaration */
15883 
15884 
15885 /* Start of struct IDataStream declaration */
15886 #   define IDATASTREAM_IID_STR "a338ed20-58d9-43ae-8b03-c1fd7088ef15"
15887 #   define IDATASTREAM_IID { \
15888     0xa338ed20, 0x58d9, 0x43ae, \
15889     { 0x8b, 0x03, 0xc1, 0xfd, 0x70, 0x88, 0xef, 0x15 } \
15890 }
15891 /* COM compatibility */
15892 VBOX_EXTERN_CONST(nsIID, IID_IDataStream);
15893 #   ifndef VBOX_WITH_GLUE
15894 struct IDataStream_vtbl
15895 {
15896     struct nsISupports_vtbl nsisupports;
15897 
15898     nsresult (*GetReadSize)(IDataStream *pThis, PRUint32 *readSize);
15899 
15900     nsresult (*GetInternalAndReservedAttribute1IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15901 
15902     nsresult (*GetInternalAndReservedAttribute2IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15903 
15904     nsresult (*GetInternalAndReservedAttribute3IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15905 
15906     nsresult (*GetInternalAndReservedAttribute4IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15907 
15908     nsresult (*GetInternalAndReservedAttribute5IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15909 
15910     nsresult (*GetInternalAndReservedAttribute6IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15911 
15912     nsresult (*GetInternalAndReservedAttribute7IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15913 
15914     nsresult (*GetInternalAndReservedAttribute8IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15915 
15916     nsresult (*Read)(
15917         IDataStream *pThis,
15918         PRUint32 size,
15919         PRUint32 timeoutMS,
15920         PRUint32 *dataSize,
15921         PRUint8** data
15922     );
15923 
15924     nsresult (*InternalAndReservedMethod1IDataStream)(IDataStream *pThis);
15925 
15926     nsresult (*InternalAndReservedMethod2IDataStream)(IDataStream *pThis);
15927 
15928     nsresult (*InternalAndReservedMethod3IDataStream)(IDataStream *pThis);
15929 
15930     nsresult (*InternalAndReservedMethod4IDataStream)(IDataStream *pThis);
15931 
15932 };
15933 #   else /* VBOX_WITH_GLUE */
15934 struct IDataStreamVtbl
15935 {
15936     nsresult (*QueryInterface)(IDataStream *pThis, const nsID *iid, void **resultp);
15937     nsrefcnt (*AddRef)(IDataStream *pThis);
15938     nsrefcnt (*Release)(IDataStream *pThis);
15939     nsresult (*GetReadSize)(IDataStream *pThis, PRUint32 *readSize);
15940 
15941     nsresult (*GetInternalAndReservedAttribute1IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15942 
15943     nsresult (*GetInternalAndReservedAttribute2IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15944 
15945     nsresult (*GetInternalAndReservedAttribute3IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15946 
15947     nsresult (*GetInternalAndReservedAttribute4IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15948 
15949     nsresult (*GetInternalAndReservedAttribute5IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15950 
15951     nsresult (*GetInternalAndReservedAttribute6IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15952 
15953     nsresult (*GetInternalAndReservedAttribute7IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15954 
15955     nsresult (*GetInternalAndReservedAttribute8IDataStream)(IDataStream *pThis, PRUint32 *reserved);
15956 
15957     nsresult (*Read)(
15958         IDataStream *pThis,
15959         PRUint32 size,
15960         PRUint32 timeoutMS,
15961         PRUint32 *dataSize,
15962         PRUint8** data
15963     );
15964 
15965     nsresult (*InternalAndReservedMethod1IDataStream)(IDataStream *pThis);
15966 
15967     nsresult (*InternalAndReservedMethod2IDataStream)(IDataStream *pThis);
15968 
15969     nsresult (*InternalAndReservedMethod3IDataStream)(IDataStream *pThis);
15970 
15971     nsresult (*InternalAndReservedMethod4IDataStream)(IDataStream *pThis);
15972 
15973 };
15974 #    define IDataStream_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15975 #    define IDataStream_AddRef(p) ((p)->lpVtbl->AddRef(p))
15976 #    define IDataStream_Release(p) ((p)->lpVtbl->Release(p))
15977 #    define IDataStream_get_ReadSize(p, aReadSize) ((p)->lpVtbl->GetReadSize(p, aReadSize))
15978 #    define IDataStream_GetReadSize(p, aReadSize) ((p)->lpVtbl->GetReadSize(p, aReadSize))
15979 #    define IDataStream_Read(p, aSize, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aSize, aTimeoutMS, aData))
15980 #   endif /* VBOX_WITH_GLUE */
15981 
15982 interface IDataStream
15983 {
15984 #   ifndef VBOX_WITH_GLUE
15985     struct IDataStream_vtbl *vtbl;
15986 #   else /* VBOX_WITH_GLUE */
15987     CONST_VTBL struct IDataStreamVtbl *lpVtbl;
15988 #   endif /* VBOX_WITH_GLUE */
15989 };
15990 /* End of struct IDataStream declaration */
15991 
15992 
15993 /* Start of struct IMediumIO declaration */
15994 #   define IMEDIUMIO_IID_STR "e4b301a9-5f86-4d65-ad1b-87ca284fb1c8"
15995 #   define IMEDIUMIO_IID { \
15996     0xe4b301a9, 0x5f86, 0x4d65, \
15997     { 0xad, 0x1b, 0x87, 0xca, 0x28, 0x4f, 0xb1, 0xc8 } \
15998 }
15999 /* COM compatibility */
16000 VBOX_EXTERN_CONST(nsIID, IID_IMediumIO);
16001 #   ifndef VBOX_WITH_GLUE
16002 struct IMediumIO_vtbl
16003 {
16004     struct nsISupports_vtbl nsisupports;
16005 
16006     nsresult (*GetMedium)(IMediumIO *pThis, IMedium * *medium);
16007 
16008     nsresult (*GetWritable)(IMediumIO *pThis, PRBool *writable);
16009 
16010     nsresult (*GetExplorer)(IMediumIO *pThis, IVFSExplorer * *explorer);
16011 
16012     nsresult (*GetInternalAndReservedAttribute1IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16013 
16014     nsresult (*GetInternalAndReservedAttribute2IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16015 
16016     nsresult (*GetInternalAndReservedAttribute3IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16017 
16018     nsresult (*GetInternalAndReservedAttribute4IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16019 
16020     nsresult (*GetInternalAndReservedAttribute5IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16021 
16022     nsresult (*GetInternalAndReservedAttribute6IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16023 
16024     nsresult (*GetInternalAndReservedAttribute7IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16025 
16026     nsresult (*GetInternalAndReservedAttribute8IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16027 
16028     nsresult (*Read)(
16029         IMediumIO *pThis,
16030         PRInt64 offset,
16031         PRUint32 size,
16032         PRUint32 *dataSize,
16033         PRUint8** data
16034     );
16035 
16036     nsresult (*Write)(
16037         IMediumIO *pThis,
16038         PRInt64 offset,
16039         PRUint32 dataSize,
16040         PRUint8* data,
16041         PRUint32 * written
16042     );
16043 
16044     nsresult (*FormatFAT)(
16045         IMediumIO *pThis,
16046         PRBool quick
16047     );
16048 
16049     nsresult (*InitializePartitionTable)(
16050         IMediumIO *pThis,
16051         PRUint32 format,
16052         PRBool wholeDiskInOneEntry
16053     );
16054 
16055     nsresult (*ConvertToStream)(
16056         IMediumIO *pThis,
16057         PRUnichar * format,
16058         PRUint32 variantSize,
16059         PRUint32* variant,
16060         PRUint32 bufferSize,
16061         IDataStream * * stream,
16062         IProgress * * progress
16063     );
16064 
16065     nsresult (*Close)(IMediumIO *pThis );
16066 
16067     nsresult (*InternalAndReservedMethod1IMediumIO)(IMediumIO *pThis);
16068 
16069     nsresult (*InternalAndReservedMethod2IMediumIO)(IMediumIO *pThis);
16070 
16071     nsresult (*InternalAndReservedMethod3IMediumIO)(IMediumIO *pThis);
16072 
16073     nsresult (*InternalAndReservedMethod4IMediumIO)(IMediumIO *pThis);
16074 
16075 };
16076 #   else /* VBOX_WITH_GLUE */
16077 struct IMediumIOVtbl
16078 {
16079     nsresult (*QueryInterface)(IMediumIO *pThis, const nsID *iid, void **resultp);
16080     nsrefcnt (*AddRef)(IMediumIO *pThis);
16081     nsrefcnt (*Release)(IMediumIO *pThis);
16082     nsresult (*GetMedium)(IMediumIO *pThis, IMedium * *medium);
16083 
16084     nsresult (*GetWritable)(IMediumIO *pThis, PRBool *writable);
16085 
16086     nsresult (*GetExplorer)(IMediumIO *pThis, IVFSExplorer * *explorer);
16087 
16088     nsresult (*GetInternalAndReservedAttribute1IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16089 
16090     nsresult (*GetInternalAndReservedAttribute2IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16091 
16092     nsresult (*GetInternalAndReservedAttribute3IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16093 
16094     nsresult (*GetInternalAndReservedAttribute4IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16095 
16096     nsresult (*GetInternalAndReservedAttribute5IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16097 
16098     nsresult (*GetInternalAndReservedAttribute6IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16099 
16100     nsresult (*GetInternalAndReservedAttribute7IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16101 
16102     nsresult (*GetInternalAndReservedAttribute8IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
16103 
16104     nsresult (*Read)(
16105         IMediumIO *pThis,
16106         PRInt64 offset,
16107         PRUint32 size,
16108         PRUint32 *dataSize,
16109         PRUint8** data
16110     );
16111 
16112     nsresult (*Write)(
16113         IMediumIO *pThis,
16114         PRInt64 offset,
16115         PRUint32 dataSize,
16116         PRUint8* data,
16117         PRUint32 * written
16118     );
16119 
16120     nsresult (*FormatFAT)(
16121         IMediumIO *pThis,
16122         PRBool quick
16123     );
16124 
16125     nsresult (*InitializePartitionTable)(
16126         IMediumIO *pThis,
16127         PRUint32 format,
16128         PRBool wholeDiskInOneEntry
16129     );
16130 
16131     nsresult (*ConvertToStream)(
16132         IMediumIO *pThis,
16133         PRUnichar * format,
16134         PRUint32 variantSize,
16135         PRUint32* variant,
16136         PRUint32 bufferSize,
16137         IDataStream * * stream,
16138         IProgress * * progress
16139     );
16140 
16141     nsresult (*Close)(IMediumIO *pThis );
16142 
16143     nsresult (*InternalAndReservedMethod1IMediumIO)(IMediumIO *pThis);
16144 
16145     nsresult (*InternalAndReservedMethod2IMediumIO)(IMediumIO *pThis);
16146 
16147     nsresult (*InternalAndReservedMethod3IMediumIO)(IMediumIO *pThis);
16148 
16149     nsresult (*InternalAndReservedMethod4IMediumIO)(IMediumIO *pThis);
16150 
16151 };
16152 #    define IMediumIO_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16153 #    define IMediumIO_AddRef(p) ((p)->lpVtbl->AddRef(p))
16154 #    define IMediumIO_Release(p) ((p)->lpVtbl->Release(p))
16155 #    define IMediumIO_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
16156 #    define IMediumIO_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
16157 #    define IMediumIO_get_Writable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
16158 #    define IMediumIO_GetWritable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
16159 #    define IMediumIO_get_Explorer(p, aExplorer) ((p)->lpVtbl->GetExplorer(p, aExplorer))
16160 #    define IMediumIO_GetExplorer(p, aExplorer) ((p)->lpVtbl->GetExplorer(p, aExplorer))
16161 #    define IMediumIO_Read(p, aOffset, aSize, aData) ((p)->lpVtbl->Read(p, aOffset, aSize, aData))
16162 #    define IMediumIO_Write(p, aOffset, aData, aWritten) ((p)->lpVtbl->Write(p, aOffset, aData, aWritten))
16163 #    define IMediumIO_FormatFAT(p, aQuick) ((p)->lpVtbl->FormatFAT(p, aQuick))
16164 #    define IMediumIO_InitializePartitionTable(p, aFormat, aWholeDiskInOneEntry) ((p)->lpVtbl->InitializePartitionTable(p, aFormat, aWholeDiskInOneEntry))
16165 #    define IMediumIO_ConvertToStream(p, aFormat, aVariant, aBufferSize, aStream, aProgress) ((p)->lpVtbl->ConvertToStream(p, aFormat, aVariant, aBufferSize, aStream, aProgress))
16166 #    define IMediumIO_Close(p) ((p)->lpVtbl->Close(p))
16167 #   endif /* VBOX_WITH_GLUE */
16168 
16169 interface IMediumIO
16170 {
16171 #   ifndef VBOX_WITH_GLUE
16172     struct IMediumIO_vtbl *vtbl;
16173 #   else /* VBOX_WITH_GLUE */
16174     CONST_VTBL struct IMediumIOVtbl *lpVtbl;
16175 #   endif /* VBOX_WITH_GLUE */
16176 };
16177 /* End of struct IMediumIO declaration */
16178 
16179 
16180 /* Start of struct IToken declaration */
16181 #   define ITOKEN_IID_STR "20479eaf-d8ed-44cf-85ac-c83a26c95a4d"
16182 #   define ITOKEN_IID { \
16183     0x20479eaf, 0xd8ed, 0x44cf, \
16184     { 0x85, 0xac, 0xc8, 0x3a, 0x26, 0xc9, 0x5a, 0x4d } \
16185 }
16186 /* COM compatibility */
16187 VBOX_EXTERN_CONST(nsIID, IID_IToken);
16188 #   ifndef VBOX_WITH_GLUE
16189 struct IToken_vtbl
16190 {
16191     struct nsISupports_vtbl nsisupports;
16192 
16193     nsresult (*GetInternalAndReservedAttribute1IToken)(IToken *pThis, PRUint32 *reserved);
16194 
16195     nsresult (*GetInternalAndReservedAttribute2IToken)(IToken *pThis, PRUint32 *reserved);
16196 
16197     nsresult (*Abandon)(IToken *pThis );
16198 
16199     nsresult (*Dummy)(IToken *pThis );
16200 
16201     nsresult (*InternalAndReservedMethod1IToken)(IToken *pThis);
16202 
16203 };
16204 #   else /* VBOX_WITH_GLUE */
16205 struct ITokenVtbl
16206 {
16207     nsresult (*QueryInterface)(IToken *pThis, const nsID *iid, void **resultp);
16208     nsrefcnt (*AddRef)(IToken *pThis);
16209     nsrefcnt (*Release)(IToken *pThis);
16210     nsresult (*GetInternalAndReservedAttribute1IToken)(IToken *pThis, PRUint32 *reserved);
16211 
16212     nsresult (*GetInternalAndReservedAttribute2IToken)(IToken *pThis, PRUint32 *reserved);
16213 
16214     nsresult (*Abandon)(IToken *pThis );
16215 
16216     nsresult (*Dummy)(IToken *pThis );
16217 
16218     nsresult (*InternalAndReservedMethod1IToken)(IToken *pThis);
16219 
16220 };
16221 #    define IToken_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16222 #    define IToken_AddRef(p) ((p)->lpVtbl->AddRef(p))
16223 #    define IToken_Release(p) ((p)->lpVtbl->Release(p))
16224 #    define IToken_Abandon(p) ((p)->lpVtbl->Abandon(p))
16225 #    define IToken_Dummy(p) ((p)->lpVtbl->Dummy(p))
16226 #   endif /* VBOX_WITH_GLUE */
16227 
16228 interface IToken
16229 {
16230 #   ifndef VBOX_WITH_GLUE
16231     struct IToken_vtbl *vtbl;
16232 #   else /* VBOX_WITH_GLUE */
16233     CONST_VTBL struct ITokenVtbl *lpVtbl;
16234 #   endif /* VBOX_WITH_GLUE */
16235 };
16236 /* End of struct IToken declaration */
16237 
16238 
16239 /* Start of struct IKeyboard declaration */
16240 #   define IKEYBOARD_IID_STR "a7c88b82-2330-44e3-b247-1421a018f9c1"
16241 #   define IKEYBOARD_IID { \
16242     0xa7c88b82, 0x2330, 0x44e3, \
16243     { 0xb2, 0x47, 0x14, 0x21, 0xa0, 0x18, 0xf9, 0xc1 } \
16244 }
16245 /* COM compatibility */
16246 VBOX_EXTERN_CONST(nsIID, IID_IKeyboard);
16247 #   ifndef VBOX_WITH_GLUE
16248 struct IKeyboard_vtbl
16249 {
16250     struct nsISupports_vtbl nsisupports;
16251 
16252     nsresult (*GetKeyboardLEDs)(IKeyboard *pThis, PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs);
16253 
16254     nsresult (*GetEventSource)(IKeyboard *pThis, IEventSource * *eventSource);
16255 
16256     nsresult (*GetInternalAndReservedAttribute1IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16257 
16258     nsresult (*GetInternalAndReservedAttribute2IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16259 
16260     nsresult (*GetInternalAndReservedAttribute3IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16261 
16262     nsresult (*GetInternalAndReservedAttribute4IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16263 
16264     nsresult (*PutScancode)(
16265         IKeyboard *pThis,
16266         PRInt32 scancode
16267     );
16268 
16269     nsresult (*PutScancodes)(
16270         IKeyboard *pThis,
16271         PRUint32 scancodesSize,
16272         PRInt32* scancodes,
16273         PRUint32 * codesStored
16274     );
16275 
16276     nsresult (*PutCAD)(IKeyboard *pThis );
16277 
16278     nsresult (*ReleaseKeys)(IKeyboard *pThis );
16279 
16280     nsresult (*InternalAndReservedMethod1IKeyboard)(IKeyboard *pThis);
16281 
16282     nsresult (*InternalAndReservedMethod2IKeyboard)(IKeyboard *pThis);
16283 
16284     nsresult (*InternalAndReservedMethod3IKeyboard)(IKeyboard *pThis);
16285 
16286     nsresult (*InternalAndReservedMethod4IKeyboard)(IKeyboard *pThis);
16287 
16288 };
16289 #   else /* VBOX_WITH_GLUE */
16290 struct IKeyboardVtbl
16291 {
16292     nsresult (*QueryInterface)(IKeyboard *pThis, const nsID *iid, void **resultp);
16293     nsrefcnt (*AddRef)(IKeyboard *pThis);
16294     nsrefcnt (*Release)(IKeyboard *pThis);
16295     nsresult (*GetKeyboardLEDs)(IKeyboard *pThis, PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs);
16296 
16297     nsresult (*GetEventSource)(IKeyboard *pThis, IEventSource * *eventSource);
16298 
16299     nsresult (*GetInternalAndReservedAttribute1IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16300 
16301     nsresult (*GetInternalAndReservedAttribute2IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16302 
16303     nsresult (*GetInternalAndReservedAttribute3IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16304 
16305     nsresult (*GetInternalAndReservedAttribute4IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
16306 
16307     nsresult (*PutScancode)(
16308         IKeyboard *pThis,
16309         PRInt32 scancode
16310     );
16311 
16312     nsresult (*PutScancodes)(
16313         IKeyboard *pThis,
16314         PRUint32 scancodesSize,
16315         PRInt32* scancodes,
16316         PRUint32 * codesStored
16317     );
16318 
16319     nsresult (*PutCAD)(IKeyboard *pThis );
16320 
16321     nsresult (*ReleaseKeys)(IKeyboard *pThis );
16322 
16323     nsresult (*InternalAndReservedMethod1IKeyboard)(IKeyboard *pThis);
16324 
16325     nsresult (*InternalAndReservedMethod2IKeyboard)(IKeyboard *pThis);
16326 
16327     nsresult (*InternalAndReservedMethod3IKeyboard)(IKeyboard *pThis);
16328 
16329     nsresult (*InternalAndReservedMethod4IKeyboard)(IKeyboard *pThis);
16330 
16331 };
16332 #    define IKeyboard_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16333 #    define IKeyboard_AddRef(p) ((p)->lpVtbl->AddRef(p))
16334 #    define IKeyboard_Release(p) ((p)->lpVtbl->Release(p))
16335 #    define IKeyboard_get_KeyboardLEDs(p, aKeyboardLEDs) ((p)->lpVtbl->GetKeyboardLEDs(p, aKeyboardLEDs))
16336 #    define IKeyboard_GetKeyboardLEDs(p, aKeyboardLEDs) ((p)->lpVtbl->GetKeyboardLEDs(p, aKeyboardLEDs))
16337 #    define IKeyboard_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16338 #    define IKeyboard_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16339 #    define IKeyboard_PutScancode(p, aScancode) ((p)->lpVtbl->PutScancode(p, aScancode))
16340 #    define IKeyboard_PutScancodes(p, aScancodes, aCodesStored) ((p)->lpVtbl->PutScancodes(p, aScancodes, aCodesStored))
16341 #    define IKeyboard_PutCAD(p) ((p)->lpVtbl->PutCAD(p))
16342 #    define IKeyboard_ReleaseKeys(p) ((p)->lpVtbl->ReleaseKeys(p))
16343 #   endif /* VBOX_WITH_GLUE */
16344 
16345 interface IKeyboard
16346 {
16347 #   ifndef VBOX_WITH_GLUE
16348     struct IKeyboard_vtbl *vtbl;
16349 #   else /* VBOX_WITH_GLUE */
16350     CONST_VTBL struct IKeyboardVtbl *lpVtbl;
16351 #   endif /* VBOX_WITH_GLUE */
16352 };
16353 /* End of struct IKeyboard declaration */
16354 
16355 
16356 /* Start of struct IMousePointerShape declaration */
16357 #   define IMOUSEPOINTERSHAPE_IID_STR "1e775ea3-9070-4f9c-b0d5-53054496dbe0"
16358 #   define IMOUSEPOINTERSHAPE_IID { \
16359     0x1e775ea3, 0x9070, 0x4f9c, \
16360     { 0xb0, 0xd5, 0x53, 0x05, 0x44, 0x96, 0xdb, 0xe0 } \
16361 }
16362 /* COM compatibility */
16363 VBOX_EXTERN_CONST(nsIID, IID_IMousePointerShape);
16364 #   ifndef VBOX_WITH_GLUE
16365 struct IMousePointerShape_vtbl
16366 {
16367     struct nsISupports_vtbl nsisupports;
16368 
16369     nsresult (*GetVisible)(IMousePointerShape *pThis, PRBool *visible);
16370 
16371     nsresult (*GetAlpha)(IMousePointerShape *pThis, PRBool *alpha);
16372 
16373     nsresult (*GetHotX)(IMousePointerShape *pThis, PRUint32 *hotX);
16374 
16375     nsresult (*GetHotY)(IMousePointerShape *pThis, PRUint32 *hotY);
16376 
16377     nsresult (*GetWidth)(IMousePointerShape *pThis, PRUint32 *width);
16378 
16379     nsresult (*GetHeight)(IMousePointerShape *pThis, PRUint32 *height);
16380 
16381     nsresult (*GetShape)(IMousePointerShape *pThis, PRUint32 *shapeSize, PRUint8 **shape);
16382 
16383     nsresult (*GetInternalAndReservedAttribute1IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16384 
16385     nsresult (*GetInternalAndReservedAttribute2IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16386 
16387     nsresult (*GetInternalAndReservedAttribute3IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16388 
16389     nsresult (*GetInternalAndReservedAttribute4IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16390 
16391 };
16392 #   else /* VBOX_WITH_GLUE */
16393 struct IMousePointerShapeVtbl
16394 {
16395     nsresult (*QueryInterface)(IMousePointerShape *pThis, const nsID *iid, void **resultp);
16396     nsrefcnt (*AddRef)(IMousePointerShape *pThis);
16397     nsrefcnt (*Release)(IMousePointerShape *pThis);
16398     nsresult (*GetVisible)(IMousePointerShape *pThis, PRBool *visible);
16399 
16400     nsresult (*GetAlpha)(IMousePointerShape *pThis, PRBool *alpha);
16401 
16402     nsresult (*GetHotX)(IMousePointerShape *pThis, PRUint32 *hotX);
16403 
16404     nsresult (*GetHotY)(IMousePointerShape *pThis, PRUint32 *hotY);
16405 
16406     nsresult (*GetWidth)(IMousePointerShape *pThis, PRUint32 *width);
16407 
16408     nsresult (*GetHeight)(IMousePointerShape *pThis, PRUint32 *height);
16409 
16410     nsresult (*GetShape)(IMousePointerShape *pThis, PRUint32 *shapeSize, PRUint8 **shape);
16411 
16412     nsresult (*GetInternalAndReservedAttribute1IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16413 
16414     nsresult (*GetInternalAndReservedAttribute2IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16415 
16416     nsresult (*GetInternalAndReservedAttribute3IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16417 
16418     nsresult (*GetInternalAndReservedAttribute4IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
16419 
16420 };
16421 #    define IMousePointerShape_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16422 #    define IMousePointerShape_AddRef(p) ((p)->lpVtbl->AddRef(p))
16423 #    define IMousePointerShape_Release(p) ((p)->lpVtbl->Release(p))
16424 #    define IMousePointerShape_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
16425 #    define IMousePointerShape_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
16426 #    define IMousePointerShape_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
16427 #    define IMousePointerShape_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
16428 #    define IMousePointerShape_get_HotX(p, aHotX) ((p)->lpVtbl->GetHotX(p, aHotX))
16429 #    define IMousePointerShape_GetHotX(p, aHotX) ((p)->lpVtbl->GetHotX(p, aHotX))
16430 #    define IMousePointerShape_get_HotY(p, aHotY) ((p)->lpVtbl->GetHotY(p, aHotY))
16431 #    define IMousePointerShape_GetHotY(p, aHotY) ((p)->lpVtbl->GetHotY(p, aHotY))
16432 #    define IMousePointerShape_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
16433 #    define IMousePointerShape_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
16434 #    define IMousePointerShape_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
16435 #    define IMousePointerShape_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
16436 #    define IMousePointerShape_get_Shape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
16437 #    define IMousePointerShape_GetShape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
16438 #   endif /* VBOX_WITH_GLUE */
16439 
16440 interface IMousePointerShape
16441 {
16442 #   ifndef VBOX_WITH_GLUE
16443     struct IMousePointerShape_vtbl *vtbl;
16444 #   else /* VBOX_WITH_GLUE */
16445     CONST_VTBL struct IMousePointerShapeVtbl *lpVtbl;
16446 #   endif /* VBOX_WITH_GLUE */
16447 };
16448 /* End of struct IMousePointerShape declaration */
16449 
16450 
16451 /* Start of struct IMouse declaration */
16452 #   define IMOUSE_IID_STR "10cd08d0-e8b8-4838-b10c-45ba193734c1"
16453 #   define IMOUSE_IID { \
16454     0x10cd08d0, 0xe8b8, 0x4838, \
16455     { 0xb1, 0x0c, 0x45, 0xba, 0x19, 0x37, 0x34, 0xc1 } \
16456 }
16457 /* COM compatibility */
16458 VBOX_EXTERN_CONST(nsIID, IID_IMouse);
16459 #   ifndef VBOX_WITH_GLUE
16460 struct IMouse_vtbl
16461 {
16462     struct nsISupports_vtbl nsisupports;
16463 
16464     nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
16465 
16466     nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
16467 
16468     nsresult (*GetMultiTouchSupported)(IMouse *pThis, PRBool *multiTouchSupported);
16469 
16470     nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
16471 
16472     nsresult (*GetPointerShape)(IMouse *pThis, IMousePointerShape * *pointerShape);
16473 
16474     nsresult (*GetEventSource)(IMouse *pThis, IEventSource * *eventSource);
16475 
16476     nsresult (*GetInternalAndReservedAttribute1IMouse)(IMouse *pThis, PRUint32 *reserved);
16477 
16478     nsresult (*GetInternalAndReservedAttribute2IMouse)(IMouse *pThis, PRUint32 *reserved);
16479 
16480     nsresult (*GetInternalAndReservedAttribute3IMouse)(IMouse *pThis, PRUint32 *reserved);
16481 
16482     nsresult (*GetInternalAndReservedAttribute4IMouse)(IMouse *pThis, PRUint32 *reserved);
16483 
16484     nsresult (*PutMouseEvent)(
16485         IMouse *pThis,
16486         PRInt32 dx,
16487         PRInt32 dy,
16488         PRInt32 dz,
16489         PRInt32 dw,
16490         PRInt32 buttonState
16491     );
16492 
16493     nsresult (*PutMouseEventAbsolute)(
16494         IMouse *pThis,
16495         PRInt32 x,
16496         PRInt32 y,
16497         PRInt32 dz,
16498         PRInt32 dw,
16499         PRInt32 buttonState
16500     );
16501 
16502     nsresult (*PutEventMultiTouch)(
16503         IMouse *pThis,
16504         PRInt32 count,
16505         PRUint32 contactsSize,
16506         PRInt64* contacts,
16507         PRUint32 scanTime
16508     );
16509 
16510     nsresult (*PutEventMultiTouchString)(
16511         IMouse *pThis,
16512         PRInt32 count,
16513         PRUnichar * contacts,
16514         PRUint32 scanTime
16515     );
16516 
16517     nsresult (*InternalAndReservedMethod1IMouse)(IMouse *pThis);
16518 
16519     nsresult (*InternalAndReservedMethod2IMouse)(IMouse *pThis);
16520 
16521     nsresult (*InternalAndReservedMethod3IMouse)(IMouse *pThis);
16522 
16523     nsresult (*InternalAndReservedMethod4IMouse)(IMouse *pThis);
16524 
16525 };
16526 #   else /* VBOX_WITH_GLUE */
16527 struct IMouseVtbl
16528 {
16529     nsresult (*QueryInterface)(IMouse *pThis, const nsID *iid, void **resultp);
16530     nsrefcnt (*AddRef)(IMouse *pThis);
16531     nsrefcnt (*Release)(IMouse *pThis);
16532     nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
16533 
16534     nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
16535 
16536     nsresult (*GetMultiTouchSupported)(IMouse *pThis, PRBool *multiTouchSupported);
16537 
16538     nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
16539 
16540     nsresult (*GetPointerShape)(IMouse *pThis, IMousePointerShape * *pointerShape);
16541 
16542     nsresult (*GetEventSource)(IMouse *pThis, IEventSource * *eventSource);
16543 
16544     nsresult (*GetInternalAndReservedAttribute1IMouse)(IMouse *pThis, PRUint32 *reserved);
16545 
16546     nsresult (*GetInternalAndReservedAttribute2IMouse)(IMouse *pThis, PRUint32 *reserved);
16547 
16548     nsresult (*GetInternalAndReservedAttribute3IMouse)(IMouse *pThis, PRUint32 *reserved);
16549 
16550     nsresult (*GetInternalAndReservedAttribute4IMouse)(IMouse *pThis, PRUint32 *reserved);
16551 
16552     nsresult (*PutMouseEvent)(
16553         IMouse *pThis,
16554         PRInt32 dx,
16555         PRInt32 dy,
16556         PRInt32 dz,
16557         PRInt32 dw,
16558         PRInt32 buttonState
16559     );
16560 
16561     nsresult (*PutMouseEventAbsolute)(
16562         IMouse *pThis,
16563         PRInt32 x,
16564         PRInt32 y,
16565         PRInt32 dz,
16566         PRInt32 dw,
16567         PRInt32 buttonState
16568     );
16569 
16570     nsresult (*PutEventMultiTouch)(
16571         IMouse *pThis,
16572         PRInt32 count,
16573         PRUint32 contactsSize,
16574         PRInt64* contacts,
16575         PRUint32 scanTime
16576     );
16577 
16578     nsresult (*PutEventMultiTouchString)(
16579         IMouse *pThis,
16580         PRInt32 count,
16581         PRUnichar * contacts,
16582         PRUint32 scanTime
16583     );
16584 
16585     nsresult (*InternalAndReservedMethod1IMouse)(IMouse *pThis);
16586 
16587     nsresult (*InternalAndReservedMethod2IMouse)(IMouse *pThis);
16588 
16589     nsresult (*InternalAndReservedMethod3IMouse)(IMouse *pThis);
16590 
16591     nsresult (*InternalAndReservedMethod4IMouse)(IMouse *pThis);
16592 
16593 };
16594 #    define IMouse_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16595 #    define IMouse_AddRef(p) ((p)->lpVtbl->AddRef(p))
16596 #    define IMouse_Release(p) ((p)->lpVtbl->Release(p))
16597 #    define IMouse_get_AbsoluteSupported(p, aAbsoluteSupported) ((p)->lpVtbl->GetAbsoluteSupported(p, aAbsoluteSupported))
16598 #    define IMouse_GetAbsoluteSupported(p, aAbsoluteSupported) ((p)->lpVtbl->GetAbsoluteSupported(p, aAbsoluteSupported))
16599 #    define IMouse_get_RelativeSupported(p, aRelativeSupported) ((p)->lpVtbl->GetRelativeSupported(p, aRelativeSupported))
16600 #    define IMouse_GetRelativeSupported(p, aRelativeSupported) ((p)->lpVtbl->GetRelativeSupported(p, aRelativeSupported))
16601 #    define IMouse_get_MultiTouchSupported(p, aMultiTouchSupported) ((p)->lpVtbl->GetMultiTouchSupported(p, aMultiTouchSupported))
16602 #    define IMouse_GetMultiTouchSupported(p, aMultiTouchSupported) ((p)->lpVtbl->GetMultiTouchSupported(p, aMultiTouchSupported))
16603 #    define IMouse_get_NeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
16604 #    define IMouse_GetNeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
16605 #    define IMouse_get_PointerShape(p, aPointerShape) ((p)->lpVtbl->GetPointerShape(p, aPointerShape))
16606 #    define IMouse_GetPointerShape(p, aPointerShape) ((p)->lpVtbl->GetPointerShape(p, aPointerShape))
16607 #    define IMouse_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16608 #    define IMouse_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16609 #    define IMouse_PutMouseEvent(p, aDx, aDy, aDz, aDw, aButtonState) ((p)->lpVtbl->PutMouseEvent(p, aDx, aDy, aDz, aDw, aButtonState))
16610 #    define IMouse_PutMouseEventAbsolute(p, aX, aY, aDz, aDw, aButtonState) ((p)->lpVtbl->PutMouseEventAbsolute(p, aX, aY, aDz, aDw, aButtonState))
16611 #    define IMouse_PutEventMultiTouch(p, aCount, aContacts, aScanTime) ((p)->lpVtbl->PutEventMultiTouch(p, aCount, aContacts, aScanTime))
16612 #    define IMouse_PutEventMultiTouchString(p, aCount, aContacts, aScanTime) ((p)->lpVtbl->PutEventMultiTouchString(p, aCount, aContacts, aScanTime))
16613 #   endif /* VBOX_WITH_GLUE */
16614 
16615 interface IMouse
16616 {
16617 #   ifndef VBOX_WITH_GLUE
16618     struct IMouse_vtbl *vtbl;
16619 #   else /* VBOX_WITH_GLUE */
16620     CONST_VTBL struct IMouseVtbl *lpVtbl;
16621 #   endif /* VBOX_WITH_GLUE */
16622 };
16623 /* End of struct IMouse declaration */
16624 
16625 
16626 /* Start of struct IDisplaySourceBitmap declaration */
16627 #   define IDISPLAYSOURCEBITMAP_IID_STR "0b78daeb-f52f-43b9-99e8-4a3c226cbe2d"
16628 #   define IDISPLAYSOURCEBITMAP_IID { \
16629     0x0b78daeb, 0xf52f, 0x43b9, \
16630     { 0x99, 0xe8, 0x4a, 0x3c, 0x22, 0x6c, 0xbe, 0x2d } \
16631 }
16632 /* COM compatibility */
16633 VBOX_EXTERN_CONST(nsIID, IID_IDisplaySourceBitmap);
16634 #   ifndef VBOX_WITH_GLUE
16635 struct IDisplaySourceBitmap_vtbl
16636 {
16637     struct nsISupports_vtbl nsisupports;
16638 
16639     nsresult (*GetScreenId)(IDisplaySourceBitmap *pThis, PRUint32 *screenId);
16640 
16641     nsresult (*QueryBitmapInfo)(
16642         IDisplaySourceBitmap *pThis,
16643         PRUint8 * * address,
16644         PRUint32 * width,
16645         PRUint32 * height,
16646         PRUint32 * bitsPerPixel,
16647         PRUint32 * bytesPerLine,
16648         PRUint32 * bitmapFormat
16649     );
16650 
16651 };
16652 #   else /* VBOX_WITH_GLUE */
16653 struct IDisplaySourceBitmapVtbl
16654 {
16655     nsresult (*QueryInterface)(IDisplaySourceBitmap *pThis, const nsID *iid, void **resultp);
16656     nsrefcnt (*AddRef)(IDisplaySourceBitmap *pThis);
16657     nsrefcnt (*Release)(IDisplaySourceBitmap *pThis);
16658     nsresult (*GetScreenId)(IDisplaySourceBitmap *pThis, PRUint32 *screenId);
16659 
16660     nsresult (*QueryBitmapInfo)(
16661         IDisplaySourceBitmap *pThis,
16662         PRUint8 * * address,
16663         PRUint32 * width,
16664         PRUint32 * height,
16665         PRUint32 * bitsPerPixel,
16666         PRUint32 * bytesPerLine,
16667         PRUint32 * bitmapFormat
16668     );
16669 
16670 };
16671 #    define IDisplaySourceBitmap_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16672 #    define IDisplaySourceBitmap_AddRef(p) ((p)->lpVtbl->AddRef(p))
16673 #    define IDisplaySourceBitmap_Release(p) ((p)->lpVtbl->Release(p))
16674 #    define IDisplaySourceBitmap_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
16675 #    define IDisplaySourceBitmap_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
16676 #    define IDisplaySourceBitmap_QueryBitmapInfo(p, aAddress, aWidth, aHeight, aBitsPerPixel, aBytesPerLine, aBitmapFormat) ((p)->lpVtbl->QueryBitmapInfo(p, aAddress, aWidth, aHeight, aBitsPerPixel, aBytesPerLine, aBitmapFormat))
16677 #   endif /* VBOX_WITH_GLUE */
16678 
16679 interface IDisplaySourceBitmap
16680 {
16681 #   ifndef VBOX_WITH_GLUE
16682     struct IDisplaySourceBitmap_vtbl *vtbl;
16683 #   else /* VBOX_WITH_GLUE */
16684     CONST_VTBL struct IDisplaySourceBitmapVtbl *lpVtbl;
16685 #   endif /* VBOX_WITH_GLUE */
16686 };
16687 /* End of struct IDisplaySourceBitmap declaration */
16688 
16689 
16690 /* Start of struct IFramebuffer declaration */
16691 #   define IFRAMEBUFFER_IID_STR "1e8d3f27-b45c-48ae-8b36-d35e83d207aa"
16692 #   define IFRAMEBUFFER_IID { \
16693     0x1e8d3f27, 0xb45c, 0x48ae, \
16694     { 0x8b, 0x36, 0xd3, 0x5e, 0x83, 0xd2, 0x07, 0xaa } \
16695 }
16696 /* COM compatibility */
16697 VBOX_EXTERN_CONST(nsIID, IID_IFramebuffer);
16698 #   ifndef VBOX_WITH_GLUE
16699 struct IFramebuffer_vtbl
16700 {
16701     struct nsISupports_vtbl nsisupports;
16702 
16703     nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
16704 
16705     nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
16706 
16707     nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
16708 
16709     nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
16710 
16711     nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
16712 
16713     nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
16714 
16715     nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
16716 
16717     nsresult (*GetWinId)(IFramebuffer *pThis, PRInt64 *winId);
16718 
16719     nsresult (*GetCapabilities)(IFramebuffer *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
16720 
16721     nsresult (*NotifyUpdate)(
16722         IFramebuffer *pThis,
16723         PRUint32 x,
16724         PRUint32 y,
16725         PRUint32 width,
16726         PRUint32 height
16727     );
16728 
16729     nsresult (*NotifyUpdateImage)(
16730         IFramebuffer *pThis,
16731         PRUint32 x,
16732         PRUint32 y,
16733         PRUint32 width,
16734         PRUint32 height,
16735         PRUint32 imageSize,
16736         PRUint8* image
16737     );
16738 
16739     nsresult (*NotifyChange)(
16740         IFramebuffer *pThis,
16741         PRUint32 screenId,
16742         PRUint32 xOrigin,
16743         PRUint32 yOrigin,
16744         PRUint32 width,
16745         PRUint32 height
16746     );
16747 
16748     nsresult (*VideoModeSupported)(
16749         IFramebuffer *pThis,
16750         PRUint32 width,
16751         PRUint32 height,
16752         PRUint32 bpp,
16753         PRBool * supported
16754     );
16755 
16756     nsresult (*GetVisibleRegion)(
16757         IFramebuffer *pThis,
16758         PRUint8 * rectangles,
16759         PRUint32 count,
16760         PRUint32 * countCopied
16761     );
16762 
16763     nsresult (*SetVisibleRegion)(
16764         IFramebuffer *pThis,
16765         PRUint8 * rectangles,
16766         PRUint32 count
16767     );
16768 
16769     nsresult (*ProcessVHWACommand)(
16770         IFramebuffer *pThis,
16771         PRUint8 * command,
16772         PRInt32 enmCmd,
16773         PRBool fromGuest
16774     );
16775 
16776     nsresult (*Notify3DEvent)(
16777         IFramebuffer *pThis,
16778         PRUint32 type,
16779         PRUint32 dataSize,
16780         PRUint8* data
16781     );
16782 
16783 };
16784 #   else /* VBOX_WITH_GLUE */
16785 struct IFramebufferVtbl
16786 {
16787     nsresult (*QueryInterface)(IFramebuffer *pThis, const nsID *iid, void **resultp);
16788     nsrefcnt (*AddRef)(IFramebuffer *pThis);
16789     nsrefcnt (*Release)(IFramebuffer *pThis);
16790     nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
16791 
16792     nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
16793 
16794     nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
16795 
16796     nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
16797 
16798     nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
16799 
16800     nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
16801 
16802     nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
16803 
16804     nsresult (*GetWinId)(IFramebuffer *pThis, PRInt64 *winId);
16805 
16806     nsresult (*GetCapabilities)(IFramebuffer *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
16807 
16808     nsresult (*NotifyUpdate)(
16809         IFramebuffer *pThis,
16810         PRUint32 x,
16811         PRUint32 y,
16812         PRUint32 width,
16813         PRUint32 height
16814     );
16815 
16816     nsresult (*NotifyUpdateImage)(
16817         IFramebuffer *pThis,
16818         PRUint32 x,
16819         PRUint32 y,
16820         PRUint32 width,
16821         PRUint32 height,
16822         PRUint32 imageSize,
16823         PRUint8* image
16824     );
16825 
16826     nsresult (*NotifyChange)(
16827         IFramebuffer *pThis,
16828         PRUint32 screenId,
16829         PRUint32 xOrigin,
16830         PRUint32 yOrigin,
16831         PRUint32 width,
16832         PRUint32 height
16833     );
16834 
16835     nsresult (*VideoModeSupported)(
16836         IFramebuffer *pThis,
16837         PRUint32 width,
16838         PRUint32 height,
16839         PRUint32 bpp,
16840         PRBool * supported
16841     );
16842 
16843     nsresult (*GetVisibleRegion)(
16844         IFramebuffer *pThis,
16845         PRUint8 * rectangles,
16846         PRUint32 count,
16847         PRUint32 * countCopied
16848     );
16849 
16850     nsresult (*SetVisibleRegion)(
16851         IFramebuffer *pThis,
16852         PRUint8 * rectangles,
16853         PRUint32 count
16854     );
16855 
16856     nsresult (*ProcessVHWACommand)(
16857         IFramebuffer *pThis,
16858         PRUint8 * command,
16859         PRInt32 enmCmd,
16860         PRBool fromGuest
16861     );
16862 
16863     nsresult (*Notify3DEvent)(
16864         IFramebuffer *pThis,
16865         PRUint32 type,
16866         PRUint32 dataSize,
16867         PRUint8* data
16868     );
16869 
16870 };
16871 #    define IFramebuffer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16872 #    define IFramebuffer_AddRef(p) ((p)->lpVtbl->AddRef(p))
16873 #    define IFramebuffer_Release(p) ((p)->lpVtbl->Release(p))
16874 #    define IFramebuffer_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
16875 #    define IFramebuffer_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
16876 #    define IFramebuffer_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
16877 #    define IFramebuffer_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
16878 #    define IFramebuffer_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
16879 #    define IFramebuffer_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
16880 #    define IFramebuffer_get_BytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
16881 #    define IFramebuffer_GetBytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
16882 #    define IFramebuffer_get_PixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
16883 #    define IFramebuffer_GetPixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
16884 #    define IFramebuffer_get_HeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
16885 #    define IFramebuffer_GetHeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
16886 #    define IFramebuffer_get_Overlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
16887 #    define IFramebuffer_GetOverlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
16888 #    define IFramebuffer_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
16889 #    define IFramebuffer_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
16890 #    define IFramebuffer_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
16891 #    define IFramebuffer_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
16892 #    define IFramebuffer_NotifyUpdate(p, aX, aY, aWidth, aHeight) ((p)->lpVtbl->NotifyUpdate(p, aX, aY, aWidth, aHeight))
16893 #    define IFramebuffer_NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage) ((p)->lpVtbl->NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage))
16894 #    define IFramebuffer_NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight) ((p)->lpVtbl->NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight))
16895 #    define IFramebuffer_VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported) ((p)->lpVtbl->VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported))
16896 #    define IFramebuffer_GetVisibleRegion(p, aRectangles, aCount, aCountCopied) ((p)->lpVtbl->GetVisibleRegion(p, aRectangles, aCount, aCountCopied))
16897 #    define IFramebuffer_SetVisibleRegion(p, aRectangles, aCount) ((p)->lpVtbl->SetVisibleRegion(p, aRectangles, aCount))
16898 #    define IFramebuffer_ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest) ((p)->lpVtbl->ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest))
16899 #    define IFramebuffer_Notify3DEvent(p, aType, aData) ((p)->lpVtbl->Notify3DEvent(p, aType, aData))
16900 #   endif /* VBOX_WITH_GLUE */
16901 
16902 interface IFramebuffer
16903 {
16904 #   ifndef VBOX_WITH_GLUE
16905     struct IFramebuffer_vtbl *vtbl;
16906 #   else /* VBOX_WITH_GLUE */
16907     CONST_VTBL struct IFramebufferVtbl *lpVtbl;
16908 #   endif /* VBOX_WITH_GLUE */
16909 };
16910 /* End of struct IFramebuffer declaration */
16911 
16912 
16913 /* Start of struct IFramebufferOverlay declaration */
16914 #   define IFRAMEBUFFEROVERLAY_IID_STR "af398a9a-6b76-4805-8fab-00a9dcf4732b"
16915 #   define IFRAMEBUFFEROVERLAY_IID { \
16916     0xaf398a9a, 0x6b76, 0x4805, \
16917     { 0x8f, 0xab, 0x00, 0xa9, 0xdc, 0xf4, 0x73, 0x2b } \
16918 }
16919 /* COM compatibility */
16920 VBOX_EXTERN_CONST(nsIID, IID_IFramebufferOverlay);
16921 #   ifndef VBOX_WITH_GLUE
16922 struct IFramebufferOverlay_vtbl
16923 {
16924     struct IFramebuffer_vtbl iframebuffer;
16925 
16926     nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
16927 
16928     nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
16929 
16930     nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
16931     nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
16932 
16933     nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
16934     nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
16935 
16936     nsresult (*Move)(
16937         IFramebufferOverlay *pThis,
16938         PRUint32 x,
16939         PRUint32 y
16940     );
16941 
16942 };
16943 #   else /* VBOX_WITH_GLUE */
16944 struct IFramebufferOverlayVtbl
16945 {
16946     nsresult (*QueryInterface)(IFramebufferOverlay *pThis, const nsID *iid, void **resultp);
16947     nsrefcnt (*AddRef)(IFramebufferOverlay *pThis);
16948     nsrefcnt (*Release)(IFramebufferOverlay *pThis);
16949     nsresult (*GetWidth)(IFramebufferOverlay *pThis, PRUint32 *width);
16950 
16951     nsresult (*GetHeight)(IFramebufferOverlay *pThis, PRUint32 *height);
16952 
16953     nsresult (*GetBitsPerPixel)(IFramebufferOverlay *pThis, PRUint32 *bitsPerPixel);
16954 
16955     nsresult (*GetBytesPerLine)(IFramebufferOverlay *pThis, PRUint32 *bytesPerLine);
16956 
16957     nsresult (*GetPixelFormat)(IFramebufferOverlay *pThis, PRUint32 *pixelFormat);
16958 
16959     nsresult (*GetHeightReduction)(IFramebufferOverlay *pThis, PRUint32 *heightReduction);
16960 
16961     nsresult (*GetOverlay)(IFramebufferOverlay *pThis, IFramebufferOverlay * *overlay);
16962 
16963     nsresult (*GetWinId)(IFramebufferOverlay *pThis, PRInt64 *winId);
16964 
16965     nsresult (*GetCapabilities)(IFramebufferOverlay *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
16966 
16967     nsresult (*NotifyUpdate)(
16968         IFramebufferOverlay *pThis,
16969         PRUint32 x,
16970         PRUint32 y,
16971         PRUint32 width,
16972         PRUint32 height
16973     );
16974 
16975     nsresult (*NotifyUpdateImage)(
16976         IFramebufferOverlay *pThis,
16977         PRUint32 x,
16978         PRUint32 y,
16979         PRUint32 width,
16980         PRUint32 height,
16981         PRUint32 imageSize,
16982         PRUint8* image
16983     );
16984 
16985     nsresult (*NotifyChange)(
16986         IFramebufferOverlay *pThis,
16987         PRUint32 screenId,
16988         PRUint32 xOrigin,
16989         PRUint32 yOrigin,
16990         PRUint32 width,
16991         PRUint32 height
16992     );
16993 
16994     nsresult (*VideoModeSupported)(
16995         IFramebufferOverlay *pThis,
16996         PRUint32 width,
16997         PRUint32 height,
16998         PRUint32 bpp,
16999         PRBool * supported
17000     );
17001 
17002     nsresult (*GetVisibleRegion)(
17003         IFramebufferOverlay *pThis,
17004         PRUint8 * rectangles,
17005         PRUint32 count,
17006         PRUint32 * countCopied
17007     );
17008 
17009     nsresult (*SetVisibleRegion)(
17010         IFramebufferOverlay *pThis,
17011         PRUint8 * rectangles,
17012         PRUint32 count
17013     );
17014 
17015     nsresult (*ProcessVHWACommand)(
17016         IFramebufferOverlay *pThis,
17017         PRUint8 * command,
17018         PRInt32 enmCmd,
17019         PRBool fromGuest
17020     );
17021 
17022     nsresult (*Notify3DEvent)(
17023         IFramebufferOverlay *pThis,
17024         PRUint32 type,
17025         PRUint32 dataSize,
17026         PRUint8* data
17027     );
17028 
17029     nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
17030 
17031     nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
17032 
17033     nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
17034     nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
17035 
17036     nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
17037     nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
17038 
17039     nsresult (*Move)(
17040         IFramebufferOverlay *pThis,
17041         PRUint32 x,
17042         PRUint32 y
17043     );
17044 
17045 };
17046 #    define IFramebufferOverlay_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17047 #    define IFramebufferOverlay_AddRef(p) ((p)->lpVtbl->AddRef(p))
17048 #    define IFramebufferOverlay_Release(p) ((p)->lpVtbl->Release(p))
17049 #    define IFramebufferOverlay_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
17050 #    define IFramebufferOverlay_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
17051 #    define IFramebufferOverlay_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
17052 #    define IFramebufferOverlay_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
17053 #    define IFramebufferOverlay_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
17054 #    define IFramebufferOverlay_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
17055 #    define IFramebufferOverlay_get_BytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
17056 #    define IFramebufferOverlay_GetBytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
17057 #    define IFramebufferOverlay_get_PixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
17058 #    define IFramebufferOverlay_GetPixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
17059 #    define IFramebufferOverlay_get_HeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
17060 #    define IFramebufferOverlay_GetHeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
17061 #    define IFramebufferOverlay_get_Overlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
17062 #    define IFramebufferOverlay_GetOverlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
17063 #    define IFramebufferOverlay_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
17064 #    define IFramebufferOverlay_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
17065 #    define IFramebufferOverlay_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
17066 #    define IFramebufferOverlay_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
17067 #    define IFramebufferOverlay_NotifyUpdate(p, aX, aY, aWidth, aHeight) ((p)->lpVtbl->NotifyUpdate(p, aX, aY, aWidth, aHeight))
17068 #    define IFramebufferOverlay_NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage) ((p)->lpVtbl->NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage))
17069 #    define IFramebufferOverlay_NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight) ((p)->lpVtbl->NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight))
17070 #    define IFramebufferOverlay_VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported) ((p)->lpVtbl->VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported))
17071 #    define IFramebufferOverlay_GetVisibleRegion(p, aRectangles, aCount, aCountCopied) ((p)->lpVtbl->GetVisibleRegion(p, aRectangles, aCount, aCountCopied))
17072 #    define IFramebufferOverlay_SetVisibleRegion(p, aRectangles, aCount) ((p)->lpVtbl->SetVisibleRegion(p, aRectangles, aCount))
17073 #    define IFramebufferOverlay_ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest) ((p)->lpVtbl->ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest))
17074 #    define IFramebufferOverlay_Notify3DEvent(p, aType, aData) ((p)->lpVtbl->Notify3DEvent(p, aType, aData))
17075 #    define IFramebufferOverlay_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
17076 #    define IFramebufferOverlay_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
17077 #    define IFramebufferOverlay_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
17078 #    define IFramebufferOverlay_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
17079 #    define IFramebufferOverlay_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
17080 #    define IFramebufferOverlay_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
17081 #    define IFramebufferOverlay_put_Visible(p, aVisible) ((p)->lpVtbl->SetVisible(p, aVisible))
17082 #    define IFramebufferOverlay_SetVisible(p, aVisible) ((p)->lpVtbl->SetVisible(p, aVisible))
17083 #    define IFramebufferOverlay_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
17084 #    define IFramebufferOverlay_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
17085 #    define IFramebufferOverlay_put_Alpha(p, aAlpha) ((p)->lpVtbl->SetAlpha(p, aAlpha))
17086 #    define IFramebufferOverlay_SetAlpha(p, aAlpha) ((p)->lpVtbl->SetAlpha(p, aAlpha))
17087 #    define IFramebufferOverlay_Move(p, aX, aY) ((p)->lpVtbl->Move(p, aX, aY))
17088 #   endif /* VBOX_WITH_GLUE */
17089 
17090 interface IFramebufferOverlay
17091 {
17092 #   ifndef VBOX_WITH_GLUE
17093     struct IFramebufferOverlay_vtbl *vtbl;
17094 #   else /* VBOX_WITH_GLUE */
17095     CONST_VTBL struct IFramebufferOverlayVtbl *lpVtbl;
17096 #   endif /* VBOX_WITH_GLUE */
17097 };
17098 /* End of struct IFramebufferOverlay declaration */
17099 
17100 
17101 /* Start of struct IGuestScreenInfo declaration */
17102 #   define IGUESTSCREENINFO_IID_STR "6b2f98f8-9641-4397-854a-040439d0114b"
17103 #   define IGUESTSCREENINFO_IID { \
17104     0x6b2f98f8, 0x9641, 0x4397, \
17105     { 0x85, 0x4a, 0x04, 0x04, 0x39, 0xd0, 0x11, 0x4b } \
17106 }
17107 /* COM compatibility */
17108 VBOX_EXTERN_CONST(nsIID, IID_IGuestScreenInfo);
17109 #   ifndef VBOX_WITH_GLUE
17110 struct IGuestScreenInfo_vtbl
17111 {
17112     struct nsISupports_vtbl nsisupports;
17113 
17114     nsresult (*GetScreenId)(IGuestScreenInfo *pThis, PRUint32 *screenId);
17115 
17116     nsresult (*GetGuestMonitorStatus)(IGuestScreenInfo *pThis, PRUint32 *guestMonitorStatus);
17117 
17118     nsresult (*GetPrimary)(IGuestScreenInfo *pThis, PRBool *primary);
17119 
17120     nsresult (*GetOrigin)(IGuestScreenInfo *pThis, PRBool *origin);
17121 
17122     nsresult (*GetOriginX)(IGuestScreenInfo *pThis, PRInt32 *originX);
17123 
17124     nsresult (*GetOriginY)(IGuestScreenInfo *pThis, PRInt32 *originY);
17125 
17126     nsresult (*GetWidth)(IGuestScreenInfo *pThis, PRUint32 *width);
17127 
17128     nsresult (*GetHeight)(IGuestScreenInfo *pThis, PRUint32 *height);
17129 
17130     nsresult (*GetBitsPerPixel)(IGuestScreenInfo *pThis, PRUint32 *bitsPerPixel);
17131 
17132     nsresult (*GetExtendedInfo)(IGuestScreenInfo *pThis, PRUnichar * *extendedInfo);
17133 
17134 };
17135 #   else /* VBOX_WITH_GLUE */
17136 struct IGuestScreenInfoVtbl
17137 {
17138     nsresult (*QueryInterface)(IGuestScreenInfo *pThis, const nsID *iid, void **resultp);
17139     nsrefcnt (*AddRef)(IGuestScreenInfo *pThis);
17140     nsrefcnt (*Release)(IGuestScreenInfo *pThis);
17141     nsresult (*GetScreenId)(IGuestScreenInfo *pThis, PRUint32 *screenId);
17142 
17143     nsresult (*GetGuestMonitorStatus)(IGuestScreenInfo *pThis, PRUint32 *guestMonitorStatus);
17144 
17145     nsresult (*GetPrimary)(IGuestScreenInfo *pThis, PRBool *primary);
17146 
17147     nsresult (*GetOrigin)(IGuestScreenInfo *pThis, PRBool *origin);
17148 
17149     nsresult (*GetOriginX)(IGuestScreenInfo *pThis, PRInt32 *originX);
17150 
17151     nsresult (*GetOriginY)(IGuestScreenInfo *pThis, PRInt32 *originY);
17152 
17153     nsresult (*GetWidth)(IGuestScreenInfo *pThis, PRUint32 *width);
17154 
17155     nsresult (*GetHeight)(IGuestScreenInfo *pThis, PRUint32 *height);
17156 
17157     nsresult (*GetBitsPerPixel)(IGuestScreenInfo *pThis, PRUint32 *bitsPerPixel);
17158 
17159     nsresult (*GetExtendedInfo)(IGuestScreenInfo *pThis, PRUnichar * *extendedInfo);
17160 
17161 };
17162 #    define IGuestScreenInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17163 #    define IGuestScreenInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
17164 #    define IGuestScreenInfo_Release(p) ((p)->lpVtbl->Release(p))
17165 #    define IGuestScreenInfo_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
17166 #    define IGuestScreenInfo_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
17167 #    define IGuestScreenInfo_get_GuestMonitorStatus(p, aGuestMonitorStatus) ((p)->lpVtbl->GetGuestMonitorStatus(p, aGuestMonitorStatus))
17168 #    define IGuestScreenInfo_GetGuestMonitorStatus(p, aGuestMonitorStatus) ((p)->lpVtbl->GetGuestMonitorStatus(p, aGuestMonitorStatus))
17169 #    define IGuestScreenInfo_get_Primary(p, aPrimary) ((p)->lpVtbl->GetPrimary(p, aPrimary))
17170 #    define IGuestScreenInfo_GetPrimary(p, aPrimary) ((p)->lpVtbl->GetPrimary(p, aPrimary))
17171 #    define IGuestScreenInfo_get_Origin(p, aOrigin) ((p)->lpVtbl->GetOrigin(p, aOrigin))
17172 #    define IGuestScreenInfo_GetOrigin(p, aOrigin) ((p)->lpVtbl->GetOrigin(p, aOrigin))
17173 #    define IGuestScreenInfo_get_OriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
17174 #    define IGuestScreenInfo_GetOriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
17175 #    define IGuestScreenInfo_get_OriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
17176 #    define IGuestScreenInfo_GetOriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
17177 #    define IGuestScreenInfo_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
17178 #    define IGuestScreenInfo_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
17179 #    define IGuestScreenInfo_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
17180 #    define IGuestScreenInfo_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
17181 #    define IGuestScreenInfo_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
17182 #    define IGuestScreenInfo_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
17183 #    define IGuestScreenInfo_get_ExtendedInfo(p, aExtendedInfo) ((p)->lpVtbl->GetExtendedInfo(p, aExtendedInfo))
17184 #    define IGuestScreenInfo_GetExtendedInfo(p, aExtendedInfo) ((p)->lpVtbl->GetExtendedInfo(p, aExtendedInfo))
17185 #   endif /* VBOX_WITH_GLUE */
17186 
17187 interface IGuestScreenInfo
17188 {
17189 #   ifndef VBOX_WITH_GLUE
17190     struct IGuestScreenInfo_vtbl *vtbl;
17191 #   else /* VBOX_WITH_GLUE */
17192     CONST_VTBL struct IGuestScreenInfoVtbl *lpVtbl;
17193 #   endif /* VBOX_WITH_GLUE */
17194 };
17195 /* End of struct IGuestScreenInfo declaration */
17196 
17197 
17198 /* Start of struct IDisplay declaration */
17199 #   define IDISPLAY_IID_STR "ab4164db-c13e-4dab-842d-61ee3f0c1e87"
17200 #   define IDISPLAY_IID { \
17201     0xab4164db, 0xc13e, 0x4dab, \
17202     { 0x84, 0x2d, 0x61, 0xee, 0x3f, 0x0c, 0x1e, 0x87 } \
17203 }
17204 /* COM compatibility */
17205 VBOX_EXTERN_CONST(nsIID, IID_IDisplay);
17206 #   ifndef VBOX_WITH_GLUE
17207 struct IDisplay_vtbl
17208 {
17209     struct nsISupports_vtbl nsisupports;
17210 
17211     nsresult (*GetGuestScreenLayout)(IDisplay *pThis, PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout);
17212 
17213     nsresult (*GetInternalAndReservedAttribute1IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17214 
17215     nsresult (*GetInternalAndReservedAttribute2IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17216 
17217     nsresult (*GetInternalAndReservedAttribute3IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17218 
17219     nsresult (*GetInternalAndReservedAttribute4IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17220 
17221     nsresult (*GetInternalAndReservedAttribute5IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17222 
17223     nsresult (*GetInternalAndReservedAttribute6IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17224 
17225     nsresult (*GetInternalAndReservedAttribute7IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17226 
17227     nsresult (*GetInternalAndReservedAttribute8IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17228 
17229     nsresult (*GetInternalAndReservedAttribute9IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17230 
17231     nsresult (*GetInternalAndReservedAttribute10IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17232 
17233     nsresult (*GetInternalAndReservedAttribute11IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17234 
17235     nsresult (*GetInternalAndReservedAttribute12IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17236 
17237     nsresult (*GetInternalAndReservedAttribute13IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17238 
17239     nsresult (*GetInternalAndReservedAttribute14IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17240 
17241     nsresult (*GetInternalAndReservedAttribute15IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17242 
17243     nsresult (*GetInternalAndReservedAttribute16IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17244 
17245     nsresult (*GetScreenResolution)(
17246         IDisplay *pThis,
17247         PRUint32 screenId,
17248         PRUint32 * width,
17249         PRUint32 * height,
17250         PRUint32 * bitsPerPixel,
17251         PRInt32 * xOrigin,
17252         PRInt32 * yOrigin,
17253         PRUint32 * guestMonitorStatus
17254     );
17255 
17256     nsresult (*AttachFramebuffer)(
17257         IDisplay *pThis,
17258         PRUint32 screenId,
17259         IFramebuffer * framebuffer,
17260         PRUnichar * * id
17261     );
17262 
17263     nsresult (*DetachFramebuffer)(
17264         IDisplay *pThis,
17265         PRUint32 screenId,
17266         PRUnichar * id
17267     );
17268 
17269     nsresult (*QueryFramebuffer)(
17270         IDisplay *pThis,
17271         PRUint32 screenId,
17272         IFramebuffer * * framebuffer
17273     );
17274 
17275     nsresult (*SetVideoModeHint)(
17276         IDisplay *pThis,
17277         PRUint32 display,
17278         PRBool enabled,
17279         PRBool changeOrigin,
17280         PRInt32 originX,
17281         PRInt32 originY,
17282         PRUint32 width,
17283         PRUint32 height,
17284         PRUint32 bitsPerPixel
17285     );
17286 
17287     nsresult (*SetSeamlessMode)(
17288         IDisplay *pThis,
17289         PRBool enabled
17290     );
17291 
17292     nsresult (*TakeScreenShot)(
17293         IDisplay *pThis,
17294         PRUint32 screenId,
17295         PRUint8 * address,
17296         PRUint32 width,
17297         PRUint32 height,
17298         PRUint32 bitmapFormat
17299     );
17300 
17301     nsresult (*TakeScreenShotToArray)(
17302         IDisplay *pThis,
17303         PRUint32 screenId,
17304         PRUint32 width,
17305         PRUint32 height,
17306         PRUint32 bitmapFormat,
17307         PRUint32 *screenDataSize,
17308         PRUint8** screenData
17309     );
17310 
17311     nsresult (*DrawToScreen)(
17312         IDisplay *pThis,
17313         PRUint32 screenId,
17314         PRUint8 * address,
17315         PRUint32 x,
17316         PRUint32 y,
17317         PRUint32 width,
17318         PRUint32 height
17319     );
17320 
17321     nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
17322 
17323     nsresult (*InvalidateAndUpdateScreen)(
17324         IDisplay *pThis,
17325         PRUint32 screenId
17326     );
17327 
17328     nsresult (*CompleteVHWACommand)(
17329         IDisplay *pThis,
17330         PRUint8 * command
17331     );
17332 
17333     nsresult (*ViewportChanged)(
17334         IDisplay *pThis,
17335         PRUint32 screenId,
17336         PRUint32 x,
17337         PRUint32 y,
17338         PRUint32 width,
17339         PRUint32 height
17340     );
17341 
17342     nsresult (*QuerySourceBitmap)(
17343         IDisplay *pThis,
17344         PRUint32 screenId,
17345         IDisplaySourceBitmap * * displaySourceBitmap
17346     );
17347 
17348     nsresult (*NotifyScaleFactorChange)(
17349         IDisplay *pThis,
17350         PRUint32 screenId,
17351         PRUint32 u32ScaleFactorWMultiplied,
17352         PRUint32 u32ScaleFactorHMultiplied
17353     );
17354 
17355     nsresult (*NotifyHiDPIOutputPolicyChange)(
17356         IDisplay *pThis,
17357         PRBool fUnscaledHiDPI
17358     );
17359 
17360     nsresult (*SetScreenLayout)(
17361         IDisplay *pThis,
17362         PRUint32 screenLayoutMode,
17363         PRUint32 guestScreenInfoSize,
17364         IGuestScreenInfo ** guestScreenInfo
17365     );
17366 
17367     nsresult (*DetachScreens)(
17368         IDisplay *pThis,
17369         PRUint32 screenIdsSize,
17370         PRInt32* screenIds
17371     );
17372 
17373     nsresult (*CreateGuestScreenInfo)(
17374         IDisplay *pThis,
17375         PRUint32 display,
17376         PRUint32 status,
17377         PRBool primary,
17378         PRBool changeOrigin,
17379         PRInt32 originX,
17380         PRInt32 originY,
17381         PRUint32 width,
17382         PRUint32 height,
17383         PRUint32 bitsPerPixel,
17384         IGuestScreenInfo * * guestScreenInfo
17385     );
17386 
17387     nsresult (*InternalAndReservedMethod1IDisplay)(IDisplay *pThis);
17388 
17389     nsresult (*InternalAndReservedMethod2IDisplay)(IDisplay *pThis);
17390 
17391     nsresult (*InternalAndReservedMethod3IDisplay)(IDisplay *pThis);
17392 
17393     nsresult (*InternalAndReservedMethod4IDisplay)(IDisplay *pThis);
17394 
17395     nsresult (*InternalAndReservedMethod5IDisplay)(IDisplay *pThis);
17396 
17397     nsresult (*InternalAndReservedMethod6IDisplay)(IDisplay *pThis);
17398 
17399     nsresult (*InternalAndReservedMethod7IDisplay)(IDisplay *pThis);
17400 
17401     nsresult (*InternalAndReservedMethod8IDisplay)(IDisplay *pThis);
17402 
17403 };
17404 #   else /* VBOX_WITH_GLUE */
17405 struct IDisplayVtbl
17406 {
17407     nsresult (*QueryInterface)(IDisplay *pThis, const nsID *iid, void **resultp);
17408     nsrefcnt (*AddRef)(IDisplay *pThis);
17409     nsrefcnt (*Release)(IDisplay *pThis);
17410     nsresult (*GetGuestScreenLayout)(IDisplay *pThis, PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout);
17411 
17412     nsresult (*GetInternalAndReservedAttribute1IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17413 
17414     nsresult (*GetInternalAndReservedAttribute2IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17415 
17416     nsresult (*GetInternalAndReservedAttribute3IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17417 
17418     nsresult (*GetInternalAndReservedAttribute4IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17419 
17420     nsresult (*GetInternalAndReservedAttribute5IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17421 
17422     nsresult (*GetInternalAndReservedAttribute6IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17423 
17424     nsresult (*GetInternalAndReservedAttribute7IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17425 
17426     nsresult (*GetInternalAndReservedAttribute8IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17427 
17428     nsresult (*GetInternalAndReservedAttribute9IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17429 
17430     nsresult (*GetInternalAndReservedAttribute10IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17431 
17432     nsresult (*GetInternalAndReservedAttribute11IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17433 
17434     nsresult (*GetInternalAndReservedAttribute12IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17435 
17436     nsresult (*GetInternalAndReservedAttribute13IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17437 
17438     nsresult (*GetInternalAndReservedAttribute14IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17439 
17440     nsresult (*GetInternalAndReservedAttribute15IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17441 
17442     nsresult (*GetInternalAndReservedAttribute16IDisplay)(IDisplay *pThis, PRUint32 *reserved);
17443 
17444     nsresult (*GetScreenResolution)(
17445         IDisplay *pThis,
17446         PRUint32 screenId,
17447         PRUint32 * width,
17448         PRUint32 * height,
17449         PRUint32 * bitsPerPixel,
17450         PRInt32 * xOrigin,
17451         PRInt32 * yOrigin,
17452         PRUint32 * guestMonitorStatus
17453     );
17454 
17455     nsresult (*AttachFramebuffer)(
17456         IDisplay *pThis,
17457         PRUint32 screenId,
17458         IFramebuffer * framebuffer,
17459         PRUnichar * * id
17460     );
17461 
17462     nsresult (*DetachFramebuffer)(
17463         IDisplay *pThis,
17464         PRUint32 screenId,
17465         PRUnichar * id
17466     );
17467 
17468     nsresult (*QueryFramebuffer)(
17469         IDisplay *pThis,
17470         PRUint32 screenId,
17471         IFramebuffer * * framebuffer
17472     );
17473 
17474     nsresult (*SetVideoModeHint)(
17475         IDisplay *pThis,
17476         PRUint32 display,
17477         PRBool enabled,
17478         PRBool changeOrigin,
17479         PRInt32 originX,
17480         PRInt32 originY,
17481         PRUint32 width,
17482         PRUint32 height,
17483         PRUint32 bitsPerPixel
17484     );
17485 
17486     nsresult (*SetSeamlessMode)(
17487         IDisplay *pThis,
17488         PRBool enabled
17489     );
17490 
17491     nsresult (*TakeScreenShot)(
17492         IDisplay *pThis,
17493         PRUint32 screenId,
17494         PRUint8 * address,
17495         PRUint32 width,
17496         PRUint32 height,
17497         PRUint32 bitmapFormat
17498     );
17499 
17500     nsresult (*TakeScreenShotToArray)(
17501         IDisplay *pThis,
17502         PRUint32 screenId,
17503         PRUint32 width,
17504         PRUint32 height,
17505         PRUint32 bitmapFormat,
17506         PRUint32 *screenDataSize,
17507         PRUint8** screenData
17508     );
17509 
17510     nsresult (*DrawToScreen)(
17511         IDisplay *pThis,
17512         PRUint32 screenId,
17513         PRUint8 * address,
17514         PRUint32 x,
17515         PRUint32 y,
17516         PRUint32 width,
17517         PRUint32 height
17518     );
17519 
17520     nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
17521 
17522     nsresult (*InvalidateAndUpdateScreen)(
17523         IDisplay *pThis,
17524         PRUint32 screenId
17525     );
17526 
17527     nsresult (*CompleteVHWACommand)(
17528         IDisplay *pThis,
17529         PRUint8 * command
17530     );
17531 
17532     nsresult (*ViewportChanged)(
17533         IDisplay *pThis,
17534         PRUint32 screenId,
17535         PRUint32 x,
17536         PRUint32 y,
17537         PRUint32 width,
17538         PRUint32 height
17539     );
17540 
17541     nsresult (*QuerySourceBitmap)(
17542         IDisplay *pThis,
17543         PRUint32 screenId,
17544         IDisplaySourceBitmap * * displaySourceBitmap
17545     );
17546 
17547     nsresult (*NotifyScaleFactorChange)(
17548         IDisplay *pThis,
17549         PRUint32 screenId,
17550         PRUint32 u32ScaleFactorWMultiplied,
17551         PRUint32 u32ScaleFactorHMultiplied
17552     );
17553 
17554     nsresult (*NotifyHiDPIOutputPolicyChange)(
17555         IDisplay *pThis,
17556         PRBool fUnscaledHiDPI
17557     );
17558 
17559     nsresult (*SetScreenLayout)(
17560         IDisplay *pThis,
17561         PRUint32 screenLayoutMode,
17562         PRUint32 guestScreenInfoSize,
17563         IGuestScreenInfo ** guestScreenInfo
17564     );
17565 
17566     nsresult (*DetachScreens)(
17567         IDisplay *pThis,
17568         PRUint32 screenIdsSize,
17569         PRInt32* screenIds
17570     );
17571 
17572     nsresult (*CreateGuestScreenInfo)(
17573         IDisplay *pThis,
17574         PRUint32 display,
17575         PRUint32 status,
17576         PRBool primary,
17577         PRBool changeOrigin,
17578         PRInt32 originX,
17579         PRInt32 originY,
17580         PRUint32 width,
17581         PRUint32 height,
17582         PRUint32 bitsPerPixel,
17583         IGuestScreenInfo * * guestScreenInfo
17584     );
17585 
17586     nsresult (*InternalAndReservedMethod1IDisplay)(IDisplay *pThis);
17587 
17588     nsresult (*InternalAndReservedMethod2IDisplay)(IDisplay *pThis);
17589 
17590     nsresult (*InternalAndReservedMethod3IDisplay)(IDisplay *pThis);
17591 
17592     nsresult (*InternalAndReservedMethod4IDisplay)(IDisplay *pThis);
17593 
17594     nsresult (*InternalAndReservedMethod5IDisplay)(IDisplay *pThis);
17595 
17596     nsresult (*InternalAndReservedMethod6IDisplay)(IDisplay *pThis);
17597 
17598     nsresult (*InternalAndReservedMethod7IDisplay)(IDisplay *pThis);
17599 
17600     nsresult (*InternalAndReservedMethod8IDisplay)(IDisplay *pThis);
17601 
17602 };
17603 #    define IDisplay_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17604 #    define IDisplay_AddRef(p) ((p)->lpVtbl->AddRef(p))
17605 #    define IDisplay_Release(p) ((p)->lpVtbl->Release(p))
17606 #    define IDisplay_get_GuestScreenLayout(p, aGuestScreenLayout) ((p)->lpVtbl->GetGuestScreenLayout(p, aGuestScreenLayout))
17607 #    define IDisplay_GetGuestScreenLayout(p, aGuestScreenLayout) ((p)->lpVtbl->GetGuestScreenLayout(p, aGuestScreenLayout))
17608 #    define IDisplay_GetScreenResolution(p, aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus) ((p)->lpVtbl->GetScreenResolution(p, aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus))
17609 #    define IDisplay_AttachFramebuffer(p, aScreenId, aFramebuffer, aId) ((p)->lpVtbl->AttachFramebuffer(p, aScreenId, aFramebuffer, aId))
17610 #    define IDisplay_DetachFramebuffer(p, aScreenId, aId) ((p)->lpVtbl->DetachFramebuffer(p, aScreenId, aId))
17611 #    define IDisplay_QueryFramebuffer(p, aScreenId, aFramebuffer) ((p)->lpVtbl->QueryFramebuffer(p, aScreenId, aFramebuffer))
17612 #    define IDisplay_SetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel) ((p)->lpVtbl->SetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel))
17613 #    define IDisplay_SetSeamlessMode(p, aEnabled) ((p)->lpVtbl->SetSeamlessMode(p, aEnabled))
17614 #    define IDisplay_TakeScreenShot(p, aScreenId, aAddress, aWidth, aHeight, aBitmapFormat) ((p)->lpVtbl->TakeScreenShot(p, aScreenId, aAddress, aWidth, aHeight, aBitmapFormat))
17615 #    define IDisplay_TakeScreenShotToArray(p, aScreenId, aWidth, aHeight, aBitmapFormat, aScreenData) ((p)->lpVtbl->TakeScreenShotToArray(p, aScreenId, aWidth, aHeight, aBitmapFormat, aScreenData))
17616 #    define IDisplay_DrawToScreen(p, aScreenId, aAddress, aX, aY, aWidth, aHeight) ((p)->lpVtbl->DrawToScreen(p, aScreenId, aAddress, aX, aY, aWidth, aHeight))
17617 #    define IDisplay_InvalidateAndUpdate(p) ((p)->lpVtbl->InvalidateAndUpdate(p))
17618 #    define IDisplay_InvalidateAndUpdateScreen(p, aScreenId) ((p)->lpVtbl->InvalidateAndUpdateScreen(p, aScreenId))
17619 #    define IDisplay_CompleteVHWACommand(p, aCommand) ((p)->lpVtbl->CompleteVHWACommand(p, aCommand))
17620 #    define IDisplay_ViewportChanged(p, aScreenId, aX, aY, aWidth, aHeight) ((p)->lpVtbl->ViewportChanged(p, aScreenId, aX, aY, aWidth, aHeight))
17621 #    define IDisplay_QuerySourceBitmap(p, aScreenId, aDisplaySourceBitmap) ((p)->lpVtbl->QuerySourceBitmap(p, aScreenId, aDisplaySourceBitmap))
17622 #    define IDisplay_NotifyScaleFactorChange(p, aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied) ((p)->lpVtbl->NotifyScaleFactorChange(p, aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied))
17623 #    define IDisplay_NotifyHiDPIOutputPolicyChange(p, aFUnscaledHiDPI) ((p)->lpVtbl->NotifyHiDPIOutputPolicyChange(p, aFUnscaledHiDPI))
17624 #    define IDisplay_SetScreenLayout(p, aScreenLayoutMode, aGuestScreenInfo) ((p)->lpVtbl->SetScreenLayout(p, aScreenLayoutMode, aGuestScreenInfo))
17625 #    define IDisplay_DetachScreens(p, aScreenIds) ((p)->lpVtbl->DetachScreens(p, aScreenIds))
17626 #    define IDisplay_CreateGuestScreenInfo(p, aDisplay, aStatus, aPrimary, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aGuestScreenInfo) ((p)->lpVtbl->CreateGuestScreenInfo(p, aDisplay, aStatus, aPrimary, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aGuestScreenInfo))
17627 #   endif /* VBOX_WITH_GLUE */
17628 
17629 interface IDisplay
17630 {
17631 #   ifndef VBOX_WITH_GLUE
17632     struct IDisplay_vtbl *vtbl;
17633 #   else /* VBOX_WITH_GLUE */
17634     CONST_VTBL struct IDisplayVtbl *lpVtbl;
17635 #   endif /* VBOX_WITH_GLUE */
17636 };
17637 /* End of struct IDisplay declaration */
17638 
17639 
17640 /* Start of struct INetworkAdapter declaration */
17641 #   define INETWORKADAPTER_IID_STR "e9a0c183-7071-4894-93d6-dcbec010fa91"
17642 #   define INETWORKADAPTER_IID { \
17643     0xe9a0c183, 0x7071, 0x4894, \
17644     { 0x93, 0xd6, 0xdc, 0xbe, 0xc0, 0x10, 0xfa, 0x91 } \
17645 }
17646 /* COM compatibility */
17647 VBOX_EXTERN_CONST(nsIID, IID_INetworkAdapter);
17648 #   ifndef VBOX_WITH_GLUE
17649 struct INetworkAdapter_vtbl
17650 {
17651     struct nsISupports_vtbl nsisupports;
17652 
17653     nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
17654     nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
17655 
17656     nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
17657 
17658     nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
17659     nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
17660 
17661     nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
17662     nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
17663 
17664     nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
17665     nsresult (*SetAttachmentType)(INetworkAdapter *pThis, PRUint32 attachmentType);
17666 
17667     nsresult (*GetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * *bridgedInterface);
17668     nsresult (*SetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * bridgedInterface);
17669 
17670     nsresult (*GetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * *hostOnlyInterface);
17671     nsresult (*SetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * hostOnlyInterface);
17672 
17673     nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
17674     nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
17675 
17676     nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
17677     nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
17678 
17679     nsresult (*GetGenericDriver)(INetworkAdapter *pThis, PRUnichar * *genericDriver);
17680     nsresult (*SetGenericDriver)(INetworkAdapter *pThis, PRUnichar * genericDriver);
17681 
17682     nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
17683     nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
17684 
17685     nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
17686     nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
17687 
17688     nsresult (*GetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 *promiscModePolicy);
17689     nsresult (*SetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 promiscModePolicy);
17690 
17691     nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
17692     nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
17693 
17694     nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
17695     nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
17696 
17697     nsresult (*GetNATEngine)(INetworkAdapter *pThis, INATEngine * *NATEngine);
17698 
17699     nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
17700     nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
17701 
17702     nsresult (*GetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * *bandwidthGroup);
17703     nsresult (*SetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * bandwidthGroup);
17704 
17705     nsresult (*GetInternalAndReservedAttribute1INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17706 
17707     nsresult (*GetInternalAndReservedAttribute2INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17708 
17709     nsresult (*GetInternalAndReservedAttribute3INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17710 
17711     nsresult (*GetInternalAndReservedAttribute4INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17712 
17713     nsresult (*GetInternalAndReservedAttribute5INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17714 
17715     nsresult (*GetInternalAndReservedAttribute6INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17716 
17717     nsresult (*GetInternalAndReservedAttribute7INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17718 
17719     nsresult (*GetInternalAndReservedAttribute8INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17720 
17721     nsresult (*GetProperty)(
17722         INetworkAdapter *pThis,
17723         PRUnichar * key,
17724         PRUnichar * * value
17725     );
17726 
17727     nsresult (*SetProperty)(
17728         INetworkAdapter *pThis,
17729         PRUnichar * key,
17730         PRUnichar * value
17731     );
17732 
17733     nsresult (*GetProperties)(
17734         INetworkAdapter *pThis,
17735         PRUnichar * names,
17736         PRUint32 *returnNamesSize,
17737         PRUnichar *** returnNames,
17738         PRUint32 *returnValuesSize,
17739         PRUnichar *** returnValues
17740     );
17741 
17742     nsresult (*InternalAndReservedMethod1INetworkAdapter)(INetworkAdapter *pThis);
17743 
17744     nsresult (*InternalAndReservedMethod2INetworkAdapter)(INetworkAdapter *pThis);
17745 
17746     nsresult (*InternalAndReservedMethod3INetworkAdapter)(INetworkAdapter *pThis);
17747 
17748     nsresult (*InternalAndReservedMethod4INetworkAdapter)(INetworkAdapter *pThis);
17749 
17750 };
17751 #   else /* VBOX_WITH_GLUE */
17752 struct INetworkAdapterVtbl
17753 {
17754     nsresult (*QueryInterface)(INetworkAdapter *pThis, const nsID *iid, void **resultp);
17755     nsrefcnt (*AddRef)(INetworkAdapter *pThis);
17756     nsrefcnt (*Release)(INetworkAdapter *pThis);
17757     nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
17758     nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
17759 
17760     nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
17761 
17762     nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
17763     nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
17764 
17765     nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
17766     nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
17767 
17768     nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
17769     nsresult (*SetAttachmentType)(INetworkAdapter *pThis, PRUint32 attachmentType);
17770 
17771     nsresult (*GetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * *bridgedInterface);
17772     nsresult (*SetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * bridgedInterface);
17773 
17774     nsresult (*GetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * *hostOnlyInterface);
17775     nsresult (*SetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * hostOnlyInterface);
17776 
17777     nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
17778     nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
17779 
17780     nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
17781     nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
17782 
17783     nsresult (*GetGenericDriver)(INetworkAdapter *pThis, PRUnichar * *genericDriver);
17784     nsresult (*SetGenericDriver)(INetworkAdapter *pThis, PRUnichar * genericDriver);
17785 
17786     nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
17787     nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
17788 
17789     nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
17790     nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
17791 
17792     nsresult (*GetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 *promiscModePolicy);
17793     nsresult (*SetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 promiscModePolicy);
17794 
17795     nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
17796     nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
17797 
17798     nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
17799     nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
17800 
17801     nsresult (*GetNATEngine)(INetworkAdapter *pThis, INATEngine * *NATEngine);
17802 
17803     nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
17804     nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
17805 
17806     nsresult (*GetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * *bandwidthGroup);
17807     nsresult (*SetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * bandwidthGroup);
17808 
17809     nsresult (*GetInternalAndReservedAttribute1INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17810 
17811     nsresult (*GetInternalAndReservedAttribute2INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17812 
17813     nsresult (*GetInternalAndReservedAttribute3INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17814 
17815     nsresult (*GetInternalAndReservedAttribute4INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17816 
17817     nsresult (*GetInternalAndReservedAttribute5INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17818 
17819     nsresult (*GetInternalAndReservedAttribute6INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17820 
17821     nsresult (*GetInternalAndReservedAttribute7INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17822 
17823     nsresult (*GetInternalAndReservedAttribute8INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
17824 
17825     nsresult (*GetProperty)(
17826         INetworkAdapter *pThis,
17827         PRUnichar * key,
17828         PRUnichar * * value
17829     );
17830 
17831     nsresult (*SetProperty)(
17832         INetworkAdapter *pThis,
17833         PRUnichar * key,
17834         PRUnichar * value
17835     );
17836 
17837     nsresult (*GetProperties)(
17838         INetworkAdapter *pThis,
17839         PRUnichar * names,
17840         PRUint32 *returnNamesSize,
17841         PRUnichar *** returnNames,
17842         PRUint32 *returnValuesSize,
17843         PRUnichar *** returnValues
17844     );
17845 
17846     nsresult (*InternalAndReservedMethod1INetworkAdapter)(INetworkAdapter *pThis);
17847 
17848     nsresult (*InternalAndReservedMethod2INetworkAdapter)(INetworkAdapter *pThis);
17849 
17850     nsresult (*InternalAndReservedMethod3INetworkAdapter)(INetworkAdapter *pThis);
17851 
17852     nsresult (*InternalAndReservedMethod4INetworkAdapter)(INetworkAdapter *pThis);
17853 
17854 };
17855 #    define INetworkAdapter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17856 #    define INetworkAdapter_AddRef(p) ((p)->lpVtbl->AddRef(p))
17857 #    define INetworkAdapter_Release(p) ((p)->lpVtbl->Release(p))
17858 #    define INetworkAdapter_get_AdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
17859 #    define INetworkAdapter_GetAdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
17860 #    define INetworkAdapter_put_AdapterType(p, aAdapterType) ((p)->lpVtbl->SetAdapterType(p, aAdapterType))
17861 #    define INetworkAdapter_SetAdapterType(p, aAdapterType) ((p)->lpVtbl->SetAdapterType(p, aAdapterType))
17862 #    define INetworkAdapter_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
17863 #    define INetworkAdapter_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
17864 #    define INetworkAdapter_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
17865 #    define INetworkAdapter_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
17866 #    define INetworkAdapter_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
17867 #    define INetworkAdapter_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
17868 #    define INetworkAdapter_get_MACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
17869 #    define INetworkAdapter_GetMACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
17870 #    define INetworkAdapter_put_MACAddress(p, aMACAddress) ((p)->lpVtbl->SetMACAddress(p, aMACAddress))
17871 #    define INetworkAdapter_SetMACAddress(p, aMACAddress) ((p)->lpVtbl->SetMACAddress(p, aMACAddress))
17872 #    define INetworkAdapter_get_AttachmentType(p, aAttachmentType) ((p)->lpVtbl->GetAttachmentType(p, aAttachmentType))
17873 #    define INetworkAdapter_GetAttachmentType(p, aAttachmentType) ((p)->lpVtbl->GetAttachmentType(p, aAttachmentType))
17874 #    define INetworkAdapter_put_AttachmentType(p, aAttachmentType) ((p)->lpVtbl->SetAttachmentType(p, aAttachmentType))
17875 #    define INetworkAdapter_SetAttachmentType(p, aAttachmentType) ((p)->lpVtbl->SetAttachmentType(p, aAttachmentType))
17876 #    define INetworkAdapter_get_BridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->GetBridgedInterface(p, aBridgedInterface))
17877 #    define INetworkAdapter_GetBridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->GetBridgedInterface(p, aBridgedInterface))
17878 #    define INetworkAdapter_put_BridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->SetBridgedInterface(p, aBridgedInterface))
17879 #    define INetworkAdapter_SetBridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->SetBridgedInterface(p, aBridgedInterface))
17880 #    define INetworkAdapter_get_HostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->GetHostOnlyInterface(p, aHostOnlyInterface))
17881 #    define INetworkAdapter_GetHostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->GetHostOnlyInterface(p, aHostOnlyInterface))
17882 #    define INetworkAdapter_put_HostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->SetHostOnlyInterface(p, aHostOnlyInterface))
17883 #    define INetworkAdapter_SetHostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->SetHostOnlyInterface(p, aHostOnlyInterface))
17884 #    define INetworkAdapter_get_InternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->GetInternalNetwork(p, aInternalNetwork))
17885 #    define INetworkAdapter_GetInternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->GetInternalNetwork(p, aInternalNetwork))
17886 #    define INetworkAdapter_put_InternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->SetInternalNetwork(p, aInternalNetwork))
17887 #    define INetworkAdapter_SetInternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->SetInternalNetwork(p, aInternalNetwork))
17888 #    define INetworkAdapter_get_NATNetwork(p, aNATNetwork) ((p)->lpVtbl->GetNATNetwork(p, aNATNetwork))
17889 #    define INetworkAdapter_GetNATNetwork(p, aNATNetwork) ((p)->lpVtbl->GetNATNetwork(p, aNATNetwork))
17890 #    define INetworkAdapter_put_NATNetwork(p, aNATNetwork) ((p)->lpVtbl->SetNATNetwork(p, aNATNetwork))
17891 #    define INetworkAdapter_SetNATNetwork(p, aNATNetwork) ((p)->lpVtbl->SetNATNetwork(p, aNATNetwork))
17892 #    define INetworkAdapter_get_GenericDriver(p, aGenericDriver) ((p)->lpVtbl->GetGenericDriver(p, aGenericDriver))
17893 #    define INetworkAdapter_GetGenericDriver(p, aGenericDriver) ((p)->lpVtbl->GetGenericDriver(p, aGenericDriver))
17894 #    define INetworkAdapter_put_GenericDriver(p, aGenericDriver) ((p)->lpVtbl->SetGenericDriver(p, aGenericDriver))
17895 #    define INetworkAdapter_SetGenericDriver(p, aGenericDriver) ((p)->lpVtbl->SetGenericDriver(p, aGenericDriver))
17896 #    define INetworkAdapter_get_CableConnected(p, aCableConnected) ((p)->lpVtbl->GetCableConnected(p, aCableConnected))
17897 #    define INetworkAdapter_GetCableConnected(p, aCableConnected) ((p)->lpVtbl->GetCableConnected(p, aCableConnected))
17898 #    define INetworkAdapter_put_CableConnected(p, aCableConnected) ((p)->lpVtbl->SetCableConnected(p, aCableConnected))
17899 #    define INetworkAdapter_SetCableConnected(p, aCableConnected) ((p)->lpVtbl->SetCableConnected(p, aCableConnected))
17900 #    define INetworkAdapter_get_LineSpeed(p, aLineSpeed) ((p)->lpVtbl->GetLineSpeed(p, aLineSpeed))
17901 #    define INetworkAdapter_GetLineSpeed(p, aLineSpeed) ((p)->lpVtbl->GetLineSpeed(p, aLineSpeed))
17902 #    define INetworkAdapter_put_LineSpeed(p, aLineSpeed) ((p)->lpVtbl->SetLineSpeed(p, aLineSpeed))
17903 #    define INetworkAdapter_SetLineSpeed(p, aLineSpeed) ((p)->lpVtbl->SetLineSpeed(p, aLineSpeed))
17904 #    define INetworkAdapter_get_PromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->GetPromiscModePolicy(p, aPromiscModePolicy))
17905 #    define INetworkAdapter_GetPromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->GetPromiscModePolicy(p, aPromiscModePolicy))
17906 #    define INetworkAdapter_put_PromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->SetPromiscModePolicy(p, aPromiscModePolicy))
17907 #    define INetworkAdapter_SetPromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->SetPromiscModePolicy(p, aPromiscModePolicy))
17908 #    define INetworkAdapter_get_TraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->GetTraceEnabled(p, aTraceEnabled))
17909 #    define INetworkAdapter_GetTraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->GetTraceEnabled(p, aTraceEnabled))
17910 #    define INetworkAdapter_put_TraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->SetTraceEnabled(p, aTraceEnabled))
17911 #    define INetworkAdapter_SetTraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->SetTraceEnabled(p, aTraceEnabled))
17912 #    define INetworkAdapter_get_TraceFile(p, aTraceFile) ((p)->lpVtbl->GetTraceFile(p, aTraceFile))
17913 #    define INetworkAdapter_GetTraceFile(p, aTraceFile) ((p)->lpVtbl->GetTraceFile(p, aTraceFile))
17914 #    define INetworkAdapter_put_TraceFile(p, aTraceFile) ((p)->lpVtbl->SetTraceFile(p, aTraceFile))
17915 #    define INetworkAdapter_SetTraceFile(p, aTraceFile) ((p)->lpVtbl->SetTraceFile(p, aTraceFile))
17916 #    define INetworkAdapter_get_NATEngine(p, aNATEngine) ((p)->lpVtbl->GetNATEngine(p, aNATEngine))
17917 #    define INetworkAdapter_GetNATEngine(p, aNATEngine) ((p)->lpVtbl->GetNATEngine(p, aNATEngine))
17918 #    define INetworkAdapter_get_BootPriority(p, aBootPriority) ((p)->lpVtbl->GetBootPriority(p, aBootPriority))
17919 #    define INetworkAdapter_GetBootPriority(p, aBootPriority) ((p)->lpVtbl->GetBootPriority(p, aBootPriority))
17920 #    define INetworkAdapter_put_BootPriority(p, aBootPriority) ((p)->lpVtbl->SetBootPriority(p, aBootPriority))
17921 #    define INetworkAdapter_SetBootPriority(p, aBootPriority) ((p)->lpVtbl->SetBootPriority(p, aBootPriority))
17922 #    define INetworkAdapter_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
17923 #    define INetworkAdapter_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
17924 #    define INetworkAdapter_put_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroup(p, aBandwidthGroup))
17925 #    define INetworkAdapter_SetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroup(p, aBandwidthGroup))
17926 #    define INetworkAdapter_GetProperty(p, aKey, aValue) ((p)->lpVtbl->GetProperty(p, aKey, aValue))
17927 #    define INetworkAdapter_SetProperty(p, aKey, aValue) ((p)->lpVtbl->SetProperty(p, aKey, aValue))
17928 #    define INetworkAdapter_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
17929 #   endif /* VBOX_WITH_GLUE */
17930 
17931 interface INetworkAdapter
17932 {
17933 #   ifndef VBOX_WITH_GLUE
17934     struct INetworkAdapter_vtbl *vtbl;
17935 #   else /* VBOX_WITH_GLUE */
17936     CONST_VTBL struct INetworkAdapterVtbl *lpVtbl;
17937 #   endif /* VBOX_WITH_GLUE */
17938 };
17939 /* End of struct INetworkAdapter declaration */
17940 
17941 
17942 /* Start of struct ISerialPort declaration */
17943 #   define ISERIALPORT_IID_STR "5587d0f6-a227-4f23-8278-2f675eea1bb2"
17944 #   define ISERIALPORT_IID { \
17945     0x5587d0f6, 0xa227, 0x4f23, \
17946     { 0x82, 0x78, 0x2f, 0x67, 0x5e, 0xea, 0x1b, 0xb2 } \
17947 }
17948 /* COM compatibility */
17949 VBOX_EXTERN_CONST(nsIID, IID_ISerialPort);
17950 #   ifndef VBOX_WITH_GLUE
17951 struct ISerialPort_vtbl
17952 {
17953     struct nsISupports_vtbl nsisupports;
17954 
17955     nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
17956 
17957     nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
17958     nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
17959 
17960     nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
17961     nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
17962 
17963     nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
17964     nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
17965 
17966     nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
17967     nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
17968 
17969     nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
17970     nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
17971 
17972     nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
17973     nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
17974 
17975     nsresult (*GetUartType)(ISerialPort *pThis, PRUint32 *uartType);
17976     nsresult (*SetUartType)(ISerialPort *pThis, PRUint32 uartType);
17977 
17978     nsresult (*GetInternalAndReservedAttribute1ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
17979 
17980     nsresult (*GetInternalAndReservedAttribute2ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
17981 
17982     nsresult (*GetInternalAndReservedAttribute3ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
17983 
17984     nsresult (*GetInternalAndReservedAttribute4ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
17985 
17986 };
17987 #   else /* VBOX_WITH_GLUE */
17988 struct ISerialPortVtbl
17989 {
17990     nsresult (*QueryInterface)(ISerialPort *pThis, const nsID *iid, void **resultp);
17991     nsrefcnt (*AddRef)(ISerialPort *pThis);
17992     nsrefcnt (*Release)(ISerialPort *pThis);
17993     nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
17994 
17995     nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
17996     nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
17997 
17998     nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
17999     nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
18000 
18001     nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
18002     nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
18003 
18004     nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
18005     nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
18006 
18007     nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
18008     nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
18009 
18010     nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
18011     nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
18012 
18013     nsresult (*GetUartType)(ISerialPort *pThis, PRUint32 *uartType);
18014     nsresult (*SetUartType)(ISerialPort *pThis, PRUint32 uartType);
18015 
18016     nsresult (*GetInternalAndReservedAttribute1ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
18017 
18018     nsresult (*GetInternalAndReservedAttribute2ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
18019 
18020     nsresult (*GetInternalAndReservedAttribute3ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
18021 
18022     nsresult (*GetInternalAndReservedAttribute4ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
18023 
18024 };
18025 #    define ISerialPort_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18026 #    define ISerialPort_AddRef(p) ((p)->lpVtbl->AddRef(p))
18027 #    define ISerialPort_Release(p) ((p)->lpVtbl->Release(p))
18028 #    define ISerialPort_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
18029 #    define ISerialPort_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
18030 #    define ISerialPort_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18031 #    define ISerialPort_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18032 #    define ISerialPort_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18033 #    define ISerialPort_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18034 #    define ISerialPort_get_IOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
18035 #    define ISerialPort_GetIOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
18036 #    define ISerialPort_put_IOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
18037 #    define ISerialPort_SetIOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
18038 #    define ISerialPort_get_IRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
18039 #    define ISerialPort_GetIRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
18040 #    define ISerialPort_put_IRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
18041 #    define ISerialPort_SetIRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
18042 #    define ISerialPort_get_HostMode(p, aHostMode) ((p)->lpVtbl->GetHostMode(p, aHostMode))
18043 #    define ISerialPort_GetHostMode(p, aHostMode) ((p)->lpVtbl->GetHostMode(p, aHostMode))
18044 #    define ISerialPort_put_HostMode(p, aHostMode) ((p)->lpVtbl->SetHostMode(p, aHostMode))
18045 #    define ISerialPort_SetHostMode(p, aHostMode) ((p)->lpVtbl->SetHostMode(p, aHostMode))
18046 #    define ISerialPort_get_Server(p, aServer) ((p)->lpVtbl->GetServer(p, aServer))
18047 #    define ISerialPort_GetServer(p, aServer) ((p)->lpVtbl->GetServer(p, aServer))
18048 #    define ISerialPort_put_Server(p, aServer) ((p)->lpVtbl->SetServer(p, aServer))
18049 #    define ISerialPort_SetServer(p, aServer) ((p)->lpVtbl->SetServer(p, aServer))
18050 #    define ISerialPort_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
18051 #    define ISerialPort_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
18052 #    define ISerialPort_put_Path(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
18053 #    define ISerialPort_SetPath(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
18054 #    define ISerialPort_get_UartType(p, aUartType) ((p)->lpVtbl->GetUartType(p, aUartType))
18055 #    define ISerialPort_GetUartType(p, aUartType) ((p)->lpVtbl->GetUartType(p, aUartType))
18056 #    define ISerialPort_put_UartType(p, aUartType) ((p)->lpVtbl->SetUartType(p, aUartType))
18057 #    define ISerialPort_SetUartType(p, aUartType) ((p)->lpVtbl->SetUartType(p, aUartType))
18058 #   endif /* VBOX_WITH_GLUE */
18059 
18060 interface ISerialPort
18061 {
18062 #   ifndef VBOX_WITH_GLUE
18063     struct ISerialPort_vtbl *vtbl;
18064 #   else /* VBOX_WITH_GLUE */
18065     CONST_VTBL struct ISerialPortVtbl *lpVtbl;
18066 #   endif /* VBOX_WITH_GLUE */
18067 };
18068 /* End of struct ISerialPort declaration */
18069 
18070 
18071 /* Start of struct IParallelPort declaration */
18072 #   define IPARALLELPORT_IID_STR "788b87df-7708-444b-9eef-c116ce423d39"
18073 #   define IPARALLELPORT_IID { \
18074     0x788b87df, 0x7708, 0x444b, \
18075     { 0x9e, 0xef, 0xc1, 0x16, 0xce, 0x42, 0x3d, 0x39 } \
18076 }
18077 /* COM compatibility */
18078 VBOX_EXTERN_CONST(nsIID, IID_IParallelPort);
18079 #   ifndef VBOX_WITH_GLUE
18080 struct IParallelPort_vtbl
18081 {
18082     struct nsISupports_vtbl nsisupports;
18083 
18084     nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
18085 
18086     nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
18087     nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
18088 
18089     nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
18090     nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
18091 
18092     nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
18093     nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
18094 
18095     nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
18096     nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
18097 
18098     nsresult (*GetInternalAndReservedAttribute1IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18099 
18100     nsresult (*GetInternalAndReservedAttribute2IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18101 
18102     nsresult (*GetInternalAndReservedAttribute3IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18103 
18104     nsresult (*GetInternalAndReservedAttribute4IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18105 
18106 };
18107 #   else /* VBOX_WITH_GLUE */
18108 struct IParallelPortVtbl
18109 {
18110     nsresult (*QueryInterface)(IParallelPort *pThis, const nsID *iid, void **resultp);
18111     nsrefcnt (*AddRef)(IParallelPort *pThis);
18112     nsrefcnt (*Release)(IParallelPort *pThis);
18113     nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
18114 
18115     nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
18116     nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
18117 
18118     nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
18119     nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
18120 
18121     nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
18122     nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
18123 
18124     nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
18125     nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
18126 
18127     nsresult (*GetInternalAndReservedAttribute1IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18128 
18129     nsresult (*GetInternalAndReservedAttribute2IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18130 
18131     nsresult (*GetInternalAndReservedAttribute3IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18132 
18133     nsresult (*GetInternalAndReservedAttribute4IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
18134 
18135 };
18136 #    define IParallelPort_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18137 #    define IParallelPort_AddRef(p) ((p)->lpVtbl->AddRef(p))
18138 #    define IParallelPort_Release(p) ((p)->lpVtbl->Release(p))
18139 #    define IParallelPort_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
18140 #    define IParallelPort_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
18141 #    define IParallelPort_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18142 #    define IParallelPort_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18143 #    define IParallelPort_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18144 #    define IParallelPort_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18145 #    define IParallelPort_get_IOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
18146 #    define IParallelPort_GetIOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
18147 #    define IParallelPort_put_IOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
18148 #    define IParallelPort_SetIOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
18149 #    define IParallelPort_get_IRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
18150 #    define IParallelPort_GetIRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
18151 #    define IParallelPort_put_IRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
18152 #    define IParallelPort_SetIRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
18153 #    define IParallelPort_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
18154 #    define IParallelPort_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
18155 #    define IParallelPort_put_Path(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
18156 #    define IParallelPort_SetPath(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
18157 #   endif /* VBOX_WITH_GLUE */
18158 
18159 interface IParallelPort
18160 {
18161 #   ifndef VBOX_WITH_GLUE
18162     struct IParallelPort_vtbl *vtbl;
18163 #   else /* VBOX_WITH_GLUE */
18164     CONST_VTBL struct IParallelPortVtbl *lpVtbl;
18165 #   endif /* VBOX_WITH_GLUE */
18166 };
18167 /* End of struct IParallelPort declaration */
18168 
18169 
18170 /* Start of struct IMachineDebugger declaration */
18171 #   define IMACHINEDEBUGGER_IID_STR "e91bb944-f211-4bd5-b44c-8f1d0beafa13"
18172 #   define IMACHINEDEBUGGER_IID { \
18173     0xe91bb944, 0xf211, 0x4bd5, \
18174     { 0xb4, 0x4c, 0x8f, 0x1d, 0x0b, 0xea, 0xfa, 0x13 } \
18175 }
18176 /* COM compatibility */
18177 VBOX_EXTERN_CONST(nsIID, IID_IMachineDebugger);
18178 #   ifndef VBOX_WITH_GLUE
18179 struct IMachineDebugger_vtbl
18180 {
18181     struct nsISupports_vtbl nsisupports;
18182 
18183     nsresult (*GetSingleStep)(IMachineDebugger *pThis, PRBool *singleStep);
18184     nsresult (*SetSingleStep)(IMachineDebugger *pThis, PRBool singleStep);
18185 
18186     nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
18187     nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
18188 
18189     nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
18190     nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
18191 
18192     nsresult (*GetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool *executeAllInIEM);
18193     nsresult (*SetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool executeAllInIEM);
18194 
18195     nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
18196     nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
18197 
18198     nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
18199     nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
18200 
18201     nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
18202     nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
18203 
18204     nsresult (*GetLogDbgFlags)(IMachineDebugger *pThis, PRUnichar * *logDbgFlags);
18205 
18206     nsresult (*GetLogDbgGroups)(IMachineDebugger *pThis, PRUnichar * *logDbgGroups);
18207 
18208     nsresult (*GetLogDbgDestinations)(IMachineDebugger *pThis, PRUnichar * *logDbgDestinations);
18209 
18210     nsresult (*GetLogRelFlags)(IMachineDebugger *pThis, PRUnichar * *logRelFlags);
18211 
18212     nsresult (*GetLogRelGroups)(IMachineDebugger *pThis, PRUnichar * *logRelGroups);
18213 
18214     nsresult (*GetLogRelDestinations)(IMachineDebugger *pThis, PRUnichar * *logRelDestinations);
18215 
18216     nsresult (*GetExecutionEngine)(IMachineDebugger *pThis, PRUint32 *executionEngine);
18217 
18218     nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
18219 
18220     nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
18221 
18222     nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
18223 
18224     nsresult (*GetHWVirtExUXEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExUXEnabled);
18225 
18226     nsresult (*GetOSName)(IMachineDebugger *pThis, PRUnichar * *OSName);
18227 
18228     nsresult (*GetOSVersion)(IMachineDebugger *pThis, PRUnichar * *OSVersion);
18229 
18230     nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
18231 
18232     nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
18233     nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
18234 
18235     nsresult (*GetVM)(IMachineDebugger *pThis, PRInt64 *VM);
18236 
18237     nsresult (*GetUptime)(IMachineDebugger *pThis, PRInt64 *uptime);
18238 
18239     nsresult (*GetInternalAndReservedAttribute1IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18240 
18241     nsresult (*GetInternalAndReservedAttribute2IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18242 
18243     nsresult (*GetInternalAndReservedAttribute3IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18244 
18245     nsresult (*GetInternalAndReservedAttribute4IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18246 
18247     nsresult (*GetInternalAndReservedAttribute5IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18248 
18249     nsresult (*GetInternalAndReservedAttribute6IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18250 
18251     nsresult (*GetInternalAndReservedAttribute7IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18252 
18253     nsresult (*GetInternalAndReservedAttribute8IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18254 
18255     nsresult (*GetInternalAndReservedAttribute9IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18256 
18257     nsresult (*GetInternalAndReservedAttribute10IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18258 
18259     nsresult (*GetInternalAndReservedAttribute11IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18260 
18261     nsresult (*GetInternalAndReservedAttribute12IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18262 
18263     nsresult (*GetInternalAndReservedAttribute13IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18264 
18265     nsresult (*GetInternalAndReservedAttribute14IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18266 
18267     nsresult (*GetInternalAndReservedAttribute15IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18268 
18269     nsresult (*GetInternalAndReservedAttribute16IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18270 
18271     nsresult (*DumpGuestCore)(
18272         IMachineDebugger *pThis,
18273         PRUnichar * filename,
18274         PRUnichar * compression
18275     );
18276 
18277     nsresult (*DumpHostProcessCore)(
18278         IMachineDebugger *pThis,
18279         PRUnichar * filename,
18280         PRUnichar * compression
18281     );
18282 
18283     nsresult (*Info)(
18284         IMachineDebugger *pThis,
18285         PRUnichar * name,
18286         PRUnichar * args,
18287         PRUnichar * * info
18288     );
18289 
18290     nsresult (*InjectNMI)(IMachineDebugger *pThis );
18291 
18292     nsresult (*ModifyLogGroups)(
18293         IMachineDebugger *pThis,
18294         PRUnichar * settings
18295     );
18296 
18297     nsresult (*ModifyLogFlags)(
18298         IMachineDebugger *pThis,
18299         PRUnichar * settings
18300     );
18301 
18302     nsresult (*ModifyLogDestinations)(
18303         IMachineDebugger *pThis,
18304         PRUnichar * settings
18305     );
18306 
18307     nsresult (*ReadPhysicalMemory)(
18308         IMachineDebugger *pThis,
18309         PRInt64 address,
18310         PRUint32 size,
18311         PRUint32 *bytesSize,
18312         PRUint8** bytes
18313     );
18314 
18315     nsresult (*WritePhysicalMemory)(
18316         IMachineDebugger *pThis,
18317         PRInt64 address,
18318         PRUint32 size,
18319         PRUint32 bytesSize,
18320         PRUint8* bytes
18321     );
18322 
18323     nsresult (*ReadVirtualMemory)(
18324         IMachineDebugger *pThis,
18325         PRUint32 cpuId,
18326         PRInt64 address,
18327         PRUint32 size,
18328         PRUint32 *bytesSize,
18329         PRUint8** bytes
18330     );
18331 
18332     nsresult (*WriteVirtualMemory)(
18333         IMachineDebugger *pThis,
18334         PRUint32 cpuId,
18335         PRInt64 address,
18336         PRUint32 size,
18337         PRUint32 bytesSize,
18338         PRUint8* bytes
18339     );
18340 
18341     nsresult (*LoadPlugIn)(
18342         IMachineDebugger *pThis,
18343         PRUnichar * name,
18344         PRUnichar * * plugInName
18345     );
18346 
18347     nsresult (*UnloadPlugIn)(
18348         IMachineDebugger *pThis,
18349         PRUnichar * name
18350     );
18351 
18352     nsresult (*DetectOS)(
18353         IMachineDebugger *pThis,
18354         PRUnichar * * os
18355     );
18356 
18357     nsresult (*QueryOSKernelLog)(
18358         IMachineDebugger *pThis,
18359         PRUint32 maxMessages,
18360         PRUnichar * * dmesg
18361     );
18362 
18363     nsresult (*GetRegister)(
18364         IMachineDebugger *pThis,
18365         PRUint32 cpuId,
18366         PRUnichar * name,
18367         PRUnichar * * value
18368     );
18369 
18370     nsresult (*GetRegisters)(
18371         IMachineDebugger *pThis,
18372         PRUint32 cpuId,
18373         PRUint32 *namesSize,
18374         PRUnichar *** names,
18375         PRUint32 *valuesSize,
18376         PRUnichar *** values
18377     );
18378 
18379     nsresult (*SetRegister)(
18380         IMachineDebugger *pThis,
18381         PRUint32 cpuId,
18382         PRUnichar * name,
18383         PRUnichar * value
18384     );
18385 
18386     nsresult (*SetRegisters)(
18387         IMachineDebugger *pThis,
18388         PRUint32 cpuId,
18389         PRUint32 namesSize,
18390         PRUnichar ** names,
18391         PRUint32 valuesSize,
18392         PRUnichar ** values
18393     );
18394 
18395     nsresult (*DumpGuestStack)(
18396         IMachineDebugger *pThis,
18397         PRUint32 cpuId,
18398         PRUnichar * * stack
18399     );
18400 
18401     nsresult (*ResetStats)(
18402         IMachineDebugger *pThis,
18403         PRUnichar * pattern
18404     );
18405 
18406     nsresult (*DumpStats)(
18407         IMachineDebugger *pThis,
18408         PRUnichar * pattern
18409     );
18410 
18411     nsresult (*GetStats)(
18412         IMachineDebugger *pThis,
18413         PRUnichar * pattern,
18414         PRBool withDescriptions,
18415         PRUnichar * * stats
18416     );
18417 
18418     nsresult (*InternalAndReservedMethod1IMachineDebugger)(IMachineDebugger *pThis);
18419 
18420     nsresult (*InternalAndReservedMethod2IMachineDebugger)(IMachineDebugger *pThis);
18421 
18422     nsresult (*InternalAndReservedMethod3IMachineDebugger)(IMachineDebugger *pThis);
18423 
18424     nsresult (*InternalAndReservedMethod4IMachineDebugger)(IMachineDebugger *pThis);
18425 
18426     nsresult (*InternalAndReservedMethod5IMachineDebugger)(IMachineDebugger *pThis);
18427 
18428     nsresult (*InternalAndReservedMethod6IMachineDebugger)(IMachineDebugger *pThis);
18429 
18430     nsresult (*InternalAndReservedMethod7IMachineDebugger)(IMachineDebugger *pThis);
18431 
18432     nsresult (*InternalAndReservedMethod8IMachineDebugger)(IMachineDebugger *pThis);
18433 
18434     nsresult (*InternalAndReservedMethod9IMachineDebugger)(IMachineDebugger *pThis);
18435 
18436     nsresult (*InternalAndReservedMethod10IMachineDebugger)(IMachineDebugger *pThis);
18437 
18438     nsresult (*InternalAndReservedMethod11IMachineDebugger)(IMachineDebugger *pThis);
18439 
18440     nsresult (*InternalAndReservedMethod12IMachineDebugger)(IMachineDebugger *pThis);
18441 
18442     nsresult (*InternalAndReservedMethod13IMachineDebugger)(IMachineDebugger *pThis);
18443 
18444     nsresult (*InternalAndReservedMethod14IMachineDebugger)(IMachineDebugger *pThis);
18445 
18446     nsresult (*InternalAndReservedMethod15IMachineDebugger)(IMachineDebugger *pThis);
18447 
18448     nsresult (*InternalAndReservedMethod16IMachineDebugger)(IMachineDebugger *pThis);
18449 
18450 };
18451 #   else /* VBOX_WITH_GLUE */
18452 struct IMachineDebuggerVtbl
18453 {
18454     nsresult (*QueryInterface)(IMachineDebugger *pThis, const nsID *iid, void **resultp);
18455     nsrefcnt (*AddRef)(IMachineDebugger *pThis);
18456     nsrefcnt (*Release)(IMachineDebugger *pThis);
18457     nsresult (*GetSingleStep)(IMachineDebugger *pThis, PRBool *singleStep);
18458     nsresult (*SetSingleStep)(IMachineDebugger *pThis, PRBool singleStep);
18459 
18460     nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
18461     nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
18462 
18463     nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
18464     nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
18465 
18466     nsresult (*GetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool *executeAllInIEM);
18467     nsresult (*SetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool executeAllInIEM);
18468 
18469     nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
18470     nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
18471 
18472     nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
18473     nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
18474 
18475     nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
18476     nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
18477 
18478     nsresult (*GetLogDbgFlags)(IMachineDebugger *pThis, PRUnichar * *logDbgFlags);
18479 
18480     nsresult (*GetLogDbgGroups)(IMachineDebugger *pThis, PRUnichar * *logDbgGroups);
18481 
18482     nsresult (*GetLogDbgDestinations)(IMachineDebugger *pThis, PRUnichar * *logDbgDestinations);
18483 
18484     nsresult (*GetLogRelFlags)(IMachineDebugger *pThis, PRUnichar * *logRelFlags);
18485 
18486     nsresult (*GetLogRelGroups)(IMachineDebugger *pThis, PRUnichar * *logRelGroups);
18487 
18488     nsresult (*GetLogRelDestinations)(IMachineDebugger *pThis, PRUnichar * *logRelDestinations);
18489 
18490     nsresult (*GetExecutionEngine)(IMachineDebugger *pThis, PRUint32 *executionEngine);
18491 
18492     nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
18493 
18494     nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
18495 
18496     nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
18497 
18498     nsresult (*GetHWVirtExUXEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExUXEnabled);
18499 
18500     nsresult (*GetOSName)(IMachineDebugger *pThis, PRUnichar * *OSName);
18501 
18502     nsresult (*GetOSVersion)(IMachineDebugger *pThis, PRUnichar * *OSVersion);
18503 
18504     nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
18505 
18506     nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
18507     nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
18508 
18509     nsresult (*GetVM)(IMachineDebugger *pThis, PRInt64 *VM);
18510 
18511     nsresult (*GetUptime)(IMachineDebugger *pThis, PRInt64 *uptime);
18512 
18513     nsresult (*GetInternalAndReservedAttribute1IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18514 
18515     nsresult (*GetInternalAndReservedAttribute2IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18516 
18517     nsresult (*GetInternalAndReservedAttribute3IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18518 
18519     nsresult (*GetInternalAndReservedAttribute4IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18520 
18521     nsresult (*GetInternalAndReservedAttribute5IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18522 
18523     nsresult (*GetInternalAndReservedAttribute6IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18524 
18525     nsresult (*GetInternalAndReservedAttribute7IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18526 
18527     nsresult (*GetInternalAndReservedAttribute8IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18528 
18529     nsresult (*GetInternalAndReservedAttribute9IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18530 
18531     nsresult (*GetInternalAndReservedAttribute10IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18532 
18533     nsresult (*GetInternalAndReservedAttribute11IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18534 
18535     nsresult (*GetInternalAndReservedAttribute12IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18536 
18537     nsresult (*GetInternalAndReservedAttribute13IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18538 
18539     nsresult (*GetInternalAndReservedAttribute14IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18540 
18541     nsresult (*GetInternalAndReservedAttribute15IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18542 
18543     nsresult (*GetInternalAndReservedAttribute16IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
18544 
18545     nsresult (*DumpGuestCore)(
18546         IMachineDebugger *pThis,
18547         PRUnichar * filename,
18548         PRUnichar * compression
18549     );
18550 
18551     nsresult (*DumpHostProcessCore)(
18552         IMachineDebugger *pThis,
18553         PRUnichar * filename,
18554         PRUnichar * compression
18555     );
18556 
18557     nsresult (*Info)(
18558         IMachineDebugger *pThis,
18559         PRUnichar * name,
18560         PRUnichar * args,
18561         PRUnichar * * info
18562     );
18563 
18564     nsresult (*InjectNMI)(IMachineDebugger *pThis );
18565 
18566     nsresult (*ModifyLogGroups)(
18567         IMachineDebugger *pThis,
18568         PRUnichar * settings
18569     );
18570 
18571     nsresult (*ModifyLogFlags)(
18572         IMachineDebugger *pThis,
18573         PRUnichar * settings
18574     );
18575 
18576     nsresult (*ModifyLogDestinations)(
18577         IMachineDebugger *pThis,
18578         PRUnichar * settings
18579     );
18580 
18581     nsresult (*ReadPhysicalMemory)(
18582         IMachineDebugger *pThis,
18583         PRInt64 address,
18584         PRUint32 size,
18585         PRUint32 *bytesSize,
18586         PRUint8** bytes
18587     );
18588 
18589     nsresult (*WritePhysicalMemory)(
18590         IMachineDebugger *pThis,
18591         PRInt64 address,
18592         PRUint32 size,
18593         PRUint32 bytesSize,
18594         PRUint8* bytes
18595     );
18596 
18597     nsresult (*ReadVirtualMemory)(
18598         IMachineDebugger *pThis,
18599         PRUint32 cpuId,
18600         PRInt64 address,
18601         PRUint32 size,
18602         PRUint32 *bytesSize,
18603         PRUint8** bytes
18604     );
18605 
18606     nsresult (*WriteVirtualMemory)(
18607         IMachineDebugger *pThis,
18608         PRUint32 cpuId,
18609         PRInt64 address,
18610         PRUint32 size,
18611         PRUint32 bytesSize,
18612         PRUint8* bytes
18613     );
18614 
18615     nsresult (*LoadPlugIn)(
18616         IMachineDebugger *pThis,
18617         PRUnichar * name,
18618         PRUnichar * * plugInName
18619     );
18620 
18621     nsresult (*UnloadPlugIn)(
18622         IMachineDebugger *pThis,
18623         PRUnichar * name
18624     );
18625 
18626     nsresult (*DetectOS)(
18627         IMachineDebugger *pThis,
18628         PRUnichar * * os
18629     );
18630 
18631     nsresult (*QueryOSKernelLog)(
18632         IMachineDebugger *pThis,
18633         PRUint32 maxMessages,
18634         PRUnichar * * dmesg
18635     );
18636 
18637     nsresult (*GetRegister)(
18638         IMachineDebugger *pThis,
18639         PRUint32 cpuId,
18640         PRUnichar * name,
18641         PRUnichar * * value
18642     );
18643 
18644     nsresult (*GetRegisters)(
18645         IMachineDebugger *pThis,
18646         PRUint32 cpuId,
18647         PRUint32 *namesSize,
18648         PRUnichar *** names,
18649         PRUint32 *valuesSize,
18650         PRUnichar *** values
18651     );
18652 
18653     nsresult (*SetRegister)(
18654         IMachineDebugger *pThis,
18655         PRUint32 cpuId,
18656         PRUnichar * name,
18657         PRUnichar * value
18658     );
18659 
18660     nsresult (*SetRegisters)(
18661         IMachineDebugger *pThis,
18662         PRUint32 cpuId,
18663         PRUint32 namesSize,
18664         PRUnichar ** names,
18665         PRUint32 valuesSize,
18666         PRUnichar ** values
18667     );
18668 
18669     nsresult (*DumpGuestStack)(
18670         IMachineDebugger *pThis,
18671         PRUint32 cpuId,
18672         PRUnichar * * stack
18673     );
18674 
18675     nsresult (*ResetStats)(
18676         IMachineDebugger *pThis,
18677         PRUnichar * pattern
18678     );
18679 
18680     nsresult (*DumpStats)(
18681         IMachineDebugger *pThis,
18682         PRUnichar * pattern
18683     );
18684 
18685     nsresult (*GetStats)(
18686         IMachineDebugger *pThis,
18687         PRUnichar * pattern,
18688         PRBool withDescriptions,
18689         PRUnichar * * stats
18690     );
18691 
18692     nsresult (*InternalAndReservedMethod1IMachineDebugger)(IMachineDebugger *pThis);
18693 
18694     nsresult (*InternalAndReservedMethod2IMachineDebugger)(IMachineDebugger *pThis);
18695 
18696     nsresult (*InternalAndReservedMethod3IMachineDebugger)(IMachineDebugger *pThis);
18697 
18698     nsresult (*InternalAndReservedMethod4IMachineDebugger)(IMachineDebugger *pThis);
18699 
18700     nsresult (*InternalAndReservedMethod5IMachineDebugger)(IMachineDebugger *pThis);
18701 
18702     nsresult (*InternalAndReservedMethod6IMachineDebugger)(IMachineDebugger *pThis);
18703 
18704     nsresult (*InternalAndReservedMethod7IMachineDebugger)(IMachineDebugger *pThis);
18705 
18706     nsresult (*InternalAndReservedMethod8IMachineDebugger)(IMachineDebugger *pThis);
18707 
18708     nsresult (*InternalAndReservedMethod9IMachineDebugger)(IMachineDebugger *pThis);
18709 
18710     nsresult (*InternalAndReservedMethod10IMachineDebugger)(IMachineDebugger *pThis);
18711 
18712     nsresult (*InternalAndReservedMethod11IMachineDebugger)(IMachineDebugger *pThis);
18713 
18714     nsresult (*InternalAndReservedMethod12IMachineDebugger)(IMachineDebugger *pThis);
18715 
18716     nsresult (*InternalAndReservedMethod13IMachineDebugger)(IMachineDebugger *pThis);
18717 
18718     nsresult (*InternalAndReservedMethod14IMachineDebugger)(IMachineDebugger *pThis);
18719 
18720     nsresult (*InternalAndReservedMethod15IMachineDebugger)(IMachineDebugger *pThis);
18721 
18722     nsresult (*InternalAndReservedMethod16IMachineDebugger)(IMachineDebugger *pThis);
18723 
18724 };
18725 #    define IMachineDebugger_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18726 #    define IMachineDebugger_AddRef(p) ((p)->lpVtbl->AddRef(p))
18727 #    define IMachineDebugger_Release(p) ((p)->lpVtbl->Release(p))
18728 #    define IMachineDebugger_get_SingleStep(p, aSingleStep) ((p)->lpVtbl->GetSingleStep(p, aSingleStep))
18729 #    define IMachineDebugger_GetSingleStep(p, aSingleStep) ((p)->lpVtbl->GetSingleStep(p, aSingleStep))
18730 #    define IMachineDebugger_put_SingleStep(p, aSingleStep) ((p)->lpVtbl->SetSingleStep(p, aSingleStep))
18731 #    define IMachineDebugger_SetSingleStep(p, aSingleStep) ((p)->lpVtbl->SetSingleStep(p, aSingleStep))
18732 #    define IMachineDebugger_get_RecompileUser(p, aRecompileUser) ((p)->lpVtbl->GetRecompileUser(p, aRecompileUser))
18733 #    define IMachineDebugger_GetRecompileUser(p, aRecompileUser) ((p)->lpVtbl->GetRecompileUser(p, aRecompileUser))
18734 #    define IMachineDebugger_put_RecompileUser(p, aRecompileUser) ((p)->lpVtbl->SetRecompileUser(p, aRecompileUser))
18735 #    define IMachineDebugger_SetRecompileUser(p, aRecompileUser) ((p)->lpVtbl->SetRecompileUser(p, aRecompileUser))
18736 #    define IMachineDebugger_get_RecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->GetRecompileSupervisor(p, aRecompileSupervisor))
18737 #    define IMachineDebugger_GetRecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->GetRecompileSupervisor(p, aRecompileSupervisor))
18738 #    define IMachineDebugger_put_RecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->SetRecompileSupervisor(p, aRecompileSupervisor))
18739 #    define IMachineDebugger_SetRecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->SetRecompileSupervisor(p, aRecompileSupervisor))
18740 #    define IMachineDebugger_get_ExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->GetExecuteAllInIEM(p, aExecuteAllInIEM))
18741 #    define IMachineDebugger_GetExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->GetExecuteAllInIEM(p, aExecuteAllInIEM))
18742 #    define IMachineDebugger_put_ExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->SetExecuteAllInIEM(p, aExecuteAllInIEM))
18743 #    define IMachineDebugger_SetExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->SetExecuteAllInIEM(p, aExecuteAllInIEM))
18744 #    define IMachineDebugger_get_PATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->GetPATMEnabled(p, aPATMEnabled))
18745 #    define IMachineDebugger_GetPATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->GetPATMEnabled(p, aPATMEnabled))
18746 #    define IMachineDebugger_put_PATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->SetPATMEnabled(p, aPATMEnabled))
18747 #    define IMachineDebugger_SetPATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->SetPATMEnabled(p, aPATMEnabled))
18748 #    define IMachineDebugger_get_CSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->GetCSAMEnabled(p, aCSAMEnabled))
18749 #    define IMachineDebugger_GetCSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->GetCSAMEnabled(p, aCSAMEnabled))
18750 #    define IMachineDebugger_put_CSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->SetCSAMEnabled(p, aCSAMEnabled))
18751 #    define IMachineDebugger_SetCSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->SetCSAMEnabled(p, aCSAMEnabled))
18752 #    define IMachineDebugger_get_LogEnabled(p, aLogEnabled) ((p)->lpVtbl->GetLogEnabled(p, aLogEnabled))
18753 #    define IMachineDebugger_GetLogEnabled(p, aLogEnabled) ((p)->lpVtbl->GetLogEnabled(p, aLogEnabled))
18754 #    define IMachineDebugger_put_LogEnabled(p, aLogEnabled) ((p)->lpVtbl->SetLogEnabled(p, aLogEnabled))
18755 #    define IMachineDebugger_SetLogEnabled(p, aLogEnabled) ((p)->lpVtbl->SetLogEnabled(p, aLogEnabled))
18756 #    define IMachineDebugger_get_LogDbgFlags(p, aLogDbgFlags) ((p)->lpVtbl->GetLogDbgFlags(p, aLogDbgFlags))
18757 #    define IMachineDebugger_GetLogDbgFlags(p, aLogDbgFlags) ((p)->lpVtbl->GetLogDbgFlags(p, aLogDbgFlags))
18758 #    define IMachineDebugger_get_LogDbgGroups(p, aLogDbgGroups) ((p)->lpVtbl->GetLogDbgGroups(p, aLogDbgGroups))
18759 #    define IMachineDebugger_GetLogDbgGroups(p, aLogDbgGroups) ((p)->lpVtbl->GetLogDbgGroups(p, aLogDbgGroups))
18760 #    define IMachineDebugger_get_LogDbgDestinations(p, aLogDbgDestinations) ((p)->lpVtbl->GetLogDbgDestinations(p, aLogDbgDestinations))
18761 #    define IMachineDebugger_GetLogDbgDestinations(p, aLogDbgDestinations) ((p)->lpVtbl->GetLogDbgDestinations(p, aLogDbgDestinations))
18762 #    define IMachineDebugger_get_LogRelFlags(p, aLogRelFlags) ((p)->lpVtbl->GetLogRelFlags(p, aLogRelFlags))
18763 #    define IMachineDebugger_GetLogRelFlags(p, aLogRelFlags) ((p)->lpVtbl->GetLogRelFlags(p, aLogRelFlags))
18764 #    define IMachineDebugger_get_LogRelGroups(p, aLogRelGroups) ((p)->lpVtbl->GetLogRelGroups(p, aLogRelGroups))
18765 #    define IMachineDebugger_GetLogRelGroups(p, aLogRelGroups) ((p)->lpVtbl->GetLogRelGroups(p, aLogRelGroups))
18766 #    define IMachineDebugger_get_LogRelDestinations(p, aLogRelDestinations) ((p)->lpVtbl->GetLogRelDestinations(p, aLogRelDestinations))
18767 #    define IMachineDebugger_GetLogRelDestinations(p, aLogRelDestinations) ((p)->lpVtbl->GetLogRelDestinations(p, aLogRelDestinations))
18768 #    define IMachineDebugger_get_ExecutionEngine(p, aExecutionEngine) ((p)->lpVtbl->GetExecutionEngine(p, aExecutionEngine))
18769 #    define IMachineDebugger_GetExecutionEngine(p, aExecutionEngine) ((p)->lpVtbl->GetExecutionEngine(p, aExecutionEngine))
18770 #    define IMachineDebugger_get_HWVirtExEnabled(p, aHWVirtExEnabled) ((p)->lpVtbl->GetHWVirtExEnabled(p, aHWVirtExEnabled))
18771 #    define IMachineDebugger_GetHWVirtExEnabled(p, aHWVirtExEnabled) ((p)->lpVtbl->GetHWVirtExEnabled(p, aHWVirtExEnabled))
18772 #    define IMachineDebugger_get_HWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled) ((p)->lpVtbl->GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled))
18773 #    define IMachineDebugger_GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled) ((p)->lpVtbl->GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled))
18774 #    define IMachineDebugger_get_HWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled) ((p)->lpVtbl->GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled))
18775 #    define IMachineDebugger_GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled) ((p)->lpVtbl->GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled))
18776 #    define IMachineDebugger_get_HWVirtExUXEnabled(p, aHWVirtExUXEnabled) ((p)->lpVtbl->GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled))
18777 #    define IMachineDebugger_GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled) ((p)->lpVtbl->GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled))
18778 #    define IMachineDebugger_get_OSName(p, aOSName) ((p)->lpVtbl->GetOSName(p, aOSName))
18779 #    define IMachineDebugger_GetOSName(p, aOSName) ((p)->lpVtbl->GetOSName(p, aOSName))
18780 #    define IMachineDebugger_get_OSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
18781 #    define IMachineDebugger_GetOSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
18782 #    define IMachineDebugger_get_PAEEnabled(p, aPAEEnabled) ((p)->lpVtbl->GetPAEEnabled(p, aPAEEnabled))
18783 #    define IMachineDebugger_GetPAEEnabled(p, aPAEEnabled) ((p)->lpVtbl->GetPAEEnabled(p, aPAEEnabled))
18784 #    define IMachineDebugger_get_VirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->GetVirtualTimeRate(p, aVirtualTimeRate))
18785 #    define IMachineDebugger_GetVirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->GetVirtualTimeRate(p, aVirtualTimeRate))
18786 #    define IMachineDebugger_put_VirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->SetVirtualTimeRate(p, aVirtualTimeRate))
18787 #    define IMachineDebugger_SetVirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->SetVirtualTimeRate(p, aVirtualTimeRate))
18788 #    define IMachineDebugger_get_VM(p, aVM) ((p)->lpVtbl->GetVM(p, aVM))
18789 #    define IMachineDebugger_GetVM(p, aVM) ((p)->lpVtbl->GetVM(p, aVM))
18790 #    define IMachineDebugger_get_Uptime(p, aUptime) ((p)->lpVtbl->GetUptime(p, aUptime))
18791 #    define IMachineDebugger_GetUptime(p, aUptime) ((p)->lpVtbl->GetUptime(p, aUptime))
18792 #    define IMachineDebugger_DumpGuestCore(p, aFilename, aCompression) ((p)->lpVtbl->DumpGuestCore(p, aFilename, aCompression))
18793 #    define IMachineDebugger_DumpHostProcessCore(p, aFilename, aCompression) ((p)->lpVtbl->DumpHostProcessCore(p, aFilename, aCompression))
18794 #    define IMachineDebugger_Info(p, aName, aArgs, aInfo) ((p)->lpVtbl->Info(p, aName, aArgs, aInfo))
18795 #    define IMachineDebugger_InjectNMI(p) ((p)->lpVtbl->InjectNMI(p))
18796 #    define IMachineDebugger_ModifyLogGroups(p, aSettings) ((p)->lpVtbl->ModifyLogGroups(p, aSettings))
18797 #    define IMachineDebugger_ModifyLogFlags(p, aSettings) ((p)->lpVtbl->ModifyLogFlags(p, aSettings))
18798 #    define IMachineDebugger_ModifyLogDestinations(p, aSettings) ((p)->lpVtbl->ModifyLogDestinations(p, aSettings))
18799 #    define IMachineDebugger_ReadPhysicalMemory(p, aAddress, aSize, aBytes) ((p)->lpVtbl->ReadPhysicalMemory(p, aAddress, aSize, aBytes))
18800 #    define IMachineDebugger_WritePhysicalMemory(p, aAddress, aSize, aBytes) ((p)->lpVtbl->WritePhysicalMemory(p, aAddress, aSize, aBytes))
18801 #    define IMachineDebugger_ReadVirtualMemory(p, aCpuId, aAddress, aSize, aBytes) ((p)->lpVtbl->ReadVirtualMemory(p, aCpuId, aAddress, aSize, aBytes))
18802 #    define IMachineDebugger_WriteVirtualMemory(p, aCpuId, aAddress, aSize, aBytes) ((p)->lpVtbl->WriteVirtualMemory(p, aCpuId, aAddress, aSize, aBytes))
18803 #    define IMachineDebugger_LoadPlugIn(p, aName, aPlugInName) ((p)->lpVtbl->LoadPlugIn(p, aName, aPlugInName))
18804 #    define IMachineDebugger_UnloadPlugIn(p, aName) ((p)->lpVtbl->UnloadPlugIn(p, aName))
18805 #    define IMachineDebugger_DetectOS(p, aOs) ((p)->lpVtbl->DetectOS(p, aOs))
18806 #    define IMachineDebugger_QueryOSKernelLog(p, aMaxMessages, aDmesg) ((p)->lpVtbl->QueryOSKernelLog(p, aMaxMessages, aDmesg))
18807 #    define IMachineDebugger_GetRegister(p, aCpuId, aName, aValue) ((p)->lpVtbl->GetRegister(p, aCpuId, aName, aValue))
18808 #    define IMachineDebugger_GetRegisters(p, aCpuId, aNames, aValues) ((p)->lpVtbl->GetRegisters(p, aCpuId, aNames, aValues))
18809 #    define IMachineDebugger_SetRegister(p, aCpuId, aName, aValue) ((p)->lpVtbl->SetRegister(p, aCpuId, aName, aValue))
18810 #    define IMachineDebugger_SetRegisters(p, aCpuId, aNames, aValues) ((p)->lpVtbl->SetRegisters(p, aCpuId, aNames, aValues))
18811 #    define IMachineDebugger_DumpGuestStack(p, aCpuId, aStack) ((p)->lpVtbl->DumpGuestStack(p, aCpuId, aStack))
18812 #    define IMachineDebugger_ResetStats(p, aPattern) ((p)->lpVtbl->ResetStats(p, aPattern))
18813 #    define IMachineDebugger_DumpStats(p, aPattern) ((p)->lpVtbl->DumpStats(p, aPattern))
18814 #    define IMachineDebugger_GetStats(p, aPattern, aWithDescriptions, aStats) ((p)->lpVtbl->GetStats(p, aPattern, aWithDescriptions, aStats))
18815 #   endif /* VBOX_WITH_GLUE */
18816 
18817 interface IMachineDebugger
18818 {
18819 #   ifndef VBOX_WITH_GLUE
18820     struct IMachineDebugger_vtbl *vtbl;
18821 #   else /* VBOX_WITH_GLUE */
18822     CONST_VTBL struct IMachineDebuggerVtbl *lpVtbl;
18823 #   endif /* VBOX_WITH_GLUE */
18824 };
18825 /* End of struct IMachineDebugger declaration */
18826 
18827 
18828 /* Start of struct IUSBDeviceFilters declaration */
18829 #   define IUSBDEVICEFILTERS_IID_STR "9709db9b-3346-49d6-8f1c-41b0c4784ff2"
18830 #   define IUSBDEVICEFILTERS_IID { \
18831     0x9709db9b, 0x3346, 0x49d6, \
18832     { 0x8f, 0x1c, 0x41, 0xb0, 0xc4, 0x78, 0x4f, 0xf2 } \
18833 }
18834 /* COM compatibility */
18835 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceFilters);
18836 #   ifndef VBOX_WITH_GLUE
18837 struct IUSBDeviceFilters_vtbl
18838 {
18839     struct nsISupports_vtbl nsisupports;
18840 
18841     nsresult (*GetDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
18842 
18843     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
18844 
18845     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
18846 
18847     nsresult (*CreateDeviceFilter)(
18848         IUSBDeviceFilters *pThis,
18849         PRUnichar * name,
18850         IUSBDeviceFilter * * filter
18851     );
18852 
18853     nsresult (*InsertDeviceFilter)(
18854         IUSBDeviceFilters *pThis,
18855         PRUint32 position,
18856         IUSBDeviceFilter * filter
18857     );
18858 
18859     nsresult (*RemoveDeviceFilter)(
18860         IUSBDeviceFilters *pThis,
18861         PRUint32 position,
18862         IUSBDeviceFilter * * filter
18863     );
18864 
18865     nsresult (*InternalAndReservedMethod1IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
18866 
18867     nsresult (*InternalAndReservedMethod2IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
18868 
18869 };
18870 #   else /* VBOX_WITH_GLUE */
18871 struct IUSBDeviceFiltersVtbl
18872 {
18873     nsresult (*QueryInterface)(IUSBDeviceFilters *pThis, const nsID *iid, void **resultp);
18874     nsrefcnt (*AddRef)(IUSBDeviceFilters *pThis);
18875     nsrefcnt (*Release)(IUSBDeviceFilters *pThis);
18876     nsresult (*GetDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
18877 
18878     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
18879 
18880     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
18881 
18882     nsresult (*CreateDeviceFilter)(
18883         IUSBDeviceFilters *pThis,
18884         PRUnichar * name,
18885         IUSBDeviceFilter * * filter
18886     );
18887 
18888     nsresult (*InsertDeviceFilter)(
18889         IUSBDeviceFilters *pThis,
18890         PRUint32 position,
18891         IUSBDeviceFilter * filter
18892     );
18893 
18894     nsresult (*RemoveDeviceFilter)(
18895         IUSBDeviceFilters *pThis,
18896         PRUint32 position,
18897         IUSBDeviceFilter * * filter
18898     );
18899 
18900     nsresult (*InternalAndReservedMethod1IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
18901 
18902     nsresult (*InternalAndReservedMethod2IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
18903 
18904 };
18905 #    define IUSBDeviceFilters_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18906 #    define IUSBDeviceFilters_AddRef(p) ((p)->lpVtbl->AddRef(p))
18907 #    define IUSBDeviceFilters_Release(p) ((p)->lpVtbl->Release(p))
18908 #    define IUSBDeviceFilters_get_DeviceFilters(p, aDeviceFilters) ((p)->lpVtbl->GetDeviceFilters(p, aDeviceFilters))
18909 #    define IUSBDeviceFilters_GetDeviceFilters(p, aDeviceFilters) ((p)->lpVtbl->GetDeviceFilters(p, aDeviceFilters))
18910 #    define IUSBDeviceFilters_CreateDeviceFilter(p, aName, aFilter) ((p)->lpVtbl->CreateDeviceFilter(p, aName, aFilter))
18911 #    define IUSBDeviceFilters_InsertDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->InsertDeviceFilter(p, aPosition, aFilter))
18912 #    define IUSBDeviceFilters_RemoveDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->RemoveDeviceFilter(p, aPosition, aFilter))
18913 #   endif /* VBOX_WITH_GLUE */
18914 
18915 interface IUSBDeviceFilters
18916 {
18917 #   ifndef VBOX_WITH_GLUE
18918     struct IUSBDeviceFilters_vtbl *vtbl;
18919 #   else /* VBOX_WITH_GLUE */
18920     CONST_VTBL struct IUSBDeviceFiltersVtbl *lpVtbl;
18921 #   endif /* VBOX_WITH_GLUE */
18922 };
18923 /* End of struct IUSBDeviceFilters declaration */
18924 
18925 
18926 /* Start of struct IUSBController declaration */
18927 #   define IUSBCONTROLLER_IID_STR "ee206a6e-7ff8-4a84-bd34-0c651e118bb5"
18928 #   define IUSBCONTROLLER_IID { \
18929     0xee206a6e, 0x7ff8, 0x4a84, \
18930     { 0xbd, 0x34, 0x0c, 0x65, 0x1e, 0x11, 0x8b, 0xb5 } \
18931 }
18932 /* COM compatibility */
18933 VBOX_EXTERN_CONST(nsIID, IID_IUSBController);
18934 #   ifndef VBOX_WITH_GLUE
18935 struct IUSBController_vtbl
18936 {
18937     struct nsISupports_vtbl nsisupports;
18938 
18939     nsresult (*GetName)(IUSBController *pThis, PRUnichar * *name);
18940     nsresult (*SetName)(IUSBController *pThis, PRUnichar * name);
18941 
18942     nsresult (*GetType)(IUSBController *pThis, PRUint32 *type);
18943     nsresult (*SetType)(IUSBController *pThis, PRUint32 type);
18944 
18945     nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
18946 
18947     nsresult (*GetInternalAndReservedAttribute1IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18948 
18949     nsresult (*GetInternalAndReservedAttribute2IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18950 
18951     nsresult (*GetInternalAndReservedAttribute3IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18952 
18953     nsresult (*GetInternalAndReservedAttribute4IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18954 
18955 };
18956 #   else /* VBOX_WITH_GLUE */
18957 struct IUSBControllerVtbl
18958 {
18959     nsresult (*QueryInterface)(IUSBController *pThis, const nsID *iid, void **resultp);
18960     nsrefcnt (*AddRef)(IUSBController *pThis);
18961     nsrefcnt (*Release)(IUSBController *pThis);
18962     nsresult (*GetName)(IUSBController *pThis, PRUnichar * *name);
18963     nsresult (*SetName)(IUSBController *pThis, PRUnichar * name);
18964 
18965     nsresult (*GetType)(IUSBController *pThis, PRUint32 *type);
18966     nsresult (*SetType)(IUSBController *pThis, PRUint32 type);
18967 
18968     nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
18969 
18970     nsresult (*GetInternalAndReservedAttribute1IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18971 
18972     nsresult (*GetInternalAndReservedAttribute2IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18973 
18974     nsresult (*GetInternalAndReservedAttribute3IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18975 
18976     nsresult (*GetInternalAndReservedAttribute4IUSBController)(IUSBController *pThis, PRUint32 *reserved);
18977 
18978 };
18979 #    define IUSBController_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18980 #    define IUSBController_AddRef(p) ((p)->lpVtbl->AddRef(p))
18981 #    define IUSBController_Release(p) ((p)->lpVtbl->Release(p))
18982 #    define IUSBController_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
18983 #    define IUSBController_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
18984 #    define IUSBController_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
18985 #    define IUSBController_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
18986 #    define IUSBController_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
18987 #    define IUSBController_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
18988 #    define IUSBController_put_Type(p, aType) ((p)->lpVtbl->SetType(p, aType))
18989 #    define IUSBController_SetType(p, aType) ((p)->lpVtbl->SetType(p, aType))
18990 #    define IUSBController_get_USBStandard(p, aUSBStandard) ((p)->lpVtbl->GetUSBStandard(p, aUSBStandard))
18991 #    define IUSBController_GetUSBStandard(p, aUSBStandard) ((p)->lpVtbl->GetUSBStandard(p, aUSBStandard))
18992 #   endif /* VBOX_WITH_GLUE */
18993 
18994 interface IUSBController
18995 {
18996 #   ifndef VBOX_WITH_GLUE
18997     struct IUSBController_vtbl *vtbl;
18998 #   else /* VBOX_WITH_GLUE */
18999     CONST_VTBL struct IUSBControllerVtbl *lpVtbl;
19000 #   endif /* VBOX_WITH_GLUE */
19001 };
19002 /* End of struct IUSBController declaration */
19003 
19004 
19005 /* Start of struct IUSBDevice declaration */
19006 #   define IUSBDEVICE_IID_STR "202c8c43-2d2d-4866-acf7-56ffae36f1f9"
19007 #   define IUSBDEVICE_IID { \
19008     0x202c8c43, 0x2d2d, 0x4866, \
19009     { 0xac, 0xf7, 0x56, 0xff, 0xae, 0x36, 0xf1, 0xf9 } \
19010 }
19011 /* COM compatibility */
19012 VBOX_EXTERN_CONST(nsIID, IID_IUSBDevice);
19013 #   ifndef VBOX_WITH_GLUE
19014 struct IUSBDevice_vtbl
19015 {
19016     struct nsISupports_vtbl nsisupports;
19017 
19018     nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
19019 
19020     nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
19021 
19022     nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
19023 
19024     nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
19025 
19026     nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
19027 
19028     nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
19029 
19030     nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
19031 
19032     nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
19033 
19034     nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
19035 
19036     nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
19037 
19038     nsresult (*GetPortVersion)(IUSBDevice *pThis, PRUint16 *portVersion);
19039 
19040     nsresult (*GetSpeed)(IUSBDevice *pThis, PRUint32 *speed);
19041 
19042     nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
19043 
19044     nsresult (*GetDeviceInfo)(IUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
19045 
19046     nsresult (*GetBackend)(IUSBDevice *pThis, PRUnichar * *backend);
19047 
19048     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19049 
19050     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19051 
19052     nsresult (*GetInternalAndReservedAttribute3IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19053 
19054     nsresult (*GetInternalAndReservedAttribute4IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19055 
19056 };
19057 #   else /* VBOX_WITH_GLUE */
19058 struct IUSBDeviceVtbl
19059 {
19060     nsresult (*QueryInterface)(IUSBDevice *pThis, const nsID *iid, void **resultp);
19061     nsrefcnt (*AddRef)(IUSBDevice *pThis);
19062     nsrefcnt (*Release)(IUSBDevice *pThis);
19063     nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
19064 
19065     nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
19066 
19067     nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
19068 
19069     nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
19070 
19071     nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
19072 
19073     nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
19074 
19075     nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
19076 
19077     nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
19078 
19079     nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
19080 
19081     nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
19082 
19083     nsresult (*GetPortVersion)(IUSBDevice *pThis, PRUint16 *portVersion);
19084 
19085     nsresult (*GetSpeed)(IUSBDevice *pThis, PRUint32 *speed);
19086 
19087     nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
19088 
19089     nsresult (*GetDeviceInfo)(IUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
19090 
19091     nsresult (*GetBackend)(IUSBDevice *pThis, PRUnichar * *backend);
19092 
19093     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19094 
19095     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19096 
19097     nsresult (*GetInternalAndReservedAttribute3IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19098 
19099     nsresult (*GetInternalAndReservedAttribute4IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
19100 
19101 };
19102 #    define IUSBDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19103 #    define IUSBDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
19104 #    define IUSBDevice_Release(p) ((p)->lpVtbl->Release(p))
19105 #    define IUSBDevice_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
19106 #    define IUSBDevice_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
19107 #    define IUSBDevice_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19108 #    define IUSBDevice_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19109 #    define IUSBDevice_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19110 #    define IUSBDevice_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19111 #    define IUSBDevice_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19112 #    define IUSBDevice_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19113 #    define IUSBDevice_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19114 #    define IUSBDevice_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19115 #    define IUSBDevice_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19116 #    define IUSBDevice_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19117 #    define IUSBDevice_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19118 #    define IUSBDevice_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19119 #    define IUSBDevice_get_Address(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
19120 #    define IUSBDevice_GetAddress(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
19121 #    define IUSBDevice_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19122 #    define IUSBDevice_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19123 #    define IUSBDevice_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19124 #    define IUSBDevice_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19125 #    define IUSBDevice_get_PortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
19126 #    define IUSBDevice_GetPortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
19127 #    define IUSBDevice_get_Speed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
19128 #    define IUSBDevice_GetSpeed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
19129 #    define IUSBDevice_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19130 #    define IUSBDevice_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19131 #    define IUSBDevice_get_DeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
19132 #    define IUSBDevice_GetDeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
19133 #    define IUSBDevice_get_Backend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
19134 #    define IUSBDevice_GetBackend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
19135 #   endif /* VBOX_WITH_GLUE */
19136 
19137 interface IUSBDevice
19138 {
19139 #   ifndef VBOX_WITH_GLUE
19140     struct IUSBDevice_vtbl *vtbl;
19141 #   else /* VBOX_WITH_GLUE */
19142     CONST_VTBL struct IUSBDeviceVtbl *lpVtbl;
19143 #   endif /* VBOX_WITH_GLUE */
19144 };
19145 /* End of struct IUSBDevice declaration */
19146 
19147 
19148 /* Start of struct IUSBDeviceFilter declaration */
19149 #   define IUSBDEVICEFILTER_IID_STR "45587218-4289-ef4e-8e6a-e5b07816b631"
19150 #   define IUSBDEVICEFILTER_IID { \
19151     0x45587218, 0x4289, 0xef4e, \
19152     { 0x8e, 0x6a, 0xe5, 0xb0, 0x78, 0x16, 0xb6, 0x31 } \
19153 }
19154 /* COM compatibility */
19155 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceFilter);
19156 #   ifndef VBOX_WITH_GLUE
19157 struct IUSBDeviceFilter_vtbl
19158 {
19159     struct nsISupports_vtbl nsisupports;
19160 
19161     nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
19162     nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
19163 
19164     nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
19165     nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
19166 
19167     nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
19168     nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
19169 
19170     nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
19171     nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
19172 
19173     nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
19174     nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
19175 
19176     nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
19177     nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
19178 
19179     nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
19180     nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
19181 
19182     nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
19183     nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
19184 
19185     nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
19186     nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
19187 
19188     nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
19189     nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
19190 
19191     nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
19192     nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
19193 
19194     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19195 
19196     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19197 
19198     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19199 
19200     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19201 
19202     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19203 
19204     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19205 
19206     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19207 
19208     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19209 
19210 };
19211 #   else /* VBOX_WITH_GLUE */
19212 struct IUSBDeviceFilterVtbl
19213 {
19214     nsresult (*QueryInterface)(IUSBDeviceFilter *pThis, const nsID *iid, void **resultp);
19215     nsrefcnt (*AddRef)(IUSBDeviceFilter *pThis);
19216     nsrefcnt (*Release)(IUSBDeviceFilter *pThis);
19217     nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
19218     nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
19219 
19220     nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
19221     nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
19222 
19223     nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
19224     nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
19225 
19226     nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
19227     nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
19228 
19229     nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
19230     nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
19231 
19232     nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
19233     nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
19234 
19235     nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
19236     nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
19237 
19238     nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
19239     nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
19240 
19241     nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
19242     nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
19243 
19244     nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
19245     nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
19246 
19247     nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
19248     nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
19249 
19250     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19251 
19252     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19253 
19254     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19255 
19256     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19257 
19258     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19259 
19260     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19261 
19262     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19263 
19264     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
19265 
19266 };
19267 #    define IUSBDeviceFilter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19268 #    define IUSBDeviceFilter_AddRef(p) ((p)->lpVtbl->AddRef(p))
19269 #    define IUSBDeviceFilter_Release(p) ((p)->lpVtbl->Release(p))
19270 #    define IUSBDeviceFilter_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
19271 #    define IUSBDeviceFilter_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
19272 #    define IUSBDeviceFilter_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
19273 #    define IUSBDeviceFilter_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
19274 #    define IUSBDeviceFilter_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
19275 #    define IUSBDeviceFilter_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
19276 #    define IUSBDeviceFilter_put_Active(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
19277 #    define IUSBDeviceFilter_SetActive(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
19278 #    define IUSBDeviceFilter_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19279 #    define IUSBDeviceFilter_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19280 #    define IUSBDeviceFilter_put_VendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
19281 #    define IUSBDeviceFilter_SetVendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
19282 #    define IUSBDeviceFilter_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19283 #    define IUSBDeviceFilter_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19284 #    define IUSBDeviceFilter_put_ProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
19285 #    define IUSBDeviceFilter_SetProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
19286 #    define IUSBDeviceFilter_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19287 #    define IUSBDeviceFilter_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19288 #    define IUSBDeviceFilter_put_Revision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
19289 #    define IUSBDeviceFilter_SetRevision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
19290 #    define IUSBDeviceFilter_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19291 #    define IUSBDeviceFilter_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19292 #    define IUSBDeviceFilter_put_Manufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
19293 #    define IUSBDeviceFilter_SetManufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
19294 #    define IUSBDeviceFilter_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19295 #    define IUSBDeviceFilter_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19296 #    define IUSBDeviceFilter_put_Product(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
19297 #    define IUSBDeviceFilter_SetProduct(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
19298 #    define IUSBDeviceFilter_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19299 #    define IUSBDeviceFilter_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19300 #    define IUSBDeviceFilter_put_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
19301 #    define IUSBDeviceFilter_SetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
19302 #    define IUSBDeviceFilter_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19303 #    define IUSBDeviceFilter_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19304 #    define IUSBDeviceFilter_put_Port(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
19305 #    define IUSBDeviceFilter_SetPort(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
19306 #    define IUSBDeviceFilter_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19307 #    define IUSBDeviceFilter_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19308 #    define IUSBDeviceFilter_put_Remote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
19309 #    define IUSBDeviceFilter_SetRemote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
19310 #    define IUSBDeviceFilter_get_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
19311 #    define IUSBDeviceFilter_GetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
19312 #    define IUSBDeviceFilter_put_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
19313 #    define IUSBDeviceFilter_SetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
19314 #   endif /* VBOX_WITH_GLUE */
19315 
19316 interface IUSBDeviceFilter
19317 {
19318 #   ifndef VBOX_WITH_GLUE
19319     struct IUSBDeviceFilter_vtbl *vtbl;
19320 #   else /* VBOX_WITH_GLUE */
19321     CONST_VTBL struct IUSBDeviceFilterVtbl *lpVtbl;
19322 #   endif /* VBOX_WITH_GLUE */
19323 };
19324 /* End of struct IUSBDeviceFilter declaration */
19325 
19326 
19327 /* Start of struct IHostUSBDevice declaration */
19328 #   define IHOSTUSBDEVICE_IID_STR "c19073dd-cc7b-431b-98b2-951fda8eab89"
19329 #   define IHOSTUSBDEVICE_IID { \
19330     0xc19073dd, 0xcc7b, 0x431b, \
19331     { 0x98, 0xb2, 0x95, 0x1f, 0xda, 0x8e, 0xab, 0x89 } \
19332 }
19333 /* COM compatibility */
19334 VBOX_EXTERN_CONST(nsIID, IID_IHostUSBDevice);
19335 #   ifndef VBOX_WITH_GLUE
19336 struct IHostUSBDevice_vtbl
19337 {
19338     struct IUSBDevice_vtbl iusbdevice;
19339 
19340     nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
19341 
19342     nsresult (*GetInternalAndReservedAttribute1IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19343 
19344     nsresult (*GetInternalAndReservedAttribute2IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19345 
19346     nsresult (*GetInternalAndReservedAttribute3IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19347 
19348     nsresult (*GetInternalAndReservedAttribute4IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19349 
19350 };
19351 #   else /* VBOX_WITH_GLUE */
19352 struct IHostUSBDeviceVtbl
19353 {
19354     nsresult (*QueryInterface)(IHostUSBDevice *pThis, const nsID *iid, void **resultp);
19355     nsrefcnt (*AddRef)(IHostUSBDevice *pThis);
19356     nsrefcnt (*Release)(IHostUSBDevice *pThis);
19357     nsresult (*GetId)(IHostUSBDevice *pThis, PRUnichar * *id);
19358 
19359     nsresult (*GetVendorId)(IHostUSBDevice *pThis, PRUint16 *vendorId);
19360 
19361     nsresult (*GetProductId)(IHostUSBDevice *pThis, PRUint16 *productId);
19362 
19363     nsresult (*GetRevision)(IHostUSBDevice *pThis, PRUint16 *revision);
19364 
19365     nsresult (*GetManufacturer)(IHostUSBDevice *pThis, PRUnichar * *manufacturer);
19366 
19367     nsresult (*GetProduct)(IHostUSBDevice *pThis, PRUnichar * *product);
19368 
19369     nsresult (*GetSerialNumber)(IHostUSBDevice *pThis, PRUnichar * *serialNumber);
19370 
19371     nsresult (*GetAddress)(IHostUSBDevice *pThis, PRUnichar * *address);
19372 
19373     nsresult (*GetPort)(IHostUSBDevice *pThis, PRUint16 *port);
19374 
19375     nsresult (*GetVersion)(IHostUSBDevice *pThis, PRUint16 *version);
19376 
19377     nsresult (*GetPortVersion)(IHostUSBDevice *pThis, PRUint16 *portVersion);
19378 
19379     nsresult (*GetSpeed)(IHostUSBDevice *pThis, PRUint32 *speed);
19380 
19381     nsresult (*GetRemote)(IHostUSBDevice *pThis, PRBool *remote);
19382 
19383     nsresult (*GetDeviceInfo)(IHostUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
19384 
19385     nsresult (*GetBackend)(IHostUSBDevice *pThis, PRUnichar * *backend);
19386 
19387     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19388 
19389     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19390 
19391     nsresult (*GetInternalAndReservedAttribute3IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19392 
19393     nsresult (*GetInternalAndReservedAttribute4IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19394 
19395     nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
19396 
19397     nsresult (*GetInternalAndReservedAttribute1IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19398 
19399     nsresult (*GetInternalAndReservedAttribute2IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19400 
19401     nsresult (*GetInternalAndReservedAttribute3IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19402 
19403     nsresult (*GetInternalAndReservedAttribute4IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
19404 
19405 };
19406 #    define IHostUSBDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19407 #    define IHostUSBDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
19408 #    define IHostUSBDevice_Release(p) ((p)->lpVtbl->Release(p))
19409 #    define IHostUSBDevice_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
19410 #    define IHostUSBDevice_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
19411 #    define IHostUSBDevice_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19412 #    define IHostUSBDevice_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19413 #    define IHostUSBDevice_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19414 #    define IHostUSBDevice_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19415 #    define IHostUSBDevice_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19416 #    define IHostUSBDevice_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19417 #    define IHostUSBDevice_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19418 #    define IHostUSBDevice_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19419 #    define IHostUSBDevice_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19420 #    define IHostUSBDevice_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19421 #    define IHostUSBDevice_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19422 #    define IHostUSBDevice_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19423 #    define IHostUSBDevice_get_Address(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
19424 #    define IHostUSBDevice_GetAddress(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
19425 #    define IHostUSBDevice_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19426 #    define IHostUSBDevice_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19427 #    define IHostUSBDevice_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19428 #    define IHostUSBDevice_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19429 #    define IHostUSBDevice_get_PortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
19430 #    define IHostUSBDevice_GetPortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
19431 #    define IHostUSBDevice_get_Speed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
19432 #    define IHostUSBDevice_GetSpeed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
19433 #    define IHostUSBDevice_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19434 #    define IHostUSBDevice_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19435 #    define IHostUSBDevice_get_DeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
19436 #    define IHostUSBDevice_GetDeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
19437 #    define IHostUSBDevice_get_Backend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
19438 #    define IHostUSBDevice_GetBackend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
19439 #    define IHostUSBDevice_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
19440 #    define IHostUSBDevice_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
19441 #   endif /* VBOX_WITH_GLUE */
19442 
19443 interface IHostUSBDevice
19444 {
19445 #   ifndef VBOX_WITH_GLUE
19446     struct IHostUSBDevice_vtbl *vtbl;
19447 #   else /* VBOX_WITH_GLUE */
19448     CONST_VTBL struct IHostUSBDeviceVtbl *lpVtbl;
19449 #   endif /* VBOX_WITH_GLUE */
19450 };
19451 /* End of struct IHostUSBDevice declaration */
19452 
19453 
19454 /* Start of struct IHostUSBDeviceFilter declaration */
19455 #   define IHOSTUSBDEVICEFILTER_IID_STR "01adb2d6-aedf-461c-be2c-99e91bdad8a1"
19456 #   define IHOSTUSBDEVICEFILTER_IID { \
19457     0x01adb2d6, 0xaedf, 0x461c, \
19458     { 0xbe, 0x2c, 0x99, 0xe9, 0x1b, 0xda, 0xd8, 0xa1 } \
19459 }
19460 /* COM compatibility */
19461 VBOX_EXTERN_CONST(nsIID, IID_IHostUSBDeviceFilter);
19462 #   ifndef VBOX_WITH_GLUE
19463 struct IHostUSBDeviceFilter_vtbl
19464 {
19465     struct IUSBDeviceFilter_vtbl iusbdevicefilter;
19466 
19467     nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
19468     nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
19469 
19470     nsresult (*GetInternalAndReservedAttribute1IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19471 
19472     nsresult (*GetInternalAndReservedAttribute2IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19473 
19474     nsresult (*GetInternalAndReservedAttribute3IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19475 
19476     nsresult (*GetInternalAndReservedAttribute4IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19477 
19478     nsresult (*GetInternalAndReservedAttribute5IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19479 
19480     nsresult (*GetInternalAndReservedAttribute6IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19481 
19482     nsresult (*GetInternalAndReservedAttribute7IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19483 
19484     nsresult (*GetInternalAndReservedAttribute8IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19485 
19486 };
19487 #   else /* VBOX_WITH_GLUE */
19488 struct IHostUSBDeviceFilterVtbl
19489 {
19490     nsresult (*QueryInterface)(IHostUSBDeviceFilter *pThis, const nsID *iid, void **resultp);
19491     nsrefcnt (*AddRef)(IHostUSBDeviceFilter *pThis);
19492     nsrefcnt (*Release)(IHostUSBDeviceFilter *pThis);
19493     nsresult (*GetName)(IHostUSBDeviceFilter *pThis, PRUnichar * *name);
19494     nsresult (*SetName)(IHostUSBDeviceFilter *pThis, PRUnichar * name);
19495 
19496     nsresult (*GetActive)(IHostUSBDeviceFilter *pThis, PRBool *active);
19497     nsresult (*SetActive)(IHostUSBDeviceFilter *pThis, PRBool active);
19498 
19499     nsresult (*GetVendorId)(IHostUSBDeviceFilter *pThis, PRUnichar * *vendorId);
19500     nsresult (*SetVendorId)(IHostUSBDeviceFilter *pThis, PRUnichar * vendorId);
19501 
19502     nsresult (*GetProductId)(IHostUSBDeviceFilter *pThis, PRUnichar * *productId);
19503     nsresult (*SetProductId)(IHostUSBDeviceFilter *pThis, PRUnichar * productId);
19504 
19505     nsresult (*GetRevision)(IHostUSBDeviceFilter *pThis, PRUnichar * *revision);
19506     nsresult (*SetRevision)(IHostUSBDeviceFilter *pThis, PRUnichar * revision);
19507 
19508     nsresult (*GetManufacturer)(IHostUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
19509     nsresult (*SetManufacturer)(IHostUSBDeviceFilter *pThis, PRUnichar * manufacturer);
19510 
19511     nsresult (*GetProduct)(IHostUSBDeviceFilter *pThis, PRUnichar * *product);
19512     nsresult (*SetProduct)(IHostUSBDeviceFilter *pThis, PRUnichar * product);
19513 
19514     nsresult (*GetSerialNumber)(IHostUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
19515     nsresult (*SetSerialNumber)(IHostUSBDeviceFilter *pThis, PRUnichar * serialNumber);
19516 
19517     nsresult (*GetPort)(IHostUSBDeviceFilter *pThis, PRUnichar * *port);
19518     nsresult (*SetPort)(IHostUSBDeviceFilter *pThis, PRUnichar * port);
19519 
19520     nsresult (*GetRemote)(IHostUSBDeviceFilter *pThis, PRUnichar * *remote);
19521     nsresult (*SetRemote)(IHostUSBDeviceFilter *pThis, PRUnichar * remote);
19522 
19523     nsresult (*GetMaskedInterfaces)(IHostUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
19524     nsresult (*SetMaskedInterfaces)(IHostUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
19525 
19526     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19527 
19528     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19529 
19530     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19531 
19532     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19533 
19534     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19535 
19536     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19537 
19538     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19539 
19540     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19541 
19542     nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
19543     nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
19544 
19545     nsresult (*GetInternalAndReservedAttribute1IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19546 
19547     nsresult (*GetInternalAndReservedAttribute2IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19548 
19549     nsresult (*GetInternalAndReservedAttribute3IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19550 
19551     nsresult (*GetInternalAndReservedAttribute4IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19552 
19553     nsresult (*GetInternalAndReservedAttribute5IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19554 
19555     nsresult (*GetInternalAndReservedAttribute6IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19556 
19557     nsresult (*GetInternalAndReservedAttribute7IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19558 
19559     nsresult (*GetInternalAndReservedAttribute8IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
19560 
19561 };
19562 #    define IHostUSBDeviceFilter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19563 #    define IHostUSBDeviceFilter_AddRef(p) ((p)->lpVtbl->AddRef(p))
19564 #    define IHostUSBDeviceFilter_Release(p) ((p)->lpVtbl->Release(p))
19565 #    define IHostUSBDeviceFilter_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
19566 #    define IHostUSBDeviceFilter_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
19567 #    define IHostUSBDeviceFilter_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
19568 #    define IHostUSBDeviceFilter_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
19569 #    define IHostUSBDeviceFilter_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
19570 #    define IHostUSBDeviceFilter_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
19571 #    define IHostUSBDeviceFilter_put_Active(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
19572 #    define IHostUSBDeviceFilter_SetActive(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
19573 #    define IHostUSBDeviceFilter_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19574 #    define IHostUSBDeviceFilter_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
19575 #    define IHostUSBDeviceFilter_put_VendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
19576 #    define IHostUSBDeviceFilter_SetVendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
19577 #    define IHostUSBDeviceFilter_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19578 #    define IHostUSBDeviceFilter_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
19579 #    define IHostUSBDeviceFilter_put_ProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
19580 #    define IHostUSBDeviceFilter_SetProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
19581 #    define IHostUSBDeviceFilter_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19582 #    define IHostUSBDeviceFilter_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19583 #    define IHostUSBDeviceFilter_put_Revision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
19584 #    define IHostUSBDeviceFilter_SetRevision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
19585 #    define IHostUSBDeviceFilter_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19586 #    define IHostUSBDeviceFilter_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
19587 #    define IHostUSBDeviceFilter_put_Manufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
19588 #    define IHostUSBDeviceFilter_SetManufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
19589 #    define IHostUSBDeviceFilter_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19590 #    define IHostUSBDeviceFilter_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
19591 #    define IHostUSBDeviceFilter_put_Product(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
19592 #    define IHostUSBDeviceFilter_SetProduct(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
19593 #    define IHostUSBDeviceFilter_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19594 #    define IHostUSBDeviceFilter_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
19595 #    define IHostUSBDeviceFilter_put_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
19596 #    define IHostUSBDeviceFilter_SetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
19597 #    define IHostUSBDeviceFilter_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19598 #    define IHostUSBDeviceFilter_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
19599 #    define IHostUSBDeviceFilter_put_Port(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
19600 #    define IHostUSBDeviceFilter_SetPort(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
19601 #    define IHostUSBDeviceFilter_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19602 #    define IHostUSBDeviceFilter_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
19603 #    define IHostUSBDeviceFilter_put_Remote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
19604 #    define IHostUSBDeviceFilter_SetRemote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
19605 #    define IHostUSBDeviceFilter_get_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
19606 #    define IHostUSBDeviceFilter_GetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
19607 #    define IHostUSBDeviceFilter_put_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
19608 #    define IHostUSBDeviceFilter_SetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
19609 #    define IHostUSBDeviceFilter_get_Action(p, aAction) ((p)->lpVtbl->GetAction(p, aAction))
19610 #    define IHostUSBDeviceFilter_GetAction(p, aAction) ((p)->lpVtbl->GetAction(p, aAction))
19611 #    define IHostUSBDeviceFilter_put_Action(p, aAction) ((p)->lpVtbl->SetAction(p, aAction))
19612 #    define IHostUSBDeviceFilter_SetAction(p, aAction) ((p)->lpVtbl->SetAction(p, aAction))
19613 #   endif /* VBOX_WITH_GLUE */
19614 
19615 interface IHostUSBDeviceFilter
19616 {
19617 #   ifndef VBOX_WITH_GLUE
19618     struct IHostUSBDeviceFilter_vtbl *vtbl;
19619 #   else /* VBOX_WITH_GLUE */
19620     CONST_VTBL struct IHostUSBDeviceFilterVtbl *lpVtbl;
19621 #   endif /* VBOX_WITH_GLUE */
19622 };
19623 /* End of struct IHostUSBDeviceFilter declaration */
19624 
19625 
19626 /* Start of struct IUSBProxyBackend declaration */
19627 #   define IUSBPROXYBACKEND_IID_STR "dfe56449-6989-4002-80cf-3607f377d40c"
19628 #   define IUSBPROXYBACKEND_IID { \
19629     0xdfe56449, 0x6989, 0x4002, \
19630     { 0x80, 0xcf, 0x36, 0x07, 0xf3, 0x77, 0xd4, 0x0c } \
19631 }
19632 /* COM compatibility */
19633 VBOX_EXTERN_CONST(nsIID, IID_IUSBProxyBackend);
19634 #   ifndef VBOX_WITH_GLUE
19635 struct IUSBProxyBackend_vtbl
19636 {
19637     struct nsISupports_vtbl nsisupports;
19638 
19639     nsresult (*GetName)(IUSBProxyBackend *pThis, PRUnichar * *name);
19640 
19641     nsresult (*GetType)(IUSBProxyBackend *pThis, PRUnichar * *type);
19642 
19643     nsresult (*GetInternalAndReservedAttribute1IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19644 
19645     nsresult (*GetInternalAndReservedAttribute2IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19646 
19647     nsresult (*GetInternalAndReservedAttribute3IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19648 
19649     nsresult (*GetInternalAndReservedAttribute4IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19650 
19651     nsresult (*GetInternalAndReservedAttribute5IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19652 
19653     nsresult (*GetInternalAndReservedAttribute6IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19654 
19655     nsresult (*GetInternalAndReservedAttribute7IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19656 
19657     nsresult (*GetInternalAndReservedAttribute8IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19658 
19659     nsresult (*InternalAndReservedMethod1IUSBProxyBackend)(IUSBProxyBackend *pThis);
19660 
19661     nsresult (*InternalAndReservedMethod2IUSBProxyBackend)(IUSBProxyBackend *pThis);
19662 
19663     nsresult (*InternalAndReservedMethod3IUSBProxyBackend)(IUSBProxyBackend *pThis);
19664 
19665     nsresult (*InternalAndReservedMethod4IUSBProxyBackend)(IUSBProxyBackend *pThis);
19666 
19667 };
19668 #   else /* VBOX_WITH_GLUE */
19669 struct IUSBProxyBackendVtbl
19670 {
19671     nsresult (*QueryInterface)(IUSBProxyBackend *pThis, const nsID *iid, void **resultp);
19672     nsrefcnt (*AddRef)(IUSBProxyBackend *pThis);
19673     nsrefcnt (*Release)(IUSBProxyBackend *pThis);
19674     nsresult (*GetName)(IUSBProxyBackend *pThis, PRUnichar * *name);
19675 
19676     nsresult (*GetType)(IUSBProxyBackend *pThis, PRUnichar * *type);
19677 
19678     nsresult (*GetInternalAndReservedAttribute1IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19679 
19680     nsresult (*GetInternalAndReservedAttribute2IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19681 
19682     nsresult (*GetInternalAndReservedAttribute3IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19683 
19684     nsresult (*GetInternalAndReservedAttribute4IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19685 
19686     nsresult (*GetInternalAndReservedAttribute5IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19687 
19688     nsresult (*GetInternalAndReservedAttribute6IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19689 
19690     nsresult (*GetInternalAndReservedAttribute7IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19691 
19692     nsresult (*GetInternalAndReservedAttribute8IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
19693 
19694     nsresult (*InternalAndReservedMethod1IUSBProxyBackend)(IUSBProxyBackend *pThis);
19695 
19696     nsresult (*InternalAndReservedMethod2IUSBProxyBackend)(IUSBProxyBackend *pThis);
19697 
19698     nsresult (*InternalAndReservedMethod3IUSBProxyBackend)(IUSBProxyBackend *pThis);
19699 
19700     nsresult (*InternalAndReservedMethod4IUSBProxyBackend)(IUSBProxyBackend *pThis);
19701 
19702 };
19703 #    define IUSBProxyBackend_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19704 #    define IUSBProxyBackend_AddRef(p) ((p)->lpVtbl->AddRef(p))
19705 #    define IUSBProxyBackend_Release(p) ((p)->lpVtbl->Release(p))
19706 #    define IUSBProxyBackend_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
19707 #    define IUSBProxyBackend_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
19708 #    define IUSBProxyBackend_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
19709 #    define IUSBProxyBackend_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
19710 #   endif /* VBOX_WITH_GLUE */
19711 
19712 interface IUSBProxyBackend
19713 {
19714 #   ifndef VBOX_WITH_GLUE
19715     struct IUSBProxyBackend_vtbl *vtbl;
19716 #   else /* VBOX_WITH_GLUE */
19717     CONST_VTBL struct IUSBProxyBackendVtbl *lpVtbl;
19718 #   endif /* VBOX_WITH_GLUE */
19719 };
19720 /* End of struct IUSBProxyBackend declaration */
19721 
19722 
19723 /* Start of struct IAudioAdapter declaration */
19724 #   define IAUDIOADAPTER_IID_STR "5155bfd3-7ba7-45a8-b26d-c91ae3754e37"
19725 #   define IAUDIOADAPTER_IID { \
19726     0x5155bfd3, 0x7ba7, 0x45a8, \
19727     { 0xb2, 0x6d, 0xc9, 0x1a, 0xe3, 0x75, 0x4e, 0x37 } \
19728 }
19729 /* COM compatibility */
19730 VBOX_EXTERN_CONST(nsIID, IID_IAudioAdapter);
19731 #   ifndef VBOX_WITH_GLUE
19732 struct IAudioAdapter_vtbl
19733 {
19734     struct nsISupports_vtbl nsisupports;
19735 
19736     nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
19737     nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
19738 
19739     nsresult (*GetEnabledIn)(IAudioAdapter *pThis, PRBool *enabledIn);
19740     nsresult (*SetEnabledIn)(IAudioAdapter *pThis, PRBool enabledIn);
19741 
19742     nsresult (*GetEnabledOut)(IAudioAdapter *pThis, PRBool *enabledOut);
19743     nsresult (*SetEnabledOut)(IAudioAdapter *pThis, PRBool enabledOut);
19744 
19745     nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
19746     nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
19747 
19748     nsresult (*GetAudioCodec)(IAudioAdapter *pThis, PRUint32 *audioCodec);
19749     nsresult (*SetAudioCodec)(IAudioAdapter *pThis, PRUint32 audioCodec);
19750 
19751     nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
19752     nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
19753 
19754     nsresult (*GetPropertiesList)(IAudioAdapter *pThis, PRUint32 *propertiesListSize, PRUnichar * **propertiesList);
19755 
19756     nsresult (*GetInternalAndReservedAttribute1IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19757 
19758     nsresult (*GetInternalAndReservedAttribute2IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19759 
19760     nsresult (*GetInternalAndReservedAttribute3IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19761 
19762     nsresult (*GetInternalAndReservedAttribute4IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19763 
19764     nsresult (*GetInternalAndReservedAttribute5IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19765 
19766     nsresult (*GetInternalAndReservedAttribute6IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19767 
19768     nsresult (*GetInternalAndReservedAttribute7IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19769 
19770     nsresult (*GetInternalAndReservedAttribute8IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19771 
19772     nsresult (*SetProperty)(
19773         IAudioAdapter *pThis,
19774         PRUnichar * key,
19775         PRUnichar * value
19776     );
19777 
19778     nsresult (*GetProperty)(
19779         IAudioAdapter *pThis,
19780         PRUnichar * key,
19781         PRUnichar * * value
19782     );
19783 
19784     nsresult (*InternalAndReservedMethod1IAudioAdapter)(IAudioAdapter *pThis);
19785 
19786     nsresult (*InternalAndReservedMethod2IAudioAdapter)(IAudioAdapter *pThis);
19787 
19788     nsresult (*InternalAndReservedMethod3IAudioAdapter)(IAudioAdapter *pThis);
19789 
19790     nsresult (*InternalAndReservedMethod4IAudioAdapter)(IAudioAdapter *pThis);
19791 
19792 };
19793 #   else /* VBOX_WITH_GLUE */
19794 struct IAudioAdapterVtbl
19795 {
19796     nsresult (*QueryInterface)(IAudioAdapter *pThis, const nsID *iid, void **resultp);
19797     nsrefcnt (*AddRef)(IAudioAdapter *pThis);
19798     nsrefcnt (*Release)(IAudioAdapter *pThis);
19799     nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
19800     nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
19801 
19802     nsresult (*GetEnabledIn)(IAudioAdapter *pThis, PRBool *enabledIn);
19803     nsresult (*SetEnabledIn)(IAudioAdapter *pThis, PRBool enabledIn);
19804 
19805     nsresult (*GetEnabledOut)(IAudioAdapter *pThis, PRBool *enabledOut);
19806     nsresult (*SetEnabledOut)(IAudioAdapter *pThis, PRBool enabledOut);
19807 
19808     nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
19809     nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
19810 
19811     nsresult (*GetAudioCodec)(IAudioAdapter *pThis, PRUint32 *audioCodec);
19812     nsresult (*SetAudioCodec)(IAudioAdapter *pThis, PRUint32 audioCodec);
19813 
19814     nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
19815     nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
19816 
19817     nsresult (*GetPropertiesList)(IAudioAdapter *pThis, PRUint32 *propertiesListSize, PRUnichar * **propertiesList);
19818 
19819     nsresult (*GetInternalAndReservedAttribute1IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19820 
19821     nsresult (*GetInternalAndReservedAttribute2IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19822 
19823     nsresult (*GetInternalAndReservedAttribute3IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19824 
19825     nsresult (*GetInternalAndReservedAttribute4IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19826 
19827     nsresult (*GetInternalAndReservedAttribute5IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19828 
19829     nsresult (*GetInternalAndReservedAttribute6IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19830 
19831     nsresult (*GetInternalAndReservedAttribute7IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19832 
19833     nsresult (*GetInternalAndReservedAttribute8IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
19834 
19835     nsresult (*SetProperty)(
19836         IAudioAdapter *pThis,
19837         PRUnichar * key,
19838         PRUnichar * value
19839     );
19840 
19841     nsresult (*GetProperty)(
19842         IAudioAdapter *pThis,
19843         PRUnichar * key,
19844         PRUnichar * * value
19845     );
19846 
19847     nsresult (*InternalAndReservedMethod1IAudioAdapter)(IAudioAdapter *pThis);
19848 
19849     nsresult (*InternalAndReservedMethod2IAudioAdapter)(IAudioAdapter *pThis);
19850 
19851     nsresult (*InternalAndReservedMethod3IAudioAdapter)(IAudioAdapter *pThis);
19852 
19853     nsresult (*InternalAndReservedMethod4IAudioAdapter)(IAudioAdapter *pThis);
19854 
19855 };
19856 #    define IAudioAdapter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19857 #    define IAudioAdapter_AddRef(p) ((p)->lpVtbl->AddRef(p))
19858 #    define IAudioAdapter_Release(p) ((p)->lpVtbl->Release(p))
19859 #    define IAudioAdapter_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
19860 #    define IAudioAdapter_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
19861 #    define IAudioAdapter_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
19862 #    define IAudioAdapter_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
19863 #    define IAudioAdapter_get_EnabledIn(p, aEnabledIn) ((p)->lpVtbl->GetEnabledIn(p, aEnabledIn))
19864 #    define IAudioAdapter_GetEnabledIn(p, aEnabledIn) ((p)->lpVtbl->GetEnabledIn(p, aEnabledIn))
19865 #    define IAudioAdapter_put_EnabledIn(p, aEnabledIn) ((p)->lpVtbl->SetEnabledIn(p, aEnabledIn))
19866 #    define IAudioAdapter_SetEnabledIn(p, aEnabledIn) ((p)->lpVtbl->SetEnabledIn(p, aEnabledIn))
19867 #    define IAudioAdapter_get_EnabledOut(p, aEnabledOut) ((p)->lpVtbl->GetEnabledOut(p, aEnabledOut))
19868 #    define IAudioAdapter_GetEnabledOut(p, aEnabledOut) ((p)->lpVtbl->GetEnabledOut(p, aEnabledOut))
19869 #    define IAudioAdapter_put_EnabledOut(p, aEnabledOut) ((p)->lpVtbl->SetEnabledOut(p, aEnabledOut))
19870 #    define IAudioAdapter_SetEnabledOut(p, aEnabledOut) ((p)->lpVtbl->SetEnabledOut(p, aEnabledOut))
19871 #    define IAudioAdapter_get_AudioController(p, aAudioController) ((p)->lpVtbl->GetAudioController(p, aAudioController))
19872 #    define IAudioAdapter_GetAudioController(p, aAudioController) ((p)->lpVtbl->GetAudioController(p, aAudioController))
19873 #    define IAudioAdapter_put_AudioController(p, aAudioController) ((p)->lpVtbl->SetAudioController(p, aAudioController))
19874 #    define IAudioAdapter_SetAudioController(p, aAudioController) ((p)->lpVtbl->SetAudioController(p, aAudioController))
19875 #    define IAudioAdapter_get_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
19876 #    define IAudioAdapter_GetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
19877 #    define IAudioAdapter_put_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
19878 #    define IAudioAdapter_SetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
19879 #    define IAudioAdapter_get_AudioDriver(p, aAudioDriver) ((p)->lpVtbl->GetAudioDriver(p, aAudioDriver))
19880 #    define IAudioAdapter_GetAudioDriver(p, aAudioDriver) ((p)->lpVtbl->GetAudioDriver(p, aAudioDriver))
19881 #    define IAudioAdapter_put_AudioDriver(p, aAudioDriver) ((p)->lpVtbl->SetAudioDriver(p, aAudioDriver))
19882 #    define IAudioAdapter_SetAudioDriver(p, aAudioDriver) ((p)->lpVtbl->SetAudioDriver(p, aAudioDriver))
19883 #    define IAudioAdapter_get_PropertiesList(p, aPropertiesList) ((p)->lpVtbl->GetPropertiesList(p, aPropertiesList))
19884 #    define IAudioAdapter_GetPropertiesList(p, aPropertiesList) ((p)->lpVtbl->GetPropertiesList(p, aPropertiesList))
19885 #    define IAudioAdapter_SetProperty(p, aKey, aValue) ((p)->lpVtbl->SetProperty(p, aKey, aValue))
19886 #    define IAudioAdapter_GetProperty(p, aKey, aValue) ((p)->lpVtbl->GetProperty(p, aKey, aValue))
19887 #   endif /* VBOX_WITH_GLUE */
19888 
19889 interface IAudioAdapter
19890 {
19891 #   ifndef VBOX_WITH_GLUE
19892     struct IAudioAdapter_vtbl *vtbl;
19893 #   else /* VBOX_WITH_GLUE */
19894     CONST_VTBL struct IAudioAdapterVtbl *lpVtbl;
19895 #   endif /* VBOX_WITH_GLUE */
19896 };
19897 /* End of struct IAudioAdapter declaration */
19898 
19899 
19900 /* Start of struct IVRDEServer declaration */
19901 #   define IVRDESERVER_IID_STR "08e25756-08a2-41af-a05f-d7c661abaebe"
19902 #   define IVRDESERVER_IID { \
19903     0x08e25756, 0x08a2, 0x41af, \
19904     { 0xa0, 0x5f, 0xd7, 0xc6, 0x61, 0xab, 0xae, 0xbe } \
19905 }
19906 /* COM compatibility */
19907 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServer);
19908 #   ifndef VBOX_WITH_GLUE
19909 struct IVRDEServer_vtbl
19910 {
19911     struct nsISupports_vtbl nsisupports;
19912 
19913     nsresult (*GetEnabled)(IVRDEServer *pThis, PRBool *enabled);
19914     nsresult (*SetEnabled)(IVRDEServer *pThis, PRBool enabled);
19915 
19916     nsresult (*GetAuthType)(IVRDEServer *pThis, PRUint32 *authType);
19917     nsresult (*SetAuthType)(IVRDEServer *pThis, PRUint32 authType);
19918 
19919     nsresult (*GetAuthTimeout)(IVRDEServer *pThis, PRUint32 *authTimeout);
19920     nsresult (*SetAuthTimeout)(IVRDEServer *pThis, PRUint32 authTimeout);
19921 
19922     nsresult (*GetAllowMultiConnection)(IVRDEServer *pThis, PRBool *allowMultiConnection);
19923     nsresult (*SetAllowMultiConnection)(IVRDEServer *pThis, PRBool allowMultiConnection);
19924 
19925     nsresult (*GetReuseSingleConnection)(IVRDEServer *pThis, PRBool *reuseSingleConnection);
19926     nsresult (*SetReuseSingleConnection)(IVRDEServer *pThis, PRBool reuseSingleConnection);
19927 
19928     nsresult (*GetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * *VRDEExtPack);
19929     nsresult (*SetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * VRDEExtPack);
19930 
19931     nsresult (*GetAuthLibrary)(IVRDEServer *pThis, PRUnichar * *authLibrary);
19932     nsresult (*SetAuthLibrary)(IVRDEServer *pThis, PRUnichar * authLibrary);
19933 
19934     nsresult (*GetVRDEProperties)(IVRDEServer *pThis, PRUint32 *VRDEPropertiesSize, PRUnichar * **VRDEProperties);
19935 
19936     nsresult (*GetInternalAndReservedAttribute1IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19937 
19938     nsresult (*GetInternalAndReservedAttribute2IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19939 
19940     nsresult (*GetInternalAndReservedAttribute3IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19941 
19942     nsresult (*GetInternalAndReservedAttribute4IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19943 
19944     nsresult (*SetVRDEProperty)(
19945         IVRDEServer *pThis,
19946         PRUnichar * key,
19947         PRUnichar * value
19948     );
19949 
19950     nsresult (*GetVRDEProperty)(
19951         IVRDEServer *pThis,
19952         PRUnichar * key,
19953         PRUnichar * * value
19954     );
19955 
19956     nsresult (*InternalAndReservedMethod1IVRDEServer)(IVRDEServer *pThis);
19957 
19958     nsresult (*InternalAndReservedMethod2IVRDEServer)(IVRDEServer *pThis);
19959 
19960 };
19961 #   else /* VBOX_WITH_GLUE */
19962 struct IVRDEServerVtbl
19963 {
19964     nsresult (*QueryInterface)(IVRDEServer *pThis, const nsID *iid, void **resultp);
19965     nsrefcnt (*AddRef)(IVRDEServer *pThis);
19966     nsrefcnt (*Release)(IVRDEServer *pThis);
19967     nsresult (*GetEnabled)(IVRDEServer *pThis, PRBool *enabled);
19968     nsresult (*SetEnabled)(IVRDEServer *pThis, PRBool enabled);
19969 
19970     nsresult (*GetAuthType)(IVRDEServer *pThis, PRUint32 *authType);
19971     nsresult (*SetAuthType)(IVRDEServer *pThis, PRUint32 authType);
19972 
19973     nsresult (*GetAuthTimeout)(IVRDEServer *pThis, PRUint32 *authTimeout);
19974     nsresult (*SetAuthTimeout)(IVRDEServer *pThis, PRUint32 authTimeout);
19975 
19976     nsresult (*GetAllowMultiConnection)(IVRDEServer *pThis, PRBool *allowMultiConnection);
19977     nsresult (*SetAllowMultiConnection)(IVRDEServer *pThis, PRBool allowMultiConnection);
19978 
19979     nsresult (*GetReuseSingleConnection)(IVRDEServer *pThis, PRBool *reuseSingleConnection);
19980     nsresult (*SetReuseSingleConnection)(IVRDEServer *pThis, PRBool reuseSingleConnection);
19981 
19982     nsresult (*GetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * *VRDEExtPack);
19983     nsresult (*SetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * VRDEExtPack);
19984 
19985     nsresult (*GetAuthLibrary)(IVRDEServer *pThis, PRUnichar * *authLibrary);
19986     nsresult (*SetAuthLibrary)(IVRDEServer *pThis, PRUnichar * authLibrary);
19987 
19988     nsresult (*GetVRDEProperties)(IVRDEServer *pThis, PRUint32 *VRDEPropertiesSize, PRUnichar * **VRDEProperties);
19989 
19990     nsresult (*GetInternalAndReservedAttribute1IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19991 
19992     nsresult (*GetInternalAndReservedAttribute2IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19993 
19994     nsresult (*GetInternalAndReservedAttribute3IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19995 
19996     nsresult (*GetInternalAndReservedAttribute4IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
19997 
19998     nsresult (*SetVRDEProperty)(
19999         IVRDEServer *pThis,
20000         PRUnichar * key,
20001         PRUnichar * value
20002     );
20003 
20004     nsresult (*GetVRDEProperty)(
20005         IVRDEServer *pThis,
20006         PRUnichar * key,
20007         PRUnichar * * value
20008     );
20009 
20010     nsresult (*InternalAndReservedMethod1IVRDEServer)(IVRDEServer *pThis);
20011 
20012     nsresult (*InternalAndReservedMethod2IVRDEServer)(IVRDEServer *pThis);
20013 
20014 };
20015 #    define IVRDEServer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20016 #    define IVRDEServer_AddRef(p) ((p)->lpVtbl->AddRef(p))
20017 #    define IVRDEServer_Release(p) ((p)->lpVtbl->Release(p))
20018 #    define IVRDEServer_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
20019 #    define IVRDEServer_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
20020 #    define IVRDEServer_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
20021 #    define IVRDEServer_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
20022 #    define IVRDEServer_get_AuthType(p, aAuthType) ((p)->lpVtbl->GetAuthType(p, aAuthType))
20023 #    define IVRDEServer_GetAuthType(p, aAuthType) ((p)->lpVtbl->GetAuthType(p, aAuthType))
20024 #    define IVRDEServer_put_AuthType(p, aAuthType) ((p)->lpVtbl->SetAuthType(p, aAuthType))
20025 #    define IVRDEServer_SetAuthType(p, aAuthType) ((p)->lpVtbl->SetAuthType(p, aAuthType))
20026 #    define IVRDEServer_get_AuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->GetAuthTimeout(p, aAuthTimeout))
20027 #    define IVRDEServer_GetAuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->GetAuthTimeout(p, aAuthTimeout))
20028 #    define IVRDEServer_put_AuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->SetAuthTimeout(p, aAuthTimeout))
20029 #    define IVRDEServer_SetAuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->SetAuthTimeout(p, aAuthTimeout))
20030 #    define IVRDEServer_get_AllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->GetAllowMultiConnection(p, aAllowMultiConnection))
20031 #    define IVRDEServer_GetAllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->GetAllowMultiConnection(p, aAllowMultiConnection))
20032 #    define IVRDEServer_put_AllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->SetAllowMultiConnection(p, aAllowMultiConnection))
20033 #    define IVRDEServer_SetAllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->SetAllowMultiConnection(p, aAllowMultiConnection))
20034 #    define IVRDEServer_get_ReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->GetReuseSingleConnection(p, aReuseSingleConnection))
20035 #    define IVRDEServer_GetReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->GetReuseSingleConnection(p, aReuseSingleConnection))
20036 #    define IVRDEServer_put_ReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->SetReuseSingleConnection(p, aReuseSingleConnection))
20037 #    define IVRDEServer_SetReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->SetReuseSingleConnection(p, aReuseSingleConnection))
20038 #    define IVRDEServer_get_VRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->GetVRDEExtPack(p, aVRDEExtPack))
20039 #    define IVRDEServer_GetVRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->GetVRDEExtPack(p, aVRDEExtPack))
20040 #    define IVRDEServer_put_VRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->SetVRDEExtPack(p, aVRDEExtPack))
20041 #    define IVRDEServer_SetVRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->SetVRDEExtPack(p, aVRDEExtPack))
20042 #    define IVRDEServer_get_AuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->GetAuthLibrary(p, aAuthLibrary))
20043 #    define IVRDEServer_GetAuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->GetAuthLibrary(p, aAuthLibrary))
20044 #    define IVRDEServer_put_AuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->SetAuthLibrary(p, aAuthLibrary))
20045 #    define IVRDEServer_SetAuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->SetAuthLibrary(p, aAuthLibrary))
20046 #    define IVRDEServer_get_VRDEProperties(p, aVRDEProperties) ((p)->lpVtbl->GetVRDEProperties(p, aVRDEProperties))
20047 #    define IVRDEServer_GetVRDEProperties(p, aVRDEProperties) ((p)->lpVtbl->GetVRDEProperties(p, aVRDEProperties))
20048 #    define IVRDEServer_SetVRDEProperty(p, aKey, aValue) ((p)->lpVtbl->SetVRDEProperty(p, aKey, aValue))
20049 #    define IVRDEServer_GetVRDEProperty(p, aKey, aValue) ((p)->lpVtbl->GetVRDEProperty(p, aKey, aValue))
20050 #   endif /* VBOX_WITH_GLUE */
20051 
20052 interface IVRDEServer
20053 {
20054 #   ifndef VBOX_WITH_GLUE
20055     struct IVRDEServer_vtbl *vtbl;
20056 #   else /* VBOX_WITH_GLUE */
20057     CONST_VTBL struct IVRDEServerVtbl *lpVtbl;
20058 #   endif /* VBOX_WITH_GLUE */
20059 };
20060 /* End of struct IVRDEServer declaration */
20061 
20062 
20063 /* Start of struct ISharedFolder declaration */
20064 #   define ISHAREDFOLDER_IID_STR "9622225a-5409-414b-bd16-77df7ba3451e"
20065 #   define ISHAREDFOLDER_IID { \
20066     0x9622225a, 0x5409, 0x414b, \
20067     { 0xbd, 0x16, 0x77, 0xdf, 0x7b, 0xa3, 0x45, 0x1e } \
20068 }
20069 /* COM compatibility */
20070 VBOX_EXTERN_CONST(nsIID, IID_ISharedFolder);
20071 #   ifndef VBOX_WITH_GLUE
20072 struct ISharedFolder_vtbl
20073 {
20074     struct nsISupports_vtbl nsisupports;
20075 
20076     nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
20077 
20078     nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
20079 
20080     nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
20081 
20082     nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
20083     nsresult (*SetWritable)(ISharedFolder *pThis, PRBool writable);
20084 
20085     nsresult (*GetAutoMount)(ISharedFolder *pThis, PRBool *autoMount);
20086     nsresult (*SetAutoMount)(ISharedFolder *pThis, PRBool autoMount);
20087 
20088     nsresult (*GetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * *autoMountPoint);
20089     nsresult (*SetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * autoMountPoint);
20090 
20091     nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
20092 
20093     nsresult (*GetInternalAndReservedAttribute1ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20094 
20095     nsresult (*GetInternalAndReservedAttribute2ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20096 
20097     nsresult (*GetInternalAndReservedAttribute3ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20098 
20099     nsresult (*GetInternalAndReservedAttribute4ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20100 
20101     nsresult (*GetInternalAndReservedAttribute5ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20102 
20103     nsresult (*GetInternalAndReservedAttribute6ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20104 
20105     nsresult (*GetInternalAndReservedAttribute7ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20106 
20107     nsresult (*GetInternalAndReservedAttribute8ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20108 
20109 };
20110 #   else /* VBOX_WITH_GLUE */
20111 struct ISharedFolderVtbl
20112 {
20113     nsresult (*QueryInterface)(ISharedFolder *pThis, const nsID *iid, void **resultp);
20114     nsrefcnt (*AddRef)(ISharedFolder *pThis);
20115     nsrefcnt (*Release)(ISharedFolder *pThis);
20116     nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
20117 
20118     nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
20119 
20120     nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
20121 
20122     nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
20123     nsresult (*SetWritable)(ISharedFolder *pThis, PRBool writable);
20124 
20125     nsresult (*GetAutoMount)(ISharedFolder *pThis, PRBool *autoMount);
20126     nsresult (*SetAutoMount)(ISharedFolder *pThis, PRBool autoMount);
20127 
20128     nsresult (*GetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * *autoMountPoint);
20129     nsresult (*SetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * autoMountPoint);
20130 
20131     nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
20132 
20133     nsresult (*GetInternalAndReservedAttribute1ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20134 
20135     nsresult (*GetInternalAndReservedAttribute2ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20136 
20137     nsresult (*GetInternalAndReservedAttribute3ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20138 
20139     nsresult (*GetInternalAndReservedAttribute4ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20140 
20141     nsresult (*GetInternalAndReservedAttribute5ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20142 
20143     nsresult (*GetInternalAndReservedAttribute6ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20144 
20145     nsresult (*GetInternalAndReservedAttribute7ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20146 
20147     nsresult (*GetInternalAndReservedAttribute8ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
20148 
20149 };
20150 #    define ISharedFolder_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20151 #    define ISharedFolder_AddRef(p) ((p)->lpVtbl->AddRef(p))
20152 #    define ISharedFolder_Release(p) ((p)->lpVtbl->Release(p))
20153 #    define ISharedFolder_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
20154 #    define ISharedFolder_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
20155 #    define ISharedFolder_get_HostPath(p, aHostPath) ((p)->lpVtbl->GetHostPath(p, aHostPath))
20156 #    define ISharedFolder_GetHostPath(p, aHostPath) ((p)->lpVtbl->GetHostPath(p, aHostPath))
20157 #    define ISharedFolder_get_Accessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
20158 #    define ISharedFolder_GetAccessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
20159 #    define ISharedFolder_get_Writable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
20160 #    define ISharedFolder_GetWritable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
20161 #    define ISharedFolder_put_Writable(p, aWritable) ((p)->lpVtbl->SetWritable(p, aWritable))
20162 #    define ISharedFolder_SetWritable(p, aWritable) ((p)->lpVtbl->SetWritable(p, aWritable))
20163 #    define ISharedFolder_get_AutoMount(p, aAutoMount) ((p)->lpVtbl->GetAutoMount(p, aAutoMount))
20164 #    define ISharedFolder_GetAutoMount(p, aAutoMount) ((p)->lpVtbl->GetAutoMount(p, aAutoMount))
20165 #    define ISharedFolder_put_AutoMount(p, aAutoMount) ((p)->lpVtbl->SetAutoMount(p, aAutoMount))
20166 #    define ISharedFolder_SetAutoMount(p, aAutoMount) ((p)->lpVtbl->SetAutoMount(p, aAutoMount))
20167 #    define ISharedFolder_get_AutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->GetAutoMountPoint(p, aAutoMountPoint))
20168 #    define ISharedFolder_GetAutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->GetAutoMountPoint(p, aAutoMountPoint))
20169 #    define ISharedFolder_put_AutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->SetAutoMountPoint(p, aAutoMountPoint))
20170 #    define ISharedFolder_SetAutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->SetAutoMountPoint(p, aAutoMountPoint))
20171 #    define ISharedFolder_get_LastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
20172 #    define ISharedFolder_GetLastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
20173 #   endif /* VBOX_WITH_GLUE */
20174 
20175 interface ISharedFolder
20176 {
20177 #   ifndef VBOX_WITH_GLUE
20178     struct ISharedFolder_vtbl *vtbl;
20179 #   else /* VBOX_WITH_GLUE */
20180     CONST_VTBL struct ISharedFolderVtbl *lpVtbl;
20181 #   endif /* VBOX_WITH_GLUE */
20182 };
20183 /* End of struct ISharedFolder declaration */
20184 
20185 
20186 /* Start of struct ISession declaration */
20187 #   define ISESSION_IID_STR "c0447716-ff5a-4795-b57a-ecd5fffa18a4"
20188 #   define ISESSION_IID { \
20189     0xc0447716, 0xff5a, 0x4795, \
20190     { 0xb5, 0x7a, 0xec, 0xd5, 0xff, 0xfa, 0x18, 0xa4 } \
20191 }
20192 /* COM compatibility */
20193 VBOX_EXTERN_CONST(nsIID, IID_ISession);
20194 #   ifndef VBOX_WITH_GLUE
20195 struct ISession_vtbl
20196 {
20197     struct nsISupports_vtbl nsisupports;
20198 
20199     nsresult (*GetState)(ISession *pThis, PRUint32 *state);
20200 
20201     nsresult (*GetType)(ISession *pThis, PRUint32 *type);
20202 
20203     nsresult (*GetName)(ISession *pThis, PRUnichar * *name);
20204     nsresult (*SetName)(ISession *pThis, PRUnichar * name);
20205 
20206     nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
20207 
20208     nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
20209 
20210     nsresult (*GetInternalAndReservedAttribute1ISession)(ISession *pThis, PRUint32 *reserved);
20211 
20212     nsresult (*GetInternalAndReservedAttribute2ISession)(ISession *pThis, PRUint32 *reserved);
20213 
20214     nsresult (*GetInternalAndReservedAttribute3ISession)(ISession *pThis, PRUint32 *reserved);
20215 
20216     nsresult (*GetInternalAndReservedAttribute4ISession)(ISession *pThis, PRUint32 *reserved);
20217 
20218     nsresult (*GetInternalAndReservedAttribute5ISession)(ISession *pThis, PRUint32 *reserved);
20219 
20220     nsresult (*GetInternalAndReservedAttribute6ISession)(ISession *pThis, PRUint32 *reserved);
20221 
20222     nsresult (*GetInternalAndReservedAttribute7ISession)(ISession *pThis, PRUint32 *reserved);
20223 
20224     nsresult (*GetInternalAndReservedAttribute8ISession)(ISession *pThis, PRUint32 *reserved);
20225 
20226     nsresult (*UnlockMachine)(ISession *pThis );
20227 
20228     nsresult (*InternalAndReservedMethod1ISession)(ISession *pThis);
20229 
20230     nsresult (*InternalAndReservedMethod2ISession)(ISession *pThis);
20231 
20232     nsresult (*InternalAndReservedMethod3ISession)(ISession *pThis);
20233 
20234     nsresult (*InternalAndReservedMethod4ISession)(ISession *pThis);
20235 
20236 };
20237 #   else /* VBOX_WITH_GLUE */
20238 struct ISessionVtbl
20239 {
20240     nsresult (*QueryInterface)(ISession *pThis, const nsID *iid, void **resultp);
20241     nsrefcnt (*AddRef)(ISession *pThis);
20242     nsrefcnt (*Release)(ISession *pThis);
20243     nsresult (*GetState)(ISession *pThis, PRUint32 *state);
20244 
20245     nsresult (*GetType)(ISession *pThis, PRUint32 *type);
20246 
20247     nsresult (*GetName)(ISession *pThis, PRUnichar * *name);
20248     nsresult (*SetName)(ISession *pThis, PRUnichar * name);
20249 
20250     nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
20251 
20252     nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
20253 
20254     nsresult (*GetInternalAndReservedAttribute1ISession)(ISession *pThis, PRUint32 *reserved);
20255 
20256     nsresult (*GetInternalAndReservedAttribute2ISession)(ISession *pThis, PRUint32 *reserved);
20257 
20258     nsresult (*GetInternalAndReservedAttribute3ISession)(ISession *pThis, PRUint32 *reserved);
20259 
20260     nsresult (*GetInternalAndReservedAttribute4ISession)(ISession *pThis, PRUint32 *reserved);
20261 
20262     nsresult (*GetInternalAndReservedAttribute5ISession)(ISession *pThis, PRUint32 *reserved);
20263 
20264     nsresult (*GetInternalAndReservedAttribute6ISession)(ISession *pThis, PRUint32 *reserved);
20265 
20266     nsresult (*GetInternalAndReservedAttribute7ISession)(ISession *pThis, PRUint32 *reserved);
20267 
20268     nsresult (*GetInternalAndReservedAttribute8ISession)(ISession *pThis, PRUint32 *reserved);
20269 
20270     nsresult (*UnlockMachine)(ISession *pThis );
20271 
20272     nsresult (*InternalAndReservedMethod1ISession)(ISession *pThis);
20273 
20274     nsresult (*InternalAndReservedMethod2ISession)(ISession *pThis);
20275 
20276     nsresult (*InternalAndReservedMethod3ISession)(ISession *pThis);
20277 
20278     nsresult (*InternalAndReservedMethod4ISession)(ISession *pThis);
20279 
20280 };
20281 #    define ISession_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20282 #    define ISession_AddRef(p) ((p)->lpVtbl->AddRef(p))
20283 #    define ISession_Release(p) ((p)->lpVtbl->Release(p))
20284 #    define ISession_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
20285 #    define ISession_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
20286 #    define ISession_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20287 #    define ISession_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20288 #    define ISession_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
20289 #    define ISession_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
20290 #    define ISession_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
20291 #    define ISession_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
20292 #    define ISession_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
20293 #    define ISession_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
20294 #    define ISession_get_Console(p, aConsole) ((p)->lpVtbl->GetConsole(p, aConsole))
20295 #    define ISession_GetConsole(p, aConsole) ((p)->lpVtbl->GetConsole(p, aConsole))
20296 #    define ISession_UnlockMachine(p) ((p)->lpVtbl->UnlockMachine(p))
20297 #   endif /* VBOX_WITH_GLUE */
20298 
20299 interface ISession
20300 {
20301 #   ifndef VBOX_WITH_GLUE
20302     struct ISession_vtbl *vtbl;
20303 #   else /* VBOX_WITH_GLUE */
20304     CONST_VTBL struct ISessionVtbl *lpVtbl;
20305 #   endif /* VBOX_WITH_GLUE */
20306 };
20307 /* End of struct ISession declaration */
20308 
20309 
20310 /* Start of struct IStorageController declaration */
20311 #   define ISTORAGECONTROLLER_IID_STR "ddca7247-bf98-47fb-ab2f-b5177533f493"
20312 #   define ISTORAGECONTROLLER_IID { \
20313     0xddca7247, 0xbf98, 0x47fb, \
20314     { 0xab, 0x2f, 0xb5, 0x17, 0x75, 0x33, 0xf4, 0x93 } \
20315 }
20316 /* COM compatibility */
20317 VBOX_EXTERN_CONST(nsIID, IID_IStorageController);
20318 #   ifndef VBOX_WITH_GLUE
20319 struct IStorageController_vtbl
20320 {
20321     struct nsISupports_vtbl nsisupports;
20322 
20323     nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
20324     nsresult (*SetName)(IStorageController *pThis, PRUnichar * name);
20325 
20326     nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
20327 
20328     nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
20329 
20330     nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
20331 
20332     nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
20333     nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
20334 
20335     nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
20336     nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
20337 
20338     nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
20339 
20340     nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
20341     nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
20342 
20343     nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
20344     nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
20345 
20346     nsresult (*GetBootable)(IStorageController *pThis, PRBool *bootable);
20347 
20348     nsresult (*GetInternalAndReservedAttribute1IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20349 
20350     nsresult (*GetInternalAndReservedAttribute2IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20351 
20352     nsresult (*GetInternalAndReservedAttribute3IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20353 
20354     nsresult (*GetInternalAndReservedAttribute4IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20355 
20356     nsresult (*GetInternalAndReservedAttribute5IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20357 
20358     nsresult (*GetInternalAndReservedAttribute6IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20359 
20360     nsresult (*GetInternalAndReservedAttribute7IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20361 
20362     nsresult (*GetInternalAndReservedAttribute8IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20363 
20364     nsresult (*InternalAndReservedMethod1IStorageController)(IStorageController *pThis);
20365 
20366     nsresult (*InternalAndReservedMethod2IStorageController)(IStorageController *pThis);
20367 
20368     nsresult (*InternalAndReservedMethod3IStorageController)(IStorageController *pThis);
20369 
20370     nsresult (*InternalAndReservedMethod4IStorageController)(IStorageController *pThis);
20371 
20372 };
20373 #   else /* VBOX_WITH_GLUE */
20374 struct IStorageControllerVtbl
20375 {
20376     nsresult (*QueryInterface)(IStorageController *pThis, const nsID *iid, void **resultp);
20377     nsrefcnt (*AddRef)(IStorageController *pThis);
20378     nsrefcnt (*Release)(IStorageController *pThis);
20379     nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
20380     nsresult (*SetName)(IStorageController *pThis, PRUnichar * name);
20381 
20382     nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
20383 
20384     nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
20385 
20386     nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
20387 
20388     nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
20389     nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
20390 
20391     nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
20392     nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
20393 
20394     nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
20395 
20396     nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
20397     nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
20398 
20399     nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
20400     nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
20401 
20402     nsresult (*GetBootable)(IStorageController *pThis, PRBool *bootable);
20403 
20404     nsresult (*GetInternalAndReservedAttribute1IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20405 
20406     nsresult (*GetInternalAndReservedAttribute2IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20407 
20408     nsresult (*GetInternalAndReservedAttribute3IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20409 
20410     nsresult (*GetInternalAndReservedAttribute4IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20411 
20412     nsresult (*GetInternalAndReservedAttribute5IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20413 
20414     nsresult (*GetInternalAndReservedAttribute6IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20415 
20416     nsresult (*GetInternalAndReservedAttribute7IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20417 
20418     nsresult (*GetInternalAndReservedAttribute8IStorageController)(IStorageController *pThis, PRUint32 *reserved);
20419 
20420     nsresult (*InternalAndReservedMethod1IStorageController)(IStorageController *pThis);
20421 
20422     nsresult (*InternalAndReservedMethod2IStorageController)(IStorageController *pThis);
20423 
20424     nsresult (*InternalAndReservedMethod3IStorageController)(IStorageController *pThis);
20425 
20426     nsresult (*InternalAndReservedMethod4IStorageController)(IStorageController *pThis);
20427 
20428 };
20429 #    define IStorageController_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20430 #    define IStorageController_AddRef(p) ((p)->lpVtbl->AddRef(p))
20431 #    define IStorageController_Release(p) ((p)->lpVtbl->Release(p))
20432 #    define IStorageController_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
20433 #    define IStorageController_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
20434 #    define IStorageController_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
20435 #    define IStorageController_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
20436 #    define IStorageController_get_MaxDevicesPerPortCount(p, aMaxDevicesPerPortCount) ((p)->lpVtbl->GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount))
20437 #    define IStorageController_GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount) ((p)->lpVtbl->GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount))
20438 #    define IStorageController_get_MinPortCount(p, aMinPortCount) ((p)->lpVtbl->GetMinPortCount(p, aMinPortCount))
20439 #    define IStorageController_GetMinPortCount(p, aMinPortCount) ((p)->lpVtbl->GetMinPortCount(p, aMinPortCount))
20440 #    define IStorageController_get_MaxPortCount(p, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCount(p, aMaxPortCount))
20441 #    define IStorageController_GetMaxPortCount(p, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCount(p, aMaxPortCount))
20442 #    define IStorageController_get_Instance(p, aInstance) ((p)->lpVtbl->GetInstance(p, aInstance))
20443 #    define IStorageController_GetInstance(p, aInstance) ((p)->lpVtbl->GetInstance(p, aInstance))
20444 #    define IStorageController_put_Instance(p, aInstance) ((p)->lpVtbl->SetInstance(p, aInstance))
20445 #    define IStorageController_SetInstance(p, aInstance) ((p)->lpVtbl->SetInstance(p, aInstance))
20446 #    define IStorageController_get_PortCount(p, aPortCount) ((p)->lpVtbl->GetPortCount(p, aPortCount))
20447 #    define IStorageController_GetPortCount(p, aPortCount) ((p)->lpVtbl->GetPortCount(p, aPortCount))
20448 #    define IStorageController_put_PortCount(p, aPortCount) ((p)->lpVtbl->SetPortCount(p, aPortCount))
20449 #    define IStorageController_SetPortCount(p, aPortCount) ((p)->lpVtbl->SetPortCount(p, aPortCount))
20450 #    define IStorageController_get_Bus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
20451 #    define IStorageController_GetBus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
20452 #    define IStorageController_get_ControllerType(p, aControllerType) ((p)->lpVtbl->GetControllerType(p, aControllerType))
20453 #    define IStorageController_GetControllerType(p, aControllerType) ((p)->lpVtbl->GetControllerType(p, aControllerType))
20454 #    define IStorageController_put_ControllerType(p, aControllerType) ((p)->lpVtbl->SetControllerType(p, aControllerType))
20455 #    define IStorageController_SetControllerType(p, aControllerType) ((p)->lpVtbl->SetControllerType(p, aControllerType))
20456 #    define IStorageController_get_UseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->GetUseHostIOCache(p, aUseHostIOCache))
20457 #    define IStorageController_GetUseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->GetUseHostIOCache(p, aUseHostIOCache))
20458 #    define IStorageController_put_UseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->SetUseHostIOCache(p, aUseHostIOCache))
20459 #    define IStorageController_SetUseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->SetUseHostIOCache(p, aUseHostIOCache))
20460 #    define IStorageController_get_Bootable(p, aBootable) ((p)->lpVtbl->GetBootable(p, aBootable))
20461 #    define IStorageController_GetBootable(p, aBootable) ((p)->lpVtbl->GetBootable(p, aBootable))
20462 #   endif /* VBOX_WITH_GLUE */
20463 
20464 interface IStorageController
20465 {
20466 #   ifndef VBOX_WITH_GLUE
20467     struct IStorageController_vtbl *vtbl;
20468 #   else /* VBOX_WITH_GLUE */
20469     CONST_VTBL struct IStorageControllerVtbl *lpVtbl;
20470 #   endif /* VBOX_WITH_GLUE */
20471 };
20472 /* End of struct IStorageController declaration */
20473 
20474 
20475 /* Start of struct IPerformanceMetric declaration */
20476 #   define IPERFORMANCEMETRIC_IID_STR "81314d14-fd1c-411a-95c5-e9bb1414e632"
20477 #   define IPERFORMANCEMETRIC_IID { \
20478     0x81314d14, 0xfd1c, 0x411a, \
20479     { 0x95, 0xc5, 0xe9, 0xbb, 0x14, 0x14, 0xe6, 0x32 } \
20480 }
20481 /* COM compatibility */
20482 VBOX_EXTERN_CONST(nsIID, IID_IPerformanceMetric);
20483 #   ifndef VBOX_WITH_GLUE
20484 struct IPerformanceMetric_vtbl
20485 {
20486     struct nsISupports_vtbl nsisupports;
20487 
20488     nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
20489 
20490     nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
20491 
20492     nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
20493 
20494     nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
20495 
20496     nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
20497 
20498     nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
20499 
20500     nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
20501 
20502     nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
20503 
20504     nsresult (*GetInternalAndReservedAttribute1IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20505 
20506     nsresult (*GetInternalAndReservedAttribute2IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20507 
20508     nsresult (*GetInternalAndReservedAttribute3IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20509 
20510     nsresult (*GetInternalAndReservedAttribute4IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20511 
20512     nsresult (*GetInternalAndReservedAttribute5IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20513 
20514     nsresult (*GetInternalAndReservedAttribute6IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20515 
20516     nsresult (*GetInternalAndReservedAttribute7IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20517 
20518     nsresult (*GetInternalAndReservedAttribute8IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20519 
20520 };
20521 #   else /* VBOX_WITH_GLUE */
20522 struct IPerformanceMetricVtbl
20523 {
20524     nsresult (*QueryInterface)(IPerformanceMetric *pThis, const nsID *iid, void **resultp);
20525     nsrefcnt (*AddRef)(IPerformanceMetric *pThis);
20526     nsrefcnt (*Release)(IPerformanceMetric *pThis);
20527     nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
20528 
20529     nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
20530 
20531     nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
20532 
20533     nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
20534 
20535     nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
20536 
20537     nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
20538 
20539     nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
20540 
20541     nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
20542 
20543     nsresult (*GetInternalAndReservedAttribute1IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20544 
20545     nsresult (*GetInternalAndReservedAttribute2IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20546 
20547     nsresult (*GetInternalAndReservedAttribute3IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20548 
20549     nsresult (*GetInternalAndReservedAttribute4IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20550 
20551     nsresult (*GetInternalAndReservedAttribute5IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20552 
20553     nsresult (*GetInternalAndReservedAttribute6IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20554 
20555     nsresult (*GetInternalAndReservedAttribute7IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20556 
20557     nsresult (*GetInternalAndReservedAttribute8IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
20558 
20559 };
20560 #    define IPerformanceMetric_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20561 #    define IPerformanceMetric_AddRef(p) ((p)->lpVtbl->AddRef(p))
20562 #    define IPerformanceMetric_Release(p) ((p)->lpVtbl->Release(p))
20563 #    define IPerformanceMetric_get_MetricName(p, aMetricName) ((p)->lpVtbl->GetMetricName(p, aMetricName))
20564 #    define IPerformanceMetric_GetMetricName(p, aMetricName) ((p)->lpVtbl->GetMetricName(p, aMetricName))
20565 #    define IPerformanceMetric_get_Object(p, aObject) ((p)->lpVtbl->GetObject(p, aObject))
20566 #    define IPerformanceMetric_GetObject(p, aObject) ((p)->lpVtbl->GetObject(p, aObject))
20567 #    define IPerformanceMetric_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
20568 #    define IPerformanceMetric_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
20569 #    define IPerformanceMetric_get_Period(p, aPeriod) ((p)->lpVtbl->GetPeriod(p, aPeriod))
20570 #    define IPerformanceMetric_GetPeriod(p, aPeriod) ((p)->lpVtbl->GetPeriod(p, aPeriod))
20571 #    define IPerformanceMetric_get_Count(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
20572 #    define IPerformanceMetric_GetCount(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
20573 #    define IPerformanceMetric_get_Unit(p, aUnit) ((p)->lpVtbl->GetUnit(p, aUnit))
20574 #    define IPerformanceMetric_GetUnit(p, aUnit) ((p)->lpVtbl->GetUnit(p, aUnit))
20575 #    define IPerformanceMetric_get_MinimumValue(p, aMinimumValue) ((p)->lpVtbl->GetMinimumValue(p, aMinimumValue))
20576 #    define IPerformanceMetric_GetMinimumValue(p, aMinimumValue) ((p)->lpVtbl->GetMinimumValue(p, aMinimumValue))
20577 #    define IPerformanceMetric_get_MaximumValue(p, aMaximumValue) ((p)->lpVtbl->GetMaximumValue(p, aMaximumValue))
20578 #    define IPerformanceMetric_GetMaximumValue(p, aMaximumValue) ((p)->lpVtbl->GetMaximumValue(p, aMaximumValue))
20579 #   endif /* VBOX_WITH_GLUE */
20580 
20581 interface IPerformanceMetric
20582 {
20583 #   ifndef VBOX_WITH_GLUE
20584     struct IPerformanceMetric_vtbl *vtbl;
20585 #   else /* VBOX_WITH_GLUE */
20586     CONST_VTBL struct IPerformanceMetricVtbl *lpVtbl;
20587 #   endif /* VBOX_WITH_GLUE */
20588 };
20589 /* End of struct IPerformanceMetric declaration */
20590 
20591 
20592 /* Start of struct IPerformanceCollector declaration */
20593 #   define IPERFORMANCECOLLECTOR_IID_STR "b14290ad-cd54-400c-b858-797bcb82570e"
20594 #   define IPERFORMANCECOLLECTOR_IID { \
20595     0xb14290ad, 0xcd54, 0x400c, \
20596     { 0xb8, 0x58, 0x79, 0x7b, 0xcb, 0x82, 0x57, 0x0e } \
20597 }
20598 /* COM compatibility */
20599 VBOX_EXTERN_CONST(nsIID, IID_IPerformanceCollector);
20600 #   ifndef VBOX_WITH_GLUE
20601 struct IPerformanceCollector_vtbl
20602 {
20603     struct nsISupports_vtbl nsisupports;
20604 
20605     nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
20606 
20607     nsresult (*GetInternalAndReservedAttribute1IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20608 
20609     nsresult (*GetInternalAndReservedAttribute2IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20610 
20611     nsresult (*GetInternalAndReservedAttribute3IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20612 
20613     nsresult (*GetInternalAndReservedAttribute4IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20614 
20615     nsresult (*GetInternalAndReservedAttribute5IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20616 
20617     nsresult (*GetInternalAndReservedAttribute6IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20618 
20619     nsresult (*GetInternalAndReservedAttribute7IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20620 
20621     nsresult (*GetInternalAndReservedAttribute8IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20622 
20623     nsresult (*GetMetrics)(
20624         IPerformanceCollector *pThis,
20625         PRUint32 metricNamesSize,
20626         PRUnichar ** metricNames,
20627         PRUint32 objectsSize,
20628         nsISupports ** objects,
20629         PRUint32 *metricsSize,
20630         IPerformanceMetric *** metrics
20631     );
20632 
20633     nsresult (*SetupMetrics)(
20634         IPerformanceCollector *pThis,
20635         PRUint32 metricNamesSize,
20636         PRUnichar ** metricNames,
20637         PRUint32 objectsSize,
20638         nsISupports ** objects,
20639         PRUint32 period,
20640         PRUint32 count,
20641         PRUint32 *affectedMetricsSize,
20642         IPerformanceMetric *** affectedMetrics
20643     );
20644 
20645     nsresult (*EnableMetrics)(
20646         IPerformanceCollector *pThis,
20647         PRUint32 metricNamesSize,
20648         PRUnichar ** metricNames,
20649         PRUint32 objectsSize,
20650         nsISupports ** objects,
20651         PRUint32 *affectedMetricsSize,
20652         IPerformanceMetric *** affectedMetrics
20653     );
20654 
20655     nsresult (*DisableMetrics)(
20656         IPerformanceCollector *pThis,
20657         PRUint32 metricNamesSize,
20658         PRUnichar ** metricNames,
20659         PRUint32 objectsSize,
20660         nsISupports ** objects,
20661         PRUint32 *affectedMetricsSize,
20662         IPerformanceMetric *** affectedMetrics
20663     );
20664 
20665     nsresult (*QueryMetricsData)(
20666         IPerformanceCollector *pThis,
20667         PRUint32 metricNamesSize,
20668         PRUnichar ** metricNames,
20669         PRUint32 objectsSize,
20670         nsISupports ** objects,
20671         PRUint32 *returnMetricNamesSize,
20672         PRUnichar *** returnMetricNames,
20673         PRUint32 *returnObjectsSize,
20674         nsISupports *** returnObjects,
20675         PRUint32 *returnUnitsSize,
20676         PRUnichar *** returnUnits,
20677         PRUint32 *returnScalesSize,
20678         PRUint32** returnScales,
20679         PRUint32 *returnSequenceNumbersSize,
20680         PRUint32** returnSequenceNumbers,
20681         PRUint32 *returnDataIndicesSize,
20682         PRUint32** returnDataIndices,
20683         PRUint32 *returnDataLengthsSize,
20684         PRUint32** returnDataLengths,
20685         PRUint32 *returnDataSize,
20686         PRInt32** returnData
20687     );
20688 
20689     nsresult (*InternalAndReservedMethod1IPerformanceCollector)(IPerformanceCollector *pThis);
20690 
20691     nsresult (*InternalAndReservedMethod2IPerformanceCollector)(IPerformanceCollector *pThis);
20692 
20693     nsresult (*InternalAndReservedMethod3IPerformanceCollector)(IPerformanceCollector *pThis);
20694 
20695     nsresult (*InternalAndReservedMethod4IPerformanceCollector)(IPerformanceCollector *pThis);
20696 
20697 };
20698 #   else /* VBOX_WITH_GLUE */
20699 struct IPerformanceCollectorVtbl
20700 {
20701     nsresult (*QueryInterface)(IPerformanceCollector *pThis, const nsID *iid, void **resultp);
20702     nsrefcnt (*AddRef)(IPerformanceCollector *pThis);
20703     nsrefcnt (*Release)(IPerformanceCollector *pThis);
20704     nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
20705 
20706     nsresult (*GetInternalAndReservedAttribute1IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20707 
20708     nsresult (*GetInternalAndReservedAttribute2IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20709 
20710     nsresult (*GetInternalAndReservedAttribute3IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20711 
20712     nsresult (*GetInternalAndReservedAttribute4IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20713 
20714     nsresult (*GetInternalAndReservedAttribute5IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20715 
20716     nsresult (*GetInternalAndReservedAttribute6IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20717 
20718     nsresult (*GetInternalAndReservedAttribute7IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20719 
20720     nsresult (*GetInternalAndReservedAttribute8IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
20721 
20722     nsresult (*GetMetrics)(
20723         IPerformanceCollector *pThis,
20724         PRUint32 metricNamesSize,
20725         PRUnichar ** metricNames,
20726         PRUint32 objectsSize,
20727         nsISupports ** objects,
20728         PRUint32 *metricsSize,
20729         IPerformanceMetric *** metrics
20730     );
20731 
20732     nsresult (*SetupMetrics)(
20733         IPerformanceCollector *pThis,
20734         PRUint32 metricNamesSize,
20735         PRUnichar ** metricNames,
20736         PRUint32 objectsSize,
20737         nsISupports ** objects,
20738         PRUint32 period,
20739         PRUint32 count,
20740         PRUint32 *affectedMetricsSize,
20741         IPerformanceMetric *** affectedMetrics
20742     );
20743 
20744     nsresult (*EnableMetrics)(
20745         IPerformanceCollector *pThis,
20746         PRUint32 metricNamesSize,
20747         PRUnichar ** metricNames,
20748         PRUint32 objectsSize,
20749         nsISupports ** objects,
20750         PRUint32 *affectedMetricsSize,
20751         IPerformanceMetric *** affectedMetrics
20752     );
20753 
20754     nsresult (*DisableMetrics)(
20755         IPerformanceCollector *pThis,
20756         PRUint32 metricNamesSize,
20757         PRUnichar ** metricNames,
20758         PRUint32 objectsSize,
20759         nsISupports ** objects,
20760         PRUint32 *affectedMetricsSize,
20761         IPerformanceMetric *** affectedMetrics
20762     );
20763 
20764     nsresult (*QueryMetricsData)(
20765         IPerformanceCollector *pThis,
20766         PRUint32 metricNamesSize,
20767         PRUnichar ** metricNames,
20768         PRUint32 objectsSize,
20769         nsISupports ** objects,
20770         PRUint32 *returnMetricNamesSize,
20771         PRUnichar *** returnMetricNames,
20772         PRUint32 *returnObjectsSize,
20773         nsISupports *** returnObjects,
20774         PRUint32 *returnUnitsSize,
20775         PRUnichar *** returnUnits,
20776         PRUint32 *returnScalesSize,
20777         PRUint32** returnScales,
20778         PRUint32 *returnSequenceNumbersSize,
20779         PRUint32** returnSequenceNumbers,
20780         PRUint32 *returnDataIndicesSize,
20781         PRUint32** returnDataIndices,
20782         PRUint32 *returnDataLengthsSize,
20783         PRUint32** returnDataLengths,
20784         PRUint32 *returnDataSize,
20785         PRInt32** returnData
20786     );
20787 
20788     nsresult (*InternalAndReservedMethod1IPerformanceCollector)(IPerformanceCollector *pThis);
20789 
20790     nsresult (*InternalAndReservedMethod2IPerformanceCollector)(IPerformanceCollector *pThis);
20791 
20792     nsresult (*InternalAndReservedMethod3IPerformanceCollector)(IPerformanceCollector *pThis);
20793 
20794     nsresult (*InternalAndReservedMethod4IPerformanceCollector)(IPerformanceCollector *pThis);
20795 
20796 };
20797 #    define IPerformanceCollector_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20798 #    define IPerformanceCollector_AddRef(p) ((p)->lpVtbl->AddRef(p))
20799 #    define IPerformanceCollector_Release(p) ((p)->lpVtbl->Release(p))
20800 #    define IPerformanceCollector_get_MetricNames(p, aMetricNames) ((p)->lpVtbl->GetMetricNames(p, aMetricNames))
20801 #    define IPerformanceCollector_GetMetricNames(p, aMetricNames) ((p)->lpVtbl->GetMetricNames(p, aMetricNames))
20802 #    define IPerformanceCollector_GetMetrics(p, aMetricNames, aObjects, aMetrics) ((p)->lpVtbl->GetMetrics(p, aMetricNames, aObjects, aMetrics))
20803 #    define IPerformanceCollector_SetupMetrics(p, aMetricNames, aObjects, aPeriod, aCount, aAffectedMetrics) ((p)->lpVtbl->SetupMetrics(p, aMetricNames, aObjects, aPeriod, aCount, aAffectedMetrics))
20804 #    define IPerformanceCollector_EnableMetrics(p, aMetricNames, aObjects, aAffectedMetrics) ((p)->lpVtbl->EnableMetrics(p, aMetricNames, aObjects, aAffectedMetrics))
20805 #    define IPerformanceCollector_DisableMetrics(p, aMetricNames, aObjects, aAffectedMetrics) ((p)->lpVtbl->DisableMetrics(p, aMetricNames, aObjects, aAffectedMetrics))
20806 #    define IPerformanceCollector_QueryMetricsData(p, aMetricNames, aObjects, aReturnMetricNames, aReturnObjects, aReturnUnits, aReturnScales, aReturnSequenceNumbers, aReturnDataIndices, aReturnDataLengths, aReturnData) ((p)->lpVtbl->QueryMetricsData(p, aMetricNames, aObjects, aReturnMetricNames, aReturnObjects, aReturnUnits, aReturnScales, aReturnSequenceNumbers, aReturnDataIndices, aReturnDataLengths, aReturnData))
20807 #   endif /* VBOX_WITH_GLUE */
20808 
20809 interface IPerformanceCollector
20810 {
20811 #   ifndef VBOX_WITH_GLUE
20812     struct IPerformanceCollector_vtbl *vtbl;
20813 #   else /* VBOX_WITH_GLUE */
20814     CONST_VTBL struct IPerformanceCollectorVtbl *lpVtbl;
20815 #   endif /* VBOX_WITH_GLUE */
20816 };
20817 /* End of struct IPerformanceCollector declaration */
20818 
20819 
20820 /* Start of struct INATEngine declaration */
20821 #   define INATENGINE_IID_STR "8faef61e-6e15-4f71-a6a5-94e707fafbcc"
20822 #   define INATENGINE_IID { \
20823     0x8faef61e, 0x6e15, 0x4f71, \
20824     { 0xa6, 0xa5, 0x94, 0xe7, 0x07, 0xfa, 0xfb, 0xcc } \
20825 }
20826 /* COM compatibility */
20827 VBOX_EXTERN_CONST(nsIID, IID_INATEngine);
20828 #   ifndef VBOX_WITH_GLUE
20829 struct INATEngine_vtbl
20830 {
20831     struct nsISupports_vtbl nsisupports;
20832 
20833     nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
20834     nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
20835 
20836     nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
20837     nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
20838 
20839     nsresult (*GetTFTPPrefix)(INATEngine *pThis, PRUnichar * *TFTPPrefix);
20840     nsresult (*SetTFTPPrefix)(INATEngine *pThis, PRUnichar * TFTPPrefix);
20841 
20842     nsresult (*GetTFTPBootFile)(INATEngine *pThis, PRUnichar * *TFTPBootFile);
20843     nsresult (*SetTFTPBootFile)(INATEngine *pThis, PRUnichar * TFTPBootFile);
20844 
20845     nsresult (*GetTFTPNextServer)(INATEngine *pThis, PRUnichar * *TFTPNextServer);
20846     nsresult (*SetTFTPNextServer)(INATEngine *pThis, PRUnichar * TFTPNextServer);
20847 
20848     nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
20849     nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
20850 
20851     nsresult (*GetDNSPassDomain)(INATEngine *pThis, PRBool *DNSPassDomain);
20852     nsresult (*SetDNSPassDomain)(INATEngine *pThis, PRBool DNSPassDomain);
20853 
20854     nsresult (*GetDNSProxy)(INATEngine *pThis, PRBool *DNSProxy);
20855     nsresult (*SetDNSProxy)(INATEngine *pThis, PRBool DNSProxy);
20856 
20857     nsresult (*GetDNSUseHostResolver)(INATEngine *pThis, PRBool *DNSUseHostResolver);
20858     nsresult (*SetDNSUseHostResolver)(INATEngine *pThis, PRBool DNSUseHostResolver);
20859 
20860     nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
20861 
20862     nsresult (*GetInternalAndReservedAttribute1INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20863 
20864     nsresult (*GetInternalAndReservedAttribute2INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20865 
20866     nsresult (*GetInternalAndReservedAttribute3INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20867 
20868     nsresult (*GetInternalAndReservedAttribute4INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20869 
20870     nsresult (*GetInternalAndReservedAttribute5INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20871 
20872     nsresult (*GetInternalAndReservedAttribute6INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20873 
20874     nsresult (*GetInternalAndReservedAttribute7INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20875 
20876     nsresult (*GetInternalAndReservedAttribute8INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20877 
20878     nsresult (*SetNetworkSettings)(
20879         INATEngine *pThis,
20880         PRUint32 mtu,
20881         PRUint32 sockSnd,
20882         PRUint32 sockRcv,
20883         PRUint32 TcpWndSnd,
20884         PRUint32 TcpWndRcv
20885     );
20886 
20887     nsresult (*GetNetworkSettings)(
20888         INATEngine *pThis,
20889         PRUint32 * mtu,
20890         PRUint32 * sockSnd,
20891         PRUint32 * sockRcv,
20892         PRUint32 * TcpWndSnd,
20893         PRUint32 * TcpWndRcv
20894     );
20895 
20896     nsresult (*AddRedirect)(
20897         INATEngine *pThis,
20898         PRUnichar * name,
20899         PRUint32 proto,
20900         PRUnichar * hostIP,
20901         PRUint16 hostPort,
20902         PRUnichar * guestIP,
20903         PRUint16 guestPort
20904     );
20905 
20906     nsresult (*RemoveRedirect)(
20907         INATEngine *pThis,
20908         PRUnichar * name
20909     );
20910 
20911     nsresult (*InternalAndReservedMethod1INATEngine)(INATEngine *pThis);
20912 
20913     nsresult (*InternalAndReservedMethod2INATEngine)(INATEngine *pThis);
20914 
20915     nsresult (*InternalAndReservedMethod3INATEngine)(INATEngine *pThis);
20916 
20917     nsresult (*InternalAndReservedMethod4INATEngine)(INATEngine *pThis);
20918 
20919 };
20920 #   else /* VBOX_WITH_GLUE */
20921 struct INATEngineVtbl
20922 {
20923     nsresult (*QueryInterface)(INATEngine *pThis, const nsID *iid, void **resultp);
20924     nsrefcnt (*AddRef)(INATEngine *pThis);
20925     nsrefcnt (*Release)(INATEngine *pThis);
20926     nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
20927     nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
20928 
20929     nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
20930     nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
20931 
20932     nsresult (*GetTFTPPrefix)(INATEngine *pThis, PRUnichar * *TFTPPrefix);
20933     nsresult (*SetTFTPPrefix)(INATEngine *pThis, PRUnichar * TFTPPrefix);
20934 
20935     nsresult (*GetTFTPBootFile)(INATEngine *pThis, PRUnichar * *TFTPBootFile);
20936     nsresult (*SetTFTPBootFile)(INATEngine *pThis, PRUnichar * TFTPBootFile);
20937 
20938     nsresult (*GetTFTPNextServer)(INATEngine *pThis, PRUnichar * *TFTPNextServer);
20939     nsresult (*SetTFTPNextServer)(INATEngine *pThis, PRUnichar * TFTPNextServer);
20940 
20941     nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
20942     nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
20943 
20944     nsresult (*GetDNSPassDomain)(INATEngine *pThis, PRBool *DNSPassDomain);
20945     nsresult (*SetDNSPassDomain)(INATEngine *pThis, PRBool DNSPassDomain);
20946 
20947     nsresult (*GetDNSProxy)(INATEngine *pThis, PRBool *DNSProxy);
20948     nsresult (*SetDNSProxy)(INATEngine *pThis, PRBool DNSProxy);
20949 
20950     nsresult (*GetDNSUseHostResolver)(INATEngine *pThis, PRBool *DNSUseHostResolver);
20951     nsresult (*SetDNSUseHostResolver)(INATEngine *pThis, PRBool DNSUseHostResolver);
20952 
20953     nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
20954 
20955     nsresult (*GetInternalAndReservedAttribute1INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20956 
20957     nsresult (*GetInternalAndReservedAttribute2INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20958 
20959     nsresult (*GetInternalAndReservedAttribute3INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20960 
20961     nsresult (*GetInternalAndReservedAttribute4INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20962 
20963     nsresult (*GetInternalAndReservedAttribute5INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20964 
20965     nsresult (*GetInternalAndReservedAttribute6INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20966 
20967     nsresult (*GetInternalAndReservedAttribute7INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20968 
20969     nsresult (*GetInternalAndReservedAttribute8INATEngine)(INATEngine *pThis, PRUint32 *reserved);
20970 
20971     nsresult (*SetNetworkSettings)(
20972         INATEngine *pThis,
20973         PRUint32 mtu,
20974         PRUint32 sockSnd,
20975         PRUint32 sockRcv,
20976         PRUint32 TcpWndSnd,
20977         PRUint32 TcpWndRcv
20978     );
20979 
20980     nsresult (*GetNetworkSettings)(
20981         INATEngine *pThis,
20982         PRUint32 * mtu,
20983         PRUint32 * sockSnd,
20984         PRUint32 * sockRcv,
20985         PRUint32 * TcpWndSnd,
20986         PRUint32 * TcpWndRcv
20987     );
20988 
20989     nsresult (*AddRedirect)(
20990         INATEngine *pThis,
20991         PRUnichar * name,
20992         PRUint32 proto,
20993         PRUnichar * hostIP,
20994         PRUint16 hostPort,
20995         PRUnichar * guestIP,
20996         PRUint16 guestPort
20997     );
20998 
20999     nsresult (*RemoveRedirect)(
21000         INATEngine *pThis,
21001         PRUnichar * name
21002     );
21003 
21004     nsresult (*InternalAndReservedMethod1INATEngine)(INATEngine *pThis);
21005 
21006     nsresult (*InternalAndReservedMethod2INATEngine)(INATEngine *pThis);
21007 
21008     nsresult (*InternalAndReservedMethod3INATEngine)(INATEngine *pThis);
21009 
21010     nsresult (*InternalAndReservedMethod4INATEngine)(INATEngine *pThis);
21011 
21012 };
21013 #    define INATEngine_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21014 #    define INATEngine_AddRef(p) ((p)->lpVtbl->AddRef(p))
21015 #    define INATEngine_Release(p) ((p)->lpVtbl->Release(p))
21016 #    define INATEngine_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
21017 #    define INATEngine_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
21018 #    define INATEngine_put_Network(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
21019 #    define INATEngine_SetNetwork(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
21020 #    define INATEngine_get_HostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
21021 #    define INATEngine_GetHostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
21022 #    define INATEngine_put_HostIP(p, aHostIP) ((p)->lpVtbl->SetHostIP(p, aHostIP))
21023 #    define INATEngine_SetHostIP(p, aHostIP) ((p)->lpVtbl->SetHostIP(p, aHostIP))
21024 #    define INATEngine_get_TFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->GetTFTPPrefix(p, aTFTPPrefix))
21025 #    define INATEngine_GetTFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->GetTFTPPrefix(p, aTFTPPrefix))
21026 #    define INATEngine_put_TFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->SetTFTPPrefix(p, aTFTPPrefix))
21027 #    define INATEngine_SetTFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->SetTFTPPrefix(p, aTFTPPrefix))
21028 #    define INATEngine_get_TFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->GetTFTPBootFile(p, aTFTPBootFile))
21029 #    define INATEngine_GetTFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->GetTFTPBootFile(p, aTFTPBootFile))
21030 #    define INATEngine_put_TFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->SetTFTPBootFile(p, aTFTPBootFile))
21031 #    define INATEngine_SetTFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->SetTFTPBootFile(p, aTFTPBootFile))
21032 #    define INATEngine_get_TFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->GetTFTPNextServer(p, aTFTPNextServer))
21033 #    define INATEngine_GetTFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->GetTFTPNextServer(p, aTFTPNextServer))
21034 #    define INATEngine_put_TFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->SetTFTPNextServer(p, aTFTPNextServer))
21035 #    define INATEngine_SetTFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->SetTFTPNextServer(p, aTFTPNextServer))
21036 #    define INATEngine_get_AliasMode(p, aAliasMode) ((p)->lpVtbl->GetAliasMode(p, aAliasMode))
21037 #    define INATEngine_GetAliasMode(p, aAliasMode) ((p)->lpVtbl->GetAliasMode(p, aAliasMode))
21038 #    define INATEngine_put_AliasMode(p, aAliasMode) ((p)->lpVtbl->SetAliasMode(p, aAliasMode))
21039 #    define INATEngine_SetAliasMode(p, aAliasMode) ((p)->lpVtbl->SetAliasMode(p, aAliasMode))
21040 #    define INATEngine_get_DNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->GetDNSPassDomain(p, aDNSPassDomain))
21041 #    define INATEngine_GetDNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->GetDNSPassDomain(p, aDNSPassDomain))
21042 #    define INATEngine_put_DNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->SetDNSPassDomain(p, aDNSPassDomain))
21043 #    define INATEngine_SetDNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->SetDNSPassDomain(p, aDNSPassDomain))
21044 #    define INATEngine_get_DNSProxy(p, aDNSProxy) ((p)->lpVtbl->GetDNSProxy(p, aDNSProxy))
21045 #    define INATEngine_GetDNSProxy(p, aDNSProxy) ((p)->lpVtbl->GetDNSProxy(p, aDNSProxy))
21046 #    define INATEngine_put_DNSProxy(p, aDNSProxy) ((p)->lpVtbl->SetDNSProxy(p, aDNSProxy))
21047 #    define INATEngine_SetDNSProxy(p, aDNSProxy) ((p)->lpVtbl->SetDNSProxy(p, aDNSProxy))
21048 #    define INATEngine_get_DNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->GetDNSUseHostResolver(p, aDNSUseHostResolver))
21049 #    define INATEngine_GetDNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->GetDNSUseHostResolver(p, aDNSUseHostResolver))
21050 #    define INATEngine_put_DNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->SetDNSUseHostResolver(p, aDNSUseHostResolver))
21051 #    define INATEngine_SetDNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->SetDNSUseHostResolver(p, aDNSUseHostResolver))
21052 #    define INATEngine_get_Redirects(p, aRedirects) ((p)->lpVtbl->GetRedirects(p, aRedirects))
21053 #    define INATEngine_GetRedirects(p, aRedirects) ((p)->lpVtbl->GetRedirects(p, aRedirects))
21054 #    define INATEngine_SetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv) ((p)->lpVtbl->SetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv))
21055 #    define INATEngine_GetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv) ((p)->lpVtbl->GetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv))
21056 #    define INATEngine_AddRedirect(p, aName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort) ((p)->lpVtbl->AddRedirect(p, aName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort))
21057 #    define INATEngine_RemoveRedirect(p, aName) ((p)->lpVtbl->RemoveRedirect(p, aName))
21058 #   endif /* VBOX_WITH_GLUE */
21059 
21060 interface INATEngine
21061 {
21062 #   ifndef VBOX_WITH_GLUE
21063     struct INATEngine_vtbl *vtbl;
21064 #   else /* VBOX_WITH_GLUE */
21065     CONST_VTBL struct INATEngineVtbl *lpVtbl;
21066 #   endif /* VBOX_WITH_GLUE */
21067 };
21068 /* End of struct INATEngine declaration */
21069 
21070 
21071 /* Start of struct IExtPackPlugIn declaration */
21072 #   define IEXTPACKPLUGIN_IID_STR "78861431-d545-44aa-8013-181b8c288554"
21073 #   define IEXTPACKPLUGIN_IID { \
21074     0x78861431, 0xd545, 0x44aa, \
21075     { 0x80, 0x13, 0x18, 0x1b, 0x8c, 0x28, 0x85, 0x54 } \
21076 }
21077 /* COM compatibility */
21078 VBOX_EXTERN_CONST(nsIID, IID_IExtPackPlugIn);
21079 #   ifndef VBOX_WITH_GLUE
21080 struct IExtPackPlugIn_vtbl
21081 {
21082     struct nsISupports_vtbl nsisupports;
21083 
21084     nsresult (*GetName)(IExtPackPlugIn *pThis, PRUnichar * *name);
21085 
21086     nsresult (*GetDescription)(IExtPackPlugIn *pThis, PRUnichar * *description);
21087 
21088     nsresult (*GetFrontend)(IExtPackPlugIn *pThis, PRUnichar * *frontend);
21089 
21090     nsresult (*GetModulePath)(IExtPackPlugIn *pThis, PRUnichar * *modulePath);
21091 
21092     nsresult (*GetInternalAndReservedAttribute1IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21093 
21094     nsresult (*GetInternalAndReservedAttribute2IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21095 
21096     nsresult (*GetInternalAndReservedAttribute3IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21097 
21098     nsresult (*GetInternalAndReservedAttribute4IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21099 
21100 };
21101 #   else /* VBOX_WITH_GLUE */
21102 struct IExtPackPlugInVtbl
21103 {
21104     nsresult (*QueryInterface)(IExtPackPlugIn *pThis, const nsID *iid, void **resultp);
21105     nsrefcnt (*AddRef)(IExtPackPlugIn *pThis);
21106     nsrefcnt (*Release)(IExtPackPlugIn *pThis);
21107     nsresult (*GetName)(IExtPackPlugIn *pThis, PRUnichar * *name);
21108 
21109     nsresult (*GetDescription)(IExtPackPlugIn *pThis, PRUnichar * *description);
21110 
21111     nsresult (*GetFrontend)(IExtPackPlugIn *pThis, PRUnichar * *frontend);
21112 
21113     nsresult (*GetModulePath)(IExtPackPlugIn *pThis, PRUnichar * *modulePath);
21114 
21115     nsresult (*GetInternalAndReservedAttribute1IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21116 
21117     nsresult (*GetInternalAndReservedAttribute2IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21118 
21119     nsresult (*GetInternalAndReservedAttribute3IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21120 
21121     nsresult (*GetInternalAndReservedAttribute4IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
21122 
21123 };
21124 #    define IExtPackPlugIn_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21125 #    define IExtPackPlugIn_AddRef(p) ((p)->lpVtbl->AddRef(p))
21126 #    define IExtPackPlugIn_Release(p) ((p)->lpVtbl->Release(p))
21127 #    define IExtPackPlugIn_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21128 #    define IExtPackPlugIn_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21129 #    define IExtPackPlugIn_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21130 #    define IExtPackPlugIn_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21131 #    define IExtPackPlugIn_get_Frontend(p, aFrontend) ((p)->lpVtbl->GetFrontend(p, aFrontend))
21132 #    define IExtPackPlugIn_GetFrontend(p, aFrontend) ((p)->lpVtbl->GetFrontend(p, aFrontend))
21133 #    define IExtPackPlugIn_get_ModulePath(p, aModulePath) ((p)->lpVtbl->GetModulePath(p, aModulePath))
21134 #    define IExtPackPlugIn_GetModulePath(p, aModulePath) ((p)->lpVtbl->GetModulePath(p, aModulePath))
21135 #   endif /* VBOX_WITH_GLUE */
21136 
21137 interface IExtPackPlugIn
21138 {
21139 #   ifndef VBOX_WITH_GLUE
21140     struct IExtPackPlugIn_vtbl *vtbl;
21141 #   else /* VBOX_WITH_GLUE */
21142     CONST_VTBL struct IExtPackPlugInVtbl *lpVtbl;
21143 #   endif /* VBOX_WITH_GLUE */
21144 };
21145 /* End of struct IExtPackPlugIn declaration */
21146 
21147 
21148 /* Start of struct IExtPackBase declaration */
21149 #   define IEXTPACKBASE_IID_STR "f25aca3d-0b79-4350-bdd9-a0376cd6e6e3"
21150 #   define IEXTPACKBASE_IID { \
21151     0xf25aca3d, 0x0b79, 0x4350, \
21152     { 0xbd, 0xd9, 0xa0, 0x37, 0x6c, 0xd6, 0xe6, 0xe3 } \
21153 }
21154 /* COM compatibility */
21155 VBOX_EXTERN_CONST(nsIID, IID_IExtPackBase);
21156 #   ifndef VBOX_WITH_GLUE
21157 struct IExtPackBase_vtbl
21158 {
21159     struct nsISupports_vtbl nsisupports;
21160 
21161     nsresult (*GetName)(IExtPackBase *pThis, PRUnichar * *name);
21162 
21163     nsresult (*GetDescription)(IExtPackBase *pThis, PRUnichar * *description);
21164 
21165     nsresult (*GetVersion)(IExtPackBase *pThis, PRUnichar * *version);
21166 
21167     nsresult (*GetRevision)(IExtPackBase *pThis, PRUint32 *revision);
21168 
21169     nsresult (*GetEdition)(IExtPackBase *pThis, PRUnichar * *edition);
21170 
21171     nsresult (*GetVRDEModule)(IExtPackBase *pThis, PRUnichar * *VRDEModule);
21172 
21173     nsresult (*GetPlugIns)(IExtPackBase *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
21174 
21175     nsresult (*GetUsable)(IExtPackBase *pThis, PRBool *usable);
21176 
21177     nsresult (*GetWhyUnusable)(IExtPackBase *pThis, PRUnichar * *whyUnusable);
21178 
21179     nsresult (*GetShowLicense)(IExtPackBase *pThis, PRBool *showLicense);
21180 
21181     nsresult (*GetLicense)(IExtPackBase *pThis, PRUnichar * *license);
21182 
21183     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21184 
21185     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21186 
21187     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21188 
21189     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21190 
21191     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21192 
21193     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21194 
21195     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21196 
21197     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21198 
21199     nsresult (*QueryLicense)(
21200         IExtPackBase *pThis,
21201         PRUnichar * preferredLocale,
21202         PRUnichar * preferredLanguage,
21203         PRUnichar * format,
21204         PRUnichar * * licenseText
21205     );
21206 
21207     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackBase *pThis);
21208 
21209     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPackBase *pThis);
21210 
21211     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPackBase *pThis);
21212 
21213     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPackBase *pThis);
21214 
21215 };
21216 #   else /* VBOX_WITH_GLUE */
21217 struct IExtPackBaseVtbl
21218 {
21219     nsresult (*QueryInterface)(IExtPackBase *pThis, const nsID *iid, void **resultp);
21220     nsrefcnt (*AddRef)(IExtPackBase *pThis);
21221     nsrefcnt (*Release)(IExtPackBase *pThis);
21222     nsresult (*GetName)(IExtPackBase *pThis, PRUnichar * *name);
21223 
21224     nsresult (*GetDescription)(IExtPackBase *pThis, PRUnichar * *description);
21225 
21226     nsresult (*GetVersion)(IExtPackBase *pThis, PRUnichar * *version);
21227 
21228     nsresult (*GetRevision)(IExtPackBase *pThis, PRUint32 *revision);
21229 
21230     nsresult (*GetEdition)(IExtPackBase *pThis, PRUnichar * *edition);
21231 
21232     nsresult (*GetVRDEModule)(IExtPackBase *pThis, PRUnichar * *VRDEModule);
21233 
21234     nsresult (*GetPlugIns)(IExtPackBase *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
21235 
21236     nsresult (*GetUsable)(IExtPackBase *pThis, PRBool *usable);
21237 
21238     nsresult (*GetWhyUnusable)(IExtPackBase *pThis, PRUnichar * *whyUnusable);
21239 
21240     nsresult (*GetShowLicense)(IExtPackBase *pThis, PRBool *showLicense);
21241 
21242     nsresult (*GetLicense)(IExtPackBase *pThis, PRUnichar * *license);
21243 
21244     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21245 
21246     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21247 
21248     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21249 
21250     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21251 
21252     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21253 
21254     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21255 
21256     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21257 
21258     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
21259 
21260     nsresult (*QueryLicense)(
21261         IExtPackBase *pThis,
21262         PRUnichar * preferredLocale,
21263         PRUnichar * preferredLanguage,
21264         PRUnichar * format,
21265         PRUnichar * * licenseText
21266     );
21267 
21268     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackBase *pThis);
21269 
21270     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPackBase *pThis);
21271 
21272     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPackBase *pThis);
21273 
21274     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPackBase *pThis);
21275 
21276 };
21277 #    define IExtPackBase_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21278 #    define IExtPackBase_AddRef(p) ((p)->lpVtbl->AddRef(p))
21279 #    define IExtPackBase_Release(p) ((p)->lpVtbl->Release(p))
21280 #    define IExtPackBase_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21281 #    define IExtPackBase_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21282 #    define IExtPackBase_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21283 #    define IExtPackBase_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21284 #    define IExtPackBase_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21285 #    define IExtPackBase_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21286 #    define IExtPackBase_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21287 #    define IExtPackBase_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21288 #    define IExtPackBase_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
21289 #    define IExtPackBase_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
21290 #    define IExtPackBase_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
21291 #    define IExtPackBase_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
21292 #    define IExtPackBase_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
21293 #    define IExtPackBase_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
21294 #    define IExtPackBase_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
21295 #    define IExtPackBase_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
21296 #    define IExtPackBase_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
21297 #    define IExtPackBase_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
21298 #    define IExtPackBase_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
21299 #    define IExtPackBase_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
21300 #    define IExtPackBase_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
21301 #    define IExtPackBase_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
21302 #    define IExtPackBase_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
21303 #   endif /* VBOX_WITH_GLUE */
21304 
21305 interface IExtPackBase
21306 {
21307 #   ifndef VBOX_WITH_GLUE
21308     struct IExtPackBase_vtbl *vtbl;
21309 #   else /* VBOX_WITH_GLUE */
21310     CONST_VTBL struct IExtPackBaseVtbl *lpVtbl;
21311 #   endif /* VBOX_WITH_GLUE */
21312 };
21313 /* End of struct IExtPackBase declaration */
21314 
21315 
21316 /* Start of struct IExtPack declaration */
21317 #   define IEXTPACK_IID_STR "431685da-3618-4ebc-b038-833ba829b4b2"
21318 #   define IEXTPACK_IID { \
21319     0x431685da, 0x3618, 0x4ebc, \
21320     { 0xb0, 0x38, 0x83, 0x3b, 0xa8, 0x29, 0xb4, 0xb2 } \
21321 }
21322 /* COM compatibility */
21323 VBOX_EXTERN_CONST(nsIID, IID_IExtPack);
21324 #   ifndef VBOX_WITH_GLUE
21325 struct IExtPack_vtbl
21326 {
21327     struct IExtPackBase_vtbl iextpackbase;
21328 
21329     nsresult (*QueryObject)(
21330         IExtPack *pThis,
21331         PRUnichar * objUuid,
21332         nsISupports * * returnInterface
21333     );
21334 
21335 };
21336 #   else /* VBOX_WITH_GLUE */
21337 struct IExtPackVtbl
21338 {
21339     nsresult (*QueryInterface)(IExtPack *pThis, const nsID *iid, void **resultp);
21340     nsrefcnt (*AddRef)(IExtPack *pThis);
21341     nsrefcnt (*Release)(IExtPack *pThis);
21342     nsresult (*GetName)(IExtPack *pThis, PRUnichar * *name);
21343 
21344     nsresult (*GetDescription)(IExtPack *pThis, PRUnichar * *description);
21345 
21346     nsresult (*GetVersion)(IExtPack *pThis, PRUnichar * *version);
21347 
21348     nsresult (*GetRevision)(IExtPack *pThis, PRUint32 *revision);
21349 
21350     nsresult (*GetEdition)(IExtPack *pThis, PRUnichar * *edition);
21351 
21352     nsresult (*GetVRDEModule)(IExtPack *pThis, PRUnichar * *VRDEModule);
21353 
21354     nsresult (*GetPlugIns)(IExtPack *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
21355 
21356     nsresult (*GetUsable)(IExtPack *pThis, PRBool *usable);
21357 
21358     nsresult (*GetWhyUnusable)(IExtPack *pThis, PRUnichar * *whyUnusable);
21359 
21360     nsresult (*GetShowLicense)(IExtPack *pThis, PRBool *showLicense);
21361 
21362     nsresult (*GetLicense)(IExtPack *pThis, PRUnichar * *license);
21363 
21364     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21365 
21366     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21367 
21368     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21369 
21370     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21371 
21372     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21373 
21374     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21375 
21376     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21377 
21378     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
21379 
21380     nsresult (*QueryLicense)(
21381         IExtPack *pThis,
21382         PRUnichar * preferredLocale,
21383         PRUnichar * preferredLanguage,
21384         PRUnichar * format,
21385         PRUnichar * * licenseText
21386     );
21387 
21388     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPack *pThis);
21389 
21390     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPack *pThis);
21391 
21392     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPack *pThis);
21393 
21394     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPack *pThis);
21395 
21396     nsresult (*QueryObject)(
21397         IExtPack *pThis,
21398         PRUnichar * objUuid,
21399         nsISupports * * returnInterface
21400     );
21401 
21402 };
21403 #    define IExtPack_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21404 #    define IExtPack_AddRef(p) ((p)->lpVtbl->AddRef(p))
21405 #    define IExtPack_Release(p) ((p)->lpVtbl->Release(p))
21406 #    define IExtPack_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21407 #    define IExtPack_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21408 #    define IExtPack_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21409 #    define IExtPack_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21410 #    define IExtPack_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21411 #    define IExtPack_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21412 #    define IExtPack_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21413 #    define IExtPack_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21414 #    define IExtPack_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
21415 #    define IExtPack_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
21416 #    define IExtPack_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
21417 #    define IExtPack_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
21418 #    define IExtPack_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
21419 #    define IExtPack_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
21420 #    define IExtPack_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
21421 #    define IExtPack_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
21422 #    define IExtPack_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
21423 #    define IExtPack_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
21424 #    define IExtPack_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
21425 #    define IExtPack_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
21426 #    define IExtPack_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
21427 #    define IExtPack_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
21428 #    define IExtPack_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
21429 #    define IExtPack_QueryObject(p, aObjUuid, aReturnInterface) ((p)->lpVtbl->QueryObject(p, aObjUuid, aReturnInterface))
21430 #   endif /* VBOX_WITH_GLUE */
21431 
21432 interface IExtPack
21433 {
21434 #   ifndef VBOX_WITH_GLUE
21435     struct IExtPack_vtbl *vtbl;
21436 #   else /* VBOX_WITH_GLUE */
21437     CONST_VTBL struct IExtPackVtbl *lpVtbl;
21438 #   endif /* VBOX_WITH_GLUE */
21439 };
21440 /* End of struct IExtPack declaration */
21441 
21442 
21443 /* Start of struct IExtPackFile declaration */
21444 #   define IEXTPACKFILE_IID_STR "41304f1b-7e72-4f34-b8f6-682785620c57"
21445 #   define IEXTPACKFILE_IID { \
21446     0x41304f1b, 0x7e72, 0x4f34, \
21447     { 0xb8, 0xf6, 0x68, 0x27, 0x85, 0x62, 0x0c, 0x57 } \
21448 }
21449 /* COM compatibility */
21450 VBOX_EXTERN_CONST(nsIID, IID_IExtPackFile);
21451 #   ifndef VBOX_WITH_GLUE
21452 struct IExtPackFile_vtbl
21453 {
21454     struct IExtPackBase_vtbl iextpackbase;
21455 
21456     nsresult (*GetFilePath)(IExtPackFile *pThis, PRUnichar * *filePath);
21457 
21458     nsresult (*GetInternalAndReservedAttribute1IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21459 
21460     nsresult (*GetInternalAndReservedAttribute2IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21461 
21462     nsresult (*GetInternalAndReservedAttribute3IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21463 
21464     nsresult (*GetInternalAndReservedAttribute4IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21465 
21466     nsresult (*Install)(
21467         IExtPackFile *pThis,
21468         PRBool replace,
21469         PRUnichar * displayInfo,
21470         IProgress * * progess
21471     );
21472 
21473     nsresult (*InternalAndReservedMethod1IExtPackFile)(IExtPackFile *pThis);
21474 
21475     nsresult (*InternalAndReservedMethod2IExtPackFile)(IExtPackFile *pThis);
21476 
21477 };
21478 #   else /* VBOX_WITH_GLUE */
21479 struct IExtPackFileVtbl
21480 {
21481     nsresult (*QueryInterface)(IExtPackFile *pThis, const nsID *iid, void **resultp);
21482     nsrefcnt (*AddRef)(IExtPackFile *pThis);
21483     nsrefcnt (*Release)(IExtPackFile *pThis);
21484     nsresult (*GetName)(IExtPackFile *pThis, PRUnichar * *name);
21485 
21486     nsresult (*GetDescription)(IExtPackFile *pThis, PRUnichar * *description);
21487 
21488     nsresult (*GetVersion)(IExtPackFile *pThis, PRUnichar * *version);
21489 
21490     nsresult (*GetRevision)(IExtPackFile *pThis, PRUint32 *revision);
21491 
21492     nsresult (*GetEdition)(IExtPackFile *pThis, PRUnichar * *edition);
21493 
21494     nsresult (*GetVRDEModule)(IExtPackFile *pThis, PRUnichar * *VRDEModule);
21495 
21496     nsresult (*GetPlugIns)(IExtPackFile *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
21497 
21498     nsresult (*GetUsable)(IExtPackFile *pThis, PRBool *usable);
21499 
21500     nsresult (*GetWhyUnusable)(IExtPackFile *pThis, PRUnichar * *whyUnusable);
21501 
21502     nsresult (*GetShowLicense)(IExtPackFile *pThis, PRBool *showLicense);
21503 
21504     nsresult (*GetLicense)(IExtPackFile *pThis, PRUnichar * *license);
21505 
21506     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21507 
21508     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21509 
21510     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21511 
21512     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21513 
21514     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21515 
21516     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21517 
21518     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21519 
21520     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
21521 
21522     nsresult (*QueryLicense)(
21523         IExtPackFile *pThis,
21524         PRUnichar * preferredLocale,
21525         PRUnichar * preferredLanguage,
21526         PRUnichar * format,
21527         PRUnichar * * licenseText
21528     );
21529 
21530     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackFile *pThis);
21531 
21532     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPackFile *pThis);
21533 
21534     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPackFile *pThis);
21535 
21536     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPackFile *pThis);
21537 
21538     nsresult (*GetFilePath)(IExtPackFile *pThis, PRUnichar * *filePath);
21539 
21540     nsresult (*GetInternalAndReservedAttribute1IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21541 
21542     nsresult (*GetInternalAndReservedAttribute2IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21543 
21544     nsresult (*GetInternalAndReservedAttribute3IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21545 
21546     nsresult (*GetInternalAndReservedAttribute4IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
21547 
21548     nsresult (*Install)(
21549         IExtPackFile *pThis,
21550         PRBool replace,
21551         PRUnichar * displayInfo,
21552         IProgress * * progess
21553     );
21554 
21555     nsresult (*InternalAndReservedMethod1IExtPackFile)(IExtPackFile *pThis);
21556 
21557     nsresult (*InternalAndReservedMethod2IExtPackFile)(IExtPackFile *pThis);
21558 
21559 };
21560 #    define IExtPackFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21561 #    define IExtPackFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
21562 #    define IExtPackFile_Release(p) ((p)->lpVtbl->Release(p))
21563 #    define IExtPackFile_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21564 #    define IExtPackFile_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21565 #    define IExtPackFile_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21566 #    define IExtPackFile_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
21567 #    define IExtPackFile_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21568 #    define IExtPackFile_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21569 #    define IExtPackFile_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21570 #    define IExtPackFile_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21571 #    define IExtPackFile_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
21572 #    define IExtPackFile_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
21573 #    define IExtPackFile_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
21574 #    define IExtPackFile_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
21575 #    define IExtPackFile_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
21576 #    define IExtPackFile_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
21577 #    define IExtPackFile_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
21578 #    define IExtPackFile_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
21579 #    define IExtPackFile_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
21580 #    define IExtPackFile_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
21581 #    define IExtPackFile_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
21582 #    define IExtPackFile_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
21583 #    define IExtPackFile_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
21584 #    define IExtPackFile_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
21585 #    define IExtPackFile_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
21586 #    define IExtPackFile_get_FilePath(p, aFilePath) ((p)->lpVtbl->GetFilePath(p, aFilePath))
21587 #    define IExtPackFile_GetFilePath(p, aFilePath) ((p)->lpVtbl->GetFilePath(p, aFilePath))
21588 #    define IExtPackFile_Install(p, aReplace, aDisplayInfo, aProgess) ((p)->lpVtbl->Install(p, aReplace, aDisplayInfo, aProgess))
21589 #   endif /* VBOX_WITH_GLUE */
21590 
21591 interface IExtPackFile
21592 {
21593 #   ifndef VBOX_WITH_GLUE
21594     struct IExtPackFile_vtbl *vtbl;
21595 #   else /* VBOX_WITH_GLUE */
21596     CONST_VTBL struct IExtPackFileVtbl *lpVtbl;
21597 #   endif /* VBOX_WITH_GLUE */
21598 };
21599 /* End of struct IExtPackFile declaration */
21600 
21601 
21602 /* Start of struct IExtPackManager declaration */
21603 #   define IEXTPACKMANAGER_IID_STR "70401eef-c8e9-466b-9660-45cb3e9979e4"
21604 #   define IEXTPACKMANAGER_IID { \
21605     0x70401eef, 0xc8e9, 0x466b, \
21606     { 0x96, 0x60, 0x45, 0xcb, 0x3e, 0x99, 0x79, 0xe4 } \
21607 }
21608 /* COM compatibility */
21609 VBOX_EXTERN_CONST(nsIID, IID_IExtPackManager);
21610 #   ifndef VBOX_WITH_GLUE
21611 struct IExtPackManager_vtbl
21612 {
21613     struct nsISupports_vtbl nsisupports;
21614 
21615     nsresult (*GetInstalledExtPacks)(IExtPackManager *pThis, PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks);
21616 
21617     nsresult (*GetInternalAndReservedAttribute1IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21618 
21619     nsresult (*GetInternalAndReservedAttribute2IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21620 
21621     nsresult (*GetInternalAndReservedAttribute3IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21622 
21623     nsresult (*GetInternalAndReservedAttribute4IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21624 
21625     nsresult (*GetInternalAndReservedAttribute5IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21626 
21627     nsresult (*GetInternalAndReservedAttribute6IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21628 
21629     nsresult (*GetInternalAndReservedAttribute7IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21630 
21631     nsresult (*GetInternalAndReservedAttribute8IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21632 
21633     nsresult (*Find)(
21634         IExtPackManager *pThis,
21635         PRUnichar * name,
21636         IExtPack * * returnData
21637     );
21638 
21639     nsresult (*OpenExtPackFile)(
21640         IExtPackManager *pThis,
21641         PRUnichar * path,
21642         IExtPackFile * * file
21643     );
21644 
21645     nsresult (*Uninstall)(
21646         IExtPackManager *pThis,
21647         PRUnichar * name,
21648         PRBool forcedRemoval,
21649         PRUnichar * displayInfo,
21650         IProgress * * progess
21651     );
21652 
21653     nsresult (*Cleanup)(IExtPackManager *pThis );
21654 
21655     nsresult (*QueryAllPlugInsForFrontend)(
21656         IExtPackManager *pThis,
21657         PRUnichar * frontendName,
21658         PRUint32 *plugInModulesSize,
21659         PRUnichar *** plugInModules
21660     );
21661 
21662     nsresult (*IsExtPackUsable)(
21663         IExtPackManager *pThis,
21664         PRUnichar * name,
21665         PRBool * usable
21666     );
21667 
21668     nsresult (*InternalAndReservedMethod1IExtPackManager)(IExtPackManager *pThis);
21669 
21670     nsresult (*InternalAndReservedMethod2IExtPackManager)(IExtPackManager *pThis);
21671 
21672     nsresult (*InternalAndReservedMethod3IExtPackManager)(IExtPackManager *pThis);
21673 
21674     nsresult (*InternalAndReservedMethod4IExtPackManager)(IExtPackManager *pThis);
21675 
21676 };
21677 #   else /* VBOX_WITH_GLUE */
21678 struct IExtPackManagerVtbl
21679 {
21680     nsresult (*QueryInterface)(IExtPackManager *pThis, const nsID *iid, void **resultp);
21681     nsrefcnt (*AddRef)(IExtPackManager *pThis);
21682     nsrefcnt (*Release)(IExtPackManager *pThis);
21683     nsresult (*GetInstalledExtPacks)(IExtPackManager *pThis, PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks);
21684 
21685     nsresult (*GetInternalAndReservedAttribute1IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21686 
21687     nsresult (*GetInternalAndReservedAttribute2IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21688 
21689     nsresult (*GetInternalAndReservedAttribute3IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21690 
21691     nsresult (*GetInternalAndReservedAttribute4IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21692 
21693     nsresult (*GetInternalAndReservedAttribute5IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21694 
21695     nsresult (*GetInternalAndReservedAttribute6IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21696 
21697     nsresult (*GetInternalAndReservedAttribute7IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21698 
21699     nsresult (*GetInternalAndReservedAttribute8IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
21700 
21701     nsresult (*Find)(
21702         IExtPackManager *pThis,
21703         PRUnichar * name,
21704         IExtPack * * returnData
21705     );
21706 
21707     nsresult (*OpenExtPackFile)(
21708         IExtPackManager *pThis,
21709         PRUnichar * path,
21710         IExtPackFile * * file
21711     );
21712 
21713     nsresult (*Uninstall)(
21714         IExtPackManager *pThis,
21715         PRUnichar * name,
21716         PRBool forcedRemoval,
21717         PRUnichar * displayInfo,
21718         IProgress * * progess
21719     );
21720 
21721     nsresult (*Cleanup)(IExtPackManager *pThis );
21722 
21723     nsresult (*QueryAllPlugInsForFrontend)(
21724         IExtPackManager *pThis,
21725         PRUnichar * frontendName,
21726         PRUint32 *plugInModulesSize,
21727         PRUnichar *** plugInModules
21728     );
21729 
21730     nsresult (*IsExtPackUsable)(
21731         IExtPackManager *pThis,
21732         PRUnichar * name,
21733         PRBool * usable
21734     );
21735 
21736     nsresult (*InternalAndReservedMethod1IExtPackManager)(IExtPackManager *pThis);
21737 
21738     nsresult (*InternalAndReservedMethod2IExtPackManager)(IExtPackManager *pThis);
21739 
21740     nsresult (*InternalAndReservedMethod3IExtPackManager)(IExtPackManager *pThis);
21741 
21742     nsresult (*InternalAndReservedMethod4IExtPackManager)(IExtPackManager *pThis);
21743 
21744 };
21745 #    define IExtPackManager_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21746 #    define IExtPackManager_AddRef(p) ((p)->lpVtbl->AddRef(p))
21747 #    define IExtPackManager_Release(p) ((p)->lpVtbl->Release(p))
21748 #    define IExtPackManager_get_InstalledExtPacks(p, aInstalledExtPacks) ((p)->lpVtbl->GetInstalledExtPacks(p, aInstalledExtPacks))
21749 #    define IExtPackManager_GetInstalledExtPacks(p, aInstalledExtPacks) ((p)->lpVtbl->GetInstalledExtPacks(p, aInstalledExtPacks))
21750 #    define IExtPackManager_Find(p, aName, aReturnData) ((p)->lpVtbl->Find(p, aName, aReturnData))
21751 #    define IExtPackManager_OpenExtPackFile(p, aPath, aFile) ((p)->lpVtbl->OpenExtPackFile(p, aPath, aFile))
21752 #    define IExtPackManager_Uninstall(p, aName, aForcedRemoval, aDisplayInfo, aProgess) ((p)->lpVtbl->Uninstall(p, aName, aForcedRemoval, aDisplayInfo, aProgess))
21753 #    define IExtPackManager_Cleanup(p) ((p)->lpVtbl->Cleanup(p))
21754 #    define IExtPackManager_QueryAllPlugInsForFrontend(p, aFrontendName, aPlugInModules) ((p)->lpVtbl->QueryAllPlugInsForFrontend(p, aFrontendName, aPlugInModules))
21755 #    define IExtPackManager_IsExtPackUsable(p, aName, aUsable) ((p)->lpVtbl->IsExtPackUsable(p, aName, aUsable))
21756 #   endif /* VBOX_WITH_GLUE */
21757 
21758 interface IExtPackManager
21759 {
21760 #   ifndef VBOX_WITH_GLUE
21761     struct IExtPackManager_vtbl *vtbl;
21762 #   else /* VBOX_WITH_GLUE */
21763     CONST_VTBL struct IExtPackManagerVtbl *lpVtbl;
21764 #   endif /* VBOX_WITH_GLUE */
21765 };
21766 /* End of struct IExtPackManager declaration */
21767 
21768 
21769 /* Start of struct IBandwidthGroup declaration */
21770 #   define IBANDWIDTHGROUP_IID_STR "31587f93-2d12-4d7c-ba6d-ce51d0d5b265"
21771 #   define IBANDWIDTHGROUP_IID { \
21772     0x31587f93, 0x2d12, 0x4d7c, \
21773     { 0xba, 0x6d, 0xce, 0x51, 0xd0, 0xd5, 0xb2, 0x65 } \
21774 }
21775 /* COM compatibility */
21776 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthGroup);
21777 #   ifndef VBOX_WITH_GLUE
21778 struct IBandwidthGroup_vtbl
21779 {
21780     struct nsISupports_vtbl nsisupports;
21781 
21782     nsresult (*GetName)(IBandwidthGroup *pThis, PRUnichar * *name);
21783 
21784     nsresult (*GetType)(IBandwidthGroup *pThis, PRUint32 *type);
21785 
21786     nsresult (*GetReference)(IBandwidthGroup *pThis, PRUint32 *reference);
21787 
21788     nsresult (*GetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 *maxBytesPerSec);
21789     nsresult (*SetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 maxBytesPerSec);
21790 
21791     nsresult (*GetInternalAndReservedAttribute1IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21792 
21793     nsresult (*GetInternalAndReservedAttribute2IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21794 
21795     nsresult (*GetInternalAndReservedAttribute3IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21796 
21797     nsresult (*GetInternalAndReservedAttribute4IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21798 
21799 };
21800 #   else /* VBOX_WITH_GLUE */
21801 struct IBandwidthGroupVtbl
21802 {
21803     nsresult (*QueryInterface)(IBandwidthGroup *pThis, const nsID *iid, void **resultp);
21804     nsrefcnt (*AddRef)(IBandwidthGroup *pThis);
21805     nsrefcnt (*Release)(IBandwidthGroup *pThis);
21806     nsresult (*GetName)(IBandwidthGroup *pThis, PRUnichar * *name);
21807 
21808     nsresult (*GetType)(IBandwidthGroup *pThis, PRUint32 *type);
21809 
21810     nsresult (*GetReference)(IBandwidthGroup *pThis, PRUint32 *reference);
21811 
21812     nsresult (*GetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 *maxBytesPerSec);
21813     nsresult (*SetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 maxBytesPerSec);
21814 
21815     nsresult (*GetInternalAndReservedAttribute1IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21816 
21817     nsresult (*GetInternalAndReservedAttribute2IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21818 
21819     nsresult (*GetInternalAndReservedAttribute3IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21820 
21821     nsresult (*GetInternalAndReservedAttribute4IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
21822 
21823 };
21824 #    define IBandwidthGroup_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21825 #    define IBandwidthGroup_AddRef(p) ((p)->lpVtbl->AddRef(p))
21826 #    define IBandwidthGroup_Release(p) ((p)->lpVtbl->Release(p))
21827 #    define IBandwidthGroup_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21828 #    define IBandwidthGroup_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21829 #    define IBandwidthGroup_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21830 #    define IBandwidthGroup_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21831 #    define IBandwidthGroup_get_Reference(p, aReference) ((p)->lpVtbl->GetReference(p, aReference))
21832 #    define IBandwidthGroup_GetReference(p, aReference) ((p)->lpVtbl->GetReference(p, aReference))
21833 #    define IBandwidthGroup_get_MaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->GetMaxBytesPerSec(p, aMaxBytesPerSec))
21834 #    define IBandwidthGroup_GetMaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->GetMaxBytesPerSec(p, aMaxBytesPerSec))
21835 #    define IBandwidthGroup_put_MaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->SetMaxBytesPerSec(p, aMaxBytesPerSec))
21836 #    define IBandwidthGroup_SetMaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->SetMaxBytesPerSec(p, aMaxBytesPerSec))
21837 #   endif /* VBOX_WITH_GLUE */
21838 
21839 interface IBandwidthGroup
21840 {
21841 #   ifndef VBOX_WITH_GLUE
21842     struct IBandwidthGroup_vtbl *vtbl;
21843 #   else /* VBOX_WITH_GLUE */
21844     CONST_VTBL struct IBandwidthGroupVtbl *lpVtbl;
21845 #   endif /* VBOX_WITH_GLUE */
21846 };
21847 /* End of struct IBandwidthGroup declaration */
21848 
21849 
21850 /* Start of struct IBandwidthControl declaration */
21851 #   define IBANDWIDTHCONTROL_IID_STR "48c7f4c0-c9d6-4742-957c-a6fd52e8c4ae"
21852 #   define IBANDWIDTHCONTROL_IID { \
21853     0x48c7f4c0, 0xc9d6, 0x4742, \
21854     { 0x95, 0x7c, 0xa6, 0xfd, 0x52, 0xe8, 0xc4, 0xae } \
21855 }
21856 /* COM compatibility */
21857 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthControl);
21858 #   ifndef VBOX_WITH_GLUE
21859 struct IBandwidthControl_vtbl
21860 {
21861     struct nsISupports_vtbl nsisupports;
21862 
21863     nsresult (*GetNumGroups)(IBandwidthControl *pThis, PRUint32 *numGroups);
21864 
21865     nsresult (*GetInternalAndReservedAttribute1IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
21866 
21867     nsresult (*GetInternalAndReservedAttribute2IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
21868 
21869     nsresult (*CreateBandwidthGroup)(
21870         IBandwidthControl *pThis,
21871         PRUnichar * name,
21872         PRUint32 type,
21873         PRInt64 maxBytesPerSec
21874     );
21875 
21876     nsresult (*DeleteBandwidthGroup)(
21877         IBandwidthControl *pThis,
21878         PRUnichar * name
21879     );
21880 
21881     nsresult (*GetBandwidthGroup)(
21882         IBandwidthControl *pThis,
21883         PRUnichar * name,
21884         IBandwidthGroup * * bandwidthGroup
21885     );
21886 
21887     nsresult (*GetAllBandwidthGroups)(
21888         IBandwidthControl *pThis,
21889         PRUint32 *bandwidthGroupsSize,
21890         IBandwidthGroup *** bandwidthGroups
21891     );
21892 
21893     nsresult (*InternalAndReservedMethod1IBandwidthControl)(IBandwidthControl *pThis);
21894 
21895     nsresult (*InternalAndReservedMethod2IBandwidthControl)(IBandwidthControl *pThis);
21896 
21897 };
21898 #   else /* VBOX_WITH_GLUE */
21899 struct IBandwidthControlVtbl
21900 {
21901     nsresult (*QueryInterface)(IBandwidthControl *pThis, const nsID *iid, void **resultp);
21902     nsrefcnt (*AddRef)(IBandwidthControl *pThis);
21903     nsrefcnt (*Release)(IBandwidthControl *pThis);
21904     nsresult (*GetNumGroups)(IBandwidthControl *pThis, PRUint32 *numGroups);
21905 
21906     nsresult (*GetInternalAndReservedAttribute1IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
21907 
21908     nsresult (*GetInternalAndReservedAttribute2IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
21909 
21910     nsresult (*CreateBandwidthGroup)(
21911         IBandwidthControl *pThis,
21912         PRUnichar * name,
21913         PRUint32 type,
21914         PRInt64 maxBytesPerSec
21915     );
21916 
21917     nsresult (*DeleteBandwidthGroup)(
21918         IBandwidthControl *pThis,
21919         PRUnichar * name
21920     );
21921 
21922     nsresult (*GetBandwidthGroup)(
21923         IBandwidthControl *pThis,
21924         PRUnichar * name,
21925         IBandwidthGroup * * bandwidthGroup
21926     );
21927 
21928     nsresult (*GetAllBandwidthGroups)(
21929         IBandwidthControl *pThis,
21930         PRUint32 *bandwidthGroupsSize,
21931         IBandwidthGroup *** bandwidthGroups
21932     );
21933 
21934     nsresult (*InternalAndReservedMethod1IBandwidthControl)(IBandwidthControl *pThis);
21935 
21936     nsresult (*InternalAndReservedMethod2IBandwidthControl)(IBandwidthControl *pThis);
21937 
21938 };
21939 #    define IBandwidthControl_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21940 #    define IBandwidthControl_AddRef(p) ((p)->lpVtbl->AddRef(p))
21941 #    define IBandwidthControl_Release(p) ((p)->lpVtbl->Release(p))
21942 #    define IBandwidthControl_get_NumGroups(p, aNumGroups) ((p)->lpVtbl->GetNumGroups(p, aNumGroups))
21943 #    define IBandwidthControl_GetNumGroups(p, aNumGroups) ((p)->lpVtbl->GetNumGroups(p, aNumGroups))
21944 #    define IBandwidthControl_CreateBandwidthGroup(p, aName, aType, aMaxBytesPerSec) ((p)->lpVtbl->CreateBandwidthGroup(p, aName, aType, aMaxBytesPerSec))
21945 #    define IBandwidthControl_DeleteBandwidthGroup(p, aName) ((p)->lpVtbl->DeleteBandwidthGroup(p, aName))
21946 #    define IBandwidthControl_GetBandwidthGroup(p, aName, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aName, aBandwidthGroup))
21947 #    define IBandwidthControl_GetAllBandwidthGroups(p, aBandwidthGroups) ((p)->lpVtbl->GetAllBandwidthGroups(p, aBandwidthGroups))
21948 #   endif /* VBOX_WITH_GLUE */
21949 
21950 interface IBandwidthControl
21951 {
21952 #   ifndef VBOX_WITH_GLUE
21953     struct IBandwidthControl_vtbl *vtbl;
21954 #   else /* VBOX_WITH_GLUE */
21955     CONST_VTBL struct IBandwidthControlVtbl *lpVtbl;
21956 #   endif /* VBOX_WITH_GLUE */
21957 };
21958 /* End of struct IBandwidthControl declaration */
21959 
21960 
21961 /* Start of struct IVirtualBoxClient declaration */
21962 #   define IVIRTUALBOXCLIENT_IID_STR "d2937a8e-cb8d-4382-90ba-b7da78a74573"
21963 #   define IVIRTUALBOXCLIENT_IID { \
21964     0xd2937a8e, 0xcb8d, 0x4382, \
21965     { 0x90, 0xba, 0xb7, 0xda, 0x78, 0xa7, 0x45, 0x73 } \
21966 }
21967 /* COM compatibility */
21968 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBoxClient);
21969 #   ifndef VBOX_WITH_GLUE
21970 struct IVirtualBoxClient_vtbl
21971 {
21972     struct nsISupports_vtbl nsisupports;
21973 
21974     nsresult (*GetVirtualBox)(IVirtualBoxClient *pThis, IVirtualBox * *virtualBox);
21975 
21976     nsresult (*GetSession)(IVirtualBoxClient *pThis, ISession * *session);
21977 
21978     nsresult (*GetEventSource)(IVirtualBoxClient *pThis, IEventSource * *eventSource);
21979 
21980     nsresult (*GetInternalAndReservedAttribute1IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
21981 
21982     nsresult (*GetInternalAndReservedAttribute2IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
21983 
21984     nsresult (*GetInternalAndReservedAttribute3IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
21985 
21986     nsresult (*GetInternalAndReservedAttribute4IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
21987 
21988     nsresult (*CheckMachineError)(
21989         IVirtualBoxClient *pThis,
21990         IMachine * machine
21991     );
21992 
21993     nsresult (*InternalAndReservedMethod1IVirtualBoxClient)(IVirtualBoxClient *pThis);
21994 
21995     nsresult (*InternalAndReservedMethod2IVirtualBoxClient)(IVirtualBoxClient *pThis);
21996 
21997     nsresult (*InternalAndReservedMethod3IVirtualBoxClient)(IVirtualBoxClient *pThis);
21998 
21999     nsresult (*InternalAndReservedMethod4IVirtualBoxClient)(IVirtualBoxClient *pThis);
22000 
22001 };
22002 #   else /* VBOX_WITH_GLUE */
22003 struct IVirtualBoxClientVtbl
22004 {
22005     nsresult (*QueryInterface)(IVirtualBoxClient *pThis, const nsID *iid, void **resultp);
22006     nsrefcnt (*AddRef)(IVirtualBoxClient *pThis);
22007     nsrefcnt (*Release)(IVirtualBoxClient *pThis);
22008     nsresult (*GetVirtualBox)(IVirtualBoxClient *pThis, IVirtualBox * *virtualBox);
22009 
22010     nsresult (*GetSession)(IVirtualBoxClient *pThis, ISession * *session);
22011 
22012     nsresult (*GetEventSource)(IVirtualBoxClient *pThis, IEventSource * *eventSource);
22013 
22014     nsresult (*GetInternalAndReservedAttribute1IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
22015 
22016     nsresult (*GetInternalAndReservedAttribute2IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
22017 
22018     nsresult (*GetInternalAndReservedAttribute3IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
22019 
22020     nsresult (*GetInternalAndReservedAttribute4IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
22021 
22022     nsresult (*CheckMachineError)(
22023         IVirtualBoxClient *pThis,
22024         IMachine * machine
22025     );
22026 
22027     nsresult (*InternalAndReservedMethod1IVirtualBoxClient)(IVirtualBoxClient *pThis);
22028 
22029     nsresult (*InternalAndReservedMethod2IVirtualBoxClient)(IVirtualBoxClient *pThis);
22030 
22031     nsresult (*InternalAndReservedMethod3IVirtualBoxClient)(IVirtualBoxClient *pThis);
22032 
22033     nsresult (*InternalAndReservedMethod4IVirtualBoxClient)(IVirtualBoxClient *pThis);
22034 
22035 };
22036 #    define IVirtualBoxClient_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22037 #    define IVirtualBoxClient_AddRef(p) ((p)->lpVtbl->AddRef(p))
22038 #    define IVirtualBoxClient_Release(p) ((p)->lpVtbl->Release(p))
22039 #    define IVirtualBoxClient_get_VirtualBox(p, aVirtualBox) ((p)->lpVtbl->GetVirtualBox(p, aVirtualBox))
22040 #    define IVirtualBoxClient_GetVirtualBox(p, aVirtualBox) ((p)->lpVtbl->GetVirtualBox(p, aVirtualBox))
22041 #    define IVirtualBoxClient_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
22042 #    define IVirtualBoxClient_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
22043 #    define IVirtualBoxClient_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
22044 #    define IVirtualBoxClient_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
22045 #    define IVirtualBoxClient_CheckMachineError(p, aMachine) ((p)->lpVtbl->CheckMachineError(p, aMachine))
22046 #   endif /* VBOX_WITH_GLUE */
22047 
22048 interface IVirtualBoxClient
22049 {
22050 #   ifndef VBOX_WITH_GLUE
22051     struct IVirtualBoxClient_vtbl *vtbl;
22052 #   else /* VBOX_WITH_GLUE */
22053     CONST_VTBL struct IVirtualBoxClientVtbl *lpVtbl;
22054 #   endif /* VBOX_WITH_GLUE */
22055 };
22056 /* End of struct IVirtualBoxClient declaration */
22057 
22058 
22059 /* Start of struct IEventSource declaration */
22060 #   define IEVENTSOURCE_IID_STR "9b6e1aee-35f3-4f4d-b5bb-ed0ecefd8538"
22061 #   define IEVENTSOURCE_IID { \
22062     0x9b6e1aee, 0x35f3, 0x4f4d, \
22063     { 0xb5, 0xbb, 0xed, 0x0e, 0xce, 0xfd, 0x85, 0x38 } \
22064 }
22065 /* COM compatibility */
22066 VBOX_EXTERN_CONST(nsIID, IID_IEventSource);
22067 #   ifndef VBOX_WITH_GLUE
22068 struct IEventSource_vtbl
22069 {
22070     struct nsISupports_vtbl nsisupports;
22071 
22072     nsresult (*CreateListener)(
22073         IEventSource *pThis,
22074         IEventListener * * listener
22075     );
22076 
22077     nsresult (*CreateAggregator)(
22078         IEventSource *pThis,
22079         PRUint32 subordinatesSize,
22080         IEventSource ** subordinates,
22081         IEventSource * * result
22082     );
22083 
22084     nsresult (*RegisterListener)(
22085         IEventSource *pThis,
22086         IEventListener * listener,
22087         PRUint32 interestingSize,
22088         PRUint32* interesting,
22089         PRBool active
22090     );
22091 
22092     nsresult (*UnregisterListener)(
22093         IEventSource *pThis,
22094         IEventListener * listener
22095     );
22096 
22097     nsresult (*FireEvent)(
22098         IEventSource *pThis,
22099         IEvent * event,
22100         PRInt32 timeout,
22101         PRBool * result
22102     );
22103 
22104     nsresult (*GetEvent)(
22105         IEventSource *pThis,
22106         IEventListener * listener,
22107         PRInt32 timeout,
22108         IEvent * * event
22109     );
22110 
22111     nsresult (*EventProcessed)(
22112         IEventSource *pThis,
22113         IEventListener * listener,
22114         IEvent * event
22115     );
22116 
22117 };
22118 #   else /* VBOX_WITH_GLUE */
22119 struct IEventSourceVtbl
22120 {
22121     nsresult (*QueryInterface)(IEventSource *pThis, const nsID *iid, void **resultp);
22122     nsrefcnt (*AddRef)(IEventSource *pThis);
22123     nsrefcnt (*Release)(IEventSource *pThis);
22124     nsresult (*CreateListener)(
22125         IEventSource *pThis,
22126         IEventListener * * listener
22127     );
22128 
22129     nsresult (*CreateAggregator)(
22130         IEventSource *pThis,
22131         PRUint32 subordinatesSize,
22132         IEventSource ** subordinates,
22133         IEventSource * * result
22134     );
22135 
22136     nsresult (*RegisterListener)(
22137         IEventSource *pThis,
22138         IEventListener * listener,
22139         PRUint32 interestingSize,
22140         PRUint32* interesting,
22141         PRBool active
22142     );
22143 
22144     nsresult (*UnregisterListener)(
22145         IEventSource *pThis,
22146         IEventListener * listener
22147     );
22148 
22149     nsresult (*FireEvent)(
22150         IEventSource *pThis,
22151         IEvent * event,
22152         PRInt32 timeout,
22153         PRBool * result
22154     );
22155 
22156     nsresult (*GetEvent)(
22157         IEventSource *pThis,
22158         IEventListener * listener,
22159         PRInt32 timeout,
22160         IEvent * * event
22161     );
22162 
22163     nsresult (*EventProcessed)(
22164         IEventSource *pThis,
22165         IEventListener * listener,
22166         IEvent * event
22167     );
22168 
22169 };
22170 #    define IEventSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22171 #    define IEventSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
22172 #    define IEventSource_Release(p) ((p)->lpVtbl->Release(p))
22173 #    define IEventSource_CreateListener(p, aListener) ((p)->lpVtbl->CreateListener(p, aListener))
22174 #    define IEventSource_CreateAggregator(p, aSubordinates, aResult) ((p)->lpVtbl->CreateAggregator(p, aSubordinates, aResult))
22175 #    define IEventSource_RegisterListener(p, aListener, aInteresting, aActive) ((p)->lpVtbl->RegisterListener(p, aListener, aInteresting, aActive))
22176 #    define IEventSource_UnregisterListener(p, aListener) ((p)->lpVtbl->UnregisterListener(p, aListener))
22177 #    define IEventSource_FireEvent(p, aEvent, aTimeout, aResult) ((p)->lpVtbl->FireEvent(p, aEvent, aTimeout, aResult))
22178 #    define IEventSource_GetEvent(p, aListener, aTimeout, aEvent) ((p)->lpVtbl->GetEvent(p, aListener, aTimeout, aEvent))
22179 #    define IEventSource_EventProcessed(p, aListener, aEvent) ((p)->lpVtbl->EventProcessed(p, aListener, aEvent))
22180 #   endif /* VBOX_WITH_GLUE */
22181 
22182 interface IEventSource
22183 {
22184 #   ifndef VBOX_WITH_GLUE
22185     struct IEventSource_vtbl *vtbl;
22186 #   else /* VBOX_WITH_GLUE */
22187     CONST_VTBL struct IEventSourceVtbl *lpVtbl;
22188 #   endif /* VBOX_WITH_GLUE */
22189 };
22190 /* End of struct IEventSource declaration */
22191 
22192 
22193 /* Start of struct IEventListener declaration */
22194 #   define IEVENTLISTENER_IID_STR "67099191-32e7-4f6c-85ee-422304c71b90"
22195 #   define IEVENTLISTENER_IID { \
22196     0x67099191, 0x32e7, 0x4f6c, \
22197     { 0x85, 0xee, 0x42, 0x23, 0x04, 0xc7, 0x1b, 0x90 } \
22198 }
22199 /* COM compatibility */
22200 VBOX_EXTERN_CONST(nsIID, IID_IEventListener);
22201 #   ifndef VBOX_WITH_GLUE
22202 struct IEventListener_vtbl
22203 {
22204     struct nsISupports_vtbl nsisupports;
22205 
22206     nsresult (*HandleEvent)(
22207         IEventListener *pThis,
22208         IEvent * event
22209     );
22210 
22211 };
22212 #   else /* VBOX_WITH_GLUE */
22213 struct IEventListenerVtbl
22214 {
22215     nsresult (*QueryInterface)(IEventListener *pThis, const nsID *iid, void **resultp);
22216     nsrefcnt (*AddRef)(IEventListener *pThis);
22217     nsrefcnt (*Release)(IEventListener *pThis);
22218     nsresult (*HandleEvent)(
22219         IEventListener *pThis,
22220         IEvent * event
22221     );
22222 
22223 };
22224 #    define IEventListener_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22225 #    define IEventListener_AddRef(p) ((p)->lpVtbl->AddRef(p))
22226 #    define IEventListener_Release(p) ((p)->lpVtbl->Release(p))
22227 #    define IEventListener_HandleEvent(p, aEvent) ((p)->lpVtbl->HandleEvent(p, aEvent))
22228 #   endif /* VBOX_WITH_GLUE */
22229 
22230 interface IEventListener
22231 {
22232 #   ifndef VBOX_WITH_GLUE
22233     struct IEventListener_vtbl *vtbl;
22234 #   else /* VBOX_WITH_GLUE */
22235     CONST_VTBL struct IEventListenerVtbl *lpVtbl;
22236 #   endif /* VBOX_WITH_GLUE */
22237 };
22238 /* End of struct IEventListener declaration */
22239 
22240 
22241 /* Start of struct IEvent declaration */
22242 #   define IEVENT_IID_STR "0ca2adba-8f30-401b-a8cd-fe31dbe839c0"
22243 #   define IEVENT_IID { \
22244     0x0ca2adba, 0x8f30, 0x401b, \
22245     { 0xa8, 0xcd, 0xfe, 0x31, 0xdb, 0xe8, 0x39, 0xc0 } \
22246 }
22247 /* COM compatibility */
22248 VBOX_EXTERN_CONST(nsIID, IID_IEvent);
22249 #   ifndef VBOX_WITH_GLUE
22250 struct IEvent_vtbl
22251 {
22252     struct nsISupports_vtbl nsisupports;
22253 
22254     nsresult (*GetType)(IEvent *pThis, PRUint32 *type);
22255 
22256     nsresult (*GetSource)(IEvent *pThis, IEventSource * *source);
22257 
22258     nsresult (*GetWaitable)(IEvent *pThis, PRBool *waitable);
22259 
22260     nsresult (*SetProcessed)(IEvent *pThis );
22261 
22262     nsresult (*WaitProcessed)(
22263         IEvent *pThis,
22264         PRInt32 timeout,
22265         PRBool * result
22266     );
22267 
22268 };
22269 #   else /* VBOX_WITH_GLUE */
22270 struct IEventVtbl
22271 {
22272     nsresult (*QueryInterface)(IEvent *pThis, const nsID *iid, void **resultp);
22273     nsrefcnt (*AddRef)(IEvent *pThis);
22274     nsrefcnt (*Release)(IEvent *pThis);
22275     nsresult (*GetType)(IEvent *pThis, PRUint32 *type);
22276 
22277     nsresult (*GetSource)(IEvent *pThis, IEventSource * *source);
22278 
22279     nsresult (*GetWaitable)(IEvent *pThis, PRBool *waitable);
22280 
22281     nsresult (*SetProcessed)(IEvent *pThis );
22282 
22283     nsresult (*WaitProcessed)(
22284         IEvent *pThis,
22285         PRInt32 timeout,
22286         PRBool * result
22287     );
22288 
22289 };
22290 #    define IEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22291 #    define IEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22292 #    define IEvent_Release(p) ((p)->lpVtbl->Release(p))
22293 #    define IEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22294 #    define IEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22295 #    define IEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22296 #    define IEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22297 #    define IEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22298 #    define IEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22299 #    define IEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22300 #    define IEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22301 #   endif /* VBOX_WITH_GLUE */
22302 
22303 interface IEvent
22304 {
22305 #   ifndef VBOX_WITH_GLUE
22306     struct IEvent_vtbl *vtbl;
22307 #   else /* VBOX_WITH_GLUE */
22308     CONST_VTBL struct IEventVtbl *lpVtbl;
22309 #   endif /* VBOX_WITH_GLUE */
22310 };
22311 /* End of struct IEvent declaration */
22312 
22313 
22314 /* Start of struct IReusableEvent declaration */
22315 #   define IREUSABLEEVENT_IID_STR "69bfb134-80f6-4266-8e20-16371f68fa25"
22316 #   define IREUSABLEEVENT_IID { \
22317     0x69bfb134, 0x80f6, 0x4266, \
22318     { 0x8e, 0x20, 0x16, 0x37, 0x1f, 0x68, 0xfa, 0x25 } \
22319 }
22320 /* COM compatibility */
22321 VBOX_EXTERN_CONST(nsIID, IID_IReusableEvent);
22322 #   ifndef VBOX_WITH_GLUE
22323 struct IReusableEvent_vtbl
22324 {
22325     struct IEvent_vtbl ievent;
22326 
22327     nsresult (*GetGeneration)(IReusableEvent *pThis, PRUint32 *generation);
22328 
22329     nsresult (*Reuse)(IReusableEvent *pThis );
22330 
22331 };
22332 #   else /* VBOX_WITH_GLUE */
22333 struct IReusableEventVtbl
22334 {
22335     nsresult (*QueryInterface)(IReusableEvent *pThis, const nsID *iid, void **resultp);
22336     nsrefcnt (*AddRef)(IReusableEvent *pThis);
22337     nsrefcnt (*Release)(IReusableEvent *pThis);
22338     nsresult (*GetType)(IReusableEvent *pThis, PRUint32 *type);
22339 
22340     nsresult (*GetSource)(IReusableEvent *pThis, IEventSource * *source);
22341 
22342     nsresult (*GetWaitable)(IReusableEvent *pThis, PRBool *waitable);
22343 
22344     nsresult (*SetProcessed)(IReusableEvent *pThis );
22345 
22346     nsresult (*WaitProcessed)(
22347         IReusableEvent *pThis,
22348         PRInt32 timeout,
22349         PRBool * result
22350     );
22351 
22352     nsresult (*GetGeneration)(IReusableEvent *pThis, PRUint32 *generation);
22353 
22354     nsresult (*Reuse)(IReusableEvent *pThis );
22355 
22356 };
22357 #    define IReusableEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22358 #    define IReusableEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22359 #    define IReusableEvent_Release(p) ((p)->lpVtbl->Release(p))
22360 #    define IReusableEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22361 #    define IReusableEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22362 #    define IReusableEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22363 #    define IReusableEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22364 #    define IReusableEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22365 #    define IReusableEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22366 #    define IReusableEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22367 #    define IReusableEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22368 #    define IReusableEvent_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
22369 #    define IReusableEvent_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
22370 #    define IReusableEvent_Reuse(p) ((p)->lpVtbl->Reuse(p))
22371 #   endif /* VBOX_WITH_GLUE */
22372 
22373 interface IReusableEvent
22374 {
22375 #   ifndef VBOX_WITH_GLUE
22376     struct IReusableEvent_vtbl *vtbl;
22377 #   else /* VBOX_WITH_GLUE */
22378     CONST_VTBL struct IReusableEventVtbl *lpVtbl;
22379 #   endif /* VBOX_WITH_GLUE */
22380 };
22381 /* End of struct IReusableEvent declaration */
22382 
22383 
22384 /* Start of struct IMachineEvent declaration */
22385 #   define IMACHINEEVENT_IID_STR "92ed7b1a-0d96-40ed-ae46-a564d484325e"
22386 #   define IMACHINEEVENT_IID { \
22387     0x92ed7b1a, 0x0d96, 0x40ed, \
22388     { 0xae, 0x46, 0xa5, 0x64, 0xd4, 0x84, 0x32, 0x5e } \
22389 }
22390 /* COM compatibility */
22391 VBOX_EXTERN_CONST(nsIID, IID_IMachineEvent);
22392 #   ifndef VBOX_WITH_GLUE
22393 struct IMachineEvent_vtbl
22394 {
22395     struct IEvent_vtbl ievent;
22396 
22397     nsresult (*GetMachineId)(IMachineEvent *pThis, PRUnichar * *machineId);
22398 
22399 };
22400 #   else /* VBOX_WITH_GLUE */
22401 struct IMachineEventVtbl
22402 {
22403     nsresult (*QueryInterface)(IMachineEvent *pThis, const nsID *iid, void **resultp);
22404     nsrefcnt (*AddRef)(IMachineEvent *pThis);
22405     nsrefcnt (*Release)(IMachineEvent *pThis);
22406     nsresult (*GetType)(IMachineEvent *pThis, PRUint32 *type);
22407 
22408     nsresult (*GetSource)(IMachineEvent *pThis, IEventSource * *source);
22409 
22410     nsresult (*GetWaitable)(IMachineEvent *pThis, PRBool *waitable);
22411 
22412     nsresult (*SetProcessed)(IMachineEvent *pThis );
22413 
22414     nsresult (*WaitProcessed)(
22415         IMachineEvent *pThis,
22416         PRInt32 timeout,
22417         PRBool * result
22418     );
22419 
22420     nsresult (*GetMachineId)(IMachineEvent *pThis, PRUnichar * *machineId);
22421 
22422 };
22423 #    define IMachineEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22424 #    define IMachineEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22425 #    define IMachineEvent_Release(p) ((p)->lpVtbl->Release(p))
22426 #    define IMachineEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22427 #    define IMachineEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22428 #    define IMachineEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22429 #    define IMachineEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22430 #    define IMachineEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22431 #    define IMachineEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22432 #    define IMachineEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22433 #    define IMachineEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22434 #    define IMachineEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22435 #    define IMachineEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22436 #   endif /* VBOX_WITH_GLUE */
22437 
22438 interface IMachineEvent
22439 {
22440 #   ifndef VBOX_WITH_GLUE
22441     struct IMachineEvent_vtbl *vtbl;
22442 #   else /* VBOX_WITH_GLUE */
22443     CONST_VTBL struct IMachineEventVtbl *lpVtbl;
22444 #   endif /* VBOX_WITH_GLUE */
22445 };
22446 /* End of struct IMachineEvent declaration */
22447 
22448 
22449 /* Start of struct IMachineStateChangedEvent declaration */
22450 #   define IMACHINESTATECHANGEDEVENT_IID_STR "5748F794-48DF-438D-85EB-98FFD70D18C9"
22451 #   define IMACHINESTATECHANGEDEVENT_IID { \
22452     0x5748F794, 0x48DF, 0x438D, \
22453     { 0x85, 0xEB, 0x98, 0xFF, 0xD7, 0x0D, 0x18, 0xC9 } \
22454 }
22455 /* COM compatibility */
22456 VBOX_EXTERN_CONST(nsIID, IID_IMachineStateChangedEvent);
22457 #   ifndef VBOX_WITH_GLUE
22458 struct IMachineStateChangedEvent_vtbl
22459 {
22460     struct IMachineEvent_vtbl imachineevent;
22461 
22462     nsresult (*GetState)(IMachineStateChangedEvent *pThis, PRUint32 *state);
22463 
22464 };
22465 #   else /* VBOX_WITH_GLUE */
22466 struct IMachineStateChangedEventVtbl
22467 {
22468     nsresult (*QueryInterface)(IMachineStateChangedEvent *pThis, const nsID *iid, void **resultp);
22469     nsrefcnt (*AddRef)(IMachineStateChangedEvent *pThis);
22470     nsrefcnt (*Release)(IMachineStateChangedEvent *pThis);
22471     nsresult (*GetType)(IMachineStateChangedEvent *pThis, PRUint32 *type);
22472 
22473     nsresult (*GetSource)(IMachineStateChangedEvent *pThis, IEventSource * *source);
22474 
22475     nsresult (*GetWaitable)(IMachineStateChangedEvent *pThis, PRBool *waitable);
22476 
22477     nsresult (*SetProcessed)(IMachineStateChangedEvent *pThis );
22478 
22479     nsresult (*WaitProcessed)(
22480         IMachineStateChangedEvent *pThis,
22481         PRInt32 timeout,
22482         PRBool * result
22483     );
22484 
22485     nsresult (*GetMachineId)(IMachineStateChangedEvent *pThis, PRUnichar * *machineId);
22486 
22487     nsresult (*GetState)(IMachineStateChangedEvent *pThis, PRUint32 *state);
22488 
22489 };
22490 #    define IMachineStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22491 #    define IMachineStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22492 #    define IMachineStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22493 #    define IMachineStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22494 #    define IMachineStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22495 #    define IMachineStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22496 #    define IMachineStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22497 #    define IMachineStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22498 #    define IMachineStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22499 #    define IMachineStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22500 #    define IMachineStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22501 #    define IMachineStateChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22502 #    define IMachineStateChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22503 #    define IMachineStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
22504 #    define IMachineStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
22505 #   endif /* VBOX_WITH_GLUE */
22506 
22507 interface IMachineStateChangedEvent
22508 {
22509 #   ifndef VBOX_WITH_GLUE
22510     struct IMachineStateChangedEvent_vtbl *vtbl;
22511 #   else /* VBOX_WITH_GLUE */
22512     CONST_VTBL struct IMachineStateChangedEventVtbl *lpVtbl;
22513 #   endif /* VBOX_WITH_GLUE */
22514 };
22515 /* End of struct IMachineStateChangedEvent declaration */
22516 
22517 
22518 /* Start of struct IMachineDataChangedEvent declaration */
22519 #   define IMACHINEDATACHANGEDEVENT_IID_STR "abe94809-2e88-4436-83d7-50f3e64d0503"
22520 #   define IMACHINEDATACHANGEDEVENT_IID { \
22521     0xabe94809, 0x2e88, 0x4436, \
22522     { 0x83, 0xd7, 0x50, 0xf3, 0xe6, 0x4d, 0x05, 0x03 } \
22523 }
22524 /* COM compatibility */
22525 VBOX_EXTERN_CONST(nsIID, IID_IMachineDataChangedEvent);
22526 #   ifndef VBOX_WITH_GLUE
22527 struct IMachineDataChangedEvent_vtbl
22528 {
22529     struct IMachineEvent_vtbl imachineevent;
22530 
22531     nsresult (*GetTemporary)(IMachineDataChangedEvent *pThis, PRBool *temporary);
22532 
22533 };
22534 #   else /* VBOX_WITH_GLUE */
22535 struct IMachineDataChangedEventVtbl
22536 {
22537     nsresult (*QueryInterface)(IMachineDataChangedEvent *pThis, const nsID *iid, void **resultp);
22538     nsrefcnt (*AddRef)(IMachineDataChangedEvent *pThis);
22539     nsrefcnt (*Release)(IMachineDataChangedEvent *pThis);
22540     nsresult (*GetType)(IMachineDataChangedEvent *pThis, PRUint32 *type);
22541 
22542     nsresult (*GetSource)(IMachineDataChangedEvent *pThis, IEventSource * *source);
22543 
22544     nsresult (*GetWaitable)(IMachineDataChangedEvent *pThis, PRBool *waitable);
22545 
22546     nsresult (*SetProcessed)(IMachineDataChangedEvent *pThis );
22547 
22548     nsresult (*WaitProcessed)(
22549         IMachineDataChangedEvent *pThis,
22550         PRInt32 timeout,
22551         PRBool * result
22552     );
22553 
22554     nsresult (*GetMachineId)(IMachineDataChangedEvent *pThis, PRUnichar * *machineId);
22555 
22556     nsresult (*GetTemporary)(IMachineDataChangedEvent *pThis, PRBool *temporary);
22557 
22558 };
22559 #    define IMachineDataChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22560 #    define IMachineDataChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22561 #    define IMachineDataChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22562 #    define IMachineDataChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22563 #    define IMachineDataChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22564 #    define IMachineDataChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22565 #    define IMachineDataChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22566 #    define IMachineDataChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22567 #    define IMachineDataChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22568 #    define IMachineDataChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22569 #    define IMachineDataChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22570 #    define IMachineDataChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22571 #    define IMachineDataChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22572 #    define IMachineDataChangedEvent_get_Temporary(p, aTemporary) ((p)->lpVtbl->GetTemporary(p, aTemporary))
22573 #    define IMachineDataChangedEvent_GetTemporary(p, aTemporary) ((p)->lpVtbl->GetTemporary(p, aTemporary))
22574 #   endif /* VBOX_WITH_GLUE */
22575 
22576 interface IMachineDataChangedEvent
22577 {
22578 #   ifndef VBOX_WITH_GLUE
22579     struct IMachineDataChangedEvent_vtbl *vtbl;
22580 #   else /* VBOX_WITH_GLUE */
22581     CONST_VTBL struct IMachineDataChangedEventVtbl *lpVtbl;
22582 #   endif /* VBOX_WITH_GLUE */
22583 };
22584 /* End of struct IMachineDataChangedEvent declaration */
22585 
22586 
22587 /* Start of struct IMediumRegisteredEvent declaration */
22588 #   define IMEDIUMREGISTEREDEVENT_IID_STR "53fac49a-b7f1-4a5a-a4ef-a11dd9c2a458"
22589 #   define IMEDIUMREGISTEREDEVENT_IID { \
22590     0x53fac49a, 0xb7f1, 0x4a5a, \
22591     { 0xa4, 0xef, 0xa1, 0x1d, 0xd9, 0xc2, 0xa4, 0x58 } \
22592 }
22593 /* COM compatibility */
22594 VBOX_EXTERN_CONST(nsIID, IID_IMediumRegisteredEvent);
22595 #   ifndef VBOX_WITH_GLUE
22596 struct IMediumRegisteredEvent_vtbl
22597 {
22598     struct IEvent_vtbl ievent;
22599 
22600     nsresult (*GetMediumId)(IMediumRegisteredEvent *pThis, PRUnichar * *mediumId);
22601 
22602     nsresult (*GetMediumType)(IMediumRegisteredEvent *pThis, PRUint32 *mediumType);
22603 
22604     nsresult (*GetRegistered)(IMediumRegisteredEvent *pThis, PRBool *registered);
22605 
22606 };
22607 #   else /* VBOX_WITH_GLUE */
22608 struct IMediumRegisteredEventVtbl
22609 {
22610     nsresult (*QueryInterface)(IMediumRegisteredEvent *pThis, const nsID *iid, void **resultp);
22611     nsrefcnt (*AddRef)(IMediumRegisteredEvent *pThis);
22612     nsrefcnt (*Release)(IMediumRegisteredEvent *pThis);
22613     nsresult (*GetType)(IMediumRegisteredEvent *pThis, PRUint32 *type);
22614 
22615     nsresult (*GetSource)(IMediumRegisteredEvent *pThis, IEventSource * *source);
22616 
22617     nsresult (*GetWaitable)(IMediumRegisteredEvent *pThis, PRBool *waitable);
22618 
22619     nsresult (*SetProcessed)(IMediumRegisteredEvent *pThis );
22620 
22621     nsresult (*WaitProcessed)(
22622         IMediumRegisteredEvent *pThis,
22623         PRInt32 timeout,
22624         PRBool * result
22625     );
22626 
22627     nsresult (*GetMediumId)(IMediumRegisteredEvent *pThis, PRUnichar * *mediumId);
22628 
22629     nsresult (*GetMediumType)(IMediumRegisteredEvent *pThis, PRUint32 *mediumType);
22630 
22631     nsresult (*GetRegistered)(IMediumRegisteredEvent *pThis, PRBool *registered);
22632 
22633 };
22634 #    define IMediumRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22635 #    define IMediumRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22636 #    define IMediumRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
22637 #    define IMediumRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22638 #    define IMediumRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22639 #    define IMediumRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22640 #    define IMediumRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22641 #    define IMediumRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22642 #    define IMediumRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22643 #    define IMediumRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22644 #    define IMediumRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22645 #    define IMediumRegisteredEvent_get_MediumId(p, aMediumId) ((p)->lpVtbl->GetMediumId(p, aMediumId))
22646 #    define IMediumRegisteredEvent_GetMediumId(p, aMediumId) ((p)->lpVtbl->GetMediumId(p, aMediumId))
22647 #    define IMediumRegisteredEvent_get_MediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
22648 #    define IMediumRegisteredEvent_GetMediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
22649 #    define IMediumRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
22650 #    define IMediumRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
22651 #   endif /* VBOX_WITH_GLUE */
22652 
22653 interface IMediumRegisteredEvent
22654 {
22655 #   ifndef VBOX_WITH_GLUE
22656     struct IMediumRegisteredEvent_vtbl *vtbl;
22657 #   else /* VBOX_WITH_GLUE */
22658     CONST_VTBL struct IMediumRegisteredEventVtbl *lpVtbl;
22659 #   endif /* VBOX_WITH_GLUE */
22660 };
22661 /* End of struct IMediumRegisteredEvent declaration */
22662 
22663 
22664 /* Start of struct IMediumConfigChangedEvent declaration */
22665 #   define IMEDIUMCONFIGCHANGEDEVENT_IID_STR "dd3e2654-a161-41f1-b583-4892f4a9d5d5"
22666 #   define IMEDIUMCONFIGCHANGEDEVENT_IID { \
22667     0xdd3e2654, 0xa161, 0x41f1, \
22668     { 0xb5, 0x83, 0x48, 0x92, 0xf4, 0xa9, 0xd5, 0xd5 } \
22669 }
22670 /* COM compatibility */
22671 VBOX_EXTERN_CONST(nsIID, IID_IMediumConfigChangedEvent);
22672 #   ifndef VBOX_WITH_GLUE
22673 struct IMediumConfigChangedEvent_vtbl
22674 {
22675     struct IEvent_vtbl ievent;
22676 
22677     nsresult (*GetMedium)(IMediumConfigChangedEvent *pThis, IMedium * *medium);
22678 
22679 };
22680 #   else /* VBOX_WITH_GLUE */
22681 struct IMediumConfigChangedEventVtbl
22682 {
22683     nsresult (*QueryInterface)(IMediumConfigChangedEvent *pThis, const nsID *iid, void **resultp);
22684     nsrefcnt (*AddRef)(IMediumConfigChangedEvent *pThis);
22685     nsrefcnt (*Release)(IMediumConfigChangedEvent *pThis);
22686     nsresult (*GetType)(IMediumConfigChangedEvent *pThis, PRUint32 *type);
22687 
22688     nsresult (*GetSource)(IMediumConfigChangedEvent *pThis, IEventSource * *source);
22689 
22690     nsresult (*GetWaitable)(IMediumConfigChangedEvent *pThis, PRBool *waitable);
22691 
22692     nsresult (*SetProcessed)(IMediumConfigChangedEvent *pThis );
22693 
22694     nsresult (*WaitProcessed)(
22695         IMediumConfigChangedEvent *pThis,
22696         PRInt32 timeout,
22697         PRBool * result
22698     );
22699 
22700     nsresult (*GetMedium)(IMediumConfigChangedEvent *pThis, IMedium * *medium);
22701 
22702 };
22703 #    define IMediumConfigChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22704 #    define IMediumConfigChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22705 #    define IMediumConfigChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22706 #    define IMediumConfigChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22707 #    define IMediumConfigChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22708 #    define IMediumConfigChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22709 #    define IMediumConfigChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22710 #    define IMediumConfigChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22711 #    define IMediumConfigChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22712 #    define IMediumConfigChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22713 #    define IMediumConfigChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22714 #    define IMediumConfigChangedEvent_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
22715 #    define IMediumConfigChangedEvent_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
22716 #   endif /* VBOX_WITH_GLUE */
22717 
22718 interface IMediumConfigChangedEvent
22719 {
22720 #   ifndef VBOX_WITH_GLUE
22721     struct IMediumConfigChangedEvent_vtbl *vtbl;
22722 #   else /* VBOX_WITH_GLUE */
22723     CONST_VTBL struct IMediumConfigChangedEventVtbl *lpVtbl;
22724 #   endif /* VBOX_WITH_GLUE */
22725 };
22726 /* End of struct IMediumConfigChangedEvent declaration */
22727 
22728 
22729 /* Start of struct IMachineRegisteredEvent declaration */
22730 #   define IMACHINEREGISTEREDEVENT_IID_STR "c354a762-3ff2-4f2e-8f09-07382ee25088"
22731 #   define IMACHINEREGISTEREDEVENT_IID { \
22732     0xc354a762, 0x3ff2, 0x4f2e, \
22733     { 0x8f, 0x09, 0x07, 0x38, 0x2e, 0xe2, 0x50, 0x88 } \
22734 }
22735 /* COM compatibility */
22736 VBOX_EXTERN_CONST(nsIID, IID_IMachineRegisteredEvent);
22737 #   ifndef VBOX_WITH_GLUE
22738 struct IMachineRegisteredEvent_vtbl
22739 {
22740     struct IMachineEvent_vtbl imachineevent;
22741 
22742     nsresult (*GetRegistered)(IMachineRegisteredEvent *pThis, PRBool *registered);
22743 
22744 };
22745 #   else /* VBOX_WITH_GLUE */
22746 struct IMachineRegisteredEventVtbl
22747 {
22748     nsresult (*QueryInterface)(IMachineRegisteredEvent *pThis, const nsID *iid, void **resultp);
22749     nsrefcnt (*AddRef)(IMachineRegisteredEvent *pThis);
22750     nsrefcnt (*Release)(IMachineRegisteredEvent *pThis);
22751     nsresult (*GetType)(IMachineRegisteredEvent *pThis, PRUint32 *type);
22752 
22753     nsresult (*GetSource)(IMachineRegisteredEvent *pThis, IEventSource * *source);
22754 
22755     nsresult (*GetWaitable)(IMachineRegisteredEvent *pThis, PRBool *waitable);
22756 
22757     nsresult (*SetProcessed)(IMachineRegisteredEvent *pThis );
22758 
22759     nsresult (*WaitProcessed)(
22760         IMachineRegisteredEvent *pThis,
22761         PRInt32 timeout,
22762         PRBool * result
22763     );
22764 
22765     nsresult (*GetMachineId)(IMachineRegisteredEvent *pThis, PRUnichar * *machineId);
22766 
22767     nsresult (*GetRegistered)(IMachineRegisteredEvent *pThis, PRBool *registered);
22768 
22769 };
22770 #    define IMachineRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22771 #    define IMachineRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22772 #    define IMachineRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
22773 #    define IMachineRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22774 #    define IMachineRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22775 #    define IMachineRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22776 #    define IMachineRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22777 #    define IMachineRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22778 #    define IMachineRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22779 #    define IMachineRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22780 #    define IMachineRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22781 #    define IMachineRegisteredEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22782 #    define IMachineRegisteredEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22783 #    define IMachineRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
22784 #    define IMachineRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
22785 #   endif /* VBOX_WITH_GLUE */
22786 
22787 interface IMachineRegisteredEvent
22788 {
22789 #   ifndef VBOX_WITH_GLUE
22790     struct IMachineRegisteredEvent_vtbl *vtbl;
22791 #   else /* VBOX_WITH_GLUE */
22792     CONST_VTBL struct IMachineRegisteredEventVtbl *lpVtbl;
22793 #   endif /* VBOX_WITH_GLUE */
22794 };
22795 /* End of struct IMachineRegisteredEvent declaration */
22796 
22797 
22798 /* Start of struct ISessionStateChangedEvent declaration */
22799 #   define ISESSIONSTATECHANGEDEVENT_IID_STR "714a3eef-799a-4489-86cd-fe8e45b2ff8e"
22800 #   define ISESSIONSTATECHANGEDEVENT_IID { \
22801     0x714a3eef, 0x799a, 0x4489, \
22802     { 0x86, 0xcd, 0xfe, 0x8e, 0x45, 0xb2, 0xff, 0x8e } \
22803 }
22804 /* COM compatibility */
22805 VBOX_EXTERN_CONST(nsIID, IID_ISessionStateChangedEvent);
22806 #   ifndef VBOX_WITH_GLUE
22807 struct ISessionStateChangedEvent_vtbl
22808 {
22809     struct IMachineEvent_vtbl imachineevent;
22810 
22811     nsresult (*GetState)(ISessionStateChangedEvent *pThis, PRUint32 *state);
22812 
22813 };
22814 #   else /* VBOX_WITH_GLUE */
22815 struct ISessionStateChangedEventVtbl
22816 {
22817     nsresult (*QueryInterface)(ISessionStateChangedEvent *pThis, const nsID *iid, void **resultp);
22818     nsrefcnt (*AddRef)(ISessionStateChangedEvent *pThis);
22819     nsrefcnt (*Release)(ISessionStateChangedEvent *pThis);
22820     nsresult (*GetType)(ISessionStateChangedEvent *pThis, PRUint32 *type);
22821 
22822     nsresult (*GetSource)(ISessionStateChangedEvent *pThis, IEventSource * *source);
22823 
22824     nsresult (*GetWaitable)(ISessionStateChangedEvent *pThis, PRBool *waitable);
22825 
22826     nsresult (*SetProcessed)(ISessionStateChangedEvent *pThis );
22827 
22828     nsresult (*WaitProcessed)(
22829         ISessionStateChangedEvent *pThis,
22830         PRInt32 timeout,
22831         PRBool * result
22832     );
22833 
22834     nsresult (*GetMachineId)(ISessionStateChangedEvent *pThis, PRUnichar * *machineId);
22835 
22836     nsresult (*GetState)(ISessionStateChangedEvent *pThis, PRUint32 *state);
22837 
22838 };
22839 #    define ISessionStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22840 #    define ISessionStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22841 #    define ISessionStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22842 #    define ISessionStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22843 #    define ISessionStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22844 #    define ISessionStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22845 #    define ISessionStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22846 #    define ISessionStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22847 #    define ISessionStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22848 #    define ISessionStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22849 #    define ISessionStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22850 #    define ISessionStateChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22851 #    define ISessionStateChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22852 #    define ISessionStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
22853 #    define ISessionStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
22854 #   endif /* VBOX_WITH_GLUE */
22855 
22856 interface ISessionStateChangedEvent
22857 {
22858 #   ifndef VBOX_WITH_GLUE
22859     struct ISessionStateChangedEvent_vtbl *vtbl;
22860 #   else /* VBOX_WITH_GLUE */
22861     CONST_VTBL struct ISessionStateChangedEventVtbl *lpVtbl;
22862 #   endif /* VBOX_WITH_GLUE */
22863 };
22864 /* End of struct ISessionStateChangedEvent declaration */
22865 
22866 
22867 /* Start of struct IGuestPropertyChangedEvent declaration */
22868 #   define IGUESTPROPERTYCHANGEDEVENT_IID_STR "3f63597a-26f1-4edb-8dd2-6bddd0912368"
22869 #   define IGUESTPROPERTYCHANGEDEVENT_IID { \
22870     0x3f63597a, 0x26f1, 0x4edb, \
22871     { 0x8d, 0xd2, 0x6b, 0xdd, 0xd0, 0x91, 0x23, 0x68 } \
22872 }
22873 /* COM compatibility */
22874 VBOX_EXTERN_CONST(nsIID, IID_IGuestPropertyChangedEvent);
22875 #   ifndef VBOX_WITH_GLUE
22876 struct IGuestPropertyChangedEvent_vtbl
22877 {
22878     struct IMachineEvent_vtbl imachineevent;
22879 
22880     nsresult (*GetName)(IGuestPropertyChangedEvent *pThis, PRUnichar * *name);
22881 
22882     nsresult (*GetValue)(IGuestPropertyChangedEvent *pThis, PRUnichar * *value);
22883 
22884     nsresult (*GetFlags)(IGuestPropertyChangedEvent *pThis, PRUnichar * *flags);
22885 
22886 };
22887 #   else /* VBOX_WITH_GLUE */
22888 struct IGuestPropertyChangedEventVtbl
22889 {
22890     nsresult (*QueryInterface)(IGuestPropertyChangedEvent *pThis, const nsID *iid, void **resultp);
22891     nsrefcnt (*AddRef)(IGuestPropertyChangedEvent *pThis);
22892     nsrefcnt (*Release)(IGuestPropertyChangedEvent *pThis);
22893     nsresult (*GetType)(IGuestPropertyChangedEvent *pThis, PRUint32 *type);
22894 
22895     nsresult (*GetSource)(IGuestPropertyChangedEvent *pThis, IEventSource * *source);
22896 
22897     nsresult (*GetWaitable)(IGuestPropertyChangedEvent *pThis, PRBool *waitable);
22898 
22899     nsresult (*SetProcessed)(IGuestPropertyChangedEvent *pThis );
22900 
22901     nsresult (*WaitProcessed)(
22902         IGuestPropertyChangedEvent *pThis,
22903         PRInt32 timeout,
22904         PRBool * result
22905     );
22906 
22907     nsresult (*GetMachineId)(IGuestPropertyChangedEvent *pThis, PRUnichar * *machineId);
22908 
22909     nsresult (*GetName)(IGuestPropertyChangedEvent *pThis, PRUnichar * *name);
22910 
22911     nsresult (*GetValue)(IGuestPropertyChangedEvent *pThis, PRUnichar * *value);
22912 
22913     nsresult (*GetFlags)(IGuestPropertyChangedEvent *pThis, PRUnichar * *flags);
22914 
22915 };
22916 #    define IGuestPropertyChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22917 #    define IGuestPropertyChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22918 #    define IGuestPropertyChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22919 #    define IGuestPropertyChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22920 #    define IGuestPropertyChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22921 #    define IGuestPropertyChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22922 #    define IGuestPropertyChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22923 #    define IGuestPropertyChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22924 #    define IGuestPropertyChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22925 #    define IGuestPropertyChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22926 #    define IGuestPropertyChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22927 #    define IGuestPropertyChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22928 #    define IGuestPropertyChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
22929 #    define IGuestPropertyChangedEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
22930 #    define IGuestPropertyChangedEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
22931 #    define IGuestPropertyChangedEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
22932 #    define IGuestPropertyChangedEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
22933 #    define IGuestPropertyChangedEvent_get_Flags(p, aFlags) ((p)->lpVtbl->GetFlags(p, aFlags))
22934 #    define IGuestPropertyChangedEvent_GetFlags(p, aFlags) ((p)->lpVtbl->GetFlags(p, aFlags))
22935 #   endif /* VBOX_WITH_GLUE */
22936 
22937 interface IGuestPropertyChangedEvent
22938 {
22939 #   ifndef VBOX_WITH_GLUE
22940     struct IGuestPropertyChangedEvent_vtbl *vtbl;
22941 #   else /* VBOX_WITH_GLUE */
22942     CONST_VTBL struct IGuestPropertyChangedEventVtbl *lpVtbl;
22943 #   endif /* VBOX_WITH_GLUE */
22944 };
22945 /* End of struct IGuestPropertyChangedEvent declaration */
22946 
22947 
22948 /* Start of struct ISnapshotEvent declaration */
22949 #   define ISNAPSHOTEVENT_IID_STR "21637b0e-34b8-42d3-acfb-7e96daf77c22"
22950 #   define ISNAPSHOTEVENT_IID { \
22951     0x21637b0e, 0x34b8, 0x42d3, \
22952     { 0xac, 0xfb, 0x7e, 0x96, 0xda, 0xf7, 0x7c, 0x22 } \
22953 }
22954 /* COM compatibility */
22955 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotEvent);
22956 #   ifndef VBOX_WITH_GLUE
22957 struct ISnapshotEvent_vtbl
22958 {
22959     struct IMachineEvent_vtbl imachineevent;
22960 
22961     nsresult (*GetSnapshotId)(ISnapshotEvent *pThis, PRUnichar * *snapshotId);
22962 
22963 };
22964 #   else /* VBOX_WITH_GLUE */
22965 struct ISnapshotEventVtbl
22966 {
22967     nsresult (*QueryInterface)(ISnapshotEvent *pThis, const nsID *iid, void **resultp);
22968     nsrefcnt (*AddRef)(ISnapshotEvent *pThis);
22969     nsrefcnt (*Release)(ISnapshotEvent *pThis);
22970     nsresult (*GetType)(ISnapshotEvent *pThis, PRUint32 *type);
22971 
22972     nsresult (*GetSource)(ISnapshotEvent *pThis, IEventSource * *source);
22973 
22974     nsresult (*GetWaitable)(ISnapshotEvent *pThis, PRBool *waitable);
22975 
22976     nsresult (*SetProcessed)(ISnapshotEvent *pThis );
22977 
22978     nsresult (*WaitProcessed)(
22979         ISnapshotEvent *pThis,
22980         PRInt32 timeout,
22981         PRBool * result
22982     );
22983 
22984     nsresult (*GetMachineId)(ISnapshotEvent *pThis, PRUnichar * *machineId);
22985 
22986     nsresult (*GetSnapshotId)(ISnapshotEvent *pThis, PRUnichar * *snapshotId);
22987 
22988 };
22989 #    define ISnapshotEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22990 #    define ISnapshotEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22991 #    define ISnapshotEvent_Release(p) ((p)->lpVtbl->Release(p))
22992 #    define ISnapshotEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22993 #    define ISnapshotEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22994 #    define ISnapshotEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22995 #    define ISnapshotEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22996 #    define ISnapshotEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22997 #    define ISnapshotEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22998 #    define ISnapshotEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22999 #    define ISnapshotEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23000 #    define ISnapshotEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23001 #    define ISnapshotEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23002 #    define ISnapshotEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23003 #    define ISnapshotEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23004 #   endif /* VBOX_WITH_GLUE */
23005 
23006 interface ISnapshotEvent
23007 {
23008 #   ifndef VBOX_WITH_GLUE
23009     struct ISnapshotEvent_vtbl *vtbl;
23010 #   else /* VBOX_WITH_GLUE */
23011     CONST_VTBL struct ISnapshotEventVtbl *lpVtbl;
23012 #   endif /* VBOX_WITH_GLUE */
23013 };
23014 /* End of struct ISnapshotEvent declaration */
23015 
23016 
23017 /* Start of struct ISnapshotTakenEvent declaration */
23018 #   define ISNAPSHOTTAKENEVENT_IID_STR "d27c0b3d-6038-422c-b45e-6d4a0503d9f1"
23019 #   define ISNAPSHOTTAKENEVENT_IID { \
23020     0xd27c0b3d, 0x6038, 0x422c, \
23021     { 0xb4, 0x5e, 0x6d, 0x4a, 0x05, 0x03, 0xd9, 0xf1 } \
23022 }
23023 /* COM compatibility */
23024 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotTakenEvent);
23025 #   ifndef VBOX_WITH_GLUE
23026 struct ISnapshotTakenEvent_vtbl
23027 {
23028     struct ISnapshotEvent_vtbl isnapshotevent;
23029 
23030     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotTakenEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23031 
23032 };
23033 #   else /* VBOX_WITH_GLUE */
23034 struct ISnapshotTakenEventVtbl
23035 {
23036     nsresult (*QueryInterface)(ISnapshotTakenEvent *pThis, const nsID *iid, void **resultp);
23037     nsrefcnt (*AddRef)(ISnapshotTakenEvent *pThis);
23038     nsrefcnt (*Release)(ISnapshotTakenEvent *pThis);
23039     nsresult (*GetType)(ISnapshotTakenEvent *pThis, PRUint32 *type);
23040 
23041     nsresult (*GetSource)(ISnapshotTakenEvent *pThis, IEventSource * *source);
23042 
23043     nsresult (*GetWaitable)(ISnapshotTakenEvent *pThis, PRBool *waitable);
23044 
23045     nsresult (*SetProcessed)(ISnapshotTakenEvent *pThis );
23046 
23047     nsresult (*WaitProcessed)(
23048         ISnapshotTakenEvent *pThis,
23049         PRInt32 timeout,
23050         PRBool * result
23051     );
23052 
23053     nsresult (*GetMachineId)(ISnapshotTakenEvent *pThis, PRUnichar * *machineId);
23054 
23055     nsresult (*GetSnapshotId)(ISnapshotTakenEvent *pThis, PRUnichar * *snapshotId);
23056 
23057     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotTakenEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23058 
23059 };
23060 #    define ISnapshotTakenEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23061 #    define ISnapshotTakenEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23062 #    define ISnapshotTakenEvent_Release(p) ((p)->lpVtbl->Release(p))
23063 #    define ISnapshotTakenEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23064 #    define ISnapshotTakenEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23065 #    define ISnapshotTakenEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23066 #    define ISnapshotTakenEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23067 #    define ISnapshotTakenEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23068 #    define ISnapshotTakenEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23069 #    define ISnapshotTakenEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23070 #    define ISnapshotTakenEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23071 #    define ISnapshotTakenEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23072 #    define ISnapshotTakenEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23073 #    define ISnapshotTakenEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23074 #    define ISnapshotTakenEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23075 #    define ISnapshotTakenEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23076 #    define ISnapshotTakenEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23077 #   endif /* VBOX_WITH_GLUE */
23078 
23079 interface ISnapshotTakenEvent
23080 {
23081 #   ifndef VBOX_WITH_GLUE
23082     struct ISnapshotTakenEvent_vtbl *vtbl;
23083 #   else /* VBOX_WITH_GLUE */
23084     CONST_VTBL struct ISnapshotTakenEventVtbl *lpVtbl;
23085 #   endif /* VBOX_WITH_GLUE */
23086 };
23087 /* End of struct ISnapshotTakenEvent declaration */
23088 
23089 
23090 /* Start of struct ISnapshotDeletedEvent declaration */
23091 #   define ISNAPSHOTDELETEDEVENT_IID_STR "c48f3401-4a9e-43f4-b7a7-54bd285e22f4"
23092 #   define ISNAPSHOTDELETEDEVENT_IID { \
23093     0xc48f3401, 0x4a9e, 0x43f4, \
23094     { 0xb7, 0xa7, 0x54, 0xbd, 0x28, 0x5e, 0x22, 0xf4 } \
23095 }
23096 /* COM compatibility */
23097 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotDeletedEvent);
23098 #   ifndef VBOX_WITH_GLUE
23099 struct ISnapshotDeletedEvent_vtbl
23100 {
23101     struct ISnapshotEvent_vtbl isnapshotevent;
23102 
23103     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotDeletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23104 
23105 };
23106 #   else /* VBOX_WITH_GLUE */
23107 struct ISnapshotDeletedEventVtbl
23108 {
23109     nsresult (*QueryInterface)(ISnapshotDeletedEvent *pThis, const nsID *iid, void **resultp);
23110     nsrefcnt (*AddRef)(ISnapshotDeletedEvent *pThis);
23111     nsrefcnt (*Release)(ISnapshotDeletedEvent *pThis);
23112     nsresult (*GetType)(ISnapshotDeletedEvent *pThis, PRUint32 *type);
23113 
23114     nsresult (*GetSource)(ISnapshotDeletedEvent *pThis, IEventSource * *source);
23115 
23116     nsresult (*GetWaitable)(ISnapshotDeletedEvent *pThis, PRBool *waitable);
23117 
23118     nsresult (*SetProcessed)(ISnapshotDeletedEvent *pThis );
23119 
23120     nsresult (*WaitProcessed)(
23121         ISnapshotDeletedEvent *pThis,
23122         PRInt32 timeout,
23123         PRBool * result
23124     );
23125 
23126     nsresult (*GetMachineId)(ISnapshotDeletedEvent *pThis, PRUnichar * *machineId);
23127 
23128     nsresult (*GetSnapshotId)(ISnapshotDeletedEvent *pThis, PRUnichar * *snapshotId);
23129 
23130     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotDeletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23131 
23132 };
23133 #    define ISnapshotDeletedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23134 #    define ISnapshotDeletedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23135 #    define ISnapshotDeletedEvent_Release(p) ((p)->lpVtbl->Release(p))
23136 #    define ISnapshotDeletedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23137 #    define ISnapshotDeletedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23138 #    define ISnapshotDeletedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23139 #    define ISnapshotDeletedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23140 #    define ISnapshotDeletedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23141 #    define ISnapshotDeletedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23142 #    define ISnapshotDeletedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23143 #    define ISnapshotDeletedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23144 #    define ISnapshotDeletedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23145 #    define ISnapshotDeletedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23146 #    define ISnapshotDeletedEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23147 #    define ISnapshotDeletedEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23148 #    define ISnapshotDeletedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23149 #    define ISnapshotDeletedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23150 #   endif /* VBOX_WITH_GLUE */
23151 
23152 interface ISnapshotDeletedEvent
23153 {
23154 #   ifndef VBOX_WITH_GLUE
23155     struct ISnapshotDeletedEvent_vtbl *vtbl;
23156 #   else /* VBOX_WITH_GLUE */
23157     CONST_VTBL struct ISnapshotDeletedEventVtbl *lpVtbl;
23158 #   endif /* VBOX_WITH_GLUE */
23159 };
23160 /* End of struct ISnapshotDeletedEvent declaration */
23161 
23162 
23163 /* Start of struct ISnapshotRestoredEvent declaration */
23164 #   define ISNAPSHOTRESTOREDEVENT_IID_STR "f4d803b4-9b2d-4377-bfe6-9702e881516b"
23165 #   define ISNAPSHOTRESTOREDEVENT_IID { \
23166     0xf4d803b4, 0x9b2d, 0x4377, \
23167     { 0xbf, 0xe6, 0x97, 0x02, 0xe8, 0x81, 0x51, 0x6b } \
23168 }
23169 /* COM compatibility */
23170 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotRestoredEvent);
23171 #   ifndef VBOX_WITH_GLUE
23172 struct ISnapshotRestoredEvent_vtbl
23173 {
23174     struct ISnapshotEvent_vtbl isnapshotevent;
23175 
23176     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotRestoredEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23177 
23178 };
23179 #   else /* VBOX_WITH_GLUE */
23180 struct ISnapshotRestoredEventVtbl
23181 {
23182     nsresult (*QueryInterface)(ISnapshotRestoredEvent *pThis, const nsID *iid, void **resultp);
23183     nsrefcnt (*AddRef)(ISnapshotRestoredEvent *pThis);
23184     nsrefcnt (*Release)(ISnapshotRestoredEvent *pThis);
23185     nsresult (*GetType)(ISnapshotRestoredEvent *pThis, PRUint32 *type);
23186 
23187     nsresult (*GetSource)(ISnapshotRestoredEvent *pThis, IEventSource * *source);
23188 
23189     nsresult (*GetWaitable)(ISnapshotRestoredEvent *pThis, PRBool *waitable);
23190 
23191     nsresult (*SetProcessed)(ISnapshotRestoredEvent *pThis );
23192 
23193     nsresult (*WaitProcessed)(
23194         ISnapshotRestoredEvent *pThis,
23195         PRInt32 timeout,
23196         PRBool * result
23197     );
23198 
23199     nsresult (*GetMachineId)(ISnapshotRestoredEvent *pThis, PRUnichar * *machineId);
23200 
23201     nsresult (*GetSnapshotId)(ISnapshotRestoredEvent *pThis, PRUnichar * *snapshotId);
23202 
23203     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotRestoredEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23204 
23205 };
23206 #    define ISnapshotRestoredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23207 #    define ISnapshotRestoredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23208 #    define ISnapshotRestoredEvent_Release(p) ((p)->lpVtbl->Release(p))
23209 #    define ISnapshotRestoredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23210 #    define ISnapshotRestoredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23211 #    define ISnapshotRestoredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23212 #    define ISnapshotRestoredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23213 #    define ISnapshotRestoredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23214 #    define ISnapshotRestoredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23215 #    define ISnapshotRestoredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23216 #    define ISnapshotRestoredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23217 #    define ISnapshotRestoredEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23218 #    define ISnapshotRestoredEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23219 #    define ISnapshotRestoredEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23220 #    define ISnapshotRestoredEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23221 #    define ISnapshotRestoredEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23222 #    define ISnapshotRestoredEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23223 #   endif /* VBOX_WITH_GLUE */
23224 
23225 interface ISnapshotRestoredEvent
23226 {
23227 #   ifndef VBOX_WITH_GLUE
23228     struct ISnapshotRestoredEvent_vtbl *vtbl;
23229 #   else /* VBOX_WITH_GLUE */
23230     CONST_VTBL struct ISnapshotRestoredEventVtbl *lpVtbl;
23231 #   endif /* VBOX_WITH_GLUE */
23232 };
23233 /* End of struct ISnapshotRestoredEvent declaration */
23234 
23235 
23236 /* Start of struct ISnapshotChangedEvent declaration */
23237 #   define ISNAPSHOTCHANGEDEVENT_IID_STR "07541941-8079-447a-a33e-47a69c7980db"
23238 #   define ISNAPSHOTCHANGEDEVENT_IID { \
23239     0x07541941, 0x8079, 0x447a, \
23240     { 0xa3, 0x3e, 0x47, 0xa6, 0x9c, 0x79, 0x80, 0xdb } \
23241 }
23242 /* COM compatibility */
23243 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotChangedEvent);
23244 #   ifndef VBOX_WITH_GLUE
23245 struct ISnapshotChangedEvent_vtbl
23246 {
23247     struct ISnapshotEvent_vtbl isnapshotevent;
23248 
23249     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23250 
23251 };
23252 #   else /* VBOX_WITH_GLUE */
23253 struct ISnapshotChangedEventVtbl
23254 {
23255     nsresult (*QueryInterface)(ISnapshotChangedEvent *pThis, const nsID *iid, void **resultp);
23256     nsrefcnt (*AddRef)(ISnapshotChangedEvent *pThis);
23257     nsrefcnt (*Release)(ISnapshotChangedEvent *pThis);
23258     nsresult (*GetType)(ISnapshotChangedEvent *pThis, PRUint32 *type);
23259 
23260     nsresult (*GetSource)(ISnapshotChangedEvent *pThis, IEventSource * *source);
23261 
23262     nsresult (*GetWaitable)(ISnapshotChangedEvent *pThis, PRBool *waitable);
23263 
23264     nsresult (*SetProcessed)(ISnapshotChangedEvent *pThis );
23265 
23266     nsresult (*WaitProcessed)(
23267         ISnapshotChangedEvent *pThis,
23268         PRInt32 timeout,
23269         PRBool * result
23270     );
23271 
23272     nsresult (*GetMachineId)(ISnapshotChangedEvent *pThis, PRUnichar * *machineId);
23273 
23274     nsresult (*GetSnapshotId)(ISnapshotChangedEvent *pThis, PRUnichar * *snapshotId);
23275 
23276     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23277 
23278 };
23279 #    define ISnapshotChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23280 #    define ISnapshotChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23281 #    define ISnapshotChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23282 #    define ISnapshotChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23283 #    define ISnapshotChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23284 #    define ISnapshotChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23285 #    define ISnapshotChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23286 #    define ISnapshotChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23287 #    define ISnapshotChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23288 #    define ISnapshotChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23289 #    define ISnapshotChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23290 #    define ISnapshotChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23291 #    define ISnapshotChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
23292 #    define ISnapshotChangedEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23293 #    define ISnapshotChangedEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
23294 #    define ISnapshotChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23295 #    define ISnapshotChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23296 #   endif /* VBOX_WITH_GLUE */
23297 
23298 interface ISnapshotChangedEvent
23299 {
23300 #   ifndef VBOX_WITH_GLUE
23301     struct ISnapshotChangedEvent_vtbl *vtbl;
23302 #   else /* VBOX_WITH_GLUE */
23303     CONST_VTBL struct ISnapshotChangedEventVtbl *lpVtbl;
23304 #   endif /* VBOX_WITH_GLUE */
23305 };
23306 /* End of struct ISnapshotChangedEvent declaration */
23307 
23308 
23309 /* Start of struct IMousePointerShapeChangedEvent declaration */
23310 #   define IMOUSEPOINTERSHAPECHANGEDEVENT_IID_STR "a6dcf6e8-416b-4181-8c4a-45ec95177aef"
23311 #   define IMOUSEPOINTERSHAPECHANGEDEVENT_IID { \
23312     0xa6dcf6e8, 0x416b, 0x4181, \
23313     { 0x8c, 0x4a, 0x45, 0xec, 0x95, 0x17, 0x7a, 0xef } \
23314 }
23315 /* COM compatibility */
23316 VBOX_EXTERN_CONST(nsIID, IID_IMousePointerShapeChangedEvent);
23317 #   ifndef VBOX_WITH_GLUE
23318 struct IMousePointerShapeChangedEvent_vtbl
23319 {
23320     struct IEvent_vtbl ievent;
23321 
23322     nsresult (*GetVisible)(IMousePointerShapeChangedEvent *pThis, PRBool *visible);
23323 
23324     nsresult (*GetAlpha)(IMousePointerShapeChangedEvent *pThis, PRBool *alpha);
23325 
23326     nsresult (*GetXhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *xhot);
23327 
23328     nsresult (*GetYhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *yhot);
23329 
23330     nsresult (*GetWidth)(IMousePointerShapeChangedEvent *pThis, PRUint32 *width);
23331 
23332     nsresult (*GetHeight)(IMousePointerShapeChangedEvent *pThis, PRUint32 *height);
23333 
23334     nsresult (*GetShape)(IMousePointerShapeChangedEvent *pThis, PRUint32 *shapeSize, PRUint8 **shape);
23335 
23336 };
23337 #   else /* VBOX_WITH_GLUE */
23338 struct IMousePointerShapeChangedEventVtbl
23339 {
23340     nsresult (*QueryInterface)(IMousePointerShapeChangedEvent *pThis, const nsID *iid, void **resultp);
23341     nsrefcnt (*AddRef)(IMousePointerShapeChangedEvent *pThis);
23342     nsrefcnt (*Release)(IMousePointerShapeChangedEvent *pThis);
23343     nsresult (*GetType)(IMousePointerShapeChangedEvent *pThis, PRUint32 *type);
23344 
23345     nsresult (*GetSource)(IMousePointerShapeChangedEvent *pThis, IEventSource * *source);
23346 
23347     nsresult (*GetWaitable)(IMousePointerShapeChangedEvent *pThis, PRBool *waitable);
23348 
23349     nsresult (*SetProcessed)(IMousePointerShapeChangedEvent *pThis );
23350 
23351     nsresult (*WaitProcessed)(
23352         IMousePointerShapeChangedEvent *pThis,
23353         PRInt32 timeout,
23354         PRBool * result
23355     );
23356 
23357     nsresult (*GetVisible)(IMousePointerShapeChangedEvent *pThis, PRBool *visible);
23358 
23359     nsresult (*GetAlpha)(IMousePointerShapeChangedEvent *pThis, PRBool *alpha);
23360 
23361     nsresult (*GetXhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *xhot);
23362 
23363     nsresult (*GetYhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *yhot);
23364 
23365     nsresult (*GetWidth)(IMousePointerShapeChangedEvent *pThis, PRUint32 *width);
23366 
23367     nsresult (*GetHeight)(IMousePointerShapeChangedEvent *pThis, PRUint32 *height);
23368 
23369     nsresult (*GetShape)(IMousePointerShapeChangedEvent *pThis, PRUint32 *shapeSize, PRUint8 **shape);
23370 
23371 };
23372 #    define IMousePointerShapeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23373 #    define IMousePointerShapeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23374 #    define IMousePointerShapeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23375 #    define IMousePointerShapeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23376 #    define IMousePointerShapeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23377 #    define IMousePointerShapeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23378 #    define IMousePointerShapeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23379 #    define IMousePointerShapeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23380 #    define IMousePointerShapeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23381 #    define IMousePointerShapeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23382 #    define IMousePointerShapeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23383 #    define IMousePointerShapeChangedEvent_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
23384 #    define IMousePointerShapeChangedEvent_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
23385 #    define IMousePointerShapeChangedEvent_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
23386 #    define IMousePointerShapeChangedEvent_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
23387 #    define IMousePointerShapeChangedEvent_get_Xhot(p, aXhot) ((p)->lpVtbl->GetXhot(p, aXhot))
23388 #    define IMousePointerShapeChangedEvent_GetXhot(p, aXhot) ((p)->lpVtbl->GetXhot(p, aXhot))
23389 #    define IMousePointerShapeChangedEvent_get_Yhot(p, aYhot) ((p)->lpVtbl->GetYhot(p, aYhot))
23390 #    define IMousePointerShapeChangedEvent_GetYhot(p, aYhot) ((p)->lpVtbl->GetYhot(p, aYhot))
23391 #    define IMousePointerShapeChangedEvent_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
23392 #    define IMousePointerShapeChangedEvent_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
23393 #    define IMousePointerShapeChangedEvent_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
23394 #    define IMousePointerShapeChangedEvent_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
23395 #    define IMousePointerShapeChangedEvent_get_Shape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
23396 #    define IMousePointerShapeChangedEvent_GetShape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
23397 #   endif /* VBOX_WITH_GLUE */
23398 
23399 interface IMousePointerShapeChangedEvent
23400 {
23401 #   ifndef VBOX_WITH_GLUE
23402     struct IMousePointerShapeChangedEvent_vtbl *vtbl;
23403 #   else /* VBOX_WITH_GLUE */
23404     CONST_VTBL struct IMousePointerShapeChangedEventVtbl *lpVtbl;
23405 #   endif /* VBOX_WITH_GLUE */
23406 };
23407 /* End of struct IMousePointerShapeChangedEvent declaration */
23408 
23409 
23410 /* Start of struct IMouseCapabilityChangedEvent declaration */
23411 #   define IMOUSECAPABILITYCHANGEDEVENT_IID_STR "70e7779a-e64a-4908-804e-371cad23a756"
23412 #   define IMOUSECAPABILITYCHANGEDEVENT_IID { \
23413     0x70e7779a, 0xe64a, 0x4908, \
23414     { 0x80, 0x4e, 0x37, 0x1c, 0xad, 0x23, 0xa7, 0x56 } \
23415 }
23416 /* COM compatibility */
23417 VBOX_EXTERN_CONST(nsIID, IID_IMouseCapabilityChangedEvent);
23418 #   ifndef VBOX_WITH_GLUE
23419 struct IMouseCapabilityChangedEvent_vtbl
23420 {
23421     struct IEvent_vtbl ievent;
23422 
23423     nsresult (*GetSupportsAbsolute)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsAbsolute);
23424 
23425     nsresult (*GetSupportsRelative)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsRelative);
23426 
23427     nsresult (*GetSupportsMultiTouch)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsMultiTouch);
23428 
23429     nsresult (*GetNeedsHostCursor)(IMouseCapabilityChangedEvent *pThis, PRBool *needsHostCursor);
23430 
23431 };
23432 #   else /* VBOX_WITH_GLUE */
23433 struct IMouseCapabilityChangedEventVtbl
23434 {
23435     nsresult (*QueryInterface)(IMouseCapabilityChangedEvent *pThis, const nsID *iid, void **resultp);
23436     nsrefcnt (*AddRef)(IMouseCapabilityChangedEvent *pThis);
23437     nsrefcnt (*Release)(IMouseCapabilityChangedEvent *pThis);
23438     nsresult (*GetType)(IMouseCapabilityChangedEvent *pThis, PRUint32 *type);
23439 
23440     nsresult (*GetSource)(IMouseCapabilityChangedEvent *pThis, IEventSource * *source);
23441 
23442     nsresult (*GetWaitable)(IMouseCapabilityChangedEvent *pThis, PRBool *waitable);
23443 
23444     nsresult (*SetProcessed)(IMouseCapabilityChangedEvent *pThis );
23445 
23446     nsresult (*WaitProcessed)(
23447         IMouseCapabilityChangedEvent *pThis,
23448         PRInt32 timeout,
23449         PRBool * result
23450     );
23451 
23452     nsresult (*GetSupportsAbsolute)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsAbsolute);
23453 
23454     nsresult (*GetSupportsRelative)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsRelative);
23455 
23456     nsresult (*GetSupportsMultiTouch)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsMultiTouch);
23457 
23458     nsresult (*GetNeedsHostCursor)(IMouseCapabilityChangedEvent *pThis, PRBool *needsHostCursor);
23459 
23460 };
23461 #    define IMouseCapabilityChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23462 #    define IMouseCapabilityChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23463 #    define IMouseCapabilityChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23464 #    define IMouseCapabilityChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23465 #    define IMouseCapabilityChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23466 #    define IMouseCapabilityChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23467 #    define IMouseCapabilityChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23468 #    define IMouseCapabilityChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23469 #    define IMouseCapabilityChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23470 #    define IMouseCapabilityChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23471 #    define IMouseCapabilityChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23472 #    define IMouseCapabilityChangedEvent_get_SupportsAbsolute(p, aSupportsAbsolute) ((p)->lpVtbl->GetSupportsAbsolute(p, aSupportsAbsolute))
23473 #    define IMouseCapabilityChangedEvent_GetSupportsAbsolute(p, aSupportsAbsolute) ((p)->lpVtbl->GetSupportsAbsolute(p, aSupportsAbsolute))
23474 #    define IMouseCapabilityChangedEvent_get_SupportsRelative(p, aSupportsRelative) ((p)->lpVtbl->GetSupportsRelative(p, aSupportsRelative))
23475 #    define IMouseCapabilityChangedEvent_GetSupportsRelative(p, aSupportsRelative) ((p)->lpVtbl->GetSupportsRelative(p, aSupportsRelative))
23476 #    define IMouseCapabilityChangedEvent_get_SupportsMultiTouch(p, aSupportsMultiTouch) ((p)->lpVtbl->GetSupportsMultiTouch(p, aSupportsMultiTouch))
23477 #    define IMouseCapabilityChangedEvent_GetSupportsMultiTouch(p, aSupportsMultiTouch) ((p)->lpVtbl->GetSupportsMultiTouch(p, aSupportsMultiTouch))
23478 #    define IMouseCapabilityChangedEvent_get_NeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
23479 #    define IMouseCapabilityChangedEvent_GetNeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
23480 #   endif /* VBOX_WITH_GLUE */
23481 
23482 interface IMouseCapabilityChangedEvent
23483 {
23484 #   ifndef VBOX_WITH_GLUE
23485     struct IMouseCapabilityChangedEvent_vtbl *vtbl;
23486 #   else /* VBOX_WITH_GLUE */
23487     CONST_VTBL struct IMouseCapabilityChangedEventVtbl *lpVtbl;
23488 #   endif /* VBOX_WITH_GLUE */
23489 };
23490 /* End of struct IMouseCapabilityChangedEvent declaration */
23491 
23492 
23493 /* Start of struct IKeyboardLedsChangedEvent declaration */
23494 #   define IKEYBOARDLEDSCHANGEDEVENT_IID_STR "6DDEF35E-4737-457B-99FC-BC52C851A44F"
23495 #   define IKEYBOARDLEDSCHANGEDEVENT_IID { \
23496     0x6DDEF35E, 0x4737, 0x457B, \
23497     { 0x99, 0xFC, 0xBC, 0x52, 0xC8, 0x51, 0xA4, 0x4F } \
23498 }
23499 /* COM compatibility */
23500 VBOX_EXTERN_CONST(nsIID, IID_IKeyboardLedsChangedEvent);
23501 #   ifndef VBOX_WITH_GLUE
23502 struct IKeyboardLedsChangedEvent_vtbl
23503 {
23504     struct IEvent_vtbl ievent;
23505 
23506     nsresult (*GetNumLock)(IKeyboardLedsChangedEvent *pThis, PRBool *numLock);
23507 
23508     nsresult (*GetCapsLock)(IKeyboardLedsChangedEvent *pThis, PRBool *capsLock);
23509 
23510     nsresult (*GetScrollLock)(IKeyboardLedsChangedEvent *pThis, PRBool *scrollLock);
23511 
23512 };
23513 #   else /* VBOX_WITH_GLUE */
23514 struct IKeyboardLedsChangedEventVtbl
23515 {
23516     nsresult (*QueryInterface)(IKeyboardLedsChangedEvent *pThis, const nsID *iid, void **resultp);
23517     nsrefcnt (*AddRef)(IKeyboardLedsChangedEvent *pThis);
23518     nsrefcnt (*Release)(IKeyboardLedsChangedEvent *pThis);
23519     nsresult (*GetType)(IKeyboardLedsChangedEvent *pThis, PRUint32 *type);
23520 
23521     nsresult (*GetSource)(IKeyboardLedsChangedEvent *pThis, IEventSource * *source);
23522 
23523     nsresult (*GetWaitable)(IKeyboardLedsChangedEvent *pThis, PRBool *waitable);
23524 
23525     nsresult (*SetProcessed)(IKeyboardLedsChangedEvent *pThis );
23526 
23527     nsresult (*WaitProcessed)(
23528         IKeyboardLedsChangedEvent *pThis,
23529         PRInt32 timeout,
23530         PRBool * result
23531     );
23532 
23533     nsresult (*GetNumLock)(IKeyboardLedsChangedEvent *pThis, PRBool *numLock);
23534 
23535     nsresult (*GetCapsLock)(IKeyboardLedsChangedEvent *pThis, PRBool *capsLock);
23536 
23537     nsresult (*GetScrollLock)(IKeyboardLedsChangedEvent *pThis, PRBool *scrollLock);
23538 
23539 };
23540 #    define IKeyboardLedsChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23541 #    define IKeyboardLedsChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23542 #    define IKeyboardLedsChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23543 #    define IKeyboardLedsChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23544 #    define IKeyboardLedsChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23545 #    define IKeyboardLedsChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23546 #    define IKeyboardLedsChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23547 #    define IKeyboardLedsChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23548 #    define IKeyboardLedsChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23549 #    define IKeyboardLedsChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23550 #    define IKeyboardLedsChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23551 #    define IKeyboardLedsChangedEvent_get_NumLock(p, aNumLock) ((p)->lpVtbl->GetNumLock(p, aNumLock))
23552 #    define IKeyboardLedsChangedEvent_GetNumLock(p, aNumLock) ((p)->lpVtbl->GetNumLock(p, aNumLock))
23553 #    define IKeyboardLedsChangedEvent_get_CapsLock(p, aCapsLock) ((p)->lpVtbl->GetCapsLock(p, aCapsLock))
23554 #    define IKeyboardLedsChangedEvent_GetCapsLock(p, aCapsLock) ((p)->lpVtbl->GetCapsLock(p, aCapsLock))
23555 #    define IKeyboardLedsChangedEvent_get_ScrollLock(p, aScrollLock) ((p)->lpVtbl->GetScrollLock(p, aScrollLock))
23556 #    define IKeyboardLedsChangedEvent_GetScrollLock(p, aScrollLock) ((p)->lpVtbl->GetScrollLock(p, aScrollLock))
23557 #   endif /* VBOX_WITH_GLUE */
23558 
23559 interface IKeyboardLedsChangedEvent
23560 {
23561 #   ifndef VBOX_WITH_GLUE
23562     struct IKeyboardLedsChangedEvent_vtbl *vtbl;
23563 #   else /* VBOX_WITH_GLUE */
23564     CONST_VTBL struct IKeyboardLedsChangedEventVtbl *lpVtbl;
23565 #   endif /* VBOX_WITH_GLUE */
23566 };
23567 /* End of struct IKeyboardLedsChangedEvent declaration */
23568 
23569 
23570 /* Start of struct IStateChangedEvent declaration */
23571 #   define ISTATECHANGEDEVENT_IID_STR "4376693C-CF37-453B-9289-3B0F521CAF27"
23572 #   define ISTATECHANGEDEVENT_IID { \
23573     0x4376693C, 0xCF37, 0x453B, \
23574     { 0x92, 0x89, 0x3B, 0x0F, 0x52, 0x1C, 0xAF, 0x27 } \
23575 }
23576 /* COM compatibility */
23577 VBOX_EXTERN_CONST(nsIID, IID_IStateChangedEvent);
23578 #   ifndef VBOX_WITH_GLUE
23579 struct IStateChangedEvent_vtbl
23580 {
23581     struct IEvent_vtbl ievent;
23582 
23583     nsresult (*GetState)(IStateChangedEvent *pThis, PRUint32 *state);
23584 
23585 };
23586 #   else /* VBOX_WITH_GLUE */
23587 struct IStateChangedEventVtbl
23588 {
23589     nsresult (*QueryInterface)(IStateChangedEvent *pThis, const nsID *iid, void **resultp);
23590     nsrefcnt (*AddRef)(IStateChangedEvent *pThis);
23591     nsrefcnt (*Release)(IStateChangedEvent *pThis);
23592     nsresult (*GetType)(IStateChangedEvent *pThis, PRUint32 *type);
23593 
23594     nsresult (*GetSource)(IStateChangedEvent *pThis, IEventSource * *source);
23595 
23596     nsresult (*GetWaitable)(IStateChangedEvent *pThis, PRBool *waitable);
23597 
23598     nsresult (*SetProcessed)(IStateChangedEvent *pThis );
23599 
23600     nsresult (*WaitProcessed)(
23601         IStateChangedEvent *pThis,
23602         PRInt32 timeout,
23603         PRBool * result
23604     );
23605 
23606     nsresult (*GetState)(IStateChangedEvent *pThis, PRUint32 *state);
23607 
23608 };
23609 #    define IStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23610 #    define IStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23611 #    define IStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23612 #    define IStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23613 #    define IStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23614 #    define IStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23615 #    define IStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23616 #    define IStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23617 #    define IStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23618 #    define IStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23619 #    define IStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23620 #    define IStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
23621 #    define IStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
23622 #   endif /* VBOX_WITH_GLUE */
23623 
23624 interface IStateChangedEvent
23625 {
23626 #   ifndef VBOX_WITH_GLUE
23627     struct IStateChangedEvent_vtbl *vtbl;
23628 #   else /* VBOX_WITH_GLUE */
23629     CONST_VTBL struct IStateChangedEventVtbl *lpVtbl;
23630 #   endif /* VBOX_WITH_GLUE */
23631 };
23632 /* End of struct IStateChangedEvent declaration */
23633 
23634 
23635 /* Start of struct IAdditionsStateChangedEvent declaration */
23636 #   define IADDITIONSSTATECHANGEDEVENT_IID_STR "D70F7915-DA7C-44C8-A7AC-9F173490446A"
23637 #   define IADDITIONSSTATECHANGEDEVENT_IID { \
23638     0xD70F7915, 0xDA7C, 0x44C8, \
23639     { 0xA7, 0xAC, 0x9F, 0x17, 0x34, 0x90, 0x44, 0x6A } \
23640 }
23641 /* COM compatibility */
23642 VBOX_EXTERN_CONST(nsIID, IID_IAdditionsStateChangedEvent);
23643 #   ifndef VBOX_WITH_GLUE
23644 struct IAdditionsStateChangedEvent_vtbl
23645 {
23646     struct IEvent_vtbl ievent;
23647 
23648     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IAdditionsStateChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23649 
23650 };
23651 #   else /* VBOX_WITH_GLUE */
23652 struct IAdditionsStateChangedEventVtbl
23653 {
23654     nsresult (*QueryInterface)(IAdditionsStateChangedEvent *pThis, const nsID *iid, void **resultp);
23655     nsrefcnt (*AddRef)(IAdditionsStateChangedEvent *pThis);
23656     nsrefcnt (*Release)(IAdditionsStateChangedEvent *pThis);
23657     nsresult (*GetType)(IAdditionsStateChangedEvent *pThis, PRUint32 *type);
23658 
23659     nsresult (*GetSource)(IAdditionsStateChangedEvent *pThis, IEventSource * *source);
23660 
23661     nsresult (*GetWaitable)(IAdditionsStateChangedEvent *pThis, PRBool *waitable);
23662 
23663     nsresult (*SetProcessed)(IAdditionsStateChangedEvent *pThis );
23664 
23665     nsresult (*WaitProcessed)(
23666         IAdditionsStateChangedEvent *pThis,
23667         PRInt32 timeout,
23668         PRBool * result
23669     );
23670 
23671     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IAdditionsStateChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23672 
23673 };
23674 #    define IAdditionsStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23675 #    define IAdditionsStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23676 #    define IAdditionsStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23677 #    define IAdditionsStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23678 #    define IAdditionsStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23679 #    define IAdditionsStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23680 #    define IAdditionsStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23681 #    define IAdditionsStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23682 #    define IAdditionsStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23683 #    define IAdditionsStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23684 #    define IAdditionsStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23685 #    define IAdditionsStateChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23686 #    define IAdditionsStateChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23687 #   endif /* VBOX_WITH_GLUE */
23688 
23689 interface IAdditionsStateChangedEvent
23690 {
23691 #   ifndef VBOX_WITH_GLUE
23692     struct IAdditionsStateChangedEvent_vtbl *vtbl;
23693 #   else /* VBOX_WITH_GLUE */
23694     CONST_VTBL struct IAdditionsStateChangedEventVtbl *lpVtbl;
23695 #   endif /* VBOX_WITH_GLUE */
23696 };
23697 /* End of struct IAdditionsStateChangedEvent declaration */
23698 
23699 
23700 /* Start of struct INetworkAdapterChangedEvent declaration */
23701 #   define INETWORKADAPTERCHANGEDEVENT_IID_STR "08889892-1EC6-4883-801D-77F56CFD0103"
23702 #   define INETWORKADAPTERCHANGEDEVENT_IID { \
23703     0x08889892, 0x1EC6, 0x4883, \
23704     { 0x80, 0x1D, 0x77, 0xF5, 0x6C, 0xFD, 0x01, 0x03 } \
23705 }
23706 /* COM compatibility */
23707 VBOX_EXTERN_CONST(nsIID, IID_INetworkAdapterChangedEvent);
23708 #   ifndef VBOX_WITH_GLUE
23709 struct INetworkAdapterChangedEvent_vtbl
23710 {
23711     struct IEvent_vtbl ievent;
23712 
23713     nsresult (*GetNetworkAdapter)(INetworkAdapterChangedEvent *pThis, INetworkAdapter * *networkAdapter);
23714 
23715 };
23716 #   else /* VBOX_WITH_GLUE */
23717 struct INetworkAdapterChangedEventVtbl
23718 {
23719     nsresult (*QueryInterface)(INetworkAdapterChangedEvent *pThis, const nsID *iid, void **resultp);
23720     nsrefcnt (*AddRef)(INetworkAdapterChangedEvent *pThis);
23721     nsrefcnt (*Release)(INetworkAdapterChangedEvent *pThis);
23722     nsresult (*GetType)(INetworkAdapterChangedEvent *pThis, PRUint32 *type);
23723 
23724     nsresult (*GetSource)(INetworkAdapterChangedEvent *pThis, IEventSource * *source);
23725 
23726     nsresult (*GetWaitable)(INetworkAdapterChangedEvent *pThis, PRBool *waitable);
23727 
23728     nsresult (*SetProcessed)(INetworkAdapterChangedEvent *pThis );
23729 
23730     nsresult (*WaitProcessed)(
23731         INetworkAdapterChangedEvent *pThis,
23732         PRInt32 timeout,
23733         PRBool * result
23734     );
23735 
23736     nsresult (*GetNetworkAdapter)(INetworkAdapterChangedEvent *pThis, INetworkAdapter * *networkAdapter);
23737 
23738 };
23739 #    define INetworkAdapterChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23740 #    define INetworkAdapterChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23741 #    define INetworkAdapterChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23742 #    define INetworkAdapterChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23743 #    define INetworkAdapterChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23744 #    define INetworkAdapterChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23745 #    define INetworkAdapterChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23746 #    define INetworkAdapterChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23747 #    define INetworkAdapterChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23748 #    define INetworkAdapterChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23749 #    define INetworkAdapterChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23750 #    define INetworkAdapterChangedEvent_get_NetworkAdapter(p, aNetworkAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aNetworkAdapter))
23751 #    define INetworkAdapterChangedEvent_GetNetworkAdapter(p, aNetworkAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aNetworkAdapter))
23752 #   endif /* VBOX_WITH_GLUE */
23753 
23754 interface INetworkAdapterChangedEvent
23755 {
23756 #   ifndef VBOX_WITH_GLUE
23757     struct INetworkAdapterChangedEvent_vtbl *vtbl;
23758 #   else /* VBOX_WITH_GLUE */
23759     CONST_VTBL struct INetworkAdapterChangedEventVtbl *lpVtbl;
23760 #   endif /* VBOX_WITH_GLUE */
23761 };
23762 /* End of struct INetworkAdapterChangedEvent declaration */
23763 
23764 
23765 /* Start of struct IAudioAdapterChangedEvent declaration */
23766 #   define IAUDIOADAPTERCHANGEDEVENT_IID_STR "D5ABC823-04D0-4DB6-8D66-DC2F033120E1"
23767 #   define IAUDIOADAPTERCHANGEDEVENT_IID { \
23768     0xD5ABC823, 0x04D0, 0x4DB6, \
23769     { 0x8D, 0x66, 0xDC, 0x2F, 0x03, 0x31, 0x20, 0xE1 } \
23770 }
23771 /* COM compatibility */
23772 VBOX_EXTERN_CONST(nsIID, IID_IAudioAdapterChangedEvent);
23773 #   ifndef VBOX_WITH_GLUE
23774 struct IAudioAdapterChangedEvent_vtbl
23775 {
23776     struct IEvent_vtbl ievent;
23777 
23778     nsresult (*GetAudioAdapter)(IAudioAdapterChangedEvent *pThis, IAudioAdapter * *audioAdapter);
23779 
23780 };
23781 #   else /* VBOX_WITH_GLUE */
23782 struct IAudioAdapterChangedEventVtbl
23783 {
23784     nsresult (*QueryInterface)(IAudioAdapterChangedEvent *pThis, const nsID *iid, void **resultp);
23785     nsrefcnt (*AddRef)(IAudioAdapterChangedEvent *pThis);
23786     nsrefcnt (*Release)(IAudioAdapterChangedEvent *pThis);
23787     nsresult (*GetType)(IAudioAdapterChangedEvent *pThis, PRUint32 *type);
23788 
23789     nsresult (*GetSource)(IAudioAdapterChangedEvent *pThis, IEventSource * *source);
23790 
23791     nsresult (*GetWaitable)(IAudioAdapterChangedEvent *pThis, PRBool *waitable);
23792 
23793     nsresult (*SetProcessed)(IAudioAdapterChangedEvent *pThis );
23794 
23795     nsresult (*WaitProcessed)(
23796         IAudioAdapterChangedEvent *pThis,
23797         PRInt32 timeout,
23798         PRBool * result
23799     );
23800 
23801     nsresult (*GetAudioAdapter)(IAudioAdapterChangedEvent *pThis, IAudioAdapter * *audioAdapter);
23802 
23803 };
23804 #    define IAudioAdapterChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23805 #    define IAudioAdapterChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23806 #    define IAudioAdapterChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23807 #    define IAudioAdapterChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23808 #    define IAudioAdapterChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23809 #    define IAudioAdapterChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23810 #    define IAudioAdapterChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23811 #    define IAudioAdapterChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23812 #    define IAudioAdapterChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23813 #    define IAudioAdapterChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23814 #    define IAudioAdapterChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23815 #    define IAudioAdapterChangedEvent_get_AudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
23816 #    define IAudioAdapterChangedEvent_GetAudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
23817 #   endif /* VBOX_WITH_GLUE */
23818 
23819 interface IAudioAdapterChangedEvent
23820 {
23821 #   ifndef VBOX_WITH_GLUE
23822     struct IAudioAdapterChangedEvent_vtbl *vtbl;
23823 #   else /* VBOX_WITH_GLUE */
23824     CONST_VTBL struct IAudioAdapterChangedEventVtbl *lpVtbl;
23825 #   endif /* VBOX_WITH_GLUE */
23826 };
23827 /* End of struct IAudioAdapterChangedEvent declaration */
23828 
23829 
23830 /* Start of struct ISerialPortChangedEvent declaration */
23831 #   define ISERIALPORTCHANGEDEVENT_IID_STR "3BA329DC-659C-488B-835C-4ECA7AE71C6C"
23832 #   define ISERIALPORTCHANGEDEVENT_IID { \
23833     0x3BA329DC, 0x659C, 0x488B, \
23834     { 0x83, 0x5C, 0x4E, 0xCA, 0x7A, 0xE7, 0x1C, 0x6C } \
23835 }
23836 /* COM compatibility */
23837 VBOX_EXTERN_CONST(nsIID, IID_ISerialPortChangedEvent);
23838 #   ifndef VBOX_WITH_GLUE
23839 struct ISerialPortChangedEvent_vtbl
23840 {
23841     struct IEvent_vtbl ievent;
23842 
23843     nsresult (*GetSerialPort)(ISerialPortChangedEvent *pThis, ISerialPort * *serialPort);
23844 
23845 };
23846 #   else /* VBOX_WITH_GLUE */
23847 struct ISerialPortChangedEventVtbl
23848 {
23849     nsresult (*QueryInterface)(ISerialPortChangedEvent *pThis, const nsID *iid, void **resultp);
23850     nsrefcnt (*AddRef)(ISerialPortChangedEvent *pThis);
23851     nsrefcnt (*Release)(ISerialPortChangedEvent *pThis);
23852     nsresult (*GetType)(ISerialPortChangedEvent *pThis, PRUint32 *type);
23853 
23854     nsresult (*GetSource)(ISerialPortChangedEvent *pThis, IEventSource * *source);
23855 
23856     nsresult (*GetWaitable)(ISerialPortChangedEvent *pThis, PRBool *waitable);
23857 
23858     nsresult (*SetProcessed)(ISerialPortChangedEvent *pThis );
23859 
23860     nsresult (*WaitProcessed)(
23861         ISerialPortChangedEvent *pThis,
23862         PRInt32 timeout,
23863         PRBool * result
23864     );
23865 
23866     nsresult (*GetSerialPort)(ISerialPortChangedEvent *pThis, ISerialPort * *serialPort);
23867 
23868 };
23869 #    define ISerialPortChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23870 #    define ISerialPortChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23871 #    define ISerialPortChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23872 #    define ISerialPortChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23873 #    define ISerialPortChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23874 #    define ISerialPortChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23875 #    define ISerialPortChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23876 #    define ISerialPortChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23877 #    define ISerialPortChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23878 #    define ISerialPortChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23879 #    define ISerialPortChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23880 #    define ISerialPortChangedEvent_get_SerialPort(p, aSerialPort) ((p)->lpVtbl->GetSerialPort(p, aSerialPort))
23881 #    define ISerialPortChangedEvent_GetSerialPort(p, aSerialPort) ((p)->lpVtbl->GetSerialPort(p, aSerialPort))
23882 #   endif /* VBOX_WITH_GLUE */
23883 
23884 interface ISerialPortChangedEvent
23885 {
23886 #   ifndef VBOX_WITH_GLUE
23887     struct ISerialPortChangedEvent_vtbl *vtbl;
23888 #   else /* VBOX_WITH_GLUE */
23889     CONST_VTBL struct ISerialPortChangedEventVtbl *lpVtbl;
23890 #   endif /* VBOX_WITH_GLUE */
23891 };
23892 /* End of struct ISerialPortChangedEvent declaration */
23893 
23894 
23895 /* Start of struct IParallelPortChangedEvent declaration */
23896 #   define IPARALLELPORTCHANGEDEVENT_IID_STR "813C99FC-9849-4F47-813E-24A75DC85615"
23897 #   define IPARALLELPORTCHANGEDEVENT_IID { \
23898     0x813C99FC, 0x9849, 0x4F47, \
23899     { 0x81, 0x3E, 0x24, 0xA7, 0x5D, 0xC8, 0x56, 0x15 } \
23900 }
23901 /* COM compatibility */
23902 VBOX_EXTERN_CONST(nsIID, IID_IParallelPortChangedEvent);
23903 #   ifndef VBOX_WITH_GLUE
23904 struct IParallelPortChangedEvent_vtbl
23905 {
23906     struct IEvent_vtbl ievent;
23907 
23908     nsresult (*GetParallelPort)(IParallelPortChangedEvent *pThis, IParallelPort * *parallelPort);
23909 
23910 };
23911 #   else /* VBOX_WITH_GLUE */
23912 struct IParallelPortChangedEventVtbl
23913 {
23914     nsresult (*QueryInterface)(IParallelPortChangedEvent *pThis, const nsID *iid, void **resultp);
23915     nsrefcnt (*AddRef)(IParallelPortChangedEvent *pThis);
23916     nsrefcnt (*Release)(IParallelPortChangedEvent *pThis);
23917     nsresult (*GetType)(IParallelPortChangedEvent *pThis, PRUint32 *type);
23918 
23919     nsresult (*GetSource)(IParallelPortChangedEvent *pThis, IEventSource * *source);
23920 
23921     nsresult (*GetWaitable)(IParallelPortChangedEvent *pThis, PRBool *waitable);
23922 
23923     nsresult (*SetProcessed)(IParallelPortChangedEvent *pThis );
23924 
23925     nsresult (*WaitProcessed)(
23926         IParallelPortChangedEvent *pThis,
23927         PRInt32 timeout,
23928         PRBool * result
23929     );
23930 
23931     nsresult (*GetParallelPort)(IParallelPortChangedEvent *pThis, IParallelPort * *parallelPort);
23932 
23933 };
23934 #    define IParallelPortChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23935 #    define IParallelPortChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23936 #    define IParallelPortChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23937 #    define IParallelPortChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23938 #    define IParallelPortChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23939 #    define IParallelPortChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23940 #    define IParallelPortChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23941 #    define IParallelPortChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23942 #    define IParallelPortChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23943 #    define IParallelPortChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23944 #    define IParallelPortChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23945 #    define IParallelPortChangedEvent_get_ParallelPort(p, aParallelPort) ((p)->lpVtbl->GetParallelPort(p, aParallelPort))
23946 #    define IParallelPortChangedEvent_GetParallelPort(p, aParallelPort) ((p)->lpVtbl->GetParallelPort(p, aParallelPort))
23947 #   endif /* VBOX_WITH_GLUE */
23948 
23949 interface IParallelPortChangedEvent
23950 {
23951 #   ifndef VBOX_WITH_GLUE
23952     struct IParallelPortChangedEvent_vtbl *vtbl;
23953 #   else /* VBOX_WITH_GLUE */
23954     CONST_VTBL struct IParallelPortChangedEventVtbl *lpVtbl;
23955 #   endif /* VBOX_WITH_GLUE */
23956 };
23957 /* End of struct IParallelPortChangedEvent declaration */
23958 
23959 
23960 /* Start of struct IStorageControllerChangedEvent declaration */
23961 #   define ISTORAGECONTROLLERCHANGEDEVENT_IID_STR "715212BF-DA59-426E-8230-3831FAA52C56"
23962 #   define ISTORAGECONTROLLERCHANGEDEVENT_IID { \
23963     0x715212BF, 0xDA59, 0x426E, \
23964     { 0x82, 0x30, 0x38, 0x31, 0xFA, 0xA5, 0x2C, 0x56 } \
23965 }
23966 /* COM compatibility */
23967 VBOX_EXTERN_CONST(nsIID, IID_IStorageControllerChangedEvent);
23968 #   ifndef VBOX_WITH_GLUE
23969 struct IStorageControllerChangedEvent_vtbl
23970 {
23971     struct IEvent_vtbl ievent;
23972 
23973     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IStorageControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23974 
23975 };
23976 #   else /* VBOX_WITH_GLUE */
23977 struct IStorageControllerChangedEventVtbl
23978 {
23979     nsresult (*QueryInterface)(IStorageControllerChangedEvent *pThis, const nsID *iid, void **resultp);
23980     nsrefcnt (*AddRef)(IStorageControllerChangedEvent *pThis);
23981     nsrefcnt (*Release)(IStorageControllerChangedEvent *pThis);
23982     nsresult (*GetType)(IStorageControllerChangedEvent *pThis, PRUint32 *type);
23983 
23984     nsresult (*GetSource)(IStorageControllerChangedEvent *pThis, IEventSource * *source);
23985 
23986     nsresult (*GetWaitable)(IStorageControllerChangedEvent *pThis, PRBool *waitable);
23987 
23988     nsresult (*SetProcessed)(IStorageControllerChangedEvent *pThis );
23989 
23990     nsresult (*WaitProcessed)(
23991         IStorageControllerChangedEvent *pThis,
23992         PRInt32 timeout,
23993         PRBool * result
23994     );
23995 
23996     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IStorageControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23997 
23998 };
23999 #    define IStorageControllerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24000 #    define IStorageControllerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24001 #    define IStorageControllerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24002 #    define IStorageControllerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24003 #    define IStorageControllerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24004 #    define IStorageControllerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24005 #    define IStorageControllerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24006 #    define IStorageControllerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24007 #    define IStorageControllerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24008 #    define IStorageControllerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24009 #    define IStorageControllerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24010 #    define IStorageControllerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24011 #    define IStorageControllerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24012 #   endif /* VBOX_WITH_GLUE */
24013 
24014 interface IStorageControllerChangedEvent
24015 {
24016 #   ifndef VBOX_WITH_GLUE
24017     struct IStorageControllerChangedEvent_vtbl *vtbl;
24018 #   else /* VBOX_WITH_GLUE */
24019     CONST_VTBL struct IStorageControllerChangedEventVtbl *lpVtbl;
24020 #   endif /* VBOX_WITH_GLUE */
24021 };
24022 /* End of struct IStorageControllerChangedEvent declaration */
24023 
24024 
24025 /* Start of struct IMediumChangedEvent declaration */
24026 #   define IMEDIUMCHANGEDEVENT_IID_STR "0FE2DA40-5637-472A-9736-72019EABD7DE"
24027 #   define IMEDIUMCHANGEDEVENT_IID { \
24028     0x0FE2DA40, 0x5637, 0x472A, \
24029     { 0x97, 0x36, 0x72, 0x01, 0x9E, 0xAB, 0xD7, 0xDE } \
24030 }
24031 /* COM compatibility */
24032 VBOX_EXTERN_CONST(nsIID, IID_IMediumChangedEvent);
24033 #   ifndef VBOX_WITH_GLUE
24034 struct IMediumChangedEvent_vtbl
24035 {
24036     struct IEvent_vtbl ievent;
24037 
24038     nsresult (*GetMediumAttachment)(IMediumChangedEvent *pThis, IMediumAttachment * *mediumAttachment);
24039 
24040 };
24041 #   else /* VBOX_WITH_GLUE */
24042 struct IMediumChangedEventVtbl
24043 {
24044     nsresult (*QueryInterface)(IMediumChangedEvent *pThis, const nsID *iid, void **resultp);
24045     nsrefcnt (*AddRef)(IMediumChangedEvent *pThis);
24046     nsrefcnt (*Release)(IMediumChangedEvent *pThis);
24047     nsresult (*GetType)(IMediumChangedEvent *pThis, PRUint32 *type);
24048 
24049     nsresult (*GetSource)(IMediumChangedEvent *pThis, IEventSource * *source);
24050 
24051     nsresult (*GetWaitable)(IMediumChangedEvent *pThis, PRBool *waitable);
24052 
24053     nsresult (*SetProcessed)(IMediumChangedEvent *pThis );
24054 
24055     nsresult (*WaitProcessed)(
24056         IMediumChangedEvent *pThis,
24057         PRInt32 timeout,
24058         PRBool * result
24059     );
24060 
24061     nsresult (*GetMediumAttachment)(IMediumChangedEvent *pThis, IMediumAttachment * *mediumAttachment);
24062 
24063 };
24064 #    define IMediumChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24065 #    define IMediumChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24066 #    define IMediumChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24067 #    define IMediumChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24068 #    define IMediumChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24069 #    define IMediumChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24070 #    define IMediumChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24071 #    define IMediumChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24072 #    define IMediumChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24073 #    define IMediumChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24074 #    define IMediumChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24075 #    define IMediumChangedEvent_get_MediumAttachment(p, aMediumAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aMediumAttachment))
24076 #    define IMediumChangedEvent_GetMediumAttachment(p, aMediumAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aMediumAttachment))
24077 #   endif /* VBOX_WITH_GLUE */
24078 
24079 interface IMediumChangedEvent
24080 {
24081 #   ifndef VBOX_WITH_GLUE
24082     struct IMediumChangedEvent_vtbl *vtbl;
24083 #   else /* VBOX_WITH_GLUE */
24084     CONST_VTBL struct IMediumChangedEventVtbl *lpVtbl;
24085 #   endif /* VBOX_WITH_GLUE */
24086 };
24087 /* End of struct IMediumChangedEvent declaration */
24088 
24089 
24090 /* Start of struct IClipboardModeChangedEvent declaration */
24091 #   define ICLIPBOARDMODECHANGEDEVENT_IID_STR "cac21692-7997-4595-a731-3a509db604e5"
24092 #   define ICLIPBOARDMODECHANGEDEVENT_IID { \
24093     0xcac21692, 0x7997, 0x4595, \
24094     { 0xa7, 0x31, 0x3a, 0x50, 0x9d, 0xb6, 0x04, 0xe5 } \
24095 }
24096 /* COM compatibility */
24097 VBOX_EXTERN_CONST(nsIID, IID_IClipboardModeChangedEvent);
24098 #   ifndef VBOX_WITH_GLUE
24099 struct IClipboardModeChangedEvent_vtbl
24100 {
24101     struct IEvent_vtbl ievent;
24102 
24103     nsresult (*GetClipboardMode)(IClipboardModeChangedEvent *pThis, PRUint32 *clipboardMode);
24104 
24105 };
24106 #   else /* VBOX_WITH_GLUE */
24107 struct IClipboardModeChangedEventVtbl
24108 {
24109     nsresult (*QueryInterface)(IClipboardModeChangedEvent *pThis, const nsID *iid, void **resultp);
24110     nsrefcnt (*AddRef)(IClipboardModeChangedEvent *pThis);
24111     nsrefcnt (*Release)(IClipboardModeChangedEvent *pThis);
24112     nsresult (*GetType)(IClipboardModeChangedEvent *pThis, PRUint32 *type);
24113 
24114     nsresult (*GetSource)(IClipboardModeChangedEvent *pThis, IEventSource * *source);
24115 
24116     nsresult (*GetWaitable)(IClipboardModeChangedEvent *pThis, PRBool *waitable);
24117 
24118     nsresult (*SetProcessed)(IClipboardModeChangedEvent *pThis );
24119 
24120     nsresult (*WaitProcessed)(
24121         IClipboardModeChangedEvent *pThis,
24122         PRInt32 timeout,
24123         PRBool * result
24124     );
24125 
24126     nsresult (*GetClipboardMode)(IClipboardModeChangedEvent *pThis, PRUint32 *clipboardMode);
24127 
24128 };
24129 #    define IClipboardModeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24130 #    define IClipboardModeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24131 #    define IClipboardModeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24132 #    define IClipboardModeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24133 #    define IClipboardModeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24134 #    define IClipboardModeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24135 #    define IClipboardModeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24136 #    define IClipboardModeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24137 #    define IClipboardModeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24138 #    define IClipboardModeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24139 #    define IClipboardModeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24140 #    define IClipboardModeChangedEvent_get_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
24141 #    define IClipboardModeChangedEvent_GetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
24142 #   endif /* VBOX_WITH_GLUE */
24143 
24144 interface IClipboardModeChangedEvent
24145 {
24146 #   ifndef VBOX_WITH_GLUE
24147     struct IClipboardModeChangedEvent_vtbl *vtbl;
24148 #   else /* VBOX_WITH_GLUE */
24149     CONST_VTBL struct IClipboardModeChangedEventVtbl *lpVtbl;
24150 #   endif /* VBOX_WITH_GLUE */
24151 };
24152 /* End of struct IClipboardModeChangedEvent declaration */
24153 
24154 
24155 /* Start of struct IDnDModeChangedEvent declaration */
24156 #   define IDNDMODECHANGEDEVENT_IID_STR "b55cf856-1f8b-4692-abb4-462429fae5e9"
24157 #   define IDNDMODECHANGEDEVENT_IID { \
24158     0xb55cf856, 0x1f8b, 0x4692, \
24159     { 0xab, 0xb4, 0x46, 0x24, 0x29, 0xfa, 0xe5, 0xe9 } \
24160 }
24161 /* COM compatibility */
24162 VBOX_EXTERN_CONST(nsIID, IID_IDnDModeChangedEvent);
24163 #   ifndef VBOX_WITH_GLUE
24164 struct IDnDModeChangedEvent_vtbl
24165 {
24166     struct IEvent_vtbl ievent;
24167 
24168     nsresult (*GetDndMode)(IDnDModeChangedEvent *pThis, PRUint32 *dndMode);
24169 
24170 };
24171 #   else /* VBOX_WITH_GLUE */
24172 struct IDnDModeChangedEventVtbl
24173 {
24174     nsresult (*QueryInterface)(IDnDModeChangedEvent *pThis, const nsID *iid, void **resultp);
24175     nsrefcnt (*AddRef)(IDnDModeChangedEvent *pThis);
24176     nsrefcnt (*Release)(IDnDModeChangedEvent *pThis);
24177     nsresult (*GetType)(IDnDModeChangedEvent *pThis, PRUint32 *type);
24178 
24179     nsresult (*GetSource)(IDnDModeChangedEvent *pThis, IEventSource * *source);
24180 
24181     nsresult (*GetWaitable)(IDnDModeChangedEvent *pThis, PRBool *waitable);
24182 
24183     nsresult (*SetProcessed)(IDnDModeChangedEvent *pThis );
24184 
24185     nsresult (*WaitProcessed)(
24186         IDnDModeChangedEvent *pThis,
24187         PRInt32 timeout,
24188         PRBool * result
24189     );
24190 
24191     nsresult (*GetDndMode)(IDnDModeChangedEvent *pThis, PRUint32 *dndMode);
24192 
24193 };
24194 #    define IDnDModeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24195 #    define IDnDModeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24196 #    define IDnDModeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24197 #    define IDnDModeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24198 #    define IDnDModeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24199 #    define IDnDModeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24200 #    define IDnDModeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24201 #    define IDnDModeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24202 #    define IDnDModeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24203 #    define IDnDModeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24204 #    define IDnDModeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24205 #    define IDnDModeChangedEvent_get_DndMode(p, aDndMode) ((p)->lpVtbl->GetDndMode(p, aDndMode))
24206 #    define IDnDModeChangedEvent_GetDndMode(p, aDndMode) ((p)->lpVtbl->GetDndMode(p, aDndMode))
24207 #   endif /* VBOX_WITH_GLUE */
24208 
24209 interface IDnDModeChangedEvent
24210 {
24211 #   ifndef VBOX_WITH_GLUE
24212     struct IDnDModeChangedEvent_vtbl *vtbl;
24213 #   else /* VBOX_WITH_GLUE */
24214     CONST_VTBL struct IDnDModeChangedEventVtbl *lpVtbl;
24215 #   endif /* VBOX_WITH_GLUE */
24216 };
24217 /* End of struct IDnDModeChangedEvent declaration */
24218 
24219 
24220 /* Start of struct ICPUChangedEvent declaration */
24221 #   define ICPUCHANGEDEVENT_IID_STR "4da2dec7-71b2-4817-9a64-4ed12c17388e"
24222 #   define ICPUCHANGEDEVENT_IID { \
24223     0x4da2dec7, 0x71b2, 0x4817, \
24224     { 0x9a, 0x64, 0x4e, 0xd1, 0x2c, 0x17, 0x38, 0x8e } \
24225 }
24226 /* COM compatibility */
24227 VBOX_EXTERN_CONST(nsIID, IID_ICPUChangedEvent);
24228 #   ifndef VBOX_WITH_GLUE
24229 struct ICPUChangedEvent_vtbl
24230 {
24231     struct IEvent_vtbl ievent;
24232 
24233     nsresult (*GetCPU)(ICPUChangedEvent *pThis, PRUint32 *CPU);
24234 
24235     nsresult (*GetAdd)(ICPUChangedEvent *pThis, PRBool *add);
24236 
24237 };
24238 #   else /* VBOX_WITH_GLUE */
24239 struct ICPUChangedEventVtbl
24240 {
24241     nsresult (*QueryInterface)(ICPUChangedEvent *pThis, const nsID *iid, void **resultp);
24242     nsrefcnt (*AddRef)(ICPUChangedEvent *pThis);
24243     nsrefcnt (*Release)(ICPUChangedEvent *pThis);
24244     nsresult (*GetType)(ICPUChangedEvent *pThis, PRUint32 *type);
24245 
24246     nsresult (*GetSource)(ICPUChangedEvent *pThis, IEventSource * *source);
24247 
24248     nsresult (*GetWaitable)(ICPUChangedEvent *pThis, PRBool *waitable);
24249 
24250     nsresult (*SetProcessed)(ICPUChangedEvent *pThis );
24251 
24252     nsresult (*WaitProcessed)(
24253         ICPUChangedEvent *pThis,
24254         PRInt32 timeout,
24255         PRBool * result
24256     );
24257 
24258     nsresult (*GetCPU)(ICPUChangedEvent *pThis, PRUint32 *CPU);
24259 
24260     nsresult (*GetAdd)(ICPUChangedEvent *pThis, PRBool *add);
24261 
24262 };
24263 #    define ICPUChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24264 #    define ICPUChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24265 #    define ICPUChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24266 #    define ICPUChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24267 #    define ICPUChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24268 #    define ICPUChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24269 #    define ICPUChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24270 #    define ICPUChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24271 #    define ICPUChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24272 #    define ICPUChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24273 #    define ICPUChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24274 #    define ICPUChangedEvent_get_CPU(p, aCPU) ((p)->lpVtbl->GetCPU(p, aCPU))
24275 #    define ICPUChangedEvent_GetCPU(p, aCPU) ((p)->lpVtbl->GetCPU(p, aCPU))
24276 #    define ICPUChangedEvent_get_Add(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
24277 #    define ICPUChangedEvent_GetAdd(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
24278 #   endif /* VBOX_WITH_GLUE */
24279 
24280 interface ICPUChangedEvent
24281 {
24282 #   ifndef VBOX_WITH_GLUE
24283     struct ICPUChangedEvent_vtbl *vtbl;
24284 #   else /* VBOX_WITH_GLUE */
24285     CONST_VTBL struct ICPUChangedEventVtbl *lpVtbl;
24286 #   endif /* VBOX_WITH_GLUE */
24287 };
24288 /* End of struct ICPUChangedEvent declaration */
24289 
24290 
24291 /* Start of struct ICPUExecutionCapChangedEvent declaration */
24292 #   define ICPUEXECUTIONCAPCHANGEDEVENT_IID_STR "dfa7e4f5-b4a4-44ce-85a8-127ac5eb59dc"
24293 #   define ICPUEXECUTIONCAPCHANGEDEVENT_IID { \
24294     0xdfa7e4f5, 0xb4a4, 0x44ce, \
24295     { 0x85, 0xa8, 0x12, 0x7a, 0xc5, 0xeb, 0x59, 0xdc } \
24296 }
24297 /* COM compatibility */
24298 VBOX_EXTERN_CONST(nsIID, IID_ICPUExecutionCapChangedEvent);
24299 #   ifndef VBOX_WITH_GLUE
24300 struct ICPUExecutionCapChangedEvent_vtbl
24301 {
24302     struct IEvent_vtbl ievent;
24303 
24304     nsresult (*GetExecutionCap)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *executionCap);
24305 
24306 };
24307 #   else /* VBOX_WITH_GLUE */
24308 struct ICPUExecutionCapChangedEventVtbl
24309 {
24310     nsresult (*QueryInterface)(ICPUExecutionCapChangedEvent *pThis, const nsID *iid, void **resultp);
24311     nsrefcnt (*AddRef)(ICPUExecutionCapChangedEvent *pThis);
24312     nsrefcnt (*Release)(ICPUExecutionCapChangedEvent *pThis);
24313     nsresult (*GetType)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *type);
24314 
24315     nsresult (*GetSource)(ICPUExecutionCapChangedEvent *pThis, IEventSource * *source);
24316 
24317     nsresult (*GetWaitable)(ICPUExecutionCapChangedEvent *pThis, PRBool *waitable);
24318 
24319     nsresult (*SetProcessed)(ICPUExecutionCapChangedEvent *pThis );
24320 
24321     nsresult (*WaitProcessed)(
24322         ICPUExecutionCapChangedEvent *pThis,
24323         PRInt32 timeout,
24324         PRBool * result
24325     );
24326 
24327     nsresult (*GetExecutionCap)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *executionCap);
24328 
24329 };
24330 #    define ICPUExecutionCapChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24331 #    define ICPUExecutionCapChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24332 #    define ICPUExecutionCapChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24333 #    define ICPUExecutionCapChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24334 #    define ICPUExecutionCapChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24335 #    define ICPUExecutionCapChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24336 #    define ICPUExecutionCapChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24337 #    define ICPUExecutionCapChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24338 #    define ICPUExecutionCapChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24339 #    define ICPUExecutionCapChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24340 #    define ICPUExecutionCapChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24341 #    define ICPUExecutionCapChangedEvent_get_ExecutionCap(p, aExecutionCap) ((p)->lpVtbl->GetExecutionCap(p, aExecutionCap))
24342 #    define ICPUExecutionCapChangedEvent_GetExecutionCap(p, aExecutionCap) ((p)->lpVtbl->GetExecutionCap(p, aExecutionCap))
24343 #   endif /* VBOX_WITH_GLUE */
24344 
24345 interface ICPUExecutionCapChangedEvent
24346 {
24347 #   ifndef VBOX_WITH_GLUE
24348     struct ICPUExecutionCapChangedEvent_vtbl *vtbl;
24349 #   else /* VBOX_WITH_GLUE */
24350     CONST_VTBL struct ICPUExecutionCapChangedEventVtbl *lpVtbl;
24351 #   endif /* VBOX_WITH_GLUE */
24352 };
24353 /* End of struct ICPUExecutionCapChangedEvent declaration */
24354 
24355 
24356 /* Start of struct IGuestKeyboardEvent declaration */
24357 #   define IGUESTKEYBOARDEVENT_IID_STR "88394258-7006-40d4-b339-472ee3801844"
24358 #   define IGUESTKEYBOARDEVENT_IID { \
24359     0x88394258, 0x7006, 0x40d4, \
24360     { 0xb3, 0x39, 0x47, 0x2e, 0xe3, 0x80, 0x18, 0x44 } \
24361 }
24362 /* COM compatibility */
24363 VBOX_EXTERN_CONST(nsIID, IID_IGuestKeyboardEvent);
24364 #   ifndef VBOX_WITH_GLUE
24365 struct IGuestKeyboardEvent_vtbl
24366 {
24367     struct IEvent_vtbl ievent;
24368 
24369     nsresult (*GetScancodes)(IGuestKeyboardEvent *pThis, PRUint32 *scancodesSize, PRInt32 **scancodes);
24370 
24371 };
24372 #   else /* VBOX_WITH_GLUE */
24373 struct IGuestKeyboardEventVtbl
24374 {
24375     nsresult (*QueryInterface)(IGuestKeyboardEvent *pThis, const nsID *iid, void **resultp);
24376     nsrefcnt (*AddRef)(IGuestKeyboardEvent *pThis);
24377     nsrefcnt (*Release)(IGuestKeyboardEvent *pThis);
24378     nsresult (*GetType)(IGuestKeyboardEvent *pThis, PRUint32 *type);
24379 
24380     nsresult (*GetSource)(IGuestKeyboardEvent *pThis, IEventSource * *source);
24381 
24382     nsresult (*GetWaitable)(IGuestKeyboardEvent *pThis, PRBool *waitable);
24383 
24384     nsresult (*SetProcessed)(IGuestKeyboardEvent *pThis );
24385 
24386     nsresult (*WaitProcessed)(
24387         IGuestKeyboardEvent *pThis,
24388         PRInt32 timeout,
24389         PRBool * result
24390     );
24391 
24392     nsresult (*GetScancodes)(IGuestKeyboardEvent *pThis, PRUint32 *scancodesSize, PRInt32 **scancodes);
24393 
24394 };
24395 #    define IGuestKeyboardEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24396 #    define IGuestKeyboardEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24397 #    define IGuestKeyboardEvent_Release(p) ((p)->lpVtbl->Release(p))
24398 #    define IGuestKeyboardEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24399 #    define IGuestKeyboardEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24400 #    define IGuestKeyboardEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24401 #    define IGuestKeyboardEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24402 #    define IGuestKeyboardEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24403 #    define IGuestKeyboardEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24404 #    define IGuestKeyboardEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24405 #    define IGuestKeyboardEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24406 #    define IGuestKeyboardEvent_get_Scancodes(p, aScancodes) ((p)->lpVtbl->GetScancodes(p, aScancodes))
24407 #    define IGuestKeyboardEvent_GetScancodes(p, aScancodes) ((p)->lpVtbl->GetScancodes(p, aScancodes))
24408 #   endif /* VBOX_WITH_GLUE */
24409 
24410 interface IGuestKeyboardEvent
24411 {
24412 #   ifndef VBOX_WITH_GLUE
24413     struct IGuestKeyboardEvent_vtbl *vtbl;
24414 #   else /* VBOX_WITH_GLUE */
24415     CONST_VTBL struct IGuestKeyboardEventVtbl *lpVtbl;
24416 #   endif /* VBOX_WITH_GLUE */
24417 };
24418 /* End of struct IGuestKeyboardEvent declaration */
24419 
24420 
24421 /* Start of struct IGuestMouseEvent declaration */
24422 #   define IGUESTMOUSEEVENT_IID_STR "179f8647-319c-4e7e-8150-c5837bd265f6"
24423 #   define IGUESTMOUSEEVENT_IID { \
24424     0x179f8647, 0x319c, 0x4e7e, \
24425     { 0x81, 0x50, 0xc5, 0x83, 0x7b, 0xd2, 0x65, 0xf6 } \
24426 }
24427 /* COM compatibility */
24428 VBOX_EXTERN_CONST(nsIID, IID_IGuestMouseEvent);
24429 #   ifndef VBOX_WITH_GLUE
24430 struct IGuestMouseEvent_vtbl
24431 {
24432     struct IReusableEvent_vtbl ireusableevent;
24433 
24434     nsresult (*GetMode)(IGuestMouseEvent *pThis, PRUint32 *mode);
24435 
24436     nsresult (*GetX)(IGuestMouseEvent *pThis, PRInt32 *x);
24437 
24438     nsresult (*GetY)(IGuestMouseEvent *pThis, PRInt32 *y);
24439 
24440     nsresult (*GetZ)(IGuestMouseEvent *pThis, PRInt32 *z);
24441 
24442     nsresult (*GetW)(IGuestMouseEvent *pThis, PRInt32 *w);
24443 
24444     nsresult (*GetButtons)(IGuestMouseEvent *pThis, PRInt32 *buttons);
24445 
24446 };
24447 #   else /* VBOX_WITH_GLUE */
24448 struct IGuestMouseEventVtbl
24449 {
24450     nsresult (*QueryInterface)(IGuestMouseEvent *pThis, const nsID *iid, void **resultp);
24451     nsrefcnt (*AddRef)(IGuestMouseEvent *pThis);
24452     nsrefcnt (*Release)(IGuestMouseEvent *pThis);
24453     nsresult (*GetType)(IGuestMouseEvent *pThis, PRUint32 *type);
24454 
24455     nsresult (*GetSource)(IGuestMouseEvent *pThis, IEventSource * *source);
24456 
24457     nsresult (*GetWaitable)(IGuestMouseEvent *pThis, PRBool *waitable);
24458 
24459     nsresult (*SetProcessed)(IGuestMouseEvent *pThis );
24460 
24461     nsresult (*WaitProcessed)(
24462         IGuestMouseEvent *pThis,
24463         PRInt32 timeout,
24464         PRBool * result
24465     );
24466 
24467     nsresult (*GetGeneration)(IGuestMouseEvent *pThis, PRUint32 *generation);
24468 
24469     nsresult (*Reuse)(IGuestMouseEvent *pThis );
24470 
24471     nsresult (*GetMode)(IGuestMouseEvent *pThis, PRUint32 *mode);
24472 
24473     nsresult (*GetX)(IGuestMouseEvent *pThis, PRInt32 *x);
24474 
24475     nsresult (*GetY)(IGuestMouseEvent *pThis, PRInt32 *y);
24476 
24477     nsresult (*GetZ)(IGuestMouseEvent *pThis, PRInt32 *z);
24478 
24479     nsresult (*GetW)(IGuestMouseEvent *pThis, PRInt32 *w);
24480 
24481     nsresult (*GetButtons)(IGuestMouseEvent *pThis, PRInt32 *buttons);
24482 
24483 };
24484 #    define IGuestMouseEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24485 #    define IGuestMouseEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24486 #    define IGuestMouseEvent_Release(p) ((p)->lpVtbl->Release(p))
24487 #    define IGuestMouseEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24488 #    define IGuestMouseEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24489 #    define IGuestMouseEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24490 #    define IGuestMouseEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24491 #    define IGuestMouseEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24492 #    define IGuestMouseEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24493 #    define IGuestMouseEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24494 #    define IGuestMouseEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24495 #    define IGuestMouseEvent_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
24496 #    define IGuestMouseEvent_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
24497 #    define IGuestMouseEvent_Reuse(p) ((p)->lpVtbl->Reuse(p))
24498 #    define IGuestMouseEvent_get_Mode(p, aMode) ((p)->lpVtbl->GetMode(p, aMode))
24499 #    define IGuestMouseEvent_GetMode(p, aMode) ((p)->lpVtbl->GetMode(p, aMode))
24500 #    define IGuestMouseEvent_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
24501 #    define IGuestMouseEvent_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
24502 #    define IGuestMouseEvent_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
24503 #    define IGuestMouseEvent_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
24504 #    define IGuestMouseEvent_get_Z(p, aZ) ((p)->lpVtbl->GetZ(p, aZ))
24505 #    define IGuestMouseEvent_GetZ(p, aZ) ((p)->lpVtbl->GetZ(p, aZ))
24506 #    define IGuestMouseEvent_get_W(p, aW) ((p)->lpVtbl->GetW(p, aW))
24507 #    define IGuestMouseEvent_GetW(p, aW) ((p)->lpVtbl->GetW(p, aW))
24508 #    define IGuestMouseEvent_get_Buttons(p, aButtons) ((p)->lpVtbl->GetButtons(p, aButtons))
24509 #    define IGuestMouseEvent_GetButtons(p, aButtons) ((p)->lpVtbl->GetButtons(p, aButtons))
24510 #   endif /* VBOX_WITH_GLUE */
24511 
24512 interface IGuestMouseEvent
24513 {
24514 #   ifndef VBOX_WITH_GLUE
24515     struct IGuestMouseEvent_vtbl *vtbl;
24516 #   else /* VBOX_WITH_GLUE */
24517     CONST_VTBL struct IGuestMouseEventVtbl *lpVtbl;
24518 #   endif /* VBOX_WITH_GLUE */
24519 };
24520 /* End of struct IGuestMouseEvent declaration */
24521 
24522 
24523 /* Start of struct IGuestMultiTouchEvent declaration */
24524 #   define IGUESTMULTITOUCHEVENT_IID_STR "be8a0eb5-f4f4-4dd0-9d30-c89b873247ec"
24525 #   define IGUESTMULTITOUCHEVENT_IID { \
24526     0xbe8a0eb5, 0xf4f4, 0x4dd0, \
24527     { 0x9d, 0x30, 0xc8, 0x9b, 0x87, 0x32, 0x47, 0xec } \
24528 }
24529 /* COM compatibility */
24530 VBOX_EXTERN_CONST(nsIID, IID_IGuestMultiTouchEvent);
24531 #   ifndef VBOX_WITH_GLUE
24532 struct IGuestMultiTouchEvent_vtbl
24533 {
24534     struct IEvent_vtbl ievent;
24535 
24536     nsresult (*GetContactCount)(IGuestMultiTouchEvent *pThis, PRInt32 *contactCount);
24537 
24538     nsresult (*GetXPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *xPositionsSize, PRInt16 **xPositions);
24539 
24540     nsresult (*GetYPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *yPositionsSize, PRInt16 **yPositions);
24541 
24542     nsresult (*GetContactIds)(IGuestMultiTouchEvent *pThis, PRUint32 *contactIdsSize, PRUint16 **contactIds);
24543 
24544     nsresult (*GetContactFlags)(IGuestMultiTouchEvent *pThis, PRUint32 *contactFlagsSize, PRUint16 **contactFlags);
24545 
24546     nsresult (*GetScanTime)(IGuestMultiTouchEvent *pThis, PRUint32 *scanTime);
24547 
24548 };
24549 #   else /* VBOX_WITH_GLUE */
24550 struct IGuestMultiTouchEventVtbl
24551 {
24552     nsresult (*QueryInterface)(IGuestMultiTouchEvent *pThis, const nsID *iid, void **resultp);
24553     nsrefcnt (*AddRef)(IGuestMultiTouchEvent *pThis);
24554     nsrefcnt (*Release)(IGuestMultiTouchEvent *pThis);
24555     nsresult (*GetType)(IGuestMultiTouchEvent *pThis, PRUint32 *type);
24556 
24557     nsresult (*GetSource)(IGuestMultiTouchEvent *pThis, IEventSource * *source);
24558 
24559     nsresult (*GetWaitable)(IGuestMultiTouchEvent *pThis, PRBool *waitable);
24560 
24561     nsresult (*SetProcessed)(IGuestMultiTouchEvent *pThis );
24562 
24563     nsresult (*WaitProcessed)(
24564         IGuestMultiTouchEvent *pThis,
24565         PRInt32 timeout,
24566         PRBool * result
24567     );
24568 
24569     nsresult (*GetContactCount)(IGuestMultiTouchEvent *pThis, PRInt32 *contactCount);
24570 
24571     nsresult (*GetXPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *xPositionsSize, PRInt16 **xPositions);
24572 
24573     nsresult (*GetYPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *yPositionsSize, PRInt16 **yPositions);
24574 
24575     nsresult (*GetContactIds)(IGuestMultiTouchEvent *pThis, PRUint32 *contactIdsSize, PRUint16 **contactIds);
24576 
24577     nsresult (*GetContactFlags)(IGuestMultiTouchEvent *pThis, PRUint32 *contactFlagsSize, PRUint16 **contactFlags);
24578 
24579     nsresult (*GetScanTime)(IGuestMultiTouchEvent *pThis, PRUint32 *scanTime);
24580 
24581 };
24582 #    define IGuestMultiTouchEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24583 #    define IGuestMultiTouchEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24584 #    define IGuestMultiTouchEvent_Release(p) ((p)->lpVtbl->Release(p))
24585 #    define IGuestMultiTouchEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24586 #    define IGuestMultiTouchEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24587 #    define IGuestMultiTouchEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24588 #    define IGuestMultiTouchEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24589 #    define IGuestMultiTouchEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24590 #    define IGuestMultiTouchEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24591 #    define IGuestMultiTouchEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24592 #    define IGuestMultiTouchEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24593 #    define IGuestMultiTouchEvent_get_ContactCount(p, aContactCount) ((p)->lpVtbl->GetContactCount(p, aContactCount))
24594 #    define IGuestMultiTouchEvent_GetContactCount(p, aContactCount) ((p)->lpVtbl->GetContactCount(p, aContactCount))
24595 #    define IGuestMultiTouchEvent_get_XPositions(p, aXPositions) ((p)->lpVtbl->GetXPositions(p, aXPositions))
24596 #    define IGuestMultiTouchEvent_GetXPositions(p, aXPositions) ((p)->lpVtbl->GetXPositions(p, aXPositions))
24597 #    define IGuestMultiTouchEvent_get_YPositions(p, aYPositions) ((p)->lpVtbl->GetYPositions(p, aYPositions))
24598 #    define IGuestMultiTouchEvent_GetYPositions(p, aYPositions) ((p)->lpVtbl->GetYPositions(p, aYPositions))
24599 #    define IGuestMultiTouchEvent_get_ContactIds(p, aContactIds) ((p)->lpVtbl->GetContactIds(p, aContactIds))
24600 #    define IGuestMultiTouchEvent_GetContactIds(p, aContactIds) ((p)->lpVtbl->GetContactIds(p, aContactIds))
24601 #    define IGuestMultiTouchEvent_get_ContactFlags(p, aContactFlags) ((p)->lpVtbl->GetContactFlags(p, aContactFlags))
24602 #    define IGuestMultiTouchEvent_GetContactFlags(p, aContactFlags) ((p)->lpVtbl->GetContactFlags(p, aContactFlags))
24603 #    define IGuestMultiTouchEvent_get_ScanTime(p, aScanTime) ((p)->lpVtbl->GetScanTime(p, aScanTime))
24604 #    define IGuestMultiTouchEvent_GetScanTime(p, aScanTime) ((p)->lpVtbl->GetScanTime(p, aScanTime))
24605 #   endif /* VBOX_WITH_GLUE */
24606 
24607 interface IGuestMultiTouchEvent
24608 {
24609 #   ifndef VBOX_WITH_GLUE
24610     struct IGuestMultiTouchEvent_vtbl *vtbl;
24611 #   else /* VBOX_WITH_GLUE */
24612     CONST_VTBL struct IGuestMultiTouchEventVtbl *lpVtbl;
24613 #   endif /* VBOX_WITH_GLUE */
24614 };
24615 /* End of struct IGuestMultiTouchEvent declaration */
24616 
24617 
24618 /* Start of struct IGuestSessionEvent declaration */
24619 #   define IGUESTSESSIONEVENT_IID_STR "b9acd33f-647d-45ac-8fe9-f49b3183ba37"
24620 #   define IGUESTSESSIONEVENT_IID { \
24621     0xb9acd33f, 0x647d, 0x45ac, \
24622     { 0x8f, 0xe9, 0xf4, 0x9b, 0x31, 0x83, 0xba, 0x37 } \
24623 }
24624 /* COM compatibility */
24625 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionEvent);
24626 #   ifndef VBOX_WITH_GLUE
24627 struct IGuestSessionEvent_vtbl
24628 {
24629     struct IEvent_vtbl ievent;
24630 
24631     nsresult (*GetSession)(IGuestSessionEvent *pThis, IGuestSession * *session);
24632 
24633 };
24634 #   else /* VBOX_WITH_GLUE */
24635 struct IGuestSessionEventVtbl
24636 {
24637     nsresult (*QueryInterface)(IGuestSessionEvent *pThis, const nsID *iid, void **resultp);
24638     nsrefcnt (*AddRef)(IGuestSessionEvent *pThis);
24639     nsrefcnt (*Release)(IGuestSessionEvent *pThis);
24640     nsresult (*GetType)(IGuestSessionEvent *pThis, PRUint32 *type);
24641 
24642     nsresult (*GetSource)(IGuestSessionEvent *pThis, IEventSource * *source);
24643 
24644     nsresult (*GetWaitable)(IGuestSessionEvent *pThis, PRBool *waitable);
24645 
24646     nsresult (*SetProcessed)(IGuestSessionEvent *pThis );
24647 
24648     nsresult (*WaitProcessed)(
24649         IGuestSessionEvent *pThis,
24650         PRInt32 timeout,
24651         PRBool * result
24652     );
24653 
24654     nsresult (*GetSession)(IGuestSessionEvent *pThis, IGuestSession * *session);
24655 
24656 };
24657 #    define IGuestSessionEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24658 #    define IGuestSessionEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24659 #    define IGuestSessionEvent_Release(p) ((p)->lpVtbl->Release(p))
24660 #    define IGuestSessionEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24661 #    define IGuestSessionEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24662 #    define IGuestSessionEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24663 #    define IGuestSessionEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24664 #    define IGuestSessionEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24665 #    define IGuestSessionEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24666 #    define IGuestSessionEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24667 #    define IGuestSessionEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24668 #    define IGuestSessionEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24669 #    define IGuestSessionEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24670 #   endif /* VBOX_WITH_GLUE */
24671 
24672 interface IGuestSessionEvent
24673 {
24674 #   ifndef VBOX_WITH_GLUE
24675     struct IGuestSessionEvent_vtbl *vtbl;
24676 #   else /* VBOX_WITH_GLUE */
24677     CONST_VTBL struct IGuestSessionEventVtbl *lpVtbl;
24678 #   endif /* VBOX_WITH_GLUE */
24679 };
24680 /* End of struct IGuestSessionEvent declaration */
24681 
24682 
24683 /* Start of struct IGuestSessionStateChangedEvent declaration */
24684 #   define IGUESTSESSIONSTATECHANGEDEVENT_IID_STR "327e3c00-ee61-462f-aed3-0dff6cbf9904"
24685 #   define IGUESTSESSIONSTATECHANGEDEVENT_IID { \
24686     0x327e3c00, 0xee61, 0x462f, \
24687     { 0xae, 0xd3, 0x0d, 0xff, 0x6c, 0xbf, 0x99, 0x04 } \
24688 }
24689 /* COM compatibility */
24690 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionStateChangedEvent);
24691 #   ifndef VBOX_WITH_GLUE
24692 struct IGuestSessionStateChangedEvent_vtbl
24693 {
24694     struct IGuestSessionEvent_vtbl iguestsessionevent;
24695 
24696     nsresult (*GetId)(IGuestSessionStateChangedEvent *pThis, PRUint32 *id);
24697 
24698     nsresult (*GetStatus)(IGuestSessionStateChangedEvent *pThis, PRUint32 *status);
24699 
24700     nsresult (*GetError)(IGuestSessionStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
24701 
24702 };
24703 #   else /* VBOX_WITH_GLUE */
24704 struct IGuestSessionStateChangedEventVtbl
24705 {
24706     nsresult (*QueryInterface)(IGuestSessionStateChangedEvent *pThis, const nsID *iid, void **resultp);
24707     nsrefcnt (*AddRef)(IGuestSessionStateChangedEvent *pThis);
24708     nsrefcnt (*Release)(IGuestSessionStateChangedEvent *pThis);
24709     nsresult (*GetType)(IGuestSessionStateChangedEvent *pThis, PRUint32 *type);
24710 
24711     nsresult (*GetSource)(IGuestSessionStateChangedEvent *pThis, IEventSource * *source);
24712 
24713     nsresult (*GetWaitable)(IGuestSessionStateChangedEvent *pThis, PRBool *waitable);
24714 
24715     nsresult (*SetProcessed)(IGuestSessionStateChangedEvent *pThis );
24716 
24717     nsresult (*WaitProcessed)(
24718         IGuestSessionStateChangedEvent *pThis,
24719         PRInt32 timeout,
24720         PRBool * result
24721     );
24722 
24723     nsresult (*GetSession)(IGuestSessionStateChangedEvent *pThis, IGuestSession * *session);
24724 
24725     nsresult (*GetId)(IGuestSessionStateChangedEvent *pThis, PRUint32 *id);
24726 
24727     nsresult (*GetStatus)(IGuestSessionStateChangedEvent *pThis, PRUint32 *status);
24728 
24729     nsresult (*GetError)(IGuestSessionStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
24730 
24731 };
24732 #    define IGuestSessionStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24733 #    define IGuestSessionStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24734 #    define IGuestSessionStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24735 #    define IGuestSessionStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24736 #    define IGuestSessionStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24737 #    define IGuestSessionStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24738 #    define IGuestSessionStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24739 #    define IGuestSessionStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24740 #    define IGuestSessionStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24741 #    define IGuestSessionStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24742 #    define IGuestSessionStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24743 #    define IGuestSessionStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24744 #    define IGuestSessionStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24745 #    define IGuestSessionStateChangedEvent_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
24746 #    define IGuestSessionStateChangedEvent_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
24747 #    define IGuestSessionStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
24748 #    define IGuestSessionStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
24749 #    define IGuestSessionStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
24750 #    define IGuestSessionStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
24751 #   endif /* VBOX_WITH_GLUE */
24752 
24753 interface IGuestSessionStateChangedEvent
24754 {
24755 #   ifndef VBOX_WITH_GLUE
24756     struct IGuestSessionStateChangedEvent_vtbl *vtbl;
24757 #   else /* VBOX_WITH_GLUE */
24758     CONST_VTBL struct IGuestSessionStateChangedEventVtbl *lpVtbl;
24759 #   endif /* VBOX_WITH_GLUE */
24760 };
24761 /* End of struct IGuestSessionStateChangedEvent declaration */
24762 
24763 
24764 /* Start of struct IGuestSessionRegisteredEvent declaration */
24765 #   define IGUESTSESSIONREGISTEREDEVENT_IID_STR "b79de686-eabd-4fa6-960a-f1756c99ea1c"
24766 #   define IGUESTSESSIONREGISTEREDEVENT_IID { \
24767     0xb79de686, 0xeabd, 0x4fa6, \
24768     { 0x96, 0x0a, 0xf1, 0x75, 0x6c, 0x99, 0xea, 0x1c } \
24769 }
24770 /* COM compatibility */
24771 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionRegisteredEvent);
24772 #   ifndef VBOX_WITH_GLUE
24773 struct IGuestSessionRegisteredEvent_vtbl
24774 {
24775     struct IGuestSessionEvent_vtbl iguestsessionevent;
24776 
24777     nsresult (*GetRegistered)(IGuestSessionRegisteredEvent *pThis, PRBool *registered);
24778 
24779 };
24780 #   else /* VBOX_WITH_GLUE */
24781 struct IGuestSessionRegisteredEventVtbl
24782 {
24783     nsresult (*QueryInterface)(IGuestSessionRegisteredEvent *pThis, const nsID *iid, void **resultp);
24784     nsrefcnt (*AddRef)(IGuestSessionRegisteredEvent *pThis);
24785     nsrefcnt (*Release)(IGuestSessionRegisteredEvent *pThis);
24786     nsresult (*GetType)(IGuestSessionRegisteredEvent *pThis, PRUint32 *type);
24787 
24788     nsresult (*GetSource)(IGuestSessionRegisteredEvent *pThis, IEventSource * *source);
24789 
24790     nsresult (*GetWaitable)(IGuestSessionRegisteredEvent *pThis, PRBool *waitable);
24791 
24792     nsresult (*SetProcessed)(IGuestSessionRegisteredEvent *pThis );
24793 
24794     nsresult (*WaitProcessed)(
24795         IGuestSessionRegisteredEvent *pThis,
24796         PRInt32 timeout,
24797         PRBool * result
24798     );
24799 
24800     nsresult (*GetSession)(IGuestSessionRegisteredEvent *pThis, IGuestSession * *session);
24801 
24802     nsresult (*GetRegistered)(IGuestSessionRegisteredEvent *pThis, PRBool *registered);
24803 
24804 };
24805 #    define IGuestSessionRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24806 #    define IGuestSessionRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24807 #    define IGuestSessionRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
24808 #    define IGuestSessionRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24809 #    define IGuestSessionRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24810 #    define IGuestSessionRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24811 #    define IGuestSessionRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24812 #    define IGuestSessionRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24813 #    define IGuestSessionRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24814 #    define IGuestSessionRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24815 #    define IGuestSessionRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24816 #    define IGuestSessionRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24817 #    define IGuestSessionRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24818 #    define IGuestSessionRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24819 #    define IGuestSessionRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24820 #   endif /* VBOX_WITH_GLUE */
24821 
24822 interface IGuestSessionRegisteredEvent
24823 {
24824 #   ifndef VBOX_WITH_GLUE
24825     struct IGuestSessionRegisteredEvent_vtbl *vtbl;
24826 #   else /* VBOX_WITH_GLUE */
24827     CONST_VTBL struct IGuestSessionRegisteredEventVtbl *lpVtbl;
24828 #   endif /* VBOX_WITH_GLUE */
24829 };
24830 /* End of struct IGuestSessionRegisteredEvent declaration */
24831 
24832 
24833 /* Start of struct IGuestProcessEvent declaration */
24834 #   define IGUESTPROCESSEVENT_IID_STR "2405f0e5-6588-40a3-9b0a-68c05ba52c4b"
24835 #   define IGUESTPROCESSEVENT_IID { \
24836     0x2405f0e5, 0x6588, 0x40a3, \
24837     { 0x9b, 0x0a, 0x68, 0xc0, 0x5b, 0xa5, 0x2c, 0x4b } \
24838 }
24839 /* COM compatibility */
24840 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessEvent);
24841 #   ifndef VBOX_WITH_GLUE
24842 struct IGuestProcessEvent_vtbl
24843 {
24844     struct IGuestSessionEvent_vtbl iguestsessionevent;
24845 
24846     nsresult (*GetProcess)(IGuestProcessEvent *pThis, IGuestProcess * *process);
24847 
24848     nsresult (*GetPid)(IGuestProcessEvent *pThis, PRUint32 *pid);
24849 
24850 };
24851 #   else /* VBOX_WITH_GLUE */
24852 struct IGuestProcessEventVtbl
24853 {
24854     nsresult (*QueryInterface)(IGuestProcessEvent *pThis, const nsID *iid, void **resultp);
24855     nsrefcnt (*AddRef)(IGuestProcessEvent *pThis);
24856     nsrefcnt (*Release)(IGuestProcessEvent *pThis);
24857     nsresult (*GetType)(IGuestProcessEvent *pThis, PRUint32 *type);
24858 
24859     nsresult (*GetSource)(IGuestProcessEvent *pThis, IEventSource * *source);
24860 
24861     nsresult (*GetWaitable)(IGuestProcessEvent *pThis, PRBool *waitable);
24862 
24863     nsresult (*SetProcessed)(IGuestProcessEvent *pThis );
24864 
24865     nsresult (*WaitProcessed)(
24866         IGuestProcessEvent *pThis,
24867         PRInt32 timeout,
24868         PRBool * result
24869     );
24870 
24871     nsresult (*GetSession)(IGuestProcessEvent *pThis, IGuestSession * *session);
24872 
24873     nsresult (*GetProcess)(IGuestProcessEvent *pThis, IGuestProcess * *process);
24874 
24875     nsresult (*GetPid)(IGuestProcessEvent *pThis, PRUint32 *pid);
24876 
24877 };
24878 #    define IGuestProcessEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24879 #    define IGuestProcessEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24880 #    define IGuestProcessEvent_Release(p) ((p)->lpVtbl->Release(p))
24881 #    define IGuestProcessEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24882 #    define IGuestProcessEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24883 #    define IGuestProcessEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24884 #    define IGuestProcessEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24885 #    define IGuestProcessEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24886 #    define IGuestProcessEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24887 #    define IGuestProcessEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24888 #    define IGuestProcessEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24889 #    define IGuestProcessEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24890 #    define IGuestProcessEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24891 #    define IGuestProcessEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
24892 #    define IGuestProcessEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
24893 #    define IGuestProcessEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
24894 #    define IGuestProcessEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
24895 #   endif /* VBOX_WITH_GLUE */
24896 
24897 interface IGuestProcessEvent
24898 {
24899 #   ifndef VBOX_WITH_GLUE
24900     struct IGuestProcessEvent_vtbl *vtbl;
24901 #   else /* VBOX_WITH_GLUE */
24902     CONST_VTBL struct IGuestProcessEventVtbl *lpVtbl;
24903 #   endif /* VBOX_WITH_GLUE */
24904 };
24905 /* End of struct IGuestProcessEvent declaration */
24906 
24907 
24908 /* Start of struct IGuestProcessRegisteredEvent declaration */
24909 #   define IGUESTPROCESSREGISTEREDEVENT_IID_STR "1d89e2b3-c6ea-45b6-9d43-dc6f70cc9f02"
24910 #   define IGUESTPROCESSREGISTEREDEVENT_IID { \
24911     0x1d89e2b3, 0xc6ea, 0x45b6, \
24912     { 0x9d, 0x43, 0xdc, 0x6f, 0x70, 0xcc, 0x9f, 0x02 } \
24913 }
24914 /* COM compatibility */
24915 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessRegisteredEvent);
24916 #   ifndef VBOX_WITH_GLUE
24917 struct IGuestProcessRegisteredEvent_vtbl
24918 {
24919     struct IGuestProcessEvent_vtbl iguestprocessevent;
24920 
24921     nsresult (*GetRegistered)(IGuestProcessRegisteredEvent *pThis, PRBool *registered);
24922 
24923 };
24924 #   else /* VBOX_WITH_GLUE */
24925 struct IGuestProcessRegisteredEventVtbl
24926 {
24927     nsresult (*QueryInterface)(IGuestProcessRegisteredEvent *pThis, const nsID *iid, void **resultp);
24928     nsrefcnt (*AddRef)(IGuestProcessRegisteredEvent *pThis);
24929     nsrefcnt (*Release)(IGuestProcessRegisteredEvent *pThis);
24930     nsresult (*GetType)(IGuestProcessRegisteredEvent *pThis, PRUint32 *type);
24931 
24932     nsresult (*GetSource)(IGuestProcessRegisteredEvent *pThis, IEventSource * *source);
24933 
24934     nsresult (*GetWaitable)(IGuestProcessRegisteredEvent *pThis, PRBool *waitable);
24935 
24936     nsresult (*SetProcessed)(IGuestProcessRegisteredEvent *pThis );
24937 
24938     nsresult (*WaitProcessed)(
24939         IGuestProcessRegisteredEvent *pThis,
24940         PRInt32 timeout,
24941         PRBool * result
24942     );
24943 
24944     nsresult (*GetSession)(IGuestProcessRegisteredEvent *pThis, IGuestSession * *session);
24945 
24946     nsresult (*GetProcess)(IGuestProcessRegisteredEvent *pThis, IGuestProcess * *process);
24947 
24948     nsresult (*GetPid)(IGuestProcessRegisteredEvent *pThis, PRUint32 *pid);
24949 
24950     nsresult (*GetRegistered)(IGuestProcessRegisteredEvent *pThis, PRBool *registered);
24951 
24952 };
24953 #    define IGuestProcessRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24954 #    define IGuestProcessRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24955 #    define IGuestProcessRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
24956 #    define IGuestProcessRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24957 #    define IGuestProcessRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24958 #    define IGuestProcessRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24959 #    define IGuestProcessRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24960 #    define IGuestProcessRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24961 #    define IGuestProcessRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24962 #    define IGuestProcessRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24963 #    define IGuestProcessRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24964 #    define IGuestProcessRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24965 #    define IGuestProcessRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24966 #    define IGuestProcessRegisteredEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
24967 #    define IGuestProcessRegisteredEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
24968 #    define IGuestProcessRegisteredEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
24969 #    define IGuestProcessRegisteredEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
24970 #    define IGuestProcessRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24971 #    define IGuestProcessRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24972 #   endif /* VBOX_WITH_GLUE */
24973 
24974 interface IGuestProcessRegisteredEvent
24975 {
24976 #   ifndef VBOX_WITH_GLUE
24977     struct IGuestProcessRegisteredEvent_vtbl *vtbl;
24978 #   else /* VBOX_WITH_GLUE */
24979     CONST_VTBL struct IGuestProcessRegisteredEventVtbl *lpVtbl;
24980 #   endif /* VBOX_WITH_GLUE */
24981 };
24982 /* End of struct IGuestProcessRegisteredEvent declaration */
24983 
24984 
24985 /* Start of struct IGuestProcessStateChangedEvent declaration */
24986 #   define IGUESTPROCESSSTATECHANGEDEVENT_IID_STR "c365fb7b-4430-499f-92c8-8bed814a567a"
24987 #   define IGUESTPROCESSSTATECHANGEDEVENT_IID { \
24988     0xc365fb7b, 0x4430, 0x499f, \
24989     { 0x92, 0xc8, 0x8b, 0xed, 0x81, 0x4a, 0x56, 0x7a } \
24990 }
24991 /* COM compatibility */
24992 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessStateChangedEvent);
24993 #   ifndef VBOX_WITH_GLUE
24994 struct IGuestProcessStateChangedEvent_vtbl
24995 {
24996     struct IGuestProcessEvent_vtbl iguestprocessevent;
24997 
24998     nsresult (*GetStatus)(IGuestProcessStateChangedEvent *pThis, PRUint32 *status);
24999 
25000     nsresult (*GetError)(IGuestProcessStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
25001 
25002 };
25003 #   else /* VBOX_WITH_GLUE */
25004 struct IGuestProcessStateChangedEventVtbl
25005 {
25006     nsresult (*QueryInterface)(IGuestProcessStateChangedEvent *pThis, const nsID *iid, void **resultp);
25007     nsrefcnt (*AddRef)(IGuestProcessStateChangedEvent *pThis);
25008     nsrefcnt (*Release)(IGuestProcessStateChangedEvent *pThis);
25009     nsresult (*GetType)(IGuestProcessStateChangedEvent *pThis, PRUint32 *type);
25010 
25011     nsresult (*GetSource)(IGuestProcessStateChangedEvent *pThis, IEventSource * *source);
25012 
25013     nsresult (*GetWaitable)(IGuestProcessStateChangedEvent *pThis, PRBool *waitable);
25014 
25015     nsresult (*SetProcessed)(IGuestProcessStateChangedEvent *pThis );
25016 
25017     nsresult (*WaitProcessed)(
25018         IGuestProcessStateChangedEvent *pThis,
25019         PRInt32 timeout,
25020         PRBool * result
25021     );
25022 
25023     nsresult (*GetSession)(IGuestProcessStateChangedEvent *pThis, IGuestSession * *session);
25024 
25025     nsresult (*GetProcess)(IGuestProcessStateChangedEvent *pThis, IGuestProcess * *process);
25026 
25027     nsresult (*GetPid)(IGuestProcessStateChangedEvent *pThis, PRUint32 *pid);
25028 
25029     nsresult (*GetStatus)(IGuestProcessStateChangedEvent *pThis, PRUint32 *status);
25030 
25031     nsresult (*GetError)(IGuestProcessStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
25032 
25033 };
25034 #    define IGuestProcessStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25035 #    define IGuestProcessStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25036 #    define IGuestProcessStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25037 #    define IGuestProcessStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25038 #    define IGuestProcessStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25039 #    define IGuestProcessStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25040 #    define IGuestProcessStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25041 #    define IGuestProcessStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25042 #    define IGuestProcessStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25043 #    define IGuestProcessStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25044 #    define IGuestProcessStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25045 #    define IGuestProcessStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25046 #    define IGuestProcessStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25047 #    define IGuestProcessStateChangedEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25048 #    define IGuestProcessStateChangedEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25049 #    define IGuestProcessStateChangedEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25050 #    define IGuestProcessStateChangedEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25051 #    define IGuestProcessStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
25052 #    define IGuestProcessStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
25053 #    define IGuestProcessStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
25054 #    define IGuestProcessStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
25055 #   endif /* VBOX_WITH_GLUE */
25056 
25057 interface IGuestProcessStateChangedEvent
25058 {
25059 #   ifndef VBOX_WITH_GLUE
25060     struct IGuestProcessStateChangedEvent_vtbl *vtbl;
25061 #   else /* VBOX_WITH_GLUE */
25062     CONST_VTBL struct IGuestProcessStateChangedEventVtbl *lpVtbl;
25063 #   endif /* VBOX_WITH_GLUE */
25064 };
25065 /* End of struct IGuestProcessStateChangedEvent declaration */
25066 
25067 
25068 /* Start of struct IGuestProcessIOEvent declaration */
25069 #   define IGUESTPROCESSIOEVENT_IID_STR "9ea9227c-e9bb-49b3-bfc7-c5171e93ef38"
25070 #   define IGUESTPROCESSIOEVENT_IID { \
25071     0x9ea9227c, 0xe9bb, 0x49b3, \
25072     { 0xbf, 0xc7, 0xc5, 0x17, 0x1e, 0x93, 0xef, 0x38 } \
25073 }
25074 /* COM compatibility */
25075 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessIOEvent);
25076 #   ifndef VBOX_WITH_GLUE
25077 struct IGuestProcessIOEvent_vtbl
25078 {
25079     struct IGuestProcessEvent_vtbl iguestprocessevent;
25080 
25081     nsresult (*GetHandle)(IGuestProcessIOEvent *pThis, PRUint32 *handle);
25082 
25083     nsresult (*GetProcessed)(IGuestProcessIOEvent *pThis, PRUint32 *processed);
25084 
25085 };
25086 #   else /* VBOX_WITH_GLUE */
25087 struct IGuestProcessIOEventVtbl
25088 {
25089     nsresult (*QueryInterface)(IGuestProcessIOEvent *pThis, const nsID *iid, void **resultp);
25090     nsrefcnt (*AddRef)(IGuestProcessIOEvent *pThis);
25091     nsrefcnt (*Release)(IGuestProcessIOEvent *pThis);
25092     nsresult (*GetType)(IGuestProcessIOEvent *pThis, PRUint32 *type);
25093 
25094     nsresult (*GetSource)(IGuestProcessIOEvent *pThis, IEventSource * *source);
25095 
25096     nsresult (*GetWaitable)(IGuestProcessIOEvent *pThis, PRBool *waitable);
25097 
25098     nsresult (*SetProcessed)(IGuestProcessIOEvent *pThis );
25099 
25100     nsresult (*WaitProcessed)(
25101         IGuestProcessIOEvent *pThis,
25102         PRInt32 timeout,
25103         PRBool * result
25104     );
25105 
25106     nsresult (*GetSession)(IGuestProcessIOEvent *pThis, IGuestSession * *session);
25107 
25108     nsresult (*GetProcess)(IGuestProcessIOEvent *pThis, IGuestProcess * *process);
25109 
25110     nsresult (*GetPid)(IGuestProcessIOEvent *pThis, PRUint32 *pid);
25111 
25112     nsresult (*GetHandle)(IGuestProcessIOEvent *pThis, PRUint32 *handle);
25113 
25114     nsresult (*GetProcessed)(IGuestProcessIOEvent *pThis, PRUint32 *processed);
25115 
25116 };
25117 #    define IGuestProcessIOEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25118 #    define IGuestProcessIOEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25119 #    define IGuestProcessIOEvent_Release(p) ((p)->lpVtbl->Release(p))
25120 #    define IGuestProcessIOEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25121 #    define IGuestProcessIOEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25122 #    define IGuestProcessIOEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25123 #    define IGuestProcessIOEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25124 #    define IGuestProcessIOEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25125 #    define IGuestProcessIOEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25126 #    define IGuestProcessIOEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25127 #    define IGuestProcessIOEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25128 #    define IGuestProcessIOEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25129 #    define IGuestProcessIOEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25130 #    define IGuestProcessIOEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25131 #    define IGuestProcessIOEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25132 #    define IGuestProcessIOEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25133 #    define IGuestProcessIOEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25134 #    define IGuestProcessIOEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
25135 #    define IGuestProcessIOEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
25136 #    define IGuestProcessIOEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25137 #    define IGuestProcessIOEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25138 #   endif /* VBOX_WITH_GLUE */
25139 
25140 interface IGuestProcessIOEvent
25141 {
25142 #   ifndef VBOX_WITH_GLUE
25143     struct IGuestProcessIOEvent_vtbl *vtbl;
25144 #   else /* VBOX_WITH_GLUE */
25145     CONST_VTBL struct IGuestProcessIOEventVtbl *lpVtbl;
25146 #   endif /* VBOX_WITH_GLUE */
25147 };
25148 /* End of struct IGuestProcessIOEvent declaration */
25149 
25150 
25151 /* Start of struct IGuestProcessInputNotifyEvent declaration */
25152 #   define IGUESTPROCESSINPUTNOTIFYEVENT_IID_STR "0de887f2-b7db-4616-aac6-cfb94d89ba78"
25153 #   define IGUESTPROCESSINPUTNOTIFYEVENT_IID { \
25154     0x0de887f2, 0xb7db, 0x4616, \
25155     { 0xaa, 0xc6, 0xcf, 0xb9, 0x4d, 0x89, 0xba, 0x78 } \
25156 }
25157 /* COM compatibility */
25158 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessInputNotifyEvent);
25159 #   ifndef VBOX_WITH_GLUE
25160 struct IGuestProcessInputNotifyEvent_vtbl
25161 {
25162     struct IGuestProcessIOEvent_vtbl iguestprocessioevent;
25163 
25164     nsresult (*GetStatus)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *status);
25165 
25166 };
25167 #   else /* VBOX_WITH_GLUE */
25168 struct IGuestProcessInputNotifyEventVtbl
25169 {
25170     nsresult (*QueryInterface)(IGuestProcessInputNotifyEvent *pThis, const nsID *iid, void **resultp);
25171     nsrefcnt (*AddRef)(IGuestProcessInputNotifyEvent *pThis);
25172     nsrefcnt (*Release)(IGuestProcessInputNotifyEvent *pThis);
25173     nsresult (*GetType)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *type);
25174 
25175     nsresult (*GetSource)(IGuestProcessInputNotifyEvent *pThis, IEventSource * *source);
25176 
25177     nsresult (*GetWaitable)(IGuestProcessInputNotifyEvent *pThis, PRBool *waitable);
25178 
25179     nsresult (*SetProcessed)(IGuestProcessInputNotifyEvent *pThis );
25180 
25181     nsresult (*WaitProcessed)(
25182         IGuestProcessInputNotifyEvent *pThis,
25183         PRInt32 timeout,
25184         PRBool * result
25185     );
25186 
25187     nsresult (*GetSession)(IGuestProcessInputNotifyEvent *pThis, IGuestSession * *session);
25188 
25189     nsresult (*GetProcess)(IGuestProcessInputNotifyEvent *pThis, IGuestProcess * *process);
25190 
25191     nsresult (*GetPid)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *pid);
25192 
25193     nsresult (*GetHandle)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *handle);
25194 
25195     nsresult (*GetProcessed)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *processed);
25196 
25197     nsresult (*GetStatus)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *status);
25198 
25199 };
25200 #    define IGuestProcessInputNotifyEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25201 #    define IGuestProcessInputNotifyEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25202 #    define IGuestProcessInputNotifyEvent_Release(p) ((p)->lpVtbl->Release(p))
25203 #    define IGuestProcessInputNotifyEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25204 #    define IGuestProcessInputNotifyEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25205 #    define IGuestProcessInputNotifyEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25206 #    define IGuestProcessInputNotifyEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25207 #    define IGuestProcessInputNotifyEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25208 #    define IGuestProcessInputNotifyEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25209 #    define IGuestProcessInputNotifyEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25210 #    define IGuestProcessInputNotifyEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25211 #    define IGuestProcessInputNotifyEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25212 #    define IGuestProcessInputNotifyEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25213 #    define IGuestProcessInputNotifyEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25214 #    define IGuestProcessInputNotifyEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25215 #    define IGuestProcessInputNotifyEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25216 #    define IGuestProcessInputNotifyEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25217 #    define IGuestProcessInputNotifyEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
25218 #    define IGuestProcessInputNotifyEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
25219 #    define IGuestProcessInputNotifyEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25220 #    define IGuestProcessInputNotifyEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25221 #    define IGuestProcessInputNotifyEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
25222 #    define IGuestProcessInputNotifyEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
25223 #   endif /* VBOX_WITH_GLUE */
25224 
25225 interface IGuestProcessInputNotifyEvent
25226 {
25227 #   ifndef VBOX_WITH_GLUE
25228     struct IGuestProcessInputNotifyEvent_vtbl *vtbl;
25229 #   else /* VBOX_WITH_GLUE */
25230     CONST_VTBL struct IGuestProcessInputNotifyEventVtbl *lpVtbl;
25231 #   endif /* VBOX_WITH_GLUE */
25232 };
25233 /* End of struct IGuestProcessInputNotifyEvent declaration */
25234 
25235 
25236 /* Start of struct IGuestProcessOutputEvent declaration */
25237 #   define IGUESTPROCESSOUTPUTEVENT_IID_STR "d3d5f1ee-bcb2-4905-a7ab-cc85448a742b"
25238 #   define IGUESTPROCESSOUTPUTEVENT_IID { \
25239     0xd3d5f1ee, 0xbcb2, 0x4905, \
25240     { 0xa7, 0xab, 0xcc, 0x85, 0x44, 0x8a, 0x74, 0x2b } \
25241 }
25242 /* COM compatibility */
25243 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessOutputEvent);
25244 #   ifndef VBOX_WITH_GLUE
25245 struct IGuestProcessOutputEvent_vtbl
25246 {
25247     struct IGuestProcessIOEvent_vtbl iguestprocessioevent;
25248 
25249     nsresult (*GetData)(IGuestProcessOutputEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
25250 
25251 };
25252 #   else /* VBOX_WITH_GLUE */
25253 struct IGuestProcessOutputEventVtbl
25254 {
25255     nsresult (*QueryInterface)(IGuestProcessOutputEvent *pThis, const nsID *iid, void **resultp);
25256     nsrefcnt (*AddRef)(IGuestProcessOutputEvent *pThis);
25257     nsrefcnt (*Release)(IGuestProcessOutputEvent *pThis);
25258     nsresult (*GetType)(IGuestProcessOutputEvent *pThis, PRUint32 *type);
25259 
25260     nsresult (*GetSource)(IGuestProcessOutputEvent *pThis, IEventSource * *source);
25261 
25262     nsresult (*GetWaitable)(IGuestProcessOutputEvent *pThis, PRBool *waitable);
25263 
25264     nsresult (*SetProcessed)(IGuestProcessOutputEvent *pThis );
25265 
25266     nsresult (*WaitProcessed)(
25267         IGuestProcessOutputEvent *pThis,
25268         PRInt32 timeout,
25269         PRBool * result
25270     );
25271 
25272     nsresult (*GetSession)(IGuestProcessOutputEvent *pThis, IGuestSession * *session);
25273 
25274     nsresult (*GetProcess)(IGuestProcessOutputEvent *pThis, IGuestProcess * *process);
25275 
25276     nsresult (*GetPid)(IGuestProcessOutputEvent *pThis, PRUint32 *pid);
25277 
25278     nsresult (*GetHandle)(IGuestProcessOutputEvent *pThis, PRUint32 *handle);
25279 
25280     nsresult (*GetProcessed)(IGuestProcessOutputEvent *pThis, PRUint32 *processed);
25281 
25282     nsresult (*GetData)(IGuestProcessOutputEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
25283 
25284 };
25285 #    define IGuestProcessOutputEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25286 #    define IGuestProcessOutputEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25287 #    define IGuestProcessOutputEvent_Release(p) ((p)->lpVtbl->Release(p))
25288 #    define IGuestProcessOutputEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25289 #    define IGuestProcessOutputEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25290 #    define IGuestProcessOutputEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25291 #    define IGuestProcessOutputEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25292 #    define IGuestProcessOutputEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25293 #    define IGuestProcessOutputEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25294 #    define IGuestProcessOutputEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25295 #    define IGuestProcessOutputEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25296 #    define IGuestProcessOutputEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25297 #    define IGuestProcessOutputEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25298 #    define IGuestProcessOutputEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25299 #    define IGuestProcessOutputEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
25300 #    define IGuestProcessOutputEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25301 #    define IGuestProcessOutputEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
25302 #    define IGuestProcessOutputEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
25303 #    define IGuestProcessOutputEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
25304 #    define IGuestProcessOutputEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25305 #    define IGuestProcessOutputEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25306 #    define IGuestProcessOutputEvent_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
25307 #    define IGuestProcessOutputEvent_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
25308 #   endif /* VBOX_WITH_GLUE */
25309 
25310 interface IGuestProcessOutputEvent
25311 {
25312 #   ifndef VBOX_WITH_GLUE
25313     struct IGuestProcessOutputEvent_vtbl *vtbl;
25314 #   else /* VBOX_WITH_GLUE */
25315     CONST_VTBL struct IGuestProcessOutputEventVtbl *lpVtbl;
25316 #   endif /* VBOX_WITH_GLUE */
25317 };
25318 /* End of struct IGuestProcessOutputEvent declaration */
25319 
25320 
25321 /* Start of struct IGuestFileEvent declaration */
25322 #   define IGUESTFILEEVENT_IID_STR "c8adb7b0-057d-4391-b928-f14b06b710c5"
25323 #   define IGUESTFILEEVENT_IID { \
25324     0xc8adb7b0, 0x057d, 0x4391, \
25325     { 0xb9, 0x28, 0xf1, 0x4b, 0x06, 0xb7, 0x10, 0xc5 } \
25326 }
25327 /* COM compatibility */
25328 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileEvent);
25329 #   ifndef VBOX_WITH_GLUE
25330 struct IGuestFileEvent_vtbl
25331 {
25332     struct IGuestSessionEvent_vtbl iguestsessionevent;
25333 
25334     nsresult (*GetFile)(IGuestFileEvent *pThis, IGuestFile * *file);
25335 
25336 };
25337 #   else /* VBOX_WITH_GLUE */
25338 struct IGuestFileEventVtbl
25339 {
25340     nsresult (*QueryInterface)(IGuestFileEvent *pThis, const nsID *iid, void **resultp);
25341     nsrefcnt (*AddRef)(IGuestFileEvent *pThis);
25342     nsrefcnt (*Release)(IGuestFileEvent *pThis);
25343     nsresult (*GetType)(IGuestFileEvent *pThis, PRUint32 *type);
25344 
25345     nsresult (*GetSource)(IGuestFileEvent *pThis, IEventSource * *source);
25346 
25347     nsresult (*GetWaitable)(IGuestFileEvent *pThis, PRBool *waitable);
25348 
25349     nsresult (*SetProcessed)(IGuestFileEvent *pThis );
25350 
25351     nsresult (*WaitProcessed)(
25352         IGuestFileEvent *pThis,
25353         PRInt32 timeout,
25354         PRBool * result
25355     );
25356 
25357     nsresult (*GetSession)(IGuestFileEvent *pThis, IGuestSession * *session);
25358 
25359     nsresult (*GetFile)(IGuestFileEvent *pThis, IGuestFile * *file);
25360 
25361 };
25362 #    define IGuestFileEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25363 #    define IGuestFileEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25364 #    define IGuestFileEvent_Release(p) ((p)->lpVtbl->Release(p))
25365 #    define IGuestFileEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25366 #    define IGuestFileEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25367 #    define IGuestFileEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25368 #    define IGuestFileEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25369 #    define IGuestFileEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25370 #    define IGuestFileEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25371 #    define IGuestFileEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25372 #    define IGuestFileEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25373 #    define IGuestFileEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25374 #    define IGuestFileEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25375 #    define IGuestFileEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25376 #    define IGuestFileEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25377 #   endif /* VBOX_WITH_GLUE */
25378 
25379 interface IGuestFileEvent
25380 {
25381 #   ifndef VBOX_WITH_GLUE
25382     struct IGuestFileEvent_vtbl *vtbl;
25383 #   else /* VBOX_WITH_GLUE */
25384     CONST_VTBL struct IGuestFileEventVtbl *lpVtbl;
25385 #   endif /* VBOX_WITH_GLUE */
25386 };
25387 /* End of struct IGuestFileEvent declaration */
25388 
25389 
25390 /* Start of struct IGuestFileRegisteredEvent declaration */
25391 #   define IGUESTFILEREGISTEREDEVENT_IID_STR "d0d93830-70a2-487e-895e-d3fc9679f7b3"
25392 #   define IGUESTFILEREGISTEREDEVENT_IID { \
25393     0xd0d93830, 0x70a2, 0x487e, \
25394     { 0x89, 0x5e, 0xd3, 0xfc, 0x96, 0x79, 0xf7, 0xb3 } \
25395 }
25396 /* COM compatibility */
25397 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileRegisteredEvent);
25398 #   ifndef VBOX_WITH_GLUE
25399 struct IGuestFileRegisteredEvent_vtbl
25400 {
25401     struct IGuestFileEvent_vtbl iguestfileevent;
25402 
25403     nsresult (*GetRegistered)(IGuestFileRegisteredEvent *pThis, PRBool *registered);
25404 
25405 };
25406 #   else /* VBOX_WITH_GLUE */
25407 struct IGuestFileRegisteredEventVtbl
25408 {
25409     nsresult (*QueryInterface)(IGuestFileRegisteredEvent *pThis, const nsID *iid, void **resultp);
25410     nsrefcnt (*AddRef)(IGuestFileRegisteredEvent *pThis);
25411     nsrefcnt (*Release)(IGuestFileRegisteredEvent *pThis);
25412     nsresult (*GetType)(IGuestFileRegisteredEvent *pThis, PRUint32 *type);
25413 
25414     nsresult (*GetSource)(IGuestFileRegisteredEvent *pThis, IEventSource * *source);
25415 
25416     nsresult (*GetWaitable)(IGuestFileRegisteredEvent *pThis, PRBool *waitable);
25417 
25418     nsresult (*SetProcessed)(IGuestFileRegisteredEvent *pThis );
25419 
25420     nsresult (*WaitProcessed)(
25421         IGuestFileRegisteredEvent *pThis,
25422         PRInt32 timeout,
25423         PRBool * result
25424     );
25425 
25426     nsresult (*GetSession)(IGuestFileRegisteredEvent *pThis, IGuestSession * *session);
25427 
25428     nsresult (*GetFile)(IGuestFileRegisteredEvent *pThis, IGuestFile * *file);
25429 
25430     nsresult (*GetRegistered)(IGuestFileRegisteredEvent *pThis, PRBool *registered);
25431 
25432 };
25433 #    define IGuestFileRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25434 #    define IGuestFileRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25435 #    define IGuestFileRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
25436 #    define IGuestFileRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25437 #    define IGuestFileRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25438 #    define IGuestFileRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25439 #    define IGuestFileRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25440 #    define IGuestFileRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25441 #    define IGuestFileRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25442 #    define IGuestFileRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25443 #    define IGuestFileRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25444 #    define IGuestFileRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25445 #    define IGuestFileRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25446 #    define IGuestFileRegisteredEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25447 #    define IGuestFileRegisteredEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25448 #    define IGuestFileRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
25449 #    define IGuestFileRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
25450 #   endif /* VBOX_WITH_GLUE */
25451 
25452 interface IGuestFileRegisteredEvent
25453 {
25454 #   ifndef VBOX_WITH_GLUE
25455     struct IGuestFileRegisteredEvent_vtbl *vtbl;
25456 #   else /* VBOX_WITH_GLUE */
25457     CONST_VTBL struct IGuestFileRegisteredEventVtbl *lpVtbl;
25458 #   endif /* VBOX_WITH_GLUE */
25459 };
25460 /* End of struct IGuestFileRegisteredEvent declaration */
25461 
25462 
25463 /* Start of struct IGuestFileStateChangedEvent declaration */
25464 #   define IGUESTFILESTATECHANGEDEVENT_IID_STR "d37fe88f-0979-486c-baa1-3abb144dc82d"
25465 #   define IGUESTFILESTATECHANGEDEVENT_IID { \
25466     0xd37fe88f, 0x0979, 0x486c, \
25467     { 0xba, 0xa1, 0x3a, 0xbb, 0x14, 0x4d, 0xc8, 0x2d } \
25468 }
25469 /* COM compatibility */
25470 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileStateChangedEvent);
25471 #   ifndef VBOX_WITH_GLUE
25472 struct IGuestFileStateChangedEvent_vtbl
25473 {
25474     struct IGuestFileEvent_vtbl iguestfileevent;
25475 
25476     nsresult (*GetStatus)(IGuestFileStateChangedEvent *pThis, PRUint32 *status);
25477 
25478     nsresult (*GetError)(IGuestFileStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
25479 
25480 };
25481 #   else /* VBOX_WITH_GLUE */
25482 struct IGuestFileStateChangedEventVtbl
25483 {
25484     nsresult (*QueryInterface)(IGuestFileStateChangedEvent *pThis, const nsID *iid, void **resultp);
25485     nsrefcnt (*AddRef)(IGuestFileStateChangedEvent *pThis);
25486     nsrefcnt (*Release)(IGuestFileStateChangedEvent *pThis);
25487     nsresult (*GetType)(IGuestFileStateChangedEvent *pThis, PRUint32 *type);
25488 
25489     nsresult (*GetSource)(IGuestFileStateChangedEvent *pThis, IEventSource * *source);
25490 
25491     nsresult (*GetWaitable)(IGuestFileStateChangedEvent *pThis, PRBool *waitable);
25492 
25493     nsresult (*SetProcessed)(IGuestFileStateChangedEvent *pThis );
25494 
25495     nsresult (*WaitProcessed)(
25496         IGuestFileStateChangedEvent *pThis,
25497         PRInt32 timeout,
25498         PRBool * result
25499     );
25500 
25501     nsresult (*GetSession)(IGuestFileStateChangedEvent *pThis, IGuestSession * *session);
25502 
25503     nsresult (*GetFile)(IGuestFileStateChangedEvent *pThis, IGuestFile * *file);
25504 
25505     nsresult (*GetStatus)(IGuestFileStateChangedEvent *pThis, PRUint32 *status);
25506 
25507     nsresult (*GetError)(IGuestFileStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
25508 
25509 };
25510 #    define IGuestFileStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25511 #    define IGuestFileStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25512 #    define IGuestFileStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25513 #    define IGuestFileStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25514 #    define IGuestFileStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25515 #    define IGuestFileStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25516 #    define IGuestFileStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25517 #    define IGuestFileStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25518 #    define IGuestFileStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25519 #    define IGuestFileStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25520 #    define IGuestFileStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25521 #    define IGuestFileStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25522 #    define IGuestFileStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25523 #    define IGuestFileStateChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25524 #    define IGuestFileStateChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25525 #    define IGuestFileStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
25526 #    define IGuestFileStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
25527 #    define IGuestFileStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
25528 #    define IGuestFileStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
25529 #   endif /* VBOX_WITH_GLUE */
25530 
25531 interface IGuestFileStateChangedEvent
25532 {
25533 #   ifndef VBOX_WITH_GLUE
25534     struct IGuestFileStateChangedEvent_vtbl *vtbl;
25535 #   else /* VBOX_WITH_GLUE */
25536     CONST_VTBL struct IGuestFileStateChangedEventVtbl *lpVtbl;
25537 #   endif /* VBOX_WITH_GLUE */
25538 };
25539 /* End of struct IGuestFileStateChangedEvent declaration */
25540 
25541 
25542 /* Start of struct IGuestFileIOEvent declaration */
25543 #   define IGUESTFILEIOEVENT_IID_STR "b5191a7c-9536-4ef8-820e-3b0e17e5bbc8"
25544 #   define IGUESTFILEIOEVENT_IID { \
25545     0xb5191a7c, 0x9536, 0x4ef8, \
25546     { 0x82, 0x0e, 0x3b, 0x0e, 0x17, 0xe5, 0xbb, 0xc8 } \
25547 }
25548 /* COM compatibility */
25549 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileIOEvent);
25550 #   ifndef VBOX_WITH_GLUE
25551 struct IGuestFileIOEvent_vtbl
25552 {
25553     struct IGuestFileEvent_vtbl iguestfileevent;
25554 
25555     nsresult (*GetOffset)(IGuestFileIOEvent *pThis, PRInt64 *offset);
25556 
25557     nsresult (*GetProcessed)(IGuestFileIOEvent *pThis, PRUint32 *processed);
25558 
25559 };
25560 #   else /* VBOX_WITH_GLUE */
25561 struct IGuestFileIOEventVtbl
25562 {
25563     nsresult (*QueryInterface)(IGuestFileIOEvent *pThis, const nsID *iid, void **resultp);
25564     nsrefcnt (*AddRef)(IGuestFileIOEvent *pThis);
25565     nsrefcnt (*Release)(IGuestFileIOEvent *pThis);
25566     nsresult (*GetType)(IGuestFileIOEvent *pThis, PRUint32 *type);
25567 
25568     nsresult (*GetSource)(IGuestFileIOEvent *pThis, IEventSource * *source);
25569 
25570     nsresult (*GetWaitable)(IGuestFileIOEvent *pThis, PRBool *waitable);
25571 
25572     nsresult (*SetProcessed)(IGuestFileIOEvent *pThis );
25573 
25574     nsresult (*WaitProcessed)(
25575         IGuestFileIOEvent *pThis,
25576         PRInt32 timeout,
25577         PRBool * result
25578     );
25579 
25580     nsresult (*GetSession)(IGuestFileIOEvent *pThis, IGuestSession * *session);
25581 
25582     nsresult (*GetFile)(IGuestFileIOEvent *pThis, IGuestFile * *file);
25583 
25584     nsresult (*GetOffset)(IGuestFileIOEvent *pThis, PRInt64 *offset);
25585 
25586     nsresult (*GetProcessed)(IGuestFileIOEvent *pThis, PRUint32 *processed);
25587 
25588 };
25589 #    define IGuestFileIOEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25590 #    define IGuestFileIOEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25591 #    define IGuestFileIOEvent_Release(p) ((p)->lpVtbl->Release(p))
25592 #    define IGuestFileIOEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25593 #    define IGuestFileIOEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25594 #    define IGuestFileIOEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25595 #    define IGuestFileIOEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25596 #    define IGuestFileIOEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25597 #    define IGuestFileIOEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25598 #    define IGuestFileIOEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25599 #    define IGuestFileIOEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25600 #    define IGuestFileIOEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25601 #    define IGuestFileIOEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25602 #    define IGuestFileIOEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25603 #    define IGuestFileIOEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25604 #    define IGuestFileIOEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25605 #    define IGuestFileIOEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25606 #    define IGuestFileIOEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25607 #    define IGuestFileIOEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25608 #   endif /* VBOX_WITH_GLUE */
25609 
25610 interface IGuestFileIOEvent
25611 {
25612 #   ifndef VBOX_WITH_GLUE
25613     struct IGuestFileIOEvent_vtbl *vtbl;
25614 #   else /* VBOX_WITH_GLUE */
25615     CONST_VTBL struct IGuestFileIOEventVtbl *lpVtbl;
25616 #   endif /* VBOX_WITH_GLUE */
25617 };
25618 /* End of struct IGuestFileIOEvent declaration */
25619 
25620 
25621 /* Start of struct IGuestFileOffsetChangedEvent declaration */
25622 #   define IGUESTFILEOFFSETCHANGEDEVENT_IID_STR "e8f79a21-1207-4179-94cf-ca250036308f"
25623 #   define IGUESTFILEOFFSETCHANGEDEVENT_IID { \
25624     0xe8f79a21, 0x1207, 0x4179, \
25625     { 0x94, 0xcf, 0xca, 0x25, 0x00, 0x36, 0x30, 0x8f } \
25626 }
25627 /* COM compatibility */
25628 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileOffsetChangedEvent);
25629 #   ifndef VBOX_WITH_GLUE
25630 struct IGuestFileOffsetChangedEvent_vtbl
25631 {
25632     struct IGuestFileIOEvent_vtbl iguestfileioevent;
25633 
25634     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileOffsetChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25635 
25636 };
25637 #   else /* VBOX_WITH_GLUE */
25638 struct IGuestFileOffsetChangedEventVtbl
25639 {
25640     nsresult (*QueryInterface)(IGuestFileOffsetChangedEvent *pThis, const nsID *iid, void **resultp);
25641     nsrefcnt (*AddRef)(IGuestFileOffsetChangedEvent *pThis);
25642     nsrefcnt (*Release)(IGuestFileOffsetChangedEvent *pThis);
25643     nsresult (*GetType)(IGuestFileOffsetChangedEvent *pThis, PRUint32 *type);
25644 
25645     nsresult (*GetSource)(IGuestFileOffsetChangedEvent *pThis, IEventSource * *source);
25646 
25647     nsresult (*GetWaitable)(IGuestFileOffsetChangedEvent *pThis, PRBool *waitable);
25648 
25649     nsresult (*SetProcessed)(IGuestFileOffsetChangedEvent *pThis );
25650 
25651     nsresult (*WaitProcessed)(
25652         IGuestFileOffsetChangedEvent *pThis,
25653         PRInt32 timeout,
25654         PRBool * result
25655     );
25656 
25657     nsresult (*GetSession)(IGuestFileOffsetChangedEvent *pThis, IGuestSession * *session);
25658 
25659     nsresult (*GetFile)(IGuestFileOffsetChangedEvent *pThis, IGuestFile * *file);
25660 
25661     nsresult (*GetOffset)(IGuestFileOffsetChangedEvent *pThis, PRInt64 *offset);
25662 
25663     nsresult (*GetProcessed)(IGuestFileOffsetChangedEvent *pThis, PRUint32 *processed);
25664 
25665     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileOffsetChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25666 
25667 };
25668 #    define IGuestFileOffsetChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25669 #    define IGuestFileOffsetChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25670 #    define IGuestFileOffsetChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25671 #    define IGuestFileOffsetChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25672 #    define IGuestFileOffsetChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25673 #    define IGuestFileOffsetChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25674 #    define IGuestFileOffsetChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25675 #    define IGuestFileOffsetChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25676 #    define IGuestFileOffsetChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25677 #    define IGuestFileOffsetChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25678 #    define IGuestFileOffsetChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25679 #    define IGuestFileOffsetChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25680 #    define IGuestFileOffsetChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25681 #    define IGuestFileOffsetChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25682 #    define IGuestFileOffsetChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25683 #    define IGuestFileOffsetChangedEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25684 #    define IGuestFileOffsetChangedEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25685 #    define IGuestFileOffsetChangedEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25686 #    define IGuestFileOffsetChangedEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25687 #    define IGuestFileOffsetChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25688 #    define IGuestFileOffsetChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25689 #   endif /* VBOX_WITH_GLUE */
25690 
25691 interface IGuestFileOffsetChangedEvent
25692 {
25693 #   ifndef VBOX_WITH_GLUE
25694     struct IGuestFileOffsetChangedEvent_vtbl *vtbl;
25695 #   else /* VBOX_WITH_GLUE */
25696     CONST_VTBL struct IGuestFileOffsetChangedEventVtbl *lpVtbl;
25697 #   endif /* VBOX_WITH_GLUE */
25698 };
25699 /* End of struct IGuestFileOffsetChangedEvent declaration */
25700 
25701 
25702 /* Start of struct IGuestFileSizeChangedEvent declaration */
25703 #   define IGUESTFILESIZECHANGEDEVENT_IID_STR "d78374e9-486e-472f-481b-969746af2480"
25704 #   define IGUESTFILESIZECHANGEDEVENT_IID { \
25705     0xd78374e9, 0x486e, 0x472f, \
25706     { 0x48, 0x1b, 0x96, 0x97, 0x46, 0xaf, 0x24, 0x80 } \
25707 }
25708 /* COM compatibility */
25709 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileSizeChangedEvent);
25710 #   ifndef VBOX_WITH_GLUE
25711 struct IGuestFileSizeChangedEvent_vtbl
25712 {
25713     struct IGuestFileEvent_vtbl iguestfileevent;
25714 
25715     nsresult (*GetNewSize)(IGuestFileSizeChangedEvent *pThis, PRInt64 *newSize);
25716 
25717 };
25718 #   else /* VBOX_WITH_GLUE */
25719 struct IGuestFileSizeChangedEventVtbl
25720 {
25721     nsresult (*QueryInterface)(IGuestFileSizeChangedEvent *pThis, const nsID *iid, void **resultp);
25722     nsrefcnt (*AddRef)(IGuestFileSizeChangedEvent *pThis);
25723     nsrefcnt (*Release)(IGuestFileSizeChangedEvent *pThis);
25724     nsresult (*GetType)(IGuestFileSizeChangedEvent *pThis, PRUint32 *type);
25725 
25726     nsresult (*GetSource)(IGuestFileSizeChangedEvent *pThis, IEventSource * *source);
25727 
25728     nsresult (*GetWaitable)(IGuestFileSizeChangedEvent *pThis, PRBool *waitable);
25729 
25730     nsresult (*SetProcessed)(IGuestFileSizeChangedEvent *pThis );
25731 
25732     nsresult (*WaitProcessed)(
25733         IGuestFileSizeChangedEvent *pThis,
25734         PRInt32 timeout,
25735         PRBool * result
25736     );
25737 
25738     nsresult (*GetSession)(IGuestFileSizeChangedEvent *pThis, IGuestSession * *session);
25739 
25740     nsresult (*GetFile)(IGuestFileSizeChangedEvent *pThis, IGuestFile * *file);
25741 
25742     nsresult (*GetNewSize)(IGuestFileSizeChangedEvent *pThis, PRInt64 *newSize);
25743 
25744 };
25745 #    define IGuestFileSizeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25746 #    define IGuestFileSizeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25747 #    define IGuestFileSizeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25748 #    define IGuestFileSizeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25749 #    define IGuestFileSizeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25750 #    define IGuestFileSizeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25751 #    define IGuestFileSizeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25752 #    define IGuestFileSizeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25753 #    define IGuestFileSizeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25754 #    define IGuestFileSizeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25755 #    define IGuestFileSizeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25756 #    define IGuestFileSizeChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25757 #    define IGuestFileSizeChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25758 #    define IGuestFileSizeChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25759 #    define IGuestFileSizeChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25760 #    define IGuestFileSizeChangedEvent_get_NewSize(p, aNewSize) ((p)->lpVtbl->GetNewSize(p, aNewSize))
25761 #    define IGuestFileSizeChangedEvent_GetNewSize(p, aNewSize) ((p)->lpVtbl->GetNewSize(p, aNewSize))
25762 #   endif /* VBOX_WITH_GLUE */
25763 
25764 interface IGuestFileSizeChangedEvent
25765 {
25766 #   ifndef VBOX_WITH_GLUE
25767     struct IGuestFileSizeChangedEvent_vtbl *vtbl;
25768 #   else /* VBOX_WITH_GLUE */
25769     CONST_VTBL struct IGuestFileSizeChangedEventVtbl *lpVtbl;
25770 #   endif /* VBOX_WITH_GLUE */
25771 };
25772 /* End of struct IGuestFileSizeChangedEvent declaration */
25773 
25774 
25775 /* Start of struct IGuestFileReadEvent declaration */
25776 #   define IGUESTFILEREADEVENT_IID_STR "4ee3cbcb-486f-40db-9150-deee3fd24189"
25777 #   define IGUESTFILEREADEVENT_IID { \
25778     0x4ee3cbcb, 0x486f, 0x40db, \
25779     { 0x91, 0x50, 0xde, 0xee, 0x3f, 0xd2, 0x41, 0x89 } \
25780 }
25781 /* COM compatibility */
25782 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileReadEvent);
25783 #   ifndef VBOX_WITH_GLUE
25784 struct IGuestFileReadEvent_vtbl
25785 {
25786     struct IGuestFileIOEvent_vtbl iguestfileioevent;
25787 
25788     nsresult (*GetData)(IGuestFileReadEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
25789 
25790 };
25791 #   else /* VBOX_WITH_GLUE */
25792 struct IGuestFileReadEventVtbl
25793 {
25794     nsresult (*QueryInterface)(IGuestFileReadEvent *pThis, const nsID *iid, void **resultp);
25795     nsrefcnt (*AddRef)(IGuestFileReadEvent *pThis);
25796     nsrefcnt (*Release)(IGuestFileReadEvent *pThis);
25797     nsresult (*GetType)(IGuestFileReadEvent *pThis, PRUint32 *type);
25798 
25799     nsresult (*GetSource)(IGuestFileReadEvent *pThis, IEventSource * *source);
25800 
25801     nsresult (*GetWaitable)(IGuestFileReadEvent *pThis, PRBool *waitable);
25802 
25803     nsresult (*SetProcessed)(IGuestFileReadEvent *pThis );
25804 
25805     nsresult (*WaitProcessed)(
25806         IGuestFileReadEvent *pThis,
25807         PRInt32 timeout,
25808         PRBool * result
25809     );
25810 
25811     nsresult (*GetSession)(IGuestFileReadEvent *pThis, IGuestSession * *session);
25812 
25813     nsresult (*GetFile)(IGuestFileReadEvent *pThis, IGuestFile * *file);
25814 
25815     nsresult (*GetOffset)(IGuestFileReadEvent *pThis, PRInt64 *offset);
25816 
25817     nsresult (*GetProcessed)(IGuestFileReadEvent *pThis, PRUint32 *processed);
25818 
25819     nsresult (*GetData)(IGuestFileReadEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
25820 
25821 };
25822 #    define IGuestFileReadEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25823 #    define IGuestFileReadEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25824 #    define IGuestFileReadEvent_Release(p) ((p)->lpVtbl->Release(p))
25825 #    define IGuestFileReadEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25826 #    define IGuestFileReadEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25827 #    define IGuestFileReadEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25828 #    define IGuestFileReadEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25829 #    define IGuestFileReadEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25830 #    define IGuestFileReadEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25831 #    define IGuestFileReadEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25832 #    define IGuestFileReadEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25833 #    define IGuestFileReadEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25834 #    define IGuestFileReadEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25835 #    define IGuestFileReadEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25836 #    define IGuestFileReadEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25837 #    define IGuestFileReadEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25838 #    define IGuestFileReadEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25839 #    define IGuestFileReadEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25840 #    define IGuestFileReadEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25841 #    define IGuestFileReadEvent_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
25842 #    define IGuestFileReadEvent_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
25843 #   endif /* VBOX_WITH_GLUE */
25844 
25845 interface IGuestFileReadEvent
25846 {
25847 #   ifndef VBOX_WITH_GLUE
25848     struct IGuestFileReadEvent_vtbl *vtbl;
25849 #   else /* VBOX_WITH_GLUE */
25850     CONST_VTBL struct IGuestFileReadEventVtbl *lpVtbl;
25851 #   endif /* VBOX_WITH_GLUE */
25852 };
25853 /* End of struct IGuestFileReadEvent declaration */
25854 
25855 
25856 /* Start of struct IGuestFileWriteEvent declaration */
25857 #   define IGUESTFILEWRITEEVENT_IID_STR "e062a915-3cf5-4c0a-bc90-9b8d4cc94d89"
25858 #   define IGUESTFILEWRITEEVENT_IID { \
25859     0xe062a915, 0x3cf5, 0x4c0a, \
25860     { 0xbc, 0x90, 0x9b, 0x8d, 0x4c, 0xc9, 0x4d, 0x89 } \
25861 }
25862 /* COM compatibility */
25863 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileWriteEvent);
25864 #   ifndef VBOX_WITH_GLUE
25865 struct IGuestFileWriteEvent_vtbl
25866 {
25867     struct IGuestFileIOEvent_vtbl iguestfileioevent;
25868 
25869     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileWriteEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25870 
25871 };
25872 #   else /* VBOX_WITH_GLUE */
25873 struct IGuestFileWriteEventVtbl
25874 {
25875     nsresult (*QueryInterface)(IGuestFileWriteEvent *pThis, const nsID *iid, void **resultp);
25876     nsrefcnt (*AddRef)(IGuestFileWriteEvent *pThis);
25877     nsrefcnt (*Release)(IGuestFileWriteEvent *pThis);
25878     nsresult (*GetType)(IGuestFileWriteEvent *pThis, PRUint32 *type);
25879 
25880     nsresult (*GetSource)(IGuestFileWriteEvent *pThis, IEventSource * *source);
25881 
25882     nsresult (*GetWaitable)(IGuestFileWriteEvent *pThis, PRBool *waitable);
25883 
25884     nsresult (*SetProcessed)(IGuestFileWriteEvent *pThis );
25885 
25886     nsresult (*WaitProcessed)(
25887         IGuestFileWriteEvent *pThis,
25888         PRInt32 timeout,
25889         PRBool * result
25890     );
25891 
25892     nsresult (*GetSession)(IGuestFileWriteEvent *pThis, IGuestSession * *session);
25893 
25894     nsresult (*GetFile)(IGuestFileWriteEvent *pThis, IGuestFile * *file);
25895 
25896     nsresult (*GetOffset)(IGuestFileWriteEvent *pThis, PRInt64 *offset);
25897 
25898     nsresult (*GetProcessed)(IGuestFileWriteEvent *pThis, PRUint32 *processed);
25899 
25900     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileWriteEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25901 
25902 };
25903 #    define IGuestFileWriteEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25904 #    define IGuestFileWriteEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25905 #    define IGuestFileWriteEvent_Release(p) ((p)->lpVtbl->Release(p))
25906 #    define IGuestFileWriteEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25907 #    define IGuestFileWriteEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25908 #    define IGuestFileWriteEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25909 #    define IGuestFileWriteEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25910 #    define IGuestFileWriteEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25911 #    define IGuestFileWriteEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25912 #    define IGuestFileWriteEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25913 #    define IGuestFileWriteEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25914 #    define IGuestFileWriteEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25915 #    define IGuestFileWriteEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
25916 #    define IGuestFileWriteEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25917 #    define IGuestFileWriteEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
25918 #    define IGuestFileWriteEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25919 #    define IGuestFileWriteEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
25920 #    define IGuestFileWriteEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25921 #    define IGuestFileWriteEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
25922 #    define IGuestFileWriteEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25923 #    define IGuestFileWriteEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25924 #   endif /* VBOX_WITH_GLUE */
25925 
25926 interface IGuestFileWriteEvent
25927 {
25928 #   ifndef VBOX_WITH_GLUE
25929     struct IGuestFileWriteEvent_vtbl *vtbl;
25930 #   else /* VBOX_WITH_GLUE */
25931     CONST_VTBL struct IGuestFileWriteEventVtbl *lpVtbl;
25932 #   endif /* VBOX_WITH_GLUE */
25933 };
25934 /* End of struct IGuestFileWriteEvent declaration */
25935 
25936 
25937 /* Start of struct IVRDEServerChangedEvent declaration */
25938 #   define IVRDESERVERCHANGEDEVENT_IID_STR "a06fd66a-3188-4c8c-8756-1395e8cb691c"
25939 #   define IVRDESERVERCHANGEDEVENT_IID { \
25940     0xa06fd66a, 0x3188, 0x4c8c, \
25941     { 0x87, 0x56, 0x13, 0x95, 0xe8, 0xcb, 0x69, 0x1c } \
25942 }
25943 /* COM compatibility */
25944 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerChangedEvent);
25945 #   ifndef VBOX_WITH_GLUE
25946 struct IVRDEServerChangedEvent_vtbl
25947 {
25948     struct IEvent_vtbl ievent;
25949 
25950     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25951 
25952 };
25953 #   else /* VBOX_WITH_GLUE */
25954 struct IVRDEServerChangedEventVtbl
25955 {
25956     nsresult (*QueryInterface)(IVRDEServerChangedEvent *pThis, const nsID *iid, void **resultp);
25957     nsrefcnt (*AddRef)(IVRDEServerChangedEvent *pThis);
25958     nsrefcnt (*Release)(IVRDEServerChangedEvent *pThis);
25959     nsresult (*GetType)(IVRDEServerChangedEvent *pThis, PRUint32 *type);
25960 
25961     nsresult (*GetSource)(IVRDEServerChangedEvent *pThis, IEventSource * *source);
25962 
25963     nsresult (*GetWaitable)(IVRDEServerChangedEvent *pThis, PRBool *waitable);
25964 
25965     nsresult (*SetProcessed)(IVRDEServerChangedEvent *pThis );
25966 
25967     nsresult (*WaitProcessed)(
25968         IVRDEServerChangedEvent *pThis,
25969         PRInt32 timeout,
25970         PRBool * result
25971     );
25972 
25973     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25974 
25975 };
25976 #    define IVRDEServerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25977 #    define IVRDEServerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25978 #    define IVRDEServerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25979 #    define IVRDEServerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25980 #    define IVRDEServerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25981 #    define IVRDEServerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25982 #    define IVRDEServerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25983 #    define IVRDEServerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25984 #    define IVRDEServerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25985 #    define IVRDEServerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25986 #    define IVRDEServerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25987 #    define IVRDEServerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25988 #    define IVRDEServerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25989 #   endif /* VBOX_WITH_GLUE */
25990 
25991 interface IVRDEServerChangedEvent
25992 {
25993 #   ifndef VBOX_WITH_GLUE
25994     struct IVRDEServerChangedEvent_vtbl *vtbl;
25995 #   else /* VBOX_WITH_GLUE */
25996     CONST_VTBL struct IVRDEServerChangedEventVtbl *lpVtbl;
25997 #   endif /* VBOX_WITH_GLUE */
25998 };
25999 /* End of struct IVRDEServerChangedEvent declaration */
26000 
26001 
26002 /* Start of struct IVRDEServerInfoChangedEvent declaration */
26003 #   define IVRDESERVERINFOCHANGEDEVENT_IID_STR "dd6a1080-e1b7-4339-a549-f0878115596e"
26004 #   define IVRDESERVERINFOCHANGEDEVENT_IID { \
26005     0xdd6a1080, 0xe1b7, 0x4339, \
26006     { 0xa5, 0x49, 0xf0, 0x87, 0x81, 0x15, 0x59, 0x6e } \
26007 }
26008 /* COM compatibility */
26009 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerInfoChangedEvent);
26010 #   ifndef VBOX_WITH_GLUE
26011 struct IVRDEServerInfoChangedEvent_vtbl
26012 {
26013     struct IEvent_vtbl ievent;
26014 
26015     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerInfoChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26016 
26017 };
26018 #   else /* VBOX_WITH_GLUE */
26019 struct IVRDEServerInfoChangedEventVtbl
26020 {
26021     nsresult (*QueryInterface)(IVRDEServerInfoChangedEvent *pThis, const nsID *iid, void **resultp);
26022     nsrefcnt (*AddRef)(IVRDEServerInfoChangedEvent *pThis);
26023     nsrefcnt (*Release)(IVRDEServerInfoChangedEvent *pThis);
26024     nsresult (*GetType)(IVRDEServerInfoChangedEvent *pThis, PRUint32 *type);
26025 
26026     nsresult (*GetSource)(IVRDEServerInfoChangedEvent *pThis, IEventSource * *source);
26027 
26028     nsresult (*GetWaitable)(IVRDEServerInfoChangedEvent *pThis, PRBool *waitable);
26029 
26030     nsresult (*SetProcessed)(IVRDEServerInfoChangedEvent *pThis );
26031 
26032     nsresult (*WaitProcessed)(
26033         IVRDEServerInfoChangedEvent *pThis,
26034         PRInt32 timeout,
26035         PRBool * result
26036     );
26037 
26038     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerInfoChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26039 
26040 };
26041 #    define IVRDEServerInfoChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26042 #    define IVRDEServerInfoChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26043 #    define IVRDEServerInfoChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26044 #    define IVRDEServerInfoChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26045 #    define IVRDEServerInfoChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26046 #    define IVRDEServerInfoChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26047 #    define IVRDEServerInfoChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26048 #    define IVRDEServerInfoChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26049 #    define IVRDEServerInfoChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26050 #    define IVRDEServerInfoChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26051 #    define IVRDEServerInfoChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26052 #    define IVRDEServerInfoChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26053 #    define IVRDEServerInfoChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26054 #   endif /* VBOX_WITH_GLUE */
26055 
26056 interface IVRDEServerInfoChangedEvent
26057 {
26058 #   ifndef VBOX_WITH_GLUE
26059     struct IVRDEServerInfoChangedEvent_vtbl *vtbl;
26060 #   else /* VBOX_WITH_GLUE */
26061     CONST_VTBL struct IVRDEServerInfoChangedEventVtbl *lpVtbl;
26062 #   endif /* VBOX_WITH_GLUE */
26063 };
26064 /* End of struct IVRDEServerInfoChangedEvent declaration */
26065 
26066 
26067 /* Start of struct IRecordingChangedEvent declaration */
26068 #   define IRECORDINGCHANGEDEVENT_IID_STR "B5DDB370-08A7-4C8F-910D-47AABD67253A"
26069 #   define IRECORDINGCHANGEDEVENT_IID { \
26070     0xB5DDB370, 0x08A7, 0x4C8F, \
26071     { 0x91, 0x0D, 0x47, 0xAA, 0xBD, 0x67, 0x25, 0x3A } \
26072 }
26073 /* COM compatibility */
26074 VBOX_EXTERN_CONST(nsIID, IID_IRecordingChangedEvent);
26075 #   ifndef VBOX_WITH_GLUE
26076 struct IRecordingChangedEvent_vtbl
26077 {
26078     struct IEvent_vtbl ievent;
26079 
26080     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IRecordingChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26081 
26082 };
26083 #   else /* VBOX_WITH_GLUE */
26084 struct IRecordingChangedEventVtbl
26085 {
26086     nsresult (*QueryInterface)(IRecordingChangedEvent *pThis, const nsID *iid, void **resultp);
26087     nsrefcnt (*AddRef)(IRecordingChangedEvent *pThis);
26088     nsrefcnt (*Release)(IRecordingChangedEvent *pThis);
26089     nsresult (*GetType)(IRecordingChangedEvent *pThis, PRUint32 *type);
26090 
26091     nsresult (*GetSource)(IRecordingChangedEvent *pThis, IEventSource * *source);
26092 
26093     nsresult (*GetWaitable)(IRecordingChangedEvent *pThis, PRBool *waitable);
26094 
26095     nsresult (*SetProcessed)(IRecordingChangedEvent *pThis );
26096 
26097     nsresult (*WaitProcessed)(
26098         IRecordingChangedEvent *pThis,
26099         PRInt32 timeout,
26100         PRBool * result
26101     );
26102 
26103     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IRecordingChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26104 
26105 };
26106 #    define IRecordingChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26107 #    define IRecordingChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26108 #    define IRecordingChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26109 #    define IRecordingChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26110 #    define IRecordingChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26111 #    define IRecordingChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26112 #    define IRecordingChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26113 #    define IRecordingChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26114 #    define IRecordingChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26115 #    define IRecordingChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26116 #    define IRecordingChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26117 #    define IRecordingChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26118 #    define IRecordingChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26119 #   endif /* VBOX_WITH_GLUE */
26120 
26121 interface IRecordingChangedEvent
26122 {
26123 #   ifndef VBOX_WITH_GLUE
26124     struct IRecordingChangedEvent_vtbl *vtbl;
26125 #   else /* VBOX_WITH_GLUE */
26126     CONST_VTBL struct IRecordingChangedEventVtbl *lpVtbl;
26127 #   endif /* VBOX_WITH_GLUE */
26128 };
26129 /* End of struct IRecordingChangedEvent declaration */
26130 
26131 
26132 /* Start of struct IUSBControllerChangedEvent declaration */
26133 #   define IUSBCONTROLLERCHANGEDEVENT_IID_STR "93BADC0C-61D9-4940-A084-E6BB29AF3D83"
26134 #   define IUSBCONTROLLERCHANGEDEVENT_IID { \
26135     0x93BADC0C, 0x61D9, 0x4940, \
26136     { 0xA0, 0x84, 0xE6, 0xBB, 0x29, 0xAF, 0x3D, 0x83 } \
26137 }
26138 /* COM compatibility */
26139 VBOX_EXTERN_CONST(nsIID, IID_IUSBControllerChangedEvent);
26140 #   ifndef VBOX_WITH_GLUE
26141 struct IUSBControllerChangedEvent_vtbl
26142 {
26143     struct IEvent_vtbl ievent;
26144 
26145     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IUSBControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26146 
26147 };
26148 #   else /* VBOX_WITH_GLUE */
26149 struct IUSBControllerChangedEventVtbl
26150 {
26151     nsresult (*QueryInterface)(IUSBControllerChangedEvent *pThis, const nsID *iid, void **resultp);
26152     nsrefcnt (*AddRef)(IUSBControllerChangedEvent *pThis);
26153     nsrefcnt (*Release)(IUSBControllerChangedEvent *pThis);
26154     nsresult (*GetType)(IUSBControllerChangedEvent *pThis, PRUint32 *type);
26155 
26156     nsresult (*GetSource)(IUSBControllerChangedEvent *pThis, IEventSource * *source);
26157 
26158     nsresult (*GetWaitable)(IUSBControllerChangedEvent *pThis, PRBool *waitable);
26159 
26160     nsresult (*SetProcessed)(IUSBControllerChangedEvent *pThis );
26161 
26162     nsresult (*WaitProcessed)(
26163         IUSBControllerChangedEvent *pThis,
26164         PRInt32 timeout,
26165         PRBool * result
26166     );
26167 
26168     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IUSBControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26169 
26170 };
26171 #    define IUSBControllerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26172 #    define IUSBControllerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26173 #    define IUSBControllerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26174 #    define IUSBControllerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26175 #    define IUSBControllerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26176 #    define IUSBControllerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26177 #    define IUSBControllerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26178 #    define IUSBControllerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26179 #    define IUSBControllerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26180 #    define IUSBControllerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26181 #    define IUSBControllerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26182 #    define IUSBControllerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26183 #    define IUSBControllerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26184 #   endif /* VBOX_WITH_GLUE */
26185 
26186 interface IUSBControllerChangedEvent
26187 {
26188 #   ifndef VBOX_WITH_GLUE
26189     struct IUSBControllerChangedEvent_vtbl *vtbl;
26190 #   else /* VBOX_WITH_GLUE */
26191     CONST_VTBL struct IUSBControllerChangedEventVtbl *lpVtbl;
26192 #   endif /* VBOX_WITH_GLUE */
26193 };
26194 /* End of struct IUSBControllerChangedEvent declaration */
26195 
26196 
26197 /* Start of struct IUSBDeviceStateChangedEvent declaration */
26198 #   define IUSBDEVICESTATECHANGEDEVENT_IID_STR "806da61b-6679-422a-b629-51b06b0c6d93"
26199 #   define IUSBDEVICESTATECHANGEDEVENT_IID { \
26200     0x806da61b, 0x6679, 0x422a, \
26201     { 0xb6, 0x29, 0x51, 0xb0, 0x6b, 0x0c, 0x6d, 0x93 } \
26202 }
26203 /* COM compatibility */
26204 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceStateChangedEvent);
26205 #   ifndef VBOX_WITH_GLUE
26206 struct IUSBDeviceStateChangedEvent_vtbl
26207 {
26208     struct IEvent_vtbl ievent;
26209 
26210     nsresult (*GetDevice)(IUSBDeviceStateChangedEvent *pThis, IUSBDevice * *device);
26211 
26212     nsresult (*GetAttached)(IUSBDeviceStateChangedEvent *pThis, PRBool *attached);
26213 
26214     nsresult (*GetError)(IUSBDeviceStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
26215 
26216 };
26217 #   else /* VBOX_WITH_GLUE */
26218 struct IUSBDeviceStateChangedEventVtbl
26219 {
26220     nsresult (*QueryInterface)(IUSBDeviceStateChangedEvent *pThis, const nsID *iid, void **resultp);
26221     nsrefcnt (*AddRef)(IUSBDeviceStateChangedEvent *pThis);
26222     nsrefcnt (*Release)(IUSBDeviceStateChangedEvent *pThis);
26223     nsresult (*GetType)(IUSBDeviceStateChangedEvent *pThis, PRUint32 *type);
26224 
26225     nsresult (*GetSource)(IUSBDeviceStateChangedEvent *pThis, IEventSource * *source);
26226 
26227     nsresult (*GetWaitable)(IUSBDeviceStateChangedEvent *pThis, PRBool *waitable);
26228 
26229     nsresult (*SetProcessed)(IUSBDeviceStateChangedEvent *pThis );
26230 
26231     nsresult (*WaitProcessed)(
26232         IUSBDeviceStateChangedEvent *pThis,
26233         PRInt32 timeout,
26234         PRBool * result
26235     );
26236 
26237     nsresult (*GetDevice)(IUSBDeviceStateChangedEvent *pThis, IUSBDevice * *device);
26238 
26239     nsresult (*GetAttached)(IUSBDeviceStateChangedEvent *pThis, PRBool *attached);
26240 
26241     nsresult (*GetError)(IUSBDeviceStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
26242 
26243 };
26244 #    define IUSBDeviceStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26245 #    define IUSBDeviceStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26246 #    define IUSBDeviceStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26247 #    define IUSBDeviceStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26248 #    define IUSBDeviceStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26249 #    define IUSBDeviceStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26250 #    define IUSBDeviceStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26251 #    define IUSBDeviceStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26252 #    define IUSBDeviceStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26253 #    define IUSBDeviceStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26254 #    define IUSBDeviceStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26255 #    define IUSBDeviceStateChangedEvent_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
26256 #    define IUSBDeviceStateChangedEvent_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
26257 #    define IUSBDeviceStateChangedEvent_get_Attached(p, aAttached) ((p)->lpVtbl->GetAttached(p, aAttached))
26258 #    define IUSBDeviceStateChangedEvent_GetAttached(p, aAttached) ((p)->lpVtbl->GetAttached(p, aAttached))
26259 #    define IUSBDeviceStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
26260 #    define IUSBDeviceStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
26261 #   endif /* VBOX_WITH_GLUE */
26262 
26263 interface IUSBDeviceStateChangedEvent
26264 {
26265 #   ifndef VBOX_WITH_GLUE
26266     struct IUSBDeviceStateChangedEvent_vtbl *vtbl;
26267 #   else /* VBOX_WITH_GLUE */
26268     CONST_VTBL struct IUSBDeviceStateChangedEventVtbl *lpVtbl;
26269 #   endif /* VBOX_WITH_GLUE */
26270 };
26271 /* End of struct IUSBDeviceStateChangedEvent declaration */
26272 
26273 
26274 /* Start of struct ISharedFolderChangedEvent declaration */
26275 #   define ISHAREDFOLDERCHANGEDEVENT_IID_STR "B66349B5-3534-4239-B2DE-8E1535D94C0B"
26276 #   define ISHAREDFOLDERCHANGEDEVENT_IID { \
26277     0xB66349B5, 0x3534, 0x4239, \
26278     { 0xB2, 0xDE, 0x8E, 0x15, 0x35, 0xD9, 0x4C, 0x0B } \
26279 }
26280 /* COM compatibility */
26281 VBOX_EXTERN_CONST(nsIID, IID_ISharedFolderChangedEvent);
26282 #   ifndef VBOX_WITH_GLUE
26283 struct ISharedFolderChangedEvent_vtbl
26284 {
26285     struct IEvent_vtbl ievent;
26286 
26287     nsresult (*GetScope)(ISharedFolderChangedEvent *pThis, PRUint32 *scope);
26288 
26289 };
26290 #   else /* VBOX_WITH_GLUE */
26291 struct ISharedFolderChangedEventVtbl
26292 {
26293     nsresult (*QueryInterface)(ISharedFolderChangedEvent *pThis, const nsID *iid, void **resultp);
26294     nsrefcnt (*AddRef)(ISharedFolderChangedEvent *pThis);
26295     nsrefcnt (*Release)(ISharedFolderChangedEvent *pThis);
26296     nsresult (*GetType)(ISharedFolderChangedEvent *pThis, PRUint32 *type);
26297 
26298     nsresult (*GetSource)(ISharedFolderChangedEvent *pThis, IEventSource * *source);
26299 
26300     nsresult (*GetWaitable)(ISharedFolderChangedEvent *pThis, PRBool *waitable);
26301 
26302     nsresult (*SetProcessed)(ISharedFolderChangedEvent *pThis );
26303 
26304     nsresult (*WaitProcessed)(
26305         ISharedFolderChangedEvent *pThis,
26306         PRInt32 timeout,
26307         PRBool * result
26308     );
26309 
26310     nsresult (*GetScope)(ISharedFolderChangedEvent *pThis, PRUint32 *scope);
26311 
26312 };
26313 #    define ISharedFolderChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26314 #    define ISharedFolderChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26315 #    define ISharedFolderChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26316 #    define ISharedFolderChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26317 #    define ISharedFolderChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26318 #    define ISharedFolderChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26319 #    define ISharedFolderChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26320 #    define ISharedFolderChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26321 #    define ISharedFolderChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26322 #    define ISharedFolderChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26323 #    define ISharedFolderChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26324 #    define ISharedFolderChangedEvent_get_Scope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
26325 #    define ISharedFolderChangedEvent_GetScope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
26326 #   endif /* VBOX_WITH_GLUE */
26327 
26328 interface ISharedFolderChangedEvent
26329 {
26330 #   ifndef VBOX_WITH_GLUE
26331     struct ISharedFolderChangedEvent_vtbl *vtbl;
26332 #   else /* VBOX_WITH_GLUE */
26333     CONST_VTBL struct ISharedFolderChangedEventVtbl *lpVtbl;
26334 #   endif /* VBOX_WITH_GLUE */
26335 };
26336 /* End of struct ISharedFolderChangedEvent declaration */
26337 
26338 
26339 /* Start of struct IRuntimeErrorEvent declaration */
26340 #   define IRUNTIMEERROREVENT_IID_STR "883DD18B-0721-4CDE-867C-1A82ABAF914C"
26341 #   define IRUNTIMEERROREVENT_IID { \
26342     0x883DD18B, 0x0721, 0x4CDE, \
26343     { 0x86, 0x7C, 0x1A, 0x82, 0xAB, 0xAF, 0x91, 0x4C } \
26344 }
26345 /* COM compatibility */
26346 VBOX_EXTERN_CONST(nsIID, IID_IRuntimeErrorEvent);
26347 #   ifndef VBOX_WITH_GLUE
26348 struct IRuntimeErrorEvent_vtbl
26349 {
26350     struct IEvent_vtbl ievent;
26351 
26352     nsresult (*GetFatal)(IRuntimeErrorEvent *pThis, PRBool *fatal);
26353 
26354     nsresult (*GetId)(IRuntimeErrorEvent *pThis, PRUnichar * *id);
26355 
26356     nsresult (*GetMessage)(IRuntimeErrorEvent *pThis, PRUnichar * *message);
26357 
26358 };
26359 #   else /* VBOX_WITH_GLUE */
26360 struct IRuntimeErrorEventVtbl
26361 {
26362     nsresult (*QueryInterface)(IRuntimeErrorEvent *pThis, const nsID *iid, void **resultp);
26363     nsrefcnt (*AddRef)(IRuntimeErrorEvent *pThis);
26364     nsrefcnt (*Release)(IRuntimeErrorEvent *pThis);
26365     nsresult (*GetType)(IRuntimeErrorEvent *pThis, PRUint32 *type);
26366 
26367     nsresult (*GetSource)(IRuntimeErrorEvent *pThis, IEventSource * *source);
26368 
26369     nsresult (*GetWaitable)(IRuntimeErrorEvent *pThis, PRBool *waitable);
26370 
26371     nsresult (*SetProcessed)(IRuntimeErrorEvent *pThis );
26372 
26373     nsresult (*WaitProcessed)(
26374         IRuntimeErrorEvent *pThis,
26375         PRInt32 timeout,
26376         PRBool * result
26377     );
26378 
26379     nsresult (*GetFatal)(IRuntimeErrorEvent *pThis, PRBool *fatal);
26380 
26381     nsresult (*GetId)(IRuntimeErrorEvent *pThis, PRUnichar * *id);
26382 
26383     nsresult (*GetMessage)(IRuntimeErrorEvent *pThis, PRUnichar * *message);
26384 
26385 };
26386 #    define IRuntimeErrorEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26387 #    define IRuntimeErrorEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26388 #    define IRuntimeErrorEvent_Release(p) ((p)->lpVtbl->Release(p))
26389 #    define IRuntimeErrorEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26390 #    define IRuntimeErrorEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26391 #    define IRuntimeErrorEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26392 #    define IRuntimeErrorEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26393 #    define IRuntimeErrorEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26394 #    define IRuntimeErrorEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26395 #    define IRuntimeErrorEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26396 #    define IRuntimeErrorEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26397 #    define IRuntimeErrorEvent_get_Fatal(p, aFatal) ((p)->lpVtbl->GetFatal(p, aFatal))
26398 #    define IRuntimeErrorEvent_GetFatal(p, aFatal) ((p)->lpVtbl->GetFatal(p, aFatal))
26399 #    define IRuntimeErrorEvent_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
26400 #    define IRuntimeErrorEvent_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
26401 #    define IRuntimeErrorEvent_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
26402 #    define IRuntimeErrorEvent_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
26403 #   endif /* VBOX_WITH_GLUE */
26404 
26405 interface IRuntimeErrorEvent
26406 {
26407 #   ifndef VBOX_WITH_GLUE
26408     struct IRuntimeErrorEvent_vtbl *vtbl;
26409 #   else /* VBOX_WITH_GLUE */
26410     CONST_VTBL struct IRuntimeErrorEventVtbl *lpVtbl;
26411 #   endif /* VBOX_WITH_GLUE */
26412 };
26413 /* End of struct IRuntimeErrorEvent declaration */
26414 
26415 
26416 /* Start of struct IEventSourceChangedEvent declaration */
26417 #   define IEVENTSOURCECHANGEDEVENT_IID_STR "e7932cb8-f6d4-4ab6-9cbf-558eb8959a6a"
26418 #   define IEVENTSOURCECHANGEDEVENT_IID { \
26419     0xe7932cb8, 0xf6d4, 0x4ab6, \
26420     { 0x9c, 0xbf, 0x55, 0x8e, 0xb8, 0x95, 0x9a, 0x6a } \
26421 }
26422 /* COM compatibility */
26423 VBOX_EXTERN_CONST(nsIID, IID_IEventSourceChangedEvent);
26424 #   ifndef VBOX_WITH_GLUE
26425 struct IEventSourceChangedEvent_vtbl
26426 {
26427     struct IEvent_vtbl ievent;
26428 
26429     nsresult (*GetListener)(IEventSourceChangedEvent *pThis, IEventListener * *listener);
26430 
26431     nsresult (*GetAdd)(IEventSourceChangedEvent *pThis, PRBool *add);
26432 
26433 };
26434 #   else /* VBOX_WITH_GLUE */
26435 struct IEventSourceChangedEventVtbl
26436 {
26437     nsresult (*QueryInterface)(IEventSourceChangedEvent *pThis, const nsID *iid, void **resultp);
26438     nsrefcnt (*AddRef)(IEventSourceChangedEvent *pThis);
26439     nsrefcnt (*Release)(IEventSourceChangedEvent *pThis);
26440     nsresult (*GetType)(IEventSourceChangedEvent *pThis, PRUint32 *type);
26441 
26442     nsresult (*GetSource)(IEventSourceChangedEvent *pThis, IEventSource * *source);
26443 
26444     nsresult (*GetWaitable)(IEventSourceChangedEvent *pThis, PRBool *waitable);
26445 
26446     nsresult (*SetProcessed)(IEventSourceChangedEvent *pThis );
26447 
26448     nsresult (*WaitProcessed)(
26449         IEventSourceChangedEvent *pThis,
26450         PRInt32 timeout,
26451         PRBool * result
26452     );
26453 
26454     nsresult (*GetListener)(IEventSourceChangedEvent *pThis, IEventListener * *listener);
26455 
26456     nsresult (*GetAdd)(IEventSourceChangedEvent *pThis, PRBool *add);
26457 
26458 };
26459 #    define IEventSourceChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26460 #    define IEventSourceChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26461 #    define IEventSourceChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26462 #    define IEventSourceChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26463 #    define IEventSourceChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26464 #    define IEventSourceChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26465 #    define IEventSourceChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26466 #    define IEventSourceChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26467 #    define IEventSourceChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26468 #    define IEventSourceChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26469 #    define IEventSourceChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26470 #    define IEventSourceChangedEvent_get_Listener(p, aListener) ((p)->lpVtbl->GetListener(p, aListener))
26471 #    define IEventSourceChangedEvent_GetListener(p, aListener) ((p)->lpVtbl->GetListener(p, aListener))
26472 #    define IEventSourceChangedEvent_get_Add(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
26473 #    define IEventSourceChangedEvent_GetAdd(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
26474 #   endif /* VBOX_WITH_GLUE */
26475 
26476 interface IEventSourceChangedEvent
26477 {
26478 #   ifndef VBOX_WITH_GLUE
26479     struct IEventSourceChangedEvent_vtbl *vtbl;
26480 #   else /* VBOX_WITH_GLUE */
26481     CONST_VTBL struct IEventSourceChangedEventVtbl *lpVtbl;
26482 #   endif /* VBOX_WITH_GLUE */
26483 };
26484 /* End of struct IEventSourceChangedEvent declaration */
26485 
26486 
26487 /* Start of struct IExtraDataChangedEvent declaration */
26488 #   define IEXTRADATACHANGEDEVENT_IID_STR "024F00CE-6E0B-492A-A8D0-968472A94DC7"
26489 #   define IEXTRADATACHANGEDEVENT_IID { \
26490     0x024F00CE, 0x6E0B, 0x492A, \
26491     { 0xA8, 0xD0, 0x96, 0x84, 0x72, 0xA9, 0x4D, 0xC7 } \
26492 }
26493 /* COM compatibility */
26494 VBOX_EXTERN_CONST(nsIID, IID_IExtraDataChangedEvent);
26495 #   ifndef VBOX_WITH_GLUE
26496 struct IExtraDataChangedEvent_vtbl
26497 {
26498     struct IEvent_vtbl ievent;
26499 
26500     nsresult (*GetMachineId)(IExtraDataChangedEvent *pThis, PRUnichar * *machineId);
26501 
26502     nsresult (*GetKey)(IExtraDataChangedEvent *pThis, PRUnichar * *key);
26503 
26504     nsresult (*GetValue)(IExtraDataChangedEvent *pThis, PRUnichar * *value);
26505 
26506 };
26507 #   else /* VBOX_WITH_GLUE */
26508 struct IExtraDataChangedEventVtbl
26509 {
26510     nsresult (*QueryInterface)(IExtraDataChangedEvent *pThis, const nsID *iid, void **resultp);
26511     nsrefcnt (*AddRef)(IExtraDataChangedEvent *pThis);
26512     nsrefcnt (*Release)(IExtraDataChangedEvent *pThis);
26513     nsresult (*GetType)(IExtraDataChangedEvent *pThis, PRUint32 *type);
26514 
26515     nsresult (*GetSource)(IExtraDataChangedEvent *pThis, IEventSource * *source);
26516 
26517     nsresult (*GetWaitable)(IExtraDataChangedEvent *pThis, PRBool *waitable);
26518 
26519     nsresult (*SetProcessed)(IExtraDataChangedEvent *pThis );
26520 
26521     nsresult (*WaitProcessed)(
26522         IExtraDataChangedEvent *pThis,
26523         PRInt32 timeout,
26524         PRBool * result
26525     );
26526 
26527     nsresult (*GetMachineId)(IExtraDataChangedEvent *pThis, PRUnichar * *machineId);
26528 
26529     nsresult (*GetKey)(IExtraDataChangedEvent *pThis, PRUnichar * *key);
26530 
26531     nsresult (*GetValue)(IExtraDataChangedEvent *pThis, PRUnichar * *value);
26532 
26533 };
26534 #    define IExtraDataChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26535 #    define IExtraDataChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26536 #    define IExtraDataChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26537 #    define IExtraDataChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26538 #    define IExtraDataChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26539 #    define IExtraDataChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26540 #    define IExtraDataChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26541 #    define IExtraDataChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26542 #    define IExtraDataChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26543 #    define IExtraDataChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26544 #    define IExtraDataChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26545 #    define IExtraDataChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
26546 #    define IExtraDataChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
26547 #    define IExtraDataChangedEvent_get_Key(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
26548 #    define IExtraDataChangedEvent_GetKey(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
26549 #    define IExtraDataChangedEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
26550 #    define IExtraDataChangedEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
26551 #   endif /* VBOX_WITH_GLUE */
26552 
26553 interface IExtraDataChangedEvent
26554 {
26555 #   ifndef VBOX_WITH_GLUE
26556     struct IExtraDataChangedEvent_vtbl *vtbl;
26557 #   else /* VBOX_WITH_GLUE */
26558     CONST_VTBL struct IExtraDataChangedEventVtbl *lpVtbl;
26559 #   endif /* VBOX_WITH_GLUE */
26560 };
26561 /* End of struct IExtraDataChangedEvent declaration */
26562 
26563 
26564 /* Start of struct IVetoEvent declaration */
26565 #   define IVETOEVENT_IID_STR "7c5e945f-2354-4267-883f-2f417d216519"
26566 #   define IVETOEVENT_IID { \
26567     0x7c5e945f, 0x2354, 0x4267, \
26568     { 0x88, 0x3f, 0x2f, 0x41, 0x7d, 0x21, 0x65, 0x19 } \
26569 }
26570 /* COM compatibility */
26571 VBOX_EXTERN_CONST(nsIID, IID_IVetoEvent);
26572 #   ifndef VBOX_WITH_GLUE
26573 struct IVetoEvent_vtbl
26574 {
26575     struct IEvent_vtbl ievent;
26576 
26577     nsresult (*AddVeto)(
26578         IVetoEvent *pThis,
26579         PRUnichar * reason
26580     );
26581 
26582     nsresult (*IsVetoed)(
26583         IVetoEvent *pThis,
26584         PRBool * result
26585     );
26586 
26587     nsresult (*GetVetos)(
26588         IVetoEvent *pThis,
26589         PRUint32 *resultSize,
26590         PRUnichar *** result
26591     );
26592 
26593     nsresult (*AddApproval)(
26594         IVetoEvent *pThis,
26595         PRUnichar * reason
26596     );
26597 
26598     nsresult (*IsApproved)(
26599         IVetoEvent *pThis,
26600         PRBool * result
26601     );
26602 
26603     nsresult (*GetApprovals)(
26604         IVetoEvent *pThis,
26605         PRUint32 *resultSize,
26606         PRUnichar *** result
26607     );
26608 
26609 };
26610 #   else /* VBOX_WITH_GLUE */
26611 struct IVetoEventVtbl
26612 {
26613     nsresult (*QueryInterface)(IVetoEvent *pThis, const nsID *iid, void **resultp);
26614     nsrefcnt (*AddRef)(IVetoEvent *pThis);
26615     nsrefcnt (*Release)(IVetoEvent *pThis);
26616     nsresult (*GetType)(IVetoEvent *pThis, PRUint32 *type);
26617 
26618     nsresult (*GetSource)(IVetoEvent *pThis, IEventSource * *source);
26619 
26620     nsresult (*GetWaitable)(IVetoEvent *pThis, PRBool *waitable);
26621 
26622     nsresult (*SetProcessed)(IVetoEvent *pThis );
26623 
26624     nsresult (*WaitProcessed)(
26625         IVetoEvent *pThis,
26626         PRInt32 timeout,
26627         PRBool * result
26628     );
26629 
26630     nsresult (*AddVeto)(
26631         IVetoEvent *pThis,
26632         PRUnichar * reason
26633     );
26634 
26635     nsresult (*IsVetoed)(
26636         IVetoEvent *pThis,
26637         PRBool * result
26638     );
26639 
26640     nsresult (*GetVetos)(
26641         IVetoEvent *pThis,
26642         PRUint32 *resultSize,
26643         PRUnichar *** result
26644     );
26645 
26646     nsresult (*AddApproval)(
26647         IVetoEvent *pThis,
26648         PRUnichar * reason
26649     );
26650 
26651     nsresult (*IsApproved)(
26652         IVetoEvent *pThis,
26653         PRBool * result
26654     );
26655 
26656     nsresult (*GetApprovals)(
26657         IVetoEvent *pThis,
26658         PRUint32 *resultSize,
26659         PRUnichar *** result
26660     );
26661 
26662 };
26663 #    define IVetoEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26664 #    define IVetoEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26665 #    define IVetoEvent_Release(p) ((p)->lpVtbl->Release(p))
26666 #    define IVetoEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26667 #    define IVetoEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26668 #    define IVetoEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26669 #    define IVetoEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26670 #    define IVetoEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26671 #    define IVetoEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26672 #    define IVetoEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26673 #    define IVetoEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26674 #    define IVetoEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
26675 #    define IVetoEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
26676 #    define IVetoEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
26677 #    define IVetoEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
26678 #    define IVetoEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
26679 #    define IVetoEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
26680 #   endif /* VBOX_WITH_GLUE */
26681 
26682 interface IVetoEvent
26683 {
26684 #   ifndef VBOX_WITH_GLUE
26685     struct IVetoEvent_vtbl *vtbl;
26686 #   else /* VBOX_WITH_GLUE */
26687     CONST_VTBL struct IVetoEventVtbl *lpVtbl;
26688 #   endif /* VBOX_WITH_GLUE */
26689 };
26690 /* End of struct IVetoEvent declaration */
26691 
26692 
26693 /* Start of struct IExtraDataCanChangeEvent declaration */
26694 #   define IEXTRADATACANCHANGEEVENT_IID_STR "245d88bd-800a-40f8-87a6-170d02249a55"
26695 #   define IEXTRADATACANCHANGEEVENT_IID { \
26696     0x245d88bd, 0x800a, 0x40f8, \
26697     { 0x87, 0xa6, 0x17, 0x0d, 0x02, 0x24, 0x9a, 0x55 } \
26698 }
26699 /* COM compatibility */
26700 VBOX_EXTERN_CONST(nsIID, IID_IExtraDataCanChangeEvent);
26701 #   ifndef VBOX_WITH_GLUE
26702 struct IExtraDataCanChangeEvent_vtbl
26703 {
26704     struct IVetoEvent_vtbl ivetoevent;
26705 
26706     nsresult (*GetMachineId)(IExtraDataCanChangeEvent *pThis, PRUnichar * *machineId);
26707 
26708     nsresult (*GetKey)(IExtraDataCanChangeEvent *pThis, PRUnichar * *key);
26709 
26710     nsresult (*GetValue)(IExtraDataCanChangeEvent *pThis, PRUnichar * *value);
26711 
26712 };
26713 #   else /* VBOX_WITH_GLUE */
26714 struct IExtraDataCanChangeEventVtbl
26715 {
26716     nsresult (*QueryInterface)(IExtraDataCanChangeEvent *pThis, const nsID *iid, void **resultp);
26717     nsrefcnt (*AddRef)(IExtraDataCanChangeEvent *pThis);
26718     nsrefcnt (*Release)(IExtraDataCanChangeEvent *pThis);
26719     nsresult (*GetType)(IExtraDataCanChangeEvent *pThis, PRUint32 *type);
26720 
26721     nsresult (*GetSource)(IExtraDataCanChangeEvent *pThis, IEventSource * *source);
26722 
26723     nsresult (*GetWaitable)(IExtraDataCanChangeEvent *pThis, PRBool *waitable);
26724 
26725     nsresult (*SetProcessed)(IExtraDataCanChangeEvent *pThis );
26726 
26727     nsresult (*WaitProcessed)(
26728         IExtraDataCanChangeEvent *pThis,
26729         PRInt32 timeout,
26730         PRBool * result
26731     );
26732 
26733     nsresult (*AddVeto)(
26734         IExtraDataCanChangeEvent *pThis,
26735         PRUnichar * reason
26736     );
26737 
26738     nsresult (*IsVetoed)(
26739         IExtraDataCanChangeEvent *pThis,
26740         PRBool * result
26741     );
26742 
26743     nsresult (*GetVetos)(
26744         IExtraDataCanChangeEvent *pThis,
26745         PRUint32 *resultSize,
26746         PRUnichar *** result
26747     );
26748 
26749     nsresult (*AddApproval)(
26750         IExtraDataCanChangeEvent *pThis,
26751         PRUnichar * reason
26752     );
26753 
26754     nsresult (*IsApproved)(
26755         IExtraDataCanChangeEvent *pThis,
26756         PRBool * result
26757     );
26758 
26759     nsresult (*GetApprovals)(
26760         IExtraDataCanChangeEvent *pThis,
26761         PRUint32 *resultSize,
26762         PRUnichar *** result
26763     );
26764 
26765     nsresult (*GetMachineId)(IExtraDataCanChangeEvent *pThis, PRUnichar * *machineId);
26766 
26767     nsresult (*GetKey)(IExtraDataCanChangeEvent *pThis, PRUnichar * *key);
26768 
26769     nsresult (*GetValue)(IExtraDataCanChangeEvent *pThis, PRUnichar * *value);
26770 
26771 };
26772 #    define IExtraDataCanChangeEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26773 #    define IExtraDataCanChangeEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26774 #    define IExtraDataCanChangeEvent_Release(p) ((p)->lpVtbl->Release(p))
26775 #    define IExtraDataCanChangeEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26776 #    define IExtraDataCanChangeEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26777 #    define IExtraDataCanChangeEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26778 #    define IExtraDataCanChangeEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26779 #    define IExtraDataCanChangeEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26780 #    define IExtraDataCanChangeEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26781 #    define IExtraDataCanChangeEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26782 #    define IExtraDataCanChangeEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26783 #    define IExtraDataCanChangeEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
26784 #    define IExtraDataCanChangeEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
26785 #    define IExtraDataCanChangeEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
26786 #    define IExtraDataCanChangeEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
26787 #    define IExtraDataCanChangeEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
26788 #    define IExtraDataCanChangeEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
26789 #    define IExtraDataCanChangeEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
26790 #    define IExtraDataCanChangeEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
26791 #    define IExtraDataCanChangeEvent_get_Key(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
26792 #    define IExtraDataCanChangeEvent_GetKey(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
26793 #    define IExtraDataCanChangeEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
26794 #    define IExtraDataCanChangeEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
26795 #   endif /* VBOX_WITH_GLUE */
26796 
26797 interface IExtraDataCanChangeEvent
26798 {
26799 #   ifndef VBOX_WITH_GLUE
26800     struct IExtraDataCanChangeEvent_vtbl *vtbl;
26801 #   else /* VBOX_WITH_GLUE */
26802     CONST_VTBL struct IExtraDataCanChangeEventVtbl *lpVtbl;
26803 #   endif /* VBOX_WITH_GLUE */
26804 };
26805 /* End of struct IExtraDataCanChangeEvent declaration */
26806 
26807 
26808 /* Start of struct ICanShowWindowEvent declaration */
26809 #   define ICANSHOWWINDOWEVENT_IID_STR "adf292b0-92c9-4a77-9d35-e058b39fe0b9"
26810 #   define ICANSHOWWINDOWEVENT_IID { \
26811     0xadf292b0, 0x92c9, 0x4a77, \
26812     { 0x9d, 0x35, 0xe0, 0x58, 0xb3, 0x9f, 0xe0, 0xb9 } \
26813 }
26814 /* COM compatibility */
26815 VBOX_EXTERN_CONST(nsIID, IID_ICanShowWindowEvent);
26816 #   ifndef VBOX_WITH_GLUE
26817 struct ICanShowWindowEvent_vtbl
26818 {
26819     struct IVetoEvent_vtbl ivetoevent;
26820 
26821     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ICanShowWindowEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26822 
26823 };
26824 #   else /* VBOX_WITH_GLUE */
26825 struct ICanShowWindowEventVtbl
26826 {
26827     nsresult (*QueryInterface)(ICanShowWindowEvent *pThis, const nsID *iid, void **resultp);
26828     nsrefcnt (*AddRef)(ICanShowWindowEvent *pThis);
26829     nsrefcnt (*Release)(ICanShowWindowEvent *pThis);
26830     nsresult (*GetType)(ICanShowWindowEvent *pThis, PRUint32 *type);
26831 
26832     nsresult (*GetSource)(ICanShowWindowEvent *pThis, IEventSource * *source);
26833 
26834     nsresult (*GetWaitable)(ICanShowWindowEvent *pThis, PRBool *waitable);
26835 
26836     nsresult (*SetProcessed)(ICanShowWindowEvent *pThis );
26837 
26838     nsresult (*WaitProcessed)(
26839         ICanShowWindowEvent *pThis,
26840         PRInt32 timeout,
26841         PRBool * result
26842     );
26843 
26844     nsresult (*AddVeto)(
26845         ICanShowWindowEvent *pThis,
26846         PRUnichar * reason
26847     );
26848 
26849     nsresult (*IsVetoed)(
26850         ICanShowWindowEvent *pThis,
26851         PRBool * result
26852     );
26853 
26854     nsresult (*GetVetos)(
26855         ICanShowWindowEvent *pThis,
26856         PRUint32 *resultSize,
26857         PRUnichar *** result
26858     );
26859 
26860     nsresult (*AddApproval)(
26861         ICanShowWindowEvent *pThis,
26862         PRUnichar * reason
26863     );
26864 
26865     nsresult (*IsApproved)(
26866         ICanShowWindowEvent *pThis,
26867         PRBool * result
26868     );
26869 
26870     nsresult (*GetApprovals)(
26871         ICanShowWindowEvent *pThis,
26872         PRUint32 *resultSize,
26873         PRUnichar *** result
26874     );
26875 
26876     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ICanShowWindowEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26877 
26878 };
26879 #    define ICanShowWindowEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26880 #    define ICanShowWindowEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26881 #    define ICanShowWindowEvent_Release(p) ((p)->lpVtbl->Release(p))
26882 #    define ICanShowWindowEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26883 #    define ICanShowWindowEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26884 #    define ICanShowWindowEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26885 #    define ICanShowWindowEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26886 #    define ICanShowWindowEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26887 #    define ICanShowWindowEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26888 #    define ICanShowWindowEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26889 #    define ICanShowWindowEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26890 #    define ICanShowWindowEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
26891 #    define ICanShowWindowEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
26892 #    define ICanShowWindowEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
26893 #    define ICanShowWindowEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
26894 #    define ICanShowWindowEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
26895 #    define ICanShowWindowEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
26896 #    define ICanShowWindowEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26897 #    define ICanShowWindowEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26898 #   endif /* VBOX_WITH_GLUE */
26899 
26900 interface ICanShowWindowEvent
26901 {
26902 #   ifndef VBOX_WITH_GLUE
26903     struct ICanShowWindowEvent_vtbl *vtbl;
26904 #   else /* VBOX_WITH_GLUE */
26905     CONST_VTBL struct ICanShowWindowEventVtbl *lpVtbl;
26906 #   endif /* VBOX_WITH_GLUE */
26907 };
26908 /* End of struct ICanShowWindowEvent declaration */
26909 
26910 
26911 /* Start of struct IShowWindowEvent declaration */
26912 #   define ISHOWWINDOWEVENT_IID_STR "B0A0904D-2F05-4D28-855F-488F96BAD2B2"
26913 #   define ISHOWWINDOWEVENT_IID { \
26914     0xB0A0904D, 0x2F05, 0x4D28, \
26915     { 0x85, 0x5F, 0x48, 0x8F, 0x96, 0xBA, 0xD2, 0xB2 } \
26916 }
26917 /* COM compatibility */
26918 VBOX_EXTERN_CONST(nsIID, IID_IShowWindowEvent);
26919 #   ifndef VBOX_WITH_GLUE
26920 struct IShowWindowEvent_vtbl
26921 {
26922     struct IEvent_vtbl ievent;
26923 
26924     nsresult (*GetWinId)(IShowWindowEvent *pThis, PRInt64 *winId);
26925     nsresult (*SetWinId)(IShowWindowEvent *pThis, PRInt64 winId);
26926 
26927 };
26928 #   else /* VBOX_WITH_GLUE */
26929 struct IShowWindowEventVtbl
26930 {
26931     nsresult (*QueryInterface)(IShowWindowEvent *pThis, const nsID *iid, void **resultp);
26932     nsrefcnt (*AddRef)(IShowWindowEvent *pThis);
26933     nsrefcnt (*Release)(IShowWindowEvent *pThis);
26934     nsresult (*GetType)(IShowWindowEvent *pThis, PRUint32 *type);
26935 
26936     nsresult (*GetSource)(IShowWindowEvent *pThis, IEventSource * *source);
26937 
26938     nsresult (*GetWaitable)(IShowWindowEvent *pThis, PRBool *waitable);
26939 
26940     nsresult (*SetProcessed)(IShowWindowEvent *pThis );
26941 
26942     nsresult (*WaitProcessed)(
26943         IShowWindowEvent *pThis,
26944         PRInt32 timeout,
26945         PRBool * result
26946     );
26947 
26948     nsresult (*GetWinId)(IShowWindowEvent *pThis, PRInt64 *winId);
26949     nsresult (*SetWinId)(IShowWindowEvent *pThis, PRInt64 winId);
26950 
26951 };
26952 #    define IShowWindowEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26953 #    define IShowWindowEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26954 #    define IShowWindowEvent_Release(p) ((p)->lpVtbl->Release(p))
26955 #    define IShowWindowEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26956 #    define IShowWindowEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26957 #    define IShowWindowEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26958 #    define IShowWindowEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26959 #    define IShowWindowEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26960 #    define IShowWindowEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26961 #    define IShowWindowEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26962 #    define IShowWindowEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26963 #    define IShowWindowEvent_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
26964 #    define IShowWindowEvent_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
26965 #    define IShowWindowEvent_put_WinId(p, aWinId) ((p)->lpVtbl->SetWinId(p, aWinId))
26966 #    define IShowWindowEvent_SetWinId(p, aWinId) ((p)->lpVtbl->SetWinId(p, aWinId))
26967 #   endif /* VBOX_WITH_GLUE */
26968 
26969 interface IShowWindowEvent
26970 {
26971 #   ifndef VBOX_WITH_GLUE
26972     struct IShowWindowEvent_vtbl *vtbl;
26973 #   else /* VBOX_WITH_GLUE */
26974     CONST_VTBL struct IShowWindowEventVtbl *lpVtbl;
26975 #   endif /* VBOX_WITH_GLUE */
26976 };
26977 /* End of struct IShowWindowEvent declaration */
26978 
26979 
26980 /* Start of struct INATRedirectEvent declaration */
26981 #   define INATREDIRECTEVENT_IID_STR "24eef068-c380-4510-bc7c-19314a7352f1"
26982 #   define INATREDIRECTEVENT_IID { \
26983     0x24eef068, 0xc380, 0x4510, \
26984     { 0xbc, 0x7c, 0x19, 0x31, 0x4a, 0x73, 0x52, 0xf1 } \
26985 }
26986 /* COM compatibility */
26987 VBOX_EXTERN_CONST(nsIID, IID_INATRedirectEvent);
26988 #   ifndef VBOX_WITH_GLUE
26989 struct INATRedirectEvent_vtbl
26990 {
26991     struct IMachineEvent_vtbl imachineevent;
26992 
26993     nsresult (*GetSlot)(INATRedirectEvent *pThis, PRUint32 *slot);
26994 
26995     nsresult (*GetRemove)(INATRedirectEvent *pThis, PRBool *remove);
26996 
26997     nsresult (*GetName)(INATRedirectEvent *pThis, PRUnichar * *name);
26998 
26999     nsresult (*GetProto)(INATRedirectEvent *pThis, PRUint32 *proto);
27000 
27001     nsresult (*GetHostIP)(INATRedirectEvent *pThis, PRUnichar * *hostIP);
27002 
27003     nsresult (*GetHostPort)(INATRedirectEvent *pThis, PRInt32 *hostPort);
27004 
27005     nsresult (*GetGuestIP)(INATRedirectEvent *pThis, PRUnichar * *guestIP);
27006 
27007     nsresult (*GetGuestPort)(INATRedirectEvent *pThis, PRInt32 *guestPort);
27008 
27009 };
27010 #   else /* VBOX_WITH_GLUE */
27011 struct INATRedirectEventVtbl
27012 {
27013     nsresult (*QueryInterface)(INATRedirectEvent *pThis, const nsID *iid, void **resultp);
27014     nsrefcnt (*AddRef)(INATRedirectEvent *pThis);
27015     nsrefcnt (*Release)(INATRedirectEvent *pThis);
27016     nsresult (*GetType)(INATRedirectEvent *pThis, PRUint32 *type);
27017 
27018     nsresult (*GetSource)(INATRedirectEvent *pThis, IEventSource * *source);
27019 
27020     nsresult (*GetWaitable)(INATRedirectEvent *pThis, PRBool *waitable);
27021 
27022     nsresult (*SetProcessed)(INATRedirectEvent *pThis );
27023 
27024     nsresult (*WaitProcessed)(
27025         INATRedirectEvent *pThis,
27026         PRInt32 timeout,
27027         PRBool * result
27028     );
27029 
27030     nsresult (*GetMachineId)(INATRedirectEvent *pThis, PRUnichar * *machineId);
27031 
27032     nsresult (*GetSlot)(INATRedirectEvent *pThis, PRUint32 *slot);
27033 
27034     nsresult (*GetRemove)(INATRedirectEvent *pThis, PRBool *remove);
27035 
27036     nsresult (*GetName)(INATRedirectEvent *pThis, PRUnichar * *name);
27037 
27038     nsresult (*GetProto)(INATRedirectEvent *pThis, PRUint32 *proto);
27039 
27040     nsresult (*GetHostIP)(INATRedirectEvent *pThis, PRUnichar * *hostIP);
27041 
27042     nsresult (*GetHostPort)(INATRedirectEvent *pThis, PRInt32 *hostPort);
27043 
27044     nsresult (*GetGuestIP)(INATRedirectEvent *pThis, PRUnichar * *guestIP);
27045 
27046     nsresult (*GetGuestPort)(INATRedirectEvent *pThis, PRInt32 *guestPort);
27047 
27048 };
27049 #    define INATRedirectEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27050 #    define INATRedirectEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27051 #    define INATRedirectEvent_Release(p) ((p)->lpVtbl->Release(p))
27052 #    define INATRedirectEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27053 #    define INATRedirectEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27054 #    define INATRedirectEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27055 #    define INATRedirectEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27056 #    define INATRedirectEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27057 #    define INATRedirectEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27058 #    define INATRedirectEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27059 #    define INATRedirectEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27060 #    define INATRedirectEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
27061 #    define INATRedirectEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
27062 #    define INATRedirectEvent_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
27063 #    define INATRedirectEvent_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
27064 #    define INATRedirectEvent_get_Remove(p, aRemove) ((p)->lpVtbl->GetRemove(p, aRemove))
27065 #    define INATRedirectEvent_GetRemove(p, aRemove) ((p)->lpVtbl->GetRemove(p, aRemove))
27066 #    define INATRedirectEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
27067 #    define INATRedirectEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
27068 #    define INATRedirectEvent_get_Proto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
27069 #    define INATRedirectEvent_GetProto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
27070 #    define INATRedirectEvent_get_HostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
27071 #    define INATRedirectEvent_GetHostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
27072 #    define INATRedirectEvent_get_HostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
27073 #    define INATRedirectEvent_GetHostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
27074 #    define INATRedirectEvent_get_GuestIP(p, aGuestIP) ((p)->lpVtbl->GetGuestIP(p, aGuestIP))
27075 #    define INATRedirectEvent_GetGuestIP(p, aGuestIP) ((p)->lpVtbl->GetGuestIP(p, aGuestIP))
27076 #    define INATRedirectEvent_get_GuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
27077 #    define INATRedirectEvent_GetGuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
27078 #   endif /* VBOX_WITH_GLUE */
27079 
27080 interface INATRedirectEvent
27081 {
27082 #   ifndef VBOX_WITH_GLUE
27083     struct INATRedirectEvent_vtbl *vtbl;
27084 #   else /* VBOX_WITH_GLUE */
27085     CONST_VTBL struct INATRedirectEventVtbl *lpVtbl;
27086 #   endif /* VBOX_WITH_GLUE */
27087 };
27088 /* End of struct INATRedirectEvent declaration */
27089 
27090 
27091 /* Start of struct IHostPCIDevicePlugEvent declaration */
27092 #   define IHOSTPCIDEVICEPLUGEVENT_IID_STR "a0bad6df-d612-47d3-89d4-db3992533948"
27093 #   define IHOSTPCIDEVICEPLUGEVENT_IID { \
27094     0xa0bad6df, 0xd612, 0x47d3, \
27095     { 0x89, 0xd4, 0xdb, 0x39, 0x92, 0x53, 0x39, 0x48 } \
27096 }
27097 /* COM compatibility */
27098 VBOX_EXTERN_CONST(nsIID, IID_IHostPCIDevicePlugEvent);
27099 #   ifndef VBOX_WITH_GLUE
27100 struct IHostPCIDevicePlugEvent_vtbl
27101 {
27102     struct IMachineEvent_vtbl imachineevent;
27103 
27104     nsresult (*GetPlugged)(IHostPCIDevicePlugEvent *pThis, PRBool *plugged);
27105 
27106     nsresult (*GetSuccess)(IHostPCIDevicePlugEvent *pThis, PRBool *success);
27107 
27108     nsresult (*GetAttachment)(IHostPCIDevicePlugEvent *pThis, IPCIDeviceAttachment * *attachment);
27109 
27110     nsresult (*GetMessage)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *message);
27111 
27112 };
27113 #   else /* VBOX_WITH_GLUE */
27114 struct IHostPCIDevicePlugEventVtbl
27115 {
27116     nsresult (*QueryInterface)(IHostPCIDevicePlugEvent *pThis, const nsID *iid, void **resultp);
27117     nsrefcnt (*AddRef)(IHostPCIDevicePlugEvent *pThis);
27118     nsrefcnt (*Release)(IHostPCIDevicePlugEvent *pThis);
27119     nsresult (*GetType)(IHostPCIDevicePlugEvent *pThis, PRUint32 *type);
27120 
27121     nsresult (*GetSource)(IHostPCIDevicePlugEvent *pThis, IEventSource * *source);
27122 
27123     nsresult (*GetWaitable)(IHostPCIDevicePlugEvent *pThis, PRBool *waitable);
27124 
27125     nsresult (*SetProcessed)(IHostPCIDevicePlugEvent *pThis );
27126 
27127     nsresult (*WaitProcessed)(
27128         IHostPCIDevicePlugEvent *pThis,
27129         PRInt32 timeout,
27130         PRBool * result
27131     );
27132 
27133     nsresult (*GetMachineId)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *machineId);
27134 
27135     nsresult (*GetPlugged)(IHostPCIDevicePlugEvent *pThis, PRBool *plugged);
27136 
27137     nsresult (*GetSuccess)(IHostPCIDevicePlugEvent *pThis, PRBool *success);
27138 
27139     nsresult (*GetAttachment)(IHostPCIDevicePlugEvent *pThis, IPCIDeviceAttachment * *attachment);
27140 
27141     nsresult (*GetMessage)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *message);
27142 
27143 };
27144 #    define IHostPCIDevicePlugEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27145 #    define IHostPCIDevicePlugEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27146 #    define IHostPCIDevicePlugEvent_Release(p) ((p)->lpVtbl->Release(p))
27147 #    define IHostPCIDevicePlugEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27148 #    define IHostPCIDevicePlugEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27149 #    define IHostPCIDevicePlugEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27150 #    define IHostPCIDevicePlugEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27151 #    define IHostPCIDevicePlugEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27152 #    define IHostPCIDevicePlugEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27153 #    define IHostPCIDevicePlugEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27154 #    define IHostPCIDevicePlugEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27155 #    define IHostPCIDevicePlugEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
27156 #    define IHostPCIDevicePlugEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
27157 #    define IHostPCIDevicePlugEvent_get_Plugged(p, aPlugged) ((p)->lpVtbl->GetPlugged(p, aPlugged))
27158 #    define IHostPCIDevicePlugEvent_GetPlugged(p, aPlugged) ((p)->lpVtbl->GetPlugged(p, aPlugged))
27159 #    define IHostPCIDevicePlugEvent_get_Success(p, aSuccess) ((p)->lpVtbl->GetSuccess(p, aSuccess))
27160 #    define IHostPCIDevicePlugEvent_GetSuccess(p, aSuccess) ((p)->lpVtbl->GetSuccess(p, aSuccess))
27161 #    define IHostPCIDevicePlugEvent_get_Attachment(p, aAttachment) ((p)->lpVtbl->GetAttachment(p, aAttachment))
27162 #    define IHostPCIDevicePlugEvent_GetAttachment(p, aAttachment) ((p)->lpVtbl->GetAttachment(p, aAttachment))
27163 #    define IHostPCIDevicePlugEvent_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
27164 #    define IHostPCIDevicePlugEvent_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
27165 #   endif /* VBOX_WITH_GLUE */
27166 
27167 interface IHostPCIDevicePlugEvent
27168 {
27169 #   ifndef VBOX_WITH_GLUE
27170     struct IHostPCIDevicePlugEvent_vtbl *vtbl;
27171 #   else /* VBOX_WITH_GLUE */
27172     CONST_VTBL struct IHostPCIDevicePlugEventVtbl *lpVtbl;
27173 #   endif /* VBOX_WITH_GLUE */
27174 };
27175 /* End of struct IHostPCIDevicePlugEvent declaration */
27176 
27177 
27178 /* Start of struct IVBoxSVCAvailabilityChangedEvent declaration */
27179 #   define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID_STR "97c78fcd-d4fc-485f-8613-5af88bfcfcdc"
27180 #   define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID { \
27181     0x97c78fcd, 0xd4fc, 0x485f, \
27182     { 0x86, 0x13, 0x5a, 0xf8, 0x8b, 0xfc, 0xfc, 0xdc } \
27183 }
27184 /* COM compatibility */
27185 VBOX_EXTERN_CONST(nsIID, IID_IVBoxSVCAvailabilityChangedEvent);
27186 #   ifndef VBOX_WITH_GLUE
27187 struct IVBoxSVCAvailabilityChangedEvent_vtbl
27188 {
27189     struct IEvent_vtbl ievent;
27190 
27191     nsresult (*GetAvailable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *available);
27192 
27193 };
27194 #   else /* VBOX_WITH_GLUE */
27195 struct IVBoxSVCAvailabilityChangedEventVtbl
27196 {
27197     nsresult (*QueryInterface)(IVBoxSVCAvailabilityChangedEvent *pThis, const nsID *iid, void **resultp);
27198     nsrefcnt (*AddRef)(IVBoxSVCAvailabilityChangedEvent *pThis);
27199     nsrefcnt (*Release)(IVBoxSVCAvailabilityChangedEvent *pThis);
27200     nsresult (*GetType)(IVBoxSVCAvailabilityChangedEvent *pThis, PRUint32 *type);
27201 
27202     nsresult (*GetSource)(IVBoxSVCAvailabilityChangedEvent *pThis, IEventSource * *source);
27203 
27204     nsresult (*GetWaitable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *waitable);
27205 
27206     nsresult (*SetProcessed)(IVBoxSVCAvailabilityChangedEvent *pThis );
27207 
27208     nsresult (*WaitProcessed)(
27209         IVBoxSVCAvailabilityChangedEvent *pThis,
27210         PRInt32 timeout,
27211         PRBool * result
27212     );
27213 
27214     nsresult (*GetAvailable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *available);
27215 
27216 };
27217 #    define IVBoxSVCAvailabilityChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27218 #    define IVBoxSVCAvailabilityChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27219 #    define IVBoxSVCAvailabilityChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27220 #    define IVBoxSVCAvailabilityChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27221 #    define IVBoxSVCAvailabilityChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27222 #    define IVBoxSVCAvailabilityChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27223 #    define IVBoxSVCAvailabilityChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27224 #    define IVBoxSVCAvailabilityChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27225 #    define IVBoxSVCAvailabilityChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27226 #    define IVBoxSVCAvailabilityChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27227 #    define IVBoxSVCAvailabilityChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27228 #    define IVBoxSVCAvailabilityChangedEvent_get_Available(p, aAvailable) ((p)->lpVtbl->GetAvailable(p, aAvailable))
27229 #    define IVBoxSVCAvailabilityChangedEvent_GetAvailable(p, aAvailable) ((p)->lpVtbl->GetAvailable(p, aAvailable))
27230 #   endif /* VBOX_WITH_GLUE */
27231 
27232 interface IVBoxSVCAvailabilityChangedEvent
27233 {
27234 #   ifndef VBOX_WITH_GLUE
27235     struct IVBoxSVCAvailabilityChangedEvent_vtbl *vtbl;
27236 #   else /* VBOX_WITH_GLUE */
27237     CONST_VTBL struct IVBoxSVCAvailabilityChangedEventVtbl *lpVtbl;
27238 #   endif /* VBOX_WITH_GLUE */
27239 };
27240 /* End of struct IVBoxSVCAvailabilityChangedEvent declaration */
27241 
27242 
27243 /* Start of struct IBandwidthGroupChangedEvent declaration */
27244 #   define IBANDWIDTHGROUPCHANGEDEVENT_IID_STR "334df94a-7556-4cbc-8c04-043096b02d82"
27245 #   define IBANDWIDTHGROUPCHANGEDEVENT_IID { \
27246     0x334df94a, 0x7556, 0x4cbc, \
27247     { 0x8c, 0x04, 0x04, 0x30, 0x96, 0xb0, 0x2d, 0x82 } \
27248 }
27249 /* COM compatibility */
27250 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthGroupChangedEvent);
27251 #   ifndef VBOX_WITH_GLUE
27252 struct IBandwidthGroupChangedEvent_vtbl
27253 {
27254     struct IEvent_vtbl ievent;
27255 
27256     nsresult (*GetBandwidthGroup)(IBandwidthGroupChangedEvent *pThis, IBandwidthGroup * *bandwidthGroup);
27257 
27258 };
27259 #   else /* VBOX_WITH_GLUE */
27260 struct IBandwidthGroupChangedEventVtbl
27261 {
27262     nsresult (*QueryInterface)(IBandwidthGroupChangedEvent *pThis, const nsID *iid, void **resultp);
27263     nsrefcnt (*AddRef)(IBandwidthGroupChangedEvent *pThis);
27264     nsrefcnt (*Release)(IBandwidthGroupChangedEvent *pThis);
27265     nsresult (*GetType)(IBandwidthGroupChangedEvent *pThis, PRUint32 *type);
27266 
27267     nsresult (*GetSource)(IBandwidthGroupChangedEvent *pThis, IEventSource * *source);
27268 
27269     nsresult (*GetWaitable)(IBandwidthGroupChangedEvent *pThis, PRBool *waitable);
27270 
27271     nsresult (*SetProcessed)(IBandwidthGroupChangedEvent *pThis );
27272 
27273     nsresult (*WaitProcessed)(
27274         IBandwidthGroupChangedEvent *pThis,
27275         PRInt32 timeout,
27276         PRBool * result
27277     );
27278 
27279     nsresult (*GetBandwidthGroup)(IBandwidthGroupChangedEvent *pThis, IBandwidthGroup * *bandwidthGroup);
27280 
27281 };
27282 #    define IBandwidthGroupChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27283 #    define IBandwidthGroupChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27284 #    define IBandwidthGroupChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27285 #    define IBandwidthGroupChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27286 #    define IBandwidthGroupChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27287 #    define IBandwidthGroupChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27288 #    define IBandwidthGroupChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27289 #    define IBandwidthGroupChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27290 #    define IBandwidthGroupChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27291 #    define IBandwidthGroupChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27292 #    define IBandwidthGroupChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27293 #    define IBandwidthGroupChangedEvent_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
27294 #    define IBandwidthGroupChangedEvent_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
27295 #   endif /* VBOX_WITH_GLUE */
27296 
27297 interface IBandwidthGroupChangedEvent
27298 {
27299 #   ifndef VBOX_WITH_GLUE
27300     struct IBandwidthGroupChangedEvent_vtbl *vtbl;
27301 #   else /* VBOX_WITH_GLUE */
27302     CONST_VTBL struct IBandwidthGroupChangedEventVtbl *lpVtbl;
27303 #   endif /* VBOX_WITH_GLUE */
27304 };
27305 /* End of struct IBandwidthGroupChangedEvent declaration */
27306 
27307 
27308 /* Start of struct IGuestMonitorChangedEvent declaration */
27309 #   define IGUESTMONITORCHANGEDEVENT_IID_STR "0f7b8a22-c71f-4a36-8e5f-a77d01d76090"
27310 #   define IGUESTMONITORCHANGEDEVENT_IID { \
27311     0x0f7b8a22, 0xc71f, 0x4a36, \
27312     { 0x8e, 0x5f, 0xa7, 0x7d, 0x01, 0xd7, 0x60, 0x90 } \
27313 }
27314 /* COM compatibility */
27315 VBOX_EXTERN_CONST(nsIID, IID_IGuestMonitorChangedEvent);
27316 #   ifndef VBOX_WITH_GLUE
27317 struct IGuestMonitorChangedEvent_vtbl
27318 {
27319     struct IEvent_vtbl ievent;
27320 
27321     nsresult (*GetChangeType)(IGuestMonitorChangedEvent *pThis, PRUint32 *changeType);
27322 
27323     nsresult (*GetScreenId)(IGuestMonitorChangedEvent *pThis, PRUint32 *screenId);
27324 
27325     nsresult (*GetOriginX)(IGuestMonitorChangedEvent *pThis, PRUint32 *originX);
27326 
27327     nsresult (*GetOriginY)(IGuestMonitorChangedEvent *pThis, PRUint32 *originY);
27328 
27329     nsresult (*GetWidth)(IGuestMonitorChangedEvent *pThis, PRUint32 *width);
27330 
27331     nsresult (*GetHeight)(IGuestMonitorChangedEvent *pThis, PRUint32 *height);
27332 
27333 };
27334 #   else /* VBOX_WITH_GLUE */
27335 struct IGuestMonitorChangedEventVtbl
27336 {
27337     nsresult (*QueryInterface)(IGuestMonitorChangedEvent *pThis, const nsID *iid, void **resultp);
27338     nsrefcnt (*AddRef)(IGuestMonitorChangedEvent *pThis);
27339     nsrefcnt (*Release)(IGuestMonitorChangedEvent *pThis);
27340     nsresult (*GetType)(IGuestMonitorChangedEvent *pThis, PRUint32 *type);
27341 
27342     nsresult (*GetSource)(IGuestMonitorChangedEvent *pThis, IEventSource * *source);
27343 
27344     nsresult (*GetWaitable)(IGuestMonitorChangedEvent *pThis, PRBool *waitable);
27345 
27346     nsresult (*SetProcessed)(IGuestMonitorChangedEvent *pThis );
27347 
27348     nsresult (*WaitProcessed)(
27349         IGuestMonitorChangedEvent *pThis,
27350         PRInt32 timeout,
27351         PRBool * result
27352     );
27353 
27354     nsresult (*GetChangeType)(IGuestMonitorChangedEvent *pThis, PRUint32 *changeType);
27355 
27356     nsresult (*GetScreenId)(IGuestMonitorChangedEvent *pThis, PRUint32 *screenId);
27357 
27358     nsresult (*GetOriginX)(IGuestMonitorChangedEvent *pThis, PRUint32 *originX);
27359 
27360     nsresult (*GetOriginY)(IGuestMonitorChangedEvent *pThis, PRUint32 *originY);
27361 
27362     nsresult (*GetWidth)(IGuestMonitorChangedEvent *pThis, PRUint32 *width);
27363 
27364     nsresult (*GetHeight)(IGuestMonitorChangedEvent *pThis, PRUint32 *height);
27365 
27366 };
27367 #    define IGuestMonitorChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27368 #    define IGuestMonitorChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27369 #    define IGuestMonitorChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27370 #    define IGuestMonitorChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27371 #    define IGuestMonitorChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27372 #    define IGuestMonitorChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27373 #    define IGuestMonitorChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27374 #    define IGuestMonitorChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27375 #    define IGuestMonitorChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27376 #    define IGuestMonitorChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27377 #    define IGuestMonitorChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27378 #    define IGuestMonitorChangedEvent_get_ChangeType(p, aChangeType) ((p)->lpVtbl->GetChangeType(p, aChangeType))
27379 #    define IGuestMonitorChangedEvent_GetChangeType(p, aChangeType) ((p)->lpVtbl->GetChangeType(p, aChangeType))
27380 #    define IGuestMonitorChangedEvent_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
27381 #    define IGuestMonitorChangedEvent_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
27382 #    define IGuestMonitorChangedEvent_get_OriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
27383 #    define IGuestMonitorChangedEvent_GetOriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
27384 #    define IGuestMonitorChangedEvent_get_OriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
27385 #    define IGuestMonitorChangedEvent_GetOriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
27386 #    define IGuestMonitorChangedEvent_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
27387 #    define IGuestMonitorChangedEvent_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
27388 #    define IGuestMonitorChangedEvent_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
27389 #    define IGuestMonitorChangedEvent_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
27390 #   endif /* VBOX_WITH_GLUE */
27391 
27392 interface IGuestMonitorChangedEvent
27393 {
27394 #   ifndef VBOX_WITH_GLUE
27395     struct IGuestMonitorChangedEvent_vtbl *vtbl;
27396 #   else /* VBOX_WITH_GLUE */
27397     CONST_VTBL struct IGuestMonitorChangedEventVtbl *lpVtbl;
27398 #   endif /* VBOX_WITH_GLUE */
27399 };
27400 /* End of struct IGuestMonitorChangedEvent declaration */
27401 
27402 
27403 /* Start of struct IGuestUserStateChangedEvent declaration */
27404 #   define IGUESTUSERSTATECHANGEDEVENT_IID_STR "39b4e759-1ec0-4c0f-857f-fbe2a737a256"
27405 #   define IGUESTUSERSTATECHANGEDEVENT_IID { \
27406     0x39b4e759, 0x1ec0, 0x4c0f, \
27407     { 0x85, 0x7f, 0xfb, 0xe2, 0xa7, 0x37, 0xa2, 0x56 } \
27408 }
27409 /* COM compatibility */
27410 VBOX_EXTERN_CONST(nsIID, IID_IGuestUserStateChangedEvent);
27411 #   ifndef VBOX_WITH_GLUE
27412 struct IGuestUserStateChangedEvent_vtbl
27413 {
27414     struct IEvent_vtbl ievent;
27415 
27416     nsresult (*GetName)(IGuestUserStateChangedEvent *pThis, PRUnichar * *name);
27417 
27418     nsresult (*GetDomain)(IGuestUserStateChangedEvent *pThis, PRUnichar * *domain);
27419 
27420     nsresult (*GetState)(IGuestUserStateChangedEvent *pThis, PRUint32 *state);
27421 
27422     nsresult (*GetStateDetails)(IGuestUserStateChangedEvent *pThis, PRUnichar * *stateDetails);
27423 
27424 };
27425 #   else /* VBOX_WITH_GLUE */
27426 struct IGuestUserStateChangedEventVtbl
27427 {
27428     nsresult (*QueryInterface)(IGuestUserStateChangedEvent *pThis, const nsID *iid, void **resultp);
27429     nsrefcnt (*AddRef)(IGuestUserStateChangedEvent *pThis);
27430     nsrefcnt (*Release)(IGuestUserStateChangedEvent *pThis);
27431     nsresult (*GetType)(IGuestUserStateChangedEvent *pThis, PRUint32 *type);
27432 
27433     nsresult (*GetSource)(IGuestUserStateChangedEvent *pThis, IEventSource * *source);
27434 
27435     nsresult (*GetWaitable)(IGuestUserStateChangedEvent *pThis, PRBool *waitable);
27436 
27437     nsresult (*SetProcessed)(IGuestUserStateChangedEvent *pThis );
27438 
27439     nsresult (*WaitProcessed)(
27440         IGuestUserStateChangedEvent *pThis,
27441         PRInt32 timeout,
27442         PRBool * result
27443     );
27444 
27445     nsresult (*GetName)(IGuestUserStateChangedEvent *pThis, PRUnichar * *name);
27446 
27447     nsresult (*GetDomain)(IGuestUserStateChangedEvent *pThis, PRUnichar * *domain);
27448 
27449     nsresult (*GetState)(IGuestUserStateChangedEvent *pThis, PRUint32 *state);
27450 
27451     nsresult (*GetStateDetails)(IGuestUserStateChangedEvent *pThis, PRUnichar * *stateDetails);
27452 
27453 };
27454 #    define IGuestUserStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27455 #    define IGuestUserStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27456 #    define IGuestUserStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27457 #    define IGuestUserStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27458 #    define IGuestUserStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27459 #    define IGuestUserStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27460 #    define IGuestUserStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27461 #    define IGuestUserStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27462 #    define IGuestUserStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27463 #    define IGuestUserStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27464 #    define IGuestUserStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27465 #    define IGuestUserStateChangedEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
27466 #    define IGuestUserStateChangedEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
27467 #    define IGuestUserStateChangedEvent_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
27468 #    define IGuestUserStateChangedEvent_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
27469 #    define IGuestUserStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
27470 #    define IGuestUserStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
27471 #    define IGuestUserStateChangedEvent_get_StateDetails(p, aStateDetails) ((p)->lpVtbl->GetStateDetails(p, aStateDetails))
27472 #    define IGuestUserStateChangedEvent_GetStateDetails(p, aStateDetails) ((p)->lpVtbl->GetStateDetails(p, aStateDetails))
27473 #   endif /* VBOX_WITH_GLUE */
27474 
27475 interface IGuestUserStateChangedEvent
27476 {
27477 #   ifndef VBOX_WITH_GLUE
27478     struct IGuestUserStateChangedEvent_vtbl *vtbl;
27479 #   else /* VBOX_WITH_GLUE */
27480     CONST_VTBL struct IGuestUserStateChangedEventVtbl *lpVtbl;
27481 #   endif /* VBOX_WITH_GLUE */
27482 };
27483 /* End of struct IGuestUserStateChangedEvent declaration */
27484 
27485 
27486 /* Start of struct IStorageDeviceChangedEvent declaration */
27487 #   define ISTORAGEDEVICECHANGEDEVENT_IID_STR "232e9151-ae84-4b8e-b0f3-5c20c35caac9"
27488 #   define ISTORAGEDEVICECHANGEDEVENT_IID { \
27489     0x232e9151, 0xae84, 0x4b8e, \
27490     { 0xb0, 0xf3, 0x5c, 0x20, 0xc3, 0x5c, 0xaa, 0xc9 } \
27491 }
27492 /* COM compatibility */
27493 VBOX_EXTERN_CONST(nsIID, IID_IStorageDeviceChangedEvent);
27494 #   ifndef VBOX_WITH_GLUE
27495 struct IStorageDeviceChangedEvent_vtbl
27496 {
27497     struct IEvent_vtbl ievent;
27498 
27499     nsresult (*GetStorageDevice)(IStorageDeviceChangedEvent *pThis, IMediumAttachment * *storageDevice);
27500 
27501     nsresult (*GetRemoved)(IStorageDeviceChangedEvent *pThis, PRBool *removed);
27502 
27503     nsresult (*GetSilent)(IStorageDeviceChangedEvent *pThis, PRBool *silent);
27504 
27505 };
27506 #   else /* VBOX_WITH_GLUE */
27507 struct IStorageDeviceChangedEventVtbl
27508 {
27509     nsresult (*QueryInterface)(IStorageDeviceChangedEvent *pThis, const nsID *iid, void **resultp);
27510     nsrefcnt (*AddRef)(IStorageDeviceChangedEvent *pThis);
27511     nsrefcnt (*Release)(IStorageDeviceChangedEvent *pThis);
27512     nsresult (*GetType)(IStorageDeviceChangedEvent *pThis, PRUint32 *type);
27513 
27514     nsresult (*GetSource)(IStorageDeviceChangedEvent *pThis, IEventSource * *source);
27515 
27516     nsresult (*GetWaitable)(IStorageDeviceChangedEvent *pThis, PRBool *waitable);
27517 
27518     nsresult (*SetProcessed)(IStorageDeviceChangedEvent *pThis );
27519 
27520     nsresult (*WaitProcessed)(
27521         IStorageDeviceChangedEvent *pThis,
27522         PRInt32 timeout,
27523         PRBool * result
27524     );
27525 
27526     nsresult (*GetStorageDevice)(IStorageDeviceChangedEvent *pThis, IMediumAttachment * *storageDevice);
27527 
27528     nsresult (*GetRemoved)(IStorageDeviceChangedEvent *pThis, PRBool *removed);
27529 
27530     nsresult (*GetSilent)(IStorageDeviceChangedEvent *pThis, PRBool *silent);
27531 
27532 };
27533 #    define IStorageDeviceChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27534 #    define IStorageDeviceChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27535 #    define IStorageDeviceChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27536 #    define IStorageDeviceChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27537 #    define IStorageDeviceChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27538 #    define IStorageDeviceChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27539 #    define IStorageDeviceChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27540 #    define IStorageDeviceChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27541 #    define IStorageDeviceChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27542 #    define IStorageDeviceChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27543 #    define IStorageDeviceChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27544 #    define IStorageDeviceChangedEvent_get_StorageDevice(p, aStorageDevice) ((p)->lpVtbl->GetStorageDevice(p, aStorageDevice))
27545 #    define IStorageDeviceChangedEvent_GetStorageDevice(p, aStorageDevice) ((p)->lpVtbl->GetStorageDevice(p, aStorageDevice))
27546 #    define IStorageDeviceChangedEvent_get_Removed(p, aRemoved) ((p)->lpVtbl->GetRemoved(p, aRemoved))
27547 #    define IStorageDeviceChangedEvent_GetRemoved(p, aRemoved) ((p)->lpVtbl->GetRemoved(p, aRemoved))
27548 #    define IStorageDeviceChangedEvent_get_Silent(p, aSilent) ((p)->lpVtbl->GetSilent(p, aSilent))
27549 #    define IStorageDeviceChangedEvent_GetSilent(p, aSilent) ((p)->lpVtbl->GetSilent(p, aSilent))
27550 #   endif /* VBOX_WITH_GLUE */
27551 
27552 interface IStorageDeviceChangedEvent
27553 {
27554 #   ifndef VBOX_WITH_GLUE
27555     struct IStorageDeviceChangedEvent_vtbl *vtbl;
27556 #   else /* VBOX_WITH_GLUE */
27557     CONST_VTBL struct IStorageDeviceChangedEventVtbl *lpVtbl;
27558 #   endif /* VBOX_WITH_GLUE */
27559 };
27560 /* End of struct IStorageDeviceChangedEvent declaration */
27561 
27562 
27563 /* Start of struct INATNetworkChangedEvent declaration */
27564 #   define INATNETWORKCHANGEDEVENT_IID_STR "101ae042-1a29-4a19-92cf-02285773f3b5"
27565 #   define INATNETWORKCHANGEDEVENT_IID { \
27566     0x101ae042, 0x1a29, 0x4a19, \
27567     { 0x92, 0xcf, 0x02, 0x28, 0x57, 0x73, 0xf3, 0xb5 } \
27568 }
27569 /* COM compatibility */
27570 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkChangedEvent);
27571 #   ifndef VBOX_WITH_GLUE
27572 struct INATNetworkChangedEvent_vtbl
27573 {
27574     struct IEvent_vtbl ievent;
27575 
27576     nsresult (*GetNetworkName)(INATNetworkChangedEvent *pThis, PRUnichar * *networkName);
27577 
27578 };
27579 #   else /* VBOX_WITH_GLUE */
27580 struct INATNetworkChangedEventVtbl
27581 {
27582     nsresult (*QueryInterface)(INATNetworkChangedEvent *pThis, const nsID *iid, void **resultp);
27583     nsrefcnt (*AddRef)(INATNetworkChangedEvent *pThis);
27584     nsrefcnt (*Release)(INATNetworkChangedEvent *pThis);
27585     nsresult (*GetType)(INATNetworkChangedEvent *pThis, PRUint32 *type);
27586 
27587     nsresult (*GetSource)(INATNetworkChangedEvent *pThis, IEventSource * *source);
27588 
27589     nsresult (*GetWaitable)(INATNetworkChangedEvent *pThis, PRBool *waitable);
27590 
27591     nsresult (*SetProcessed)(INATNetworkChangedEvent *pThis );
27592 
27593     nsresult (*WaitProcessed)(
27594         INATNetworkChangedEvent *pThis,
27595         PRInt32 timeout,
27596         PRBool * result
27597     );
27598 
27599     nsresult (*GetNetworkName)(INATNetworkChangedEvent *pThis, PRUnichar * *networkName);
27600 
27601 };
27602 #    define INATNetworkChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27603 #    define INATNetworkChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27604 #    define INATNetworkChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27605 #    define INATNetworkChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27606 #    define INATNetworkChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27607 #    define INATNetworkChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27608 #    define INATNetworkChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27609 #    define INATNetworkChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27610 #    define INATNetworkChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27611 #    define INATNetworkChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27612 #    define INATNetworkChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27613 #    define INATNetworkChangedEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27614 #    define INATNetworkChangedEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27615 #   endif /* VBOX_WITH_GLUE */
27616 
27617 interface INATNetworkChangedEvent
27618 {
27619 #   ifndef VBOX_WITH_GLUE
27620     struct INATNetworkChangedEvent_vtbl *vtbl;
27621 #   else /* VBOX_WITH_GLUE */
27622     CONST_VTBL struct INATNetworkChangedEventVtbl *lpVtbl;
27623 #   endif /* VBOX_WITH_GLUE */
27624 };
27625 /* End of struct INATNetworkChangedEvent declaration */
27626 
27627 
27628 /* Start of struct INATNetworkStartStopEvent declaration */
27629 #   define INATNETWORKSTARTSTOPEVENT_IID_STR "269d8f6b-fa1e-4cee-91c7-6d8496bea3c1"
27630 #   define INATNETWORKSTARTSTOPEVENT_IID { \
27631     0x269d8f6b, 0xfa1e, 0x4cee, \
27632     { 0x91, 0xc7, 0x6d, 0x84, 0x96, 0xbe, 0xa3, 0xc1 } \
27633 }
27634 /* COM compatibility */
27635 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkStartStopEvent);
27636 #   ifndef VBOX_WITH_GLUE
27637 struct INATNetworkStartStopEvent_vtbl
27638 {
27639     struct INATNetworkChangedEvent_vtbl inatnetworkchangedevent;
27640 
27641     nsresult (*GetStartEvent)(INATNetworkStartStopEvent *pThis, PRBool *startEvent);
27642 
27643 };
27644 #   else /* VBOX_WITH_GLUE */
27645 struct INATNetworkStartStopEventVtbl
27646 {
27647     nsresult (*QueryInterface)(INATNetworkStartStopEvent *pThis, const nsID *iid, void **resultp);
27648     nsrefcnt (*AddRef)(INATNetworkStartStopEvent *pThis);
27649     nsrefcnt (*Release)(INATNetworkStartStopEvent *pThis);
27650     nsresult (*GetType)(INATNetworkStartStopEvent *pThis, PRUint32 *type);
27651 
27652     nsresult (*GetSource)(INATNetworkStartStopEvent *pThis, IEventSource * *source);
27653 
27654     nsresult (*GetWaitable)(INATNetworkStartStopEvent *pThis, PRBool *waitable);
27655 
27656     nsresult (*SetProcessed)(INATNetworkStartStopEvent *pThis );
27657 
27658     nsresult (*WaitProcessed)(
27659         INATNetworkStartStopEvent *pThis,
27660         PRInt32 timeout,
27661         PRBool * result
27662     );
27663 
27664     nsresult (*GetNetworkName)(INATNetworkStartStopEvent *pThis, PRUnichar * *networkName);
27665 
27666     nsresult (*GetStartEvent)(INATNetworkStartStopEvent *pThis, PRBool *startEvent);
27667 
27668 };
27669 #    define INATNetworkStartStopEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27670 #    define INATNetworkStartStopEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27671 #    define INATNetworkStartStopEvent_Release(p) ((p)->lpVtbl->Release(p))
27672 #    define INATNetworkStartStopEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27673 #    define INATNetworkStartStopEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27674 #    define INATNetworkStartStopEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27675 #    define INATNetworkStartStopEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27676 #    define INATNetworkStartStopEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27677 #    define INATNetworkStartStopEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27678 #    define INATNetworkStartStopEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27679 #    define INATNetworkStartStopEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27680 #    define INATNetworkStartStopEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27681 #    define INATNetworkStartStopEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27682 #    define INATNetworkStartStopEvent_get_StartEvent(p, aStartEvent) ((p)->lpVtbl->GetStartEvent(p, aStartEvent))
27683 #    define INATNetworkStartStopEvent_GetStartEvent(p, aStartEvent) ((p)->lpVtbl->GetStartEvent(p, aStartEvent))
27684 #   endif /* VBOX_WITH_GLUE */
27685 
27686 interface INATNetworkStartStopEvent
27687 {
27688 #   ifndef VBOX_WITH_GLUE
27689     struct INATNetworkStartStopEvent_vtbl *vtbl;
27690 #   else /* VBOX_WITH_GLUE */
27691     CONST_VTBL struct INATNetworkStartStopEventVtbl *lpVtbl;
27692 #   endif /* VBOX_WITH_GLUE */
27693 };
27694 /* End of struct INATNetworkStartStopEvent declaration */
27695 
27696 
27697 /* Start of struct INATNetworkAlterEvent declaration */
27698 #   define INATNETWORKALTEREVENT_IID_STR "d947adf5-4022-dc80-5535-6fb116815604"
27699 #   define INATNETWORKALTEREVENT_IID { \
27700     0xd947adf5, 0x4022, 0xdc80, \
27701     { 0x55, 0x35, 0x6f, 0xb1, 0x16, 0x81, 0x56, 0x04 } \
27702 }
27703 /* COM compatibility */
27704 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkAlterEvent);
27705 #   ifndef VBOX_WITH_GLUE
27706 struct INATNetworkAlterEvent_vtbl
27707 {
27708     struct INATNetworkChangedEvent_vtbl inatnetworkchangedevent;
27709 
27710     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkAlterEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27711 
27712 };
27713 #   else /* VBOX_WITH_GLUE */
27714 struct INATNetworkAlterEventVtbl
27715 {
27716     nsresult (*QueryInterface)(INATNetworkAlterEvent *pThis, const nsID *iid, void **resultp);
27717     nsrefcnt (*AddRef)(INATNetworkAlterEvent *pThis);
27718     nsrefcnt (*Release)(INATNetworkAlterEvent *pThis);
27719     nsresult (*GetType)(INATNetworkAlterEvent *pThis, PRUint32 *type);
27720 
27721     nsresult (*GetSource)(INATNetworkAlterEvent *pThis, IEventSource * *source);
27722 
27723     nsresult (*GetWaitable)(INATNetworkAlterEvent *pThis, PRBool *waitable);
27724 
27725     nsresult (*SetProcessed)(INATNetworkAlterEvent *pThis );
27726 
27727     nsresult (*WaitProcessed)(
27728         INATNetworkAlterEvent *pThis,
27729         PRInt32 timeout,
27730         PRBool * result
27731     );
27732 
27733     nsresult (*GetNetworkName)(INATNetworkAlterEvent *pThis, PRUnichar * *networkName);
27734 
27735     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkAlterEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27736 
27737 };
27738 #    define INATNetworkAlterEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27739 #    define INATNetworkAlterEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27740 #    define INATNetworkAlterEvent_Release(p) ((p)->lpVtbl->Release(p))
27741 #    define INATNetworkAlterEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27742 #    define INATNetworkAlterEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27743 #    define INATNetworkAlterEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27744 #    define INATNetworkAlterEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27745 #    define INATNetworkAlterEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27746 #    define INATNetworkAlterEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27747 #    define INATNetworkAlterEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27748 #    define INATNetworkAlterEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27749 #    define INATNetworkAlterEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27750 #    define INATNetworkAlterEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27751 #    define INATNetworkAlterEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27752 #    define INATNetworkAlterEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27753 #   endif /* VBOX_WITH_GLUE */
27754 
27755 interface INATNetworkAlterEvent
27756 {
27757 #   ifndef VBOX_WITH_GLUE
27758     struct INATNetworkAlterEvent_vtbl *vtbl;
27759 #   else /* VBOX_WITH_GLUE */
27760     CONST_VTBL struct INATNetworkAlterEventVtbl *lpVtbl;
27761 #   endif /* VBOX_WITH_GLUE */
27762 };
27763 /* End of struct INATNetworkAlterEvent declaration */
27764 
27765 
27766 /* Start of struct INATNetworkCreationDeletionEvent declaration */
27767 #   define INATNETWORKCREATIONDELETIONEVENT_IID_STR "8d984a7e-b855-40b8-ab0c-44d3515b4528"
27768 #   define INATNETWORKCREATIONDELETIONEVENT_IID { \
27769     0x8d984a7e, 0xb855, 0x40b8, \
27770     { 0xab, 0x0c, 0x44, 0xd3, 0x51, 0x5b, 0x45, 0x28 } \
27771 }
27772 /* COM compatibility */
27773 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkCreationDeletionEvent);
27774 #   ifndef VBOX_WITH_GLUE
27775 struct INATNetworkCreationDeletionEvent_vtbl
27776 {
27777     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
27778 
27779     nsresult (*GetCreationEvent)(INATNetworkCreationDeletionEvent *pThis, PRBool *creationEvent);
27780 
27781 };
27782 #   else /* VBOX_WITH_GLUE */
27783 struct INATNetworkCreationDeletionEventVtbl
27784 {
27785     nsresult (*QueryInterface)(INATNetworkCreationDeletionEvent *pThis, const nsID *iid, void **resultp);
27786     nsrefcnt (*AddRef)(INATNetworkCreationDeletionEvent *pThis);
27787     nsrefcnt (*Release)(INATNetworkCreationDeletionEvent *pThis);
27788     nsresult (*GetType)(INATNetworkCreationDeletionEvent *pThis, PRUint32 *type);
27789 
27790     nsresult (*GetSource)(INATNetworkCreationDeletionEvent *pThis, IEventSource * *source);
27791 
27792     nsresult (*GetWaitable)(INATNetworkCreationDeletionEvent *pThis, PRBool *waitable);
27793 
27794     nsresult (*SetProcessed)(INATNetworkCreationDeletionEvent *pThis );
27795 
27796     nsresult (*WaitProcessed)(
27797         INATNetworkCreationDeletionEvent *pThis,
27798         PRInt32 timeout,
27799         PRBool * result
27800     );
27801 
27802     nsresult (*GetNetworkName)(INATNetworkCreationDeletionEvent *pThis, PRUnichar * *networkName);
27803 
27804     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkCreationDeletionEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27805 
27806     nsresult (*GetCreationEvent)(INATNetworkCreationDeletionEvent *pThis, PRBool *creationEvent);
27807 
27808 };
27809 #    define INATNetworkCreationDeletionEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27810 #    define INATNetworkCreationDeletionEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27811 #    define INATNetworkCreationDeletionEvent_Release(p) ((p)->lpVtbl->Release(p))
27812 #    define INATNetworkCreationDeletionEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27813 #    define INATNetworkCreationDeletionEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27814 #    define INATNetworkCreationDeletionEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27815 #    define INATNetworkCreationDeletionEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27816 #    define INATNetworkCreationDeletionEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27817 #    define INATNetworkCreationDeletionEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27818 #    define INATNetworkCreationDeletionEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27819 #    define INATNetworkCreationDeletionEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27820 #    define INATNetworkCreationDeletionEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27821 #    define INATNetworkCreationDeletionEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27822 #    define INATNetworkCreationDeletionEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27823 #    define INATNetworkCreationDeletionEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27824 #    define INATNetworkCreationDeletionEvent_get_CreationEvent(p, aCreationEvent) ((p)->lpVtbl->GetCreationEvent(p, aCreationEvent))
27825 #    define INATNetworkCreationDeletionEvent_GetCreationEvent(p, aCreationEvent) ((p)->lpVtbl->GetCreationEvent(p, aCreationEvent))
27826 #   endif /* VBOX_WITH_GLUE */
27827 
27828 interface INATNetworkCreationDeletionEvent
27829 {
27830 #   ifndef VBOX_WITH_GLUE
27831     struct INATNetworkCreationDeletionEvent_vtbl *vtbl;
27832 #   else /* VBOX_WITH_GLUE */
27833     CONST_VTBL struct INATNetworkCreationDeletionEventVtbl *lpVtbl;
27834 #   endif /* VBOX_WITH_GLUE */
27835 };
27836 /* End of struct INATNetworkCreationDeletionEvent declaration */
27837 
27838 
27839 /* Start of struct INATNetworkSettingEvent declaration */
27840 #   define INATNETWORKSETTINGEVENT_IID_STR "9db3a9e6-7f29-4aae-a627-5a282c83092c"
27841 #   define INATNETWORKSETTINGEVENT_IID { \
27842     0x9db3a9e6, 0x7f29, 0x4aae, \
27843     { 0xa6, 0x27, 0x5a, 0x28, 0x2c, 0x83, 0x09, 0x2c } \
27844 }
27845 /* COM compatibility */
27846 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkSettingEvent);
27847 #   ifndef VBOX_WITH_GLUE
27848 struct INATNetworkSettingEvent_vtbl
27849 {
27850     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
27851 
27852     nsresult (*GetEnabled)(INATNetworkSettingEvent *pThis, PRBool *enabled);
27853 
27854     nsresult (*GetNetwork)(INATNetworkSettingEvent *pThis, PRUnichar * *network);
27855 
27856     nsresult (*GetGateway)(INATNetworkSettingEvent *pThis, PRUnichar * *gateway);
27857 
27858     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetworkSettingEvent *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
27859 
27860     nsresult (*GetNeedDhcpServer)(INATNetworkSettingEvent *pThis, PRBool *needDhcpServer);
27861 
27862 };
27863 #   else /* VBOX_WITH_GLUE */
27864 struct INATNetworkSettingEventVtbl
27865 {
27866     nsresult (*QueryInterface)(INATNetworkSettingEvent *pThis, const nsID *iid, void **resultp);
27867     nsrefcnt (*AddRef)(INATNetworkSettingEvent *pThis);
27868     nsrefcnt (*Release)(INATNetworkSettingEvent *pThis);
27869     nsresult (*GetType)(INATNetworkSettingEvent *pThis, PRUint32 *type);
27870 
27871     nsresult (*GetSource)(INATNetworkSettingEvent *pThis, IEventSource * *source);
27872 
27873     nsresult (*GetWaitable)(INATNetworkSettingEvent *pThis, PRBool *waitable);
27874 
27875     nsresult (*SetProcessed)(INATNetworkSettingEvent *pThis );
27876 
27877     nsresult (*WaitProcessed)(
27878         INATNetworkSettingEvent *pThis,
27879         PRInt32 timeout,
27880         PRBool * result
27881     );
27882 
27883     nsresult (*GetNetworkName)(INATNetworkSettingEvent *pThis, PRUnichar * *networkName);
27884 
27885     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkSettingEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27886 
27887     nsresult (*GetEnabled)(INATNetworkSettingEvent *pThis, PRBool *enabled);
27888 
27889     nsresult (*GetNetwork)(INATNetworkSettingEvent *pThis, PRUnichar * *network);
27890 
27891     nsresult (*GetGateway)(INATNetworkSettingEvent *pThis, PRUnichar * *gateway);
27892 
27893     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetworkSettingEvent *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
27894 
27895     nsresult (*GetNeedDhcpServer)(INATNetworkSettingEvent *pThis, PRBool *needDhcpServer);
27896 
27897 };
27898 #    define INATNetworkSettingEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27899 #    define INATNetworkSettingEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27900 #    define INATNetworkSettingEvent_Release(p) ((p)->lpVtbl->Release(p))
27901 #    define INATNetworkSettingEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27902 #    define INATNetworkSettingEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27903 #    define INATNetworkSettingEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27904 #    define INATNetworkSettingEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27905 #    define INATNetworkSettingEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27906 #    define INATNetworkSettingEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27907 #    define INATNetworkSettingEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27908 #    define INATNetworkSettingEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27909 #    define INATNetworkSettingEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27910 #    define INATNetworkSettingEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
27911 #    define INATNetworkSettingEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27912 #    define INATNetworkSettingEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27913 #    define INATNetworkSettingEvent_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
27914 #    define INATNetworkSettingEvent_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
27915 #    define INATNetworkSettingEvent_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
27916 #    define INATNetworkSettingEvent_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
27917 #    define INATNetworkSettingEvent_get_Gateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
27918 #    define INATNetworkSettingEvent_GetGateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
27919 #    define INATNetworkSettingEvent_get_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
27920 #    define INATNetworkSettingEvent_GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
27921 #    define INATNetworkSettingEvent_get_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
27922 #    define INATNetworkSettingEvent_GetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
27923 #   endif /* VBOX_WITH_GLUE */
27924 
27925 interface INATNetworkSettingEvent
27926 {
27927 #   ifndef VBOX_WITH_GLUE
27928     struct INATNetworkSettingEvent_vtbl *vtbl;
27929 #   else /* VBOX_WITH_GLUE */
27930     CONST_VTBL struct INATNetworkSettingEventVtbl *lpVtbl;
27931 #   endif /* VBOX_WITH_GLUE */
27932 };
27933 /* End of struct INATNetworkSettingEvent declaration */
27934 
27935 
27936 /* Start of struct INATNetworkPortForwardEvent declaration */
27937 #   define INATNETWORKPORTFORWARDEVENT_IID_STR "2514881b-23d0-430a-a7ff-7ed7f05534bc"
27938 #   define INATNETWORKPORTFORWARDEVENT_IID { \
27939     0x2514881b, 0x23d0, 0x430a, \
27940     { 0xa7, 0xff, 0x7e, 0xd7, 0xf0, 0x55, 0x34, 0xbc } \
27941 }
27942 /* COM compatibility */
27943 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkPortForwardEvent);
27944 #   ifndef VBOX_WITH_GLUE
27945 struct INATNetworkPortForwardEvent_vtbl
27946 {
27947     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
27948 
27949     nsresult (*GetCreate)(INATNetworkPortForwardEvent *pThis, PRBool *create);
27950 
27951     nsresult (*GetIpv6)(INATNetworkPortForwardEvent *pThis, PRBool *ipv6);
27952 
27953     nsresult (*GetName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *name);
27954 
27955     nsresult (*GetProto)(INATNetworkPortForwardEvent *pThis, PRUint32 *proto);
27956 
27957     nsresult (*GetHostIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *hostIp);
27958 
27959     nsresult (*GetHostPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *hostPort);
27960 
27961     nsresult (*GetGuestIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *guestIp);
27962 
27963     nsresult (*GetGuestPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *guestPort);
27964 
27965 };
27966 #   else /* VBOX_WITH_GLUE */
27967 struct INATNetworkPortForwardEventVtbl
27968 {
27969     nsresult (*QueryInterface)(INATNetworkPortForwardEvent *pThis, const nsID *iid, void **resultp);
27970     nsrefcnt (*AddRef)(INATNetworkPortForwardEvent *pThis);
27971     nsrefcnt (*Release)(INATNetworkPortForwardEvent *pThis);
27972     nsresult (*GetType)(INATNetworkPortForwardEvent *pThis, PRUint32 *type);
27973 
27974     nsresult (*GetSource)(INATNetworkPortForwardEvent *pThis, IEventSource * *source);
27975 
27976     nsresult (*GetWaitable)(INATNetworkPortForwardEvent *pThis, PRBool *waitable);
27977 
27978     nsresult (*SetProcessed)(INATNetworkPortForwardEvent *pThis );
27979 
27980     nsresult (*WaitProcessed)(
27981         INATNetworkPortForwardEvent *pThis,
27982         PRInt32 timeout,
27983         PRBool * result
27984     );
27985 
27986     nsresult (*GetNetworkName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *networkName);
27987 
27988     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkPortForwardEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27989 
27990     nsresult (*GetCreate)(INATNetworkPortForwardEvent *pThis, PRBool *create);
27991 
27992     nsresult (*GetIpv6)(INATNetworkPortForwardEvent *pThis, PRBool *ipv6);
27993 
27994     nsresult (*GetName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *name);
27995 
27996     nsresult (*GetProto)(INATNetworkPortForwardEvent *pThis, PRUint32 *proto);
27997 
27998     nsresult (*GetHostIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *hostIp);
27999 
28000     nsresult (*GetHostPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *hostPort);
28001 
28002     nsresult (*GetGuestIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *guestIp);
28003 
28004     nsresult (*GetGuestPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *guestPort);
28005 
28006 };
28007 #    define INATNetworkPortForwardEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28008 #    define INATNetworkPortForwardEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28009 #    define INATNetworkPortForwardEvent_Release(p) ((p)->lpVtbl->Release(p))
28010 #    define INATNetworkPortForwardEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28011 #    define INATNetworkPortForwardEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28012 #    define INATNetworkPortForwardEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28013 #    define INATNetworkPortForwardEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28014 #    define INATNetworkPortForwardEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28015 #    define INATNetworkPortForwardEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28016 #    define INATNetworkPortForwardEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28017 #    define INATNetworkPortForwardEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28018 #    define INATNetworkPortForwardEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
28019 #    define INATNetworkPortForwardEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
28020 #    define INATNetworkPortForwardEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28021 #    define INATNetworkPortForwardEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28022 #    define INATNetworkPortForwardEvent_get_Create(p, aCreate) ((p)->lpVtbl->GetCreate(p, aCreate))
28023 #    define INATNetworkPortForwardEvent_GetCreate(p, aCreate) ((p)->lpVtbl->GetCreate(p, aCreate))
28024 #    define INATNetworkPortForwardEvent_get_Ipv6(p, aIpv6) ((p)->lpVtbl->GetIpv6(p, aIpv6))
28025 #    define INATNetworkPortForwardEvent_GetIpv6(p, aIpv6) ((p)->lpVtbl->GetIpv6(p, aIpv6))
28026 #    define INATNetworkPortForwardEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
28027 #    define INATNetworkPortForwardEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
28028 #    define INATNetworkPortForwardEvent_get_Proto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
28029 #    define INATNetworkPortForwardEvent_GetProto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
28030 #    define INATNetworkPortForwardEvent_get_HostIp(p, aHostIp) ((p)->lpVtbl->GetHostIp(p, aHostIp))
28031 #    define INATNetworkPortForwardEvent_GetHostIp(p, aHostIp) ((p)->lpVtbl->GetHostIp(p, aHostIp))
28032 #    define INATNetworkPortForwardEvent_get_HostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
28033 #    define INATNetworkPortForwardEvent_GetHostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
28034 #    define INATNetworkPortForwardEvent_get_GuestIp(p, aGuestIp) ((p)->lpVtbl->GetGuestIp(p, aGuestIp))
28035 #    define INATNetworkPortForwardEvent_GetGuestIp(p, aGuestIp) ((p)->lpVtbl->GetGuestIp(p, aGuestIp))
28036 #    define INATNetworkPortForwardEvent_get_GuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
28037 #    define INATNetworkPortForwardEvent_GetGuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
28038 #   endif /* VBOX_WITH_GLUE */
28039 
28040 interface INATNetworkPortForwardEvent
28041 {
28042 #   ifndef VBOX_WITH_GLUE
28043     struct INATNetworkPortForwardEvent_vtbl *vtbl;
28044 #   else /* VBOX_WITH_GLUE */
28045     CONST_VTBL struct INATNetworkPortForwardEventVtbl *lpVtbl;
28046 #   endif /* VBOX_WITH_GLUE */
28047 };
28048 /* End of struct INATNetworkPortForwardEvent declaration */
28049 
28050 
28051 /* Start of struct IHostNameResolutionConfigurationChangeEvent declaration */
28052 #   define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID_STR "f9b9e1cf-cb63-47a1-84fb-02c4894b89a9"
28053 #   define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID { \
28054     0xf9b9e1cf, 0xcb63, 0x47a1, \
28055     { 0x84, 0xfb, 0x02, 0xc4, 0x89, 0x4b, 0x89, 0xa9 } \
28056 }
28057 /* COM compatibility */
28058 VBOX_EXTERN_CONST(nsIID, IID_IHostNameResolutionConfigurationChangeEvent);
28059 #   ifndef VBOX_WITH_GLUE
28060 struct IHostNameResolutionConfigurationChangeEvent_vtbl
28061 {
28062     struct IEvent_vtbl ievent;
28063 
28064     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28065 
28066 };
28067 #   else /* VBOX_WITH_GLUE */
28068 struct IHostNameResolutionConfigurationChangeEventVtbl
28069 {
28070     nsresult (*QueryInterface)(IHostNameResolutionConfigurationChangeEvent *pThis, const nsID *iid, void **resultp);
28071     nsrefcnt (*AddRef)(IHostNameResolutionConfigurationChangeEvent *pThis);
28072     nsrefcnt (*Release)(IHostNameResolutionConfigurationChangeEvent *pThis);
28073     nsresult (*GetType)(IHostNameResolutionConfigurationChangeEvent *pThis, PRUint32 *type);
28074 
28075     nsresult (*GetSource)(IHostNameResolutionConfigurationChangeEvent *pThis, IEventSource * *source);
28076 
28077     nsresult (*GetWaitable)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *waitable);
28078 
28079     nsresult (*SetProcessed)(IHostNameResolutionConfigurationChangeEvent *pThis );
28080 
28081     nsresult (*WaitProcessed)(
28082         IHostNameResolutionConfigurationChangeEvent *pThis,
28083         PRInt32 timeout,
28084         PRBool * result
28085     );
28086 
28087     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28088 
28089 };
28090 #    define IHostNameResolutionConfigurationChangeEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28091 #    define IHostNameResolutionConfigurationChangeEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28092 #    define IHostNameResolutionConfigurationChangeEvent_Release(p) ((p)->lpVtbl->Release(p))
28093 #    define IHostNameResolutionConfigurationChangeEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28094 #    define IHostNameResolutionConfigurationChangeEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28095 #    define IHostNameResolutionConfigurationChangeEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28096 #    define IHostNameResolutionConfigurationChangeEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28097 #    define IHostNameResolutionConfigurationChangeEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28098 #    define IHostNameResolutionConfigurationChangeEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28099 #    define IHostNameResolutionConfigurationChangeEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28100 #    define IHostNameResolutionConfigurationChangeEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28101 #    define IHostNameResolutionConfigurationChangeEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28102 #    define IHostNameResolutionConfigurationChangeEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28103 #   endif /* VBOX_WITH_GLUE */
28104 
28105 interface IHostNameResolutionConfigurationChangeEvent
28106 {
28107 #   ifndef VBOX_WITH_GLUE
28108     struct IHostNameResolutionConfigurationChangeEvent_vtbl *vtbl;
28109 #   else /* VBOX_WITH_GLUE */
28110     CONST_VTBL struct IHostNameResolutionConfigurationChangeEventVtbl *lpVtbl;
28111 #   endif /* VBOX_WITH_GLUE */
28112 };
28113 /* End of struct IHostNameResolutionConfigurationChangeEvent declaration */
28114 
28115 
28116 /* Start of struct IProgressEvent declaration */
28117 #   define IPROGRESSEVENT_IID_STR "daaf9016-1f04-4191-aa2f-1fac9646ae4c"
28118 #   define IPROGRESSEVENT_IID { \
28119     0xdaaf9016, 0x1f04, 0x4191, \
28120     { 0xaa, 0x2f, 0x1f, 0xac, 0x96, 0x46, 0xae, 0x4c } \
28121 }
28122 /* COM compatibility */
28123 VBOX_EXTERN_CONST(nsIID, IID_IProgressEvent);
28124 #   ifndef VBOX_WITH_GLUE
28125 struct IProgressEvent_vtbl
28126 {
28127     struct IEvent_vtbl ievent;
28128 
28129     nsresult (*GetProgressId)(IProgressEvent *pThis, PRUnichar * *progressId);
28130 
28131 };
28132 #   else /* VBOX_WITH_GLUE */
28133 struct IProgressEventVtbl
28134 {
28135     nsresult (*QueryInterface)(IProgressEvent *pThis, const nsID *iid, void **resultp);
28136     nsrefcnt (*AddRef)(IProgressEvent *pThis);
28137     nsrefcnt (*Release)(IProgressEvent *pThis);
28138     nsresult (*GetType)(IProgressEvent *pThis, PRUint32 *type);
28139 
28140     nsresult (*GetSource)(IProgressEvent *pThis, IEventSource * *source);
28141 
28142     nsresult (*GetWaitable)(IProgressEvent *pThis, PRBool *waitable);
28143 
28144     nsresult (*SetProcessed)(IProgressEvent *pThis );
28145 
28146     nsresult (*WaitProcessed)(
28147         IProgressEvent *pThis,
28148         PRInt32 timeout,
28149         PRBool * result
28150     );
28151 
28152     nsresult (*GetProgressId)(IProgressEvent *pThis, PRUnichar * *progressId);
28153 
28154 };
28155 #    define IProgressEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28156 #    define IProgressEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28157 #    define IProgressEvent_Release(p) ((p)->lpVtbl->Release(p))
28158 #    define IProgressEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28159 #    define IProgressEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28160 #    define IProgressEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28161 #    define IProgressEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28162 #    define IProgressEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28163 #    define IProgressEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28164 #    define IProgressEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28165 #    define IProgressEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28166 #    define IProgressEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
28167 #    define IProgressEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
28168 #   endif /* VBOX_WITH_GLUE */
28169 
28170 interface IProgressEvent
28171 {
28172 #   ifndef VBOX_WITH_GLUE
28173     struct IProgressEvent_vtbl *vtbl;
28174 #   else /* VBOX_WITH_GLUE */
28175     CONST_VTBL struct IProgressEventVtbl *lpVtbl;
28176 #   endif /* VBOX_WITH_GLUE */
28177 };
28178 /* End of struct IProgressEvent declaration */
28179 
28180 
28181 /* Start of struct IProgressPercentageChangedEvent declaration */
28182 #   define IPROGRESSPERCENTAGECHANGEDEVENT_IID_STR "f05d7e60-1bcf-4218-9807-04e036cc70f1"
28183 #   define IPROGRESSPERCENTAGECHANGEDEVENT_IID { \
28184     0xf05d7e60, 0x1bcf, 0x4218, \
28185     { 0x98, 0x07, 0x04, 0xe0, 0x36, 0xcc, 0x70, 0xf1 } \
28186 }
28187 /* COM compatibility */
28188 VBOX_EXTERN_CONST(nsIID, IID_IProgressPercentageChangedEvent);
28189 #   ifndef VBOX_WITH_GLUE
28190 struct IProgressPercentageChangedEvent_vtbl
28191 {
28192     struct IProgressEvent_vtbl iprogressevent;
28193 
28194     nsresult (*GetPercent)(IProgressPercentageChangedEvent *pThis, PRInt32 *percent);
28195 
28196 };
28197 #   else /* VBOX_WITH_GLUE */
28198 struct IProgressPercentageChangedEventVtbl
28199 {
28200     nsresult (*QueryInterface)(IProgressPercentageChangedEvent *pThis, const nsID *iid, void **resultp);
28201     nsrefcnt (*AddRef)(IProgressPercentageChangedEvent *pThis);
28202     nsrefcnt (*Release)(IProgressPercentageChangedEvent *pThis);
28203     nsresult (*GetType)(IProgressPercentageChangedEvent *pThis, PRUint32 *type);
28204 
28205     nsresult (*GetSource)(IProgressPercentageChangedEvent *pThis, IEventSource * *source);
28206 
28207     nsresult (*GetWaitable)(IProgressPercentageChangedEvent *pThis, PRBool *waitable);
28208 
28209     nsresult (*SetProcessed)(IProgressPercentageChangedEvent *pThis );
28210 
28211     nsresult (*WaitProcessed)(
28212         IProgressPercentageChangedEvent *pThis,
28213         PRInt32 timeout,
28214         PRBool * result
28215     );
28216 
28217     nsresult (*GetProgressId)(IProgressPercentageChangedEvent *pThis, PRUnichar * *progressId);
28218 
28219     nsresult (*GetPercent)(IProgressPercentageChangedEvent *pThis, PRInt32 *percent);
28220 
28221 };
28222 #    define IProgressPercentageChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28223 #    define IProgressPercentageChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28224 #    define IProgressPercentageChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28225 #    define IProgressPercentageChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28226 #    define IProgressPercentageChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28227 #    define IProgressPercentageChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28228 #    define IProgressPercentageChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28229 #    define IProgressPercentageChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28230 #    define IProgressPercentageChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28231 #    define IProgressPercentageChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28232 #    define IProgressPercentageChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28233 #    define IProgressPercentageChangedEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
28234 #    define IProgressPercentageChangedEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
28235 #    define IProgressPercentageChangedEvent_get_Percent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
28236 #    define IProgressPercentageChangedEvent_GetPercent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
28237 #   endif /* VBOX_WITH_GLUE */
28238 
28239 interface IProgressPercentageChangedEvent
28240 {
28241 #   ifndef VBOX_WITH_GLUE
28242     struct IProgressPercentageChangedEvent_vtbl *vtbl;
28243 #   else /* VBOX_WITH_GLUE */
28244     CONST_VTBL struct IProgressPercentageChangedEventVtbl *lpVtbl;
28245 #   endif /* VBOX_WITH_GLUE */
28246 };
28247 /* End of struct IProgressPercentageChangedEvent declaration */
28248 
28249 
28250 /* Start of struct IProgressTaskCompletedEvent declaration */
28251 #   define IPROGRESSTASKCOMPLETEDEVENT_IID_STR "a5bbdb7d-8ce7-469f-a4c2-6476f581ff72"
28252 #   define IPROGRESSTASKCOMPLETEDEVENT_IID { \
28253     0xa5bbdb7d, 0x8ce7, 0x469f, \
28254     { 0xa4, 0xc2, 0x64, 0x76, 0xf5, 0x81, 0xff, 0x72 } \
28255 }
28256 /* COM compatibility */
28257 VBOX_EXTERN_CONST(nsIID, IID_IProgressTaskCompletedEvent);
28258 #   ifndef VBOX_WITH_GLUE
28259 struct IProgressTaskCompletedEvent_vtbl
28260 {
28261     struct IProgressEvent_vtbl iprogressevent;
28262 
28263     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IProgressTaskCompletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28264 
28265 };
28266 #   else /* VBOX_WITH_GLUE */
28267 struct IProgressTaskCompletedEventVtbl
28268 {
28269     nsresult (*QueryInterface)(IProgressTaskCompletedEvent *pThis, const nsID *iid, void **resultp);
28270     nsrefcnt (*AddRef)(IProgressTaskCompletedEvent *pThis);
28271     nsrefcnt (*Release)(IProgressTaskCompletedEvent *pThis);
28272     nsresult (*GetType)(IProgressTaskCompletedEvent *pThis, PRUint32 *type);
28273 
28274     nsresult (*GetSource)(IProgressTaskCompletedEvent *pThis, IEventSource * *source);
28275 
28276     nsresult (*GetWaitable)(IProgressTaskCompletedEvent *pThis, PRBool *waitable);
28277 
28278     nsresult (*SetProcessed)(IProgressTaskCompletedEvent *pThis );
28279 
28280     nsresult (*WaitProcessed)(
28281         IProgressTaskCompletedEvent *pThis,
28282         PRInt32 timeout,
28283         PRBool * result
28284     );
28285 
28286     nsresult (*GetProgressId)(IProgressTaskCompletedEvent *pThis, PRUnichar * *progressId);
28287 
28288     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IProgressTaskCompletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28289 
28290 };
28291 #    define IProgressTaskCompletedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28292 #    define IProgressTaskCompletedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28293 #    define IProgressTaskCompletedEvent_Release(p) ((p)->lpVtbl->Release(p))
28294 #    define IProgressTaskCompletedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28295 #    define IProgressTaskCompletedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28296 #    define IProgressTaskCompletedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28297 #    define IProgressTaskCompletedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28298 #    define IProgressTaskCompletedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28299 #    define IProgressTaskCompletedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28300 #    define IProgressTaskCompletedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28301 #    define IProgressTaskCompletedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28302 #    define IProgressTaskCompletedEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
28303 #    define IProgressTaskCompletedEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
28304 #    define IProgressTaskCompletedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28305 #    define IProgressTaskCompletedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28306 #   endif /* VBOX_WITH_GLUE */
28307 
28308 interface IProgressTaskCompletedEvent
28309 {
28310 #   ifndef VBOX_WITH_GLUE
28311     struct IProgressTaskCompletedEvent_vtbl *vtbl;
28312 #   else /* VBOX_WITH_GLUE */
28313     CONST_VTBL struct IProgressTaskCompletedEventVtbl *lpVtbl;
28314 #   endif /* VBOX_WITH_GLUE */
28315 };
28316 /* End of struct IProgressTaskCompletedEvent declaration */
28317 
28318 
28319 /* Start of struct ICursorPositionChangedEvent declaration */
28320 #   define ICURSORPOSITIONCHANGEDEVENT_IID_STR "6f302674-c927-11e7-b788-33c248e71fc7"
28321 #   define ICURSORPOSITIONCHANGEDEVENT_IID { \
28322     0x6f302674, 0xc927, 0x11e7, \
28323     { 0xb7, 0x88, 0x33, 0xc2, 0x48, 0xe7, 0x1f, 0xc7 } \
28324 }
28325 /* COM compatibility */
28326 VBOX_EXTERN_CONST(nsIID, IID_ICursorPositionChangedEvent);
28327 #   ifndef VBOX_WITH_GLUE
28328 struct ICursorPositionChangedEvent_vtbl
28329 {
28330     struct IEvent_vtbl ievent;
28331 
28332     nsresult (*GetHasData)(ICursorPositionChangedEvent *pThis, PRBool *hasData);
28333 
28334     nsresult (*GetX)(ICursorPositionChangedEvent *pThis, PRUint32 *x);
28335 
28336     nsresult (*GetY)(ICursorPositionChangedEvent *pThis, PRUint32 *y);
28337 
28338 };
28339 #   else /* VBOX_WITH_GLUE */
28340 struct ICursorPositionChangedEventVtbl
28341 {
28342     nsresult (*QueryInterface)(ICursorPositionChangedEvent *pThis, const nsID *iid, void **resultp);
28343     nsrefcnt (*AddRef)(ICursorPositionChangedEvent *pThis);
28344     nsrefcnt (*Release)(ICursorPositionChangedEvent *pThis);
28345     nsresult (*GetType)(ICursorPositionChangedEvent *pThis, PRUint32 *type);
28346 
28347     nsresult (*GetSource)(ICursorPositionChangedEvent *pThis, IEventSource * *source);
28348 
28349     nsresult (*GetWaitable)(ICursorPositionChangedEvent *pThis, PRBool *waitable);
28350 
28351     nsresult (*SetProcessed)(ICursorPositionChangedEvent *pThis );
28352 
28353     nsresult (*WaitProcessed)(
28354         ICursorPositionChangedEvent *pThis,
28355         PRInt32 timeout,
28356         PRBool * result
28357     );
28358 
28359     nsresult (*GetHasData)(ICursorPositionChangedEvent *pThis, PRBool *hasData);
28360 
28361     nsresult (*GetX)(ICursorPositionChangedEvent *pThis, PRUint32 *x);
28362 
28363     nsresult (*GetY)(ICursorPositionChangedEvent *pThis, PRUint32 *y);
28364 
28365 };
28366 #    define ICursorPositionChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28367 #    define ICursorPositionChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28368 #    define ICursorPositionChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28369 #    define ICursorPositionChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28370 #    define ICursorPositionChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28371 #    define ICursorPositionChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28372 #    define ICursorPositionChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28373 #    define ICursorPositionChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28374 #    define ICursorPositionChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28375 #    define ICursorPositionChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28376 #    define ICursorPositionChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28377 #    define ICursorPositionChangedEvent_get_HasData(p, aHasData) ((p)->lpVtbl->GetHasData(p, aHasData))
28378 #    define ICursorPositionChangedEvent_GetHasData(p, aHasData) ((p)->lpVtbl->GetHasData(p, aHasData))
28379 #    define ICursorPositionChangedEvent_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
28380 #    define ICursorPositionChangedEvent_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
28381 #    define ICursorPositionChangedEvent_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
28382 #    define ICursorPositionChangedEvent_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
28383 #   endif /* VBOX_WITH_GLUE */
28384 
28385 interface ICursorPositionChangedEvent
28386 {
28387 #   ifndef VBOX_WITH_GLUE
28388     struct ICursorPositionChangedEvent_vtbl *vtbl;
28389 #   else /* VBOX_WITH_GLUE */
28390     CONST_VTBL struct ICursorPositionChangedEventVtbl *lpVtbl;
28391 #   endif /* VBOX_WITH_GLUE */
28392 };
28393 /* End of struct ICursorPositionChangedEvent declaration */
28394 
28395 
28396 /* Start of struct IGuestAdditionsStatusChangedEvent declaration */
28397 #   define IGUESTADDITIONSSTATUSCHANGEDEVENT_IID_STR "fd1a34ad-0b74-4e2b-ed0f-46222de8a883"
28398 #   define IGUESTADDITIONSSTATUSCHANGEDEVENT_IID { \
28399     0xfd1a34ad, 0x0b74, 0x4e2b, \
28400     { 0xed, 0x0f, 0x46, 0x22, 0x2d, 0xe8, 0xa8, 0x83 } \
28401 }
28402 /* COM compatibility */
28403 VBOX_EXTERN_CONST(nsIID, IID_IGuestAdditionsStatusChangedEvent);
28404 #   ifndef VBOX_WITH_GLUE
28405 struct IGuestAdditionsStatusChangedEvent_vtbl
28406 {
28407     struct IEvent_vtbl ievent;
28408 
28409     nsresult (*GetFacility)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *facility);
28410     nsresult (*SetFacility)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 facility);
28411 
28412     nsresult (*GetStatus)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *status);
28413 
28414     nsresult (*GetRunLevel)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *runLevel);
28415 
28416     nsresult (*GetTimestamp)(IGuestAdditionsStatusChangedEvent *pThis, PRInt64 *timestamp);
28417 
28418 };
28419 #   else /* VBOX_WITH_GLUE */
28420 struct IGuestAdditionsStatusChangedEventVtbl
28421 {
28422     nsresult (*QueryInterface)(IGuestAdditionsStatusChangedEvent *pThis, const nsID *iid, void **resultp);
28423     nsrefcnt (*AddRef)(IGuestAdditionsStatusChangedEvent *pThis);
28424     nsrefcnt (*Release)(IGuestAdditionsStatusChangedEvent *pThis);
28425     nsresult (*GetType)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *type);
28426 
28427     nsresult (*GetSource)(IGuestAdditionsStatusChangedEvent *pThis, IEventSource * *source);
28428 
28429     nsresult (*GetWaitable)(IGuestAdditionsStatusChangedEvent *pThis, PRBool *waitable);
28430 
28431     nsresult (*SetProcessed)(IGuestAdditionsStatusChangedEvent *pThis );
28432 
28433     nsresult (*WaitProcessed)(
28434         IGuestAdditionsStatusChangedEvent *pThis,
28435         PRInt32 timeout,
28436         PRBool * result
28437     );
28438 
28439     nsresult (*GetFacility)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *facility);
28440     nsresult (*SetFacility)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 facility);
28441 
28442     nsresult (*GetStatus)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *status);
28443 
28444     nsresult (*GetRunLevel)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *runLevel);
28445 
28446     nsresult (*GetTimestamp)(IGuestAdditionsStatusChangedEvent *pThis, PRInt64 *timestamp);
28447 
28448 };
28449 #    define IGuestAdditionsStatusChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28450 #    define IGuestAdditionsStatusChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28451 #    define IGuestAdditionsStatusChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28452 #    define IGuestAdditionsStatusChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28453 #    define IGuestAdditionsStatusChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28454 #    define IGuestAdditionsStatusChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28455 #    define IGuestAdditionsStatusChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28456 #    define IGuestAdditionsStatusChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28457 #    define IGuestAdditionsStatusChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28458 #    define IGuestAdditionsStatusChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28459 #    define IGuestAdditionsStatusChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28460 #    define IGuestAdditionsStatusChangedEvent_get_Facility(p, aFacility) ((p)->lpVtbl->GetFacility(p, aFacility))
28461 #    define IGuestAdditionsStatusChangedEvent_GetFacility(p, aFacility) ((p)->lpVtbl->GetFacility(p, aFacility))
28462 #    define IGuestAdditionsStatusChangedEvent_put_Facility(p, aFacility) ((p)->lpVtbl->SetFacility(p, aFacility))
28463 #    define IGuestAdditionsStatusChangedEvent_SetFacility(p, aFacility) ((p)->lpVtbl->SetFacility(p, aFacility))
28464 #    define IGuestAdditionsStatusChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
28465 #    define IGuestAdditionsStatusChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
28466 #    define IGuestAdditionsStatusChangedEvent_get_RunLevel(p, aRunLevel) ((p)->lpVtbl->GetRunLevel(p, aRunLevel))
28467 #    define IGuestAdditionsStatusChangedEvent_GetRunLevel(p, aRunLevel) ((p)->lpVtbl->GetRunLevel(p, aRunLevel))
28468 #    define IGuestAdditionsStatusChangedEvent_get_Timestamp(p, aTimestamp) ((p)->lpVtbl->GetTimestamp(p, aTimestamp))
28469 #    define IGuestAdditionsStatusChangedEvent_GetTimestamp(p, aTimestamp) ((p)->lpVtbl->GetTimestamp(p, aTimestamp))
28470 #   endif /* VBOX_WITH_GLUE */
28471 
28472 interface IGuestAdditionsStatusChangedEvent
28473 {
28474 #   ifndef VBOX_WITH_GLUE
28475     struct IGuestAdditionsStatusChangedEvent_vtbl *vtbl;
28476 #   else /* VBOX_WITH_GLUE */
28477     CONST_VTBL struct IGuestAdditionsStatusChangedEventVtbl *lpVtbl;
28478 #   endif /* VBOX_WITH_GLUE */
28479 };
28480 /* End of struct IGuestAdditionsStatusChangedEvent declaration */
28481 
28482 
28483 /* Start of struct ICloudClient declaration */
28484 #   define ICLOUDCLIENT_IID_STR "3d9aacbe-b3bc-4126-9633-5634bad24ad7"
28485 #   define ICLOUDCLIENT_IID { \
28486     0x3d9aacbe, 0xb3bc, 0x4126, \
28487     { 0x96, 0x33, 0x56, 0x34, 0xba, 0xd2, 0x4a, 0xd7 } \
28488 }
28489 /* COM compatibility */
28490 VBOX_EXTERN_CONST(nsIID, IID_ICloudClient);
28491 #   ifndef VBOX_WITH_GLUE
28492 struct ICloudClient_vtbl
28493 {
28494     struct nsISupports_vtbl nsisupports;
28495 
28496     nsresult (*GetInternalAndReservedAttribute1ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28497 
28498     nsresult (*GetInternalAndReservedAttribute2ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28499 
28500     nsresult (*GetInternalAndReservedAttribute3ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28501 
28502     nsresult (*GetInternalAndReservedAttribute4ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28503 
28504     nsresult (*GetInternalAndReservedAttribute5ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28505 
28506     nsresult (*GetInternalAndReservedAttribute6ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28507 
28508     nsresult (*GetInternalAndReservedAttribute7ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28509 
28510     nsresult (*GetInternalAndReservedAttribute8ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28511 
28512     nsresult (*GetExportLaunchParameters)(
28513         ICloudClient *pThis,
28514         PRUnichar * * jsonString
28515     );
28516 
28517     nsresult (*ExportLaunchVM)(
28518         ICloudClient *pThis,
28519         IVirtualSystemDescription * description,
28520         IProgress * progress,
28521         IVirtualBox * virtualBox
28522     );
28523 
28524     nsresult (*InternalAndReservedMethod1ICloudClient)(ICloudClient *pThis);
28525 
28526     nsresult (*InternalAndReservedMethod2ICloudClient)(ICloudClient *pThis);
28527 
28528     nsresult (*InternalAndReservedMethod3ICloudClient)(ICloudClient *pThis);
28529 
28530     nsresult (*InternalAndReservedMethod4ICloudClient)(ICloudClient *pThis);
28531 
28532     nsresult (*InternalAndReservedMethod5ICloudClient)(ICloudClient *pThis);
28533 
28534     nsresult (*InternalAndReservedMethod6ICloudClient)(ICloudClient *pThis);
28535 
28536     nsresult (*InternalAndReservedMethod7ICloudClient)(ICloudClient *pThis);
28537 
28538     nsresult (*InternalAndReservedMethod8ICloudClient)(ICloudClient *pThis);
28539 
28540     nsresult (*InternalAndReservedMethod9ICloudClient)(ICloudClient *pThis);
28541 
28542     nsresult (*InternalAndReservedMethod10ICloudClient)(ICloudClient *pThis);
28543 
28544     nsresult (*InternalAndReservedMethod11ICloudClient)(ICloudClient *pThis);
28545 
28546     nsresult (*InternalAndReservedMethod12ICloudClient)(ICloudClient *pThis);
28547 
28548     nsresult (*InternalAndReservedMethod13ICloudClient)(ICloudClient *pThis);
28549 
28550     nsresult (*InternalAndReservedMethod14ICloudClient)(ICloudClient *pThis);
28551 
28552     nsresult (*InternalAndReservedMethod15ICloudClient)(ICloudClient *pThis);
28553 
28554     nsresult (*InternalAndReservedMethod16ICloudClient)(ICloudClient *pThis);
28555 
28556 };
28557 #   else /* VBOX_WITH_GLUE */
28558 struct ICloudClientVtbl
28559 {
28560     nsresult (*QueryInterface)(ICloudClient *pThis, const nsID *iid, void **resultp);
28561     nsrefcnt (*AddRef)(ICloudClient *pThis);
28562     nsrefcnt (*Release)(ICloudClient *pThis);
28563     nsresult (*GetInternalAndReservedAttribute1ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28564 
28565     nsresult (*GetInternalAndReservedAttribute2ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28566 
28567     nsresult (*GetInternalAndReservedAttribute3ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28568 
28569     nsresult (*GetInternalAndReservedAttribute4ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28570 
28571     nsresult (*GetInternalAndReservedAttribute5ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28572 
28573     nsresult (*GetInternalAndReservedAttribute6ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28574 
28575     nsresult (*GetInternalAndReservedAttribute7ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28576 
28577     nsresult (*GetInternalAndReservedAttribute8ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
28578 
28579     nsresult (*GetExportLaunchParameters)(
28580         ICloudClient *pThis,
28581         PRUnichar * * jsonString
28582     );
28583 
28584     nsresult (*ExportLaunchVM)(
28585         ICloudClient *pThis,
28586         IVirtualSystemDescription * description,
28587         IProgress * progress,
28588         IVirtualBox * virtualBox
28589     );
28590 
28591     nsresult (*InternalAndReservedMethod1ICloudClient)(ICloudClient *pThis);
28592 
28593     nsresult (*InternalAndReservedMethod2ICloudClient)(ICloudClient *pThis);
28594 
28595     nsresult (*InternalAndReservedMethod3ICloudClient)(ICloudClient *pThis);
28596 
28597     nsresult (*InternalAndReservedMethod4ICloudClient)(ICloudClient *pThis);
28598 
28599     nsresult (*InternalAndReservedMethod5ICloudClient)(ICloudClient *pThis);
28600 
28601     nsresult (*InternalAndReservedMethod6ICloudClient)(ICloudClient *pThis);
28602 
28603     nsresult (*InternalAndReservedMethod7ICloudClient)(ICloudClient *pThis);
28604 
28605     nsresult (*InternalAndReservedMethod8ICloudClient)(ICloudClient *pThis);
28606 
28607     nsresult (*InternalAndReservedMethod9ICloudClient)(ICloudClient *pThis);
28608 
28609     nsresult (*InternalAndReservedMethod10ICloudClient)(ICloudClient *pThis);
28610 
28611     nsresult (*InternalAndReservedMethod11ICloudClient)(ICloudClient *pThis);
28612 
28613     nsresult (*InternalAndReservedMethod12ICloudClient)(ICloudClient *pThis);
28614 
28615     nsresult (*InternalAndReservedMethod13ICloudClient)(ICloudClient *pThis);
28616 
28617     nsresult (*InternalAndReservedMethod14ICloudClient)(ICloudClient *pThis);
28618 
28619     nsresult (*InternalAndReservedMethod15ICloudClient)(ICloudClient *pThis);
28620 
28621     nsresult (*InternalAndReservedMethod16ICloudClient)(ICloudClient *pThis);
28622 
28623 };
28624 #    define ICloudClient_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28625 #    define ICloudClient_AddRef(p) ((p)->lpVtbl->AddRef(p))
28626 #    define ICloudClient_Release(p) ((p)->lpVtbl->Release(p))
28627 #    define ICloudClient_GetExportLaunchParameters(p, aJsonString) ((p)->lpVtbl->GetExportLaunchParameters(p, aJsonString))
28628 #    define ICloudClient_ExportLaunchVM(p, aDescription, aProgress, aVirtualBox) ((p)->lpVtbl->ExportLaunchVM(p, aDescription, aProgress, aVirtualBox))
28629 #   endif /* VBOX_WITH_GLUE */
28630 
28631 interface ICloudClient
28632 {
28633 #   ifndef VBOX_WITH_GLUE
28634     struct ICloudClient_vtbl *vtbl;
28635 #   else /* VBOX_WITH_GLUE */
28636     CONST_VTBL struct ICloudClientVtbl *lpVtbl;
28637 #   endif /* VBOX_WITH_GLUE */
28638 };
28639 /* End of struct ICloudClient declaration */
28640 
28641 
28642 /* Start of struct ICloudProfile declaration */
28643 #   define ICLOUDPROFILE_IID_STR "b1d978b8-f7b7-4b05-900e-2a9253c00f51"
28644 #   define ICLOUDPROFILE_IID { \
28645     0xb1d978b8, 0xf7b7, 0x4b05, \
28646     { 0x90, 0x0e, 0x2a, 0x92, 0x53, 0xc0, 0x0f, 0x51 } \
28647 }
28648 /* COM compatibility */
28649 VBOX_EXTERN_CONST(nsIID, IID_ICloudProfile);
28650 #   ifndef VBOX_WITH_GLUE
28651 struct ICloudProfile_vtbl
28652 {
28653     struct nsISupports_vtbl nsisupports;
28654 
28655     nsresult (*GetName)(ICloudProfile *pThis, PRUnichar * *name);
28656     nsresult (*SetName)(ICloudProfile *pThis, PRUnichar * name);
28657 
28658     nsresult (*GetProviderId)(ICloudProfile *pThis, PRUnichar * *providerId);
28659 
28660     nsresult (*GetInternalAndReservedAttribute1ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28661 
28662     nsresult (*GetInternalAndReservedAttribute2ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28663 
28664     nsresult (*GetInternalAndReservedAttribute3ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28665 
28666     nsresult (*GetInternalAndReservedAttribute4ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28667 
28668     nsresult (*GetInternalAndReservedAttribute5ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28669 
28670     nsresult (*GetInternalAndReservedAttribute6ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28671 
28672     nsresult (*GetInternalAndReservedAttribute7ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28673 
28674     nsresult (*GetInternalAndReservedAttribute8ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28675 
28676     nsresult (*GetProperty)(
28677         ICloudProfile *pThis,
28678         PRUnichar * name,
28679         PRUnichar * * value
28680     );
28681 
28682     nsresult (*SetProperty)(
28683         ICloudProfile *pThis,
28684         PRUnichar * name,
28685         PRUnichar * value
28686     );
28687 
28688     nsresult (*GetProperties)(
28689         ICloudProfile *pThis,
28690         PRUnichar * names,
28691         PRUint32 *returnNamesSize,
28692         PRUnichar *** returnNames,
28693         PRUint32 *returnValuesSize,
28694         PRUnichar *** returnValues
28695     );
28696 
28697     nsresult (*SetProperties)(
28698         ICloudProfile *pThis,
28699         PRUint32 namesSize,
28700         PRUnichar ** names,
28701         PRUint32 valuesSize,
28702         PRUnichar ** values
28703     );
28704 
28705     nsresult (*Remove)(ICloudProfile *pThis );
28706 
28707     nsresult (*CreateCloudClient)(
28708         ICloudProfile *pThis,
28709         ICloudClient * * cloudClient
28710     );
28711 
28712     nsresult (*InternalAndReservedMethod1ICloudProfile)(ICloudProfile *pThis);
28713 
28714     nsresult (*InternalAndReservedMethod2ICloudProfile)(ICloudProfile *pThis);
28715 
28716     nsresult (*InternalAndReservedMethod3ICloudProfile)(ICloudProfile *pThis);
28717 
28718     nsresult (*InternalAndReservedMethod4ICloudProfile)(ICloudProfile *pThis);
28719 
28720 };
28721 #   else /* VBOX_WITH_GLUE */
28722 struct ICloudProfileVtbl
28723 {
28724     nsresult (*QueryInterface)(ICloudProfile *pThis, const nsID *iid, void **resultp);
28725     nsrefcnt (*AddRef)(ICloudProfile *pThis);
28726     nsrefcnt (*Release)(ICloudProfile *pThis);
28727     nsresult (*GetName)(ICloudProfile *pThis, PRUnichar * *name);
28728     nsresult (*SetName)(ICloudProfile *pThis, PRUnichar * name);
28729 
28730     nsresult (*GetProviderId)(ICloudProfile *pThis, PRUnichar * *providerId);
28731 
28732     nsresult (*GetInternalAndReservedAttribute1ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28733 
28734     nsresult (*GetInternalAndReservedAttribute2ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28735 
28736     nsresult (*GetInternalAndReservedAttribute3ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28737 
28738     nsresult (*GetInternalAndReservedAttribute4ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28739 
28740     nsresult (*GetInternalAndReservedAttribute5ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28741 
28742     nsresult (*GetInternalAndReservedAttribute6ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28743 
28744     nsresult (*GetInternalAndReservedAttribute7ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28745 
28746     nsresult (*GetInternalAndReservedAttribute8ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
28747 
28748     nsresult (*GetProperty)(
28749         ICloudProfile *pThis,
28750         PRUnichar * name,
28751         PRUnichar * * value
28752     );
28753 
28754     nsresult (*SetProperty)(
28755         ICloudProfile *pThis,
28756         PRUnichar * name,
28757         PRUnichar * value
28758     );
28759 
28760     nsresult (*GetProperties)(
28761         ICloudProfile *pThis,
28762         PRUnichar * names,
28763         PRUint32 *returnNamesSize,
28764         PRUnichar *** returnNames,
28765         PRUint32 *returnValuesSize,
28766         PRUnichar *** returnValues
28767     );
28768 
28769     nsresult (*SetProperties)(
28770         ICloudProfile *pThis,
28771         PRUint32 namesSize,
28772         PRUnichar ** names,
28773         PRUint32 valuesSize,
28774         PRUnichar ** values
28775     );
28776 
28777     nsresult (*Remove)(ICloudProfile *pThis );
28778 
28779     nsresult (*CreateCloudClient)(
28780         ICloudProfile *pThis,
28781         ICloudClient * * cloudClient
28782     );
28783 
28784     nsresult (*InternalAndReservedMethod1ICloudProfile)(ICloudProfile *pThis);
28785 
28786     nsresult (*InternalAndReservedMethod2ICloudProfile)(ICloudProfile *pThis);
28787 
28788     nsresult (*InternalAndReservedMethod3ICloudProfile)(ICloudProfile *pThis);
28789 
28790     nsresult (*InternalAndReservedMethod4ICloudProfile)(ICloudProfile *pThis);
28791 
28792 };
28793 #    define ICloudProfile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28794 #    define ICloudProfile_AddRef(p) ((p)->lpVtbl->AddRef(p))
28795 #    define ICloudProfile_Release(p) ((p)->lpVtbl->Release(p))
28796 #    define ICloudProfile_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
28797 #    define ICloudProfile_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
28798 #    define ICloudProfile_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
28799 #    define ICloudProfile_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
28800 #    define ICloudProfile_get_ProviderId(p, aProviderId) ((p)->lpVtbl->GetProviderId(p, aProviderId))
28801 #    define ICloudProfile_GetProviderId(p, aProviderId) ((p)->lpVtbl->GetProviderId(p, aProviderId))
28802 #    define ICloudProfile_GetProperty(p, aName, aValue) ((p)->lpVtbl->GetProperty(p, aName, aValue))
28803 #    define ICloudProfile_SetProperty(p, aName, aValue) ((p)->lpVtbl->SetProperty(p, aName, aValue))
28804 #    define ICloudProfile_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
28805 #    define ICloudProfile_SetProperties(p, aNames, aValues) ((p)->lpVtbl->SetProperties(p, aNames, aValues))
28806 #    define ICloudProfile_Remove(p) ((p)->lpVtbl->Remove(p))
28807 #    define ICloudProfile_CreateCloudClient(p, aCloudClient) ((p)->lpVtbl->CreateCloudClient(p, aCloudClient))
28808 #   endif /* VBOX_WITH_GLUE */
28809 
28810 interface ICloudProfile
28811 {
28812 #   ifndef VBOX_WITH_GLUE
28813     struct ICloudProfile_vtbl *vtbl;
28814 #   else /* VBOX_WITH_GLUE */
28815     CONST_VTBL struct ICloudProfileVtbl *lpVtbl;
28816 #   endif /* VBOX_WITH_GLUE */
28817 };
28818 /* End of struct ICloudProfile declaration */
28819 
28820 
28821 /* Start of struct ICloudProvider declaration */
28822 #   define ICLOUDPROVIDER_IID_STR "22363cfc-07da-41ec-ac4a-3dd99db35594"
28823 #   define ICLOUDPROVIDER_IID { \
28824     0x22363cfc, 0x07da, 0x41ec, \
28825     { 0xac, 0x4a, 0x3d, 0xd9, 0x9d, 0xb3, 0x55, 0x94 } \
28826 }
28827 /* COM compatibility */
28828 VBOX_EXTERN_CONST(nsIID, IID_ICloudProvider);
28829 #   ifndef VBOX_WITH_GLUE
28830 struct ICloudProvider_vtbl
28831 {
28832     struct nsISupports_vtbl nsisupports;
28833 
28834     nsresult (*GetName)(ICloudProvider *pThis, PRUnichar * *name);
28835 
28836     nsresult (*GetShortName)(ICloudProvider *pThis, PRUnichar * *shortName);
28837 
28838     nsresult (*GetId)(ICloudProvider *pThis, PRUnichar * *id);
28839 
28840     nsresult (*GetProfiles)(ICloudProvider *pThis, PRUint32 *profilesSize, ICloudProfile * **profiles);
28841 
28842     nsresult (*GetProfileNames)(ICloudProvider *pThis, PRUint32 *profileNamesSize, PRUnichar * **profileNames);
28843 
28844     nsresult (*GetSupportedPropertyNames)(ICloudProvider *pThis, PRUint32 *supportedPropertyNamesSize, PRUnichar * **supportedPropertyNames);
28845 
28846     nsresult (*GetInternalAndReservedAttribute1ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28847 
28848     nsresult (*GetInternalAndReservedAttribute2ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28849 
28850     nsresult (*GetInternalAndReservedAttribute3ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28851 
28852     nsresult (*GetInternalAndReservedAttribute4ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28853 
28854     nsresult (*GetInternalAndReservedAttribute5ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28855 
28856     nsresult (*GetInternalAndReservedAttribute6ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28857 
28858     nsresult (*GetInternalAndReservedAttribute7ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28859 
28860     nsresult (*GetInternalAndReservedAttribute8ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28861 
28862     nsresult (*GetInternalAndReservedAttribute9ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28863 
28864     nsresult (*GetInternalAndReservedAttribute10ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28865 
28866     nsresult (*GetInternalAndReservedAttribute11ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28867 
28868     nsresult (*GetInternalAndReservedAttribute12ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28869 
28870     nsresult (*GetInternalAndReservedAttribute13ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28871 
28872     nsresult (*GetInternalAndReservedAttribute14ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28873 
28874     nsresult (*GetInternalAndReservedAttribute15ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28875 
28876     nsresult (*GetInternalAndReservedAttribute16ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28877 
28878     nsresult (*GetPropertyDescription)(
28879         ICloudProvider *pThis,
28880         PRUnichar * name,
28881         PRUnichar * * description
28882     );
28883 
28884     nsresult (*CreateProfile)(
28885         ICloudProvider *pThis,
28886         PRUnichar * profileName,
28887         PRUint32 namesSize,
28888         PRUnichar ** names,
28889         PRUint32 valuesSize,
28890         PRUnichar ** values
28891     );
28892 
28893     nsresult (*ImportProfiles)(ICloudProvider *pThis );
28894 
28895     nsresult (*RestoreProfiles)(ICloudProvider *pThis );
28896 
28897     nsresult (*SaveProfiles)(ICloudProvider *pThis );
28898 
28899     nsresult (*GetProfileByName)(
28900         ICloudProvider *pThis,
28901         PRUnichar * profileName,
28902         ICloudProfile * * profile
28903     );
28904 
28905     nsresult (*PrepareUninstall)(ICloudProvider *pThis );
28906 
28907     nsresult (*InternalAndReservedMethod1ICloudProvider)(ICloudProvider *pThis);
28908 
28909     nsresult (*InternalAndReservedMethod2ICloudProvider)(ICloudProvider *pThis);
28910 
28911     nsresult (*InternalAndReservedMethod3ICloudProvider)(ICloudProvider *pThis);
28912 
28913     nsresult (*InternalAndReservedMethod4ICloudProvider)(ICloudProvider *pThis);
28914 
28915     nsresult (*InternalAndReservedMethod5ICloudProvider)(ICloudProvider *pThis);
28916 
28917     nsresult (*InternalAndReservedMethod6ICloudProvider)(ICloudProvider *pThis);
28918 
28919     nsresult (*InternalAndReservedMethod7ICloudProvider)(ICloudProvider *pThis);
28920 
28921     nsresult (*InternalAndReservedMethod8ICloudProvider)(ICloudProvider *pThis);
28922 
28923 };
28924 #   else /* VBOX_WITH_GLUE */
28925 struct ICloudProviderVtbl
28926 {
28927     nsresult (*QueryInterface)(ICloudProvider *pThis, const nsID *iid, void **resultp);
28928     nsrefcnt (*AddRef)(ICloudProvider *pThis);
28929     nsrefcnt (*Release)(ICloudProvider *pThis);
28930     nsresult (*GetName)(ICloudProvider *pThis, PRUnichar * *name);
28931 
28932     nsresult (*GetShortName)(ICloudProvider *pThis, PRUnichar * *shortName);
28933 
28934     nsresult (*GetId)(ICloudProvider *pThis, PRUnichar * *id);
28935 
28936     nsresult (*GetProfiles)(ICloudProvider *pThis, PRUint32 *profilesSize, ICloudProfile * **profiles);
28937 
28938     nsresult (*GetProfileNames)(ICloudProvider *pThis, PRUint32 *profileNamesSize, PRUnichar * **profileNames);
28939 
28940     nsresult (*GetSupportedPropertyNames)(ICloudProvider *pThis, PRUint32 *supportedPropertyNamesSize, PRUnichar * **supportedPropertyNames);
28941 
28942     nsresult (*GetInternalAndReservedAttribute1ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28943 
28944     nsresult (*GetInternalAndReservedAttribute2ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28945 
28946     nsresult (*GetInternalAndReservedAttribute3ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28947 
28948     nsresult (*GetInternalAndReservedAttribute4ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28949 
28950     nsresult (*GetInternalAndReservedAttribute5ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28951 
28952     nsresult (*GetInternalAndReservedAttribute6ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28953 
28954     nsresult (*GetInternalAndReservedAttribute7ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28955 
28956     nsresult (*GetInternalAndReservedAttribute8ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28957 
28958     nsresult (*GetInternalAndReservedAttribute9ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28959 
28960     nsresult (*GetInternalAndReservedAttribute10ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28961 
28962     nsresult (*GetInternalAndReservedAttribute11ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28963 
28964     nsresult (*GetInternalAndReservedAttribute12ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28965 
28966     nsresult (*GetInternalAndReservedAttribute13ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28967 
28968     nsresult (*GetInternalAndReservedAttribute14ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28969 
28970     nsresult (*GetInternalAndReservedAttribute15ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28971 
28972     nsresult (*GetInternalAndReservedAttribute16ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
28973 
28974     nsresult (*GetPropertyDescription)(
28975         ICloudProvider *pThis,
28976         PRUnichar * name,
28977         PRUnichar * * description
28978     );
28979 
28980     nsresult (*CreateProfile)(
28981         ICloudProvider *pThis,
28982         PRUnichar * profileName,
28983         PRUint32 namesSize,
28984         PRUnichar ** names,
28985         PRUint32 valuesSize,
28986         PRUnichar ** values
28987     );
28988 
28989     nsresult (*ImportProfiles)(ICloudProvider *pThis );
28990 
28991     nsresult (*RestoreProfiles)(ICloudProvider *pThis );
28992 
28993     nsresult (*SaveProfiles)(ICloudProvider *pThis );
28994 
28995     nsresult (*GetProfileByName)(
28996         ICloudProvider *pThis,
28997         PRUnichar * profileName,
28998         ICloudProfile * * profile
28999     );
29000 
29001     nsresult (*PrepareUninstall)(ICloudProvider *pThis );
29002 
29003     nsresult (*InternalAndReservedMethod1ICloudProvider)(ICloudProvider *pThis);
29004 
29005     nsresult (*InternalAndReservedMethod2ICloudProvider)(ICloudProvider *pThis);
29006 
29007     nsresult (*InternalAndReservedMethod3ICloudProvider)(ICloudProvider *pThis);
29008 
29009     nsresult (*InternalAndReservedMethod4ICloudProvider)(ICloudProvider *pThis);
29010 
29011     nsresult (*InternalAndReservedMethod5ICloudProvider)(ICloudProvider *pThis);
29012 
29013     nsresult (*InternalAndReservedMethod6ICloudProvider)(ICloudProvider *pThis);
29014 
29015     nsresult (*InternalAndReservedMethod7ICloudProvider)(ICloudProvider *pThis);
29016 
29017     nsresult (*InternalAndReservedMethod8ICloudProvider)(ICloudProvider *pThis);
29018 
29019 };
29020 #    define ICloudProvider_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29021 #    define ICloudProvider_AddRef(p) ((p)->lpVtbl->AddRef(p))
29022 #    define ICloudProvider_Release(p) ((p)->lpVtbl->Release(p))
29023 #    define ICloudProvider_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
29024 #    define ICloudProvider_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
29025 #    define ICloudProvider_get_ShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
29026 #    define ICloudProvider_GetShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
29027 #    define ICloudProvider_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
29028 #    define ICloudProvider_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
29029 #    define ICloudProvider_get_Profiles(p, aProfiles) ((p)->lpVtbl->GetProfiles(p, aProfiles))
29030 #    define ICloudProvider_GetProfiles(p, aProfiles) ((p)->lpVtbl->GetProfiles(p, aProfiles))
29031 #    define ICloudProvider_get_ProfileNames(p, aProfileNames) ((p)->lpVtbl->GetProfileNames(p, aProfileNames))
29032 #    define ICloudProvider_GetProfileNames(p, aProfileNames) ((p)->lpVtbl->GetProfileNames(p, aProfileNames))
29033 #    define ICloudProvider_get_SupportedPropertyNames(p, aSupportedPropertyNames) ((p)->lpVtbl->GetSupportedPropertyNames(p, aSupportedPropertyNames))
29034 #    define ICloudProvider_GetSupportedPropertyNames(p, aSupportedPropertyNames) ((p)->lpVtbl->GetSupportedPropertyNames(p, aSupportedPropertyNames))
29035 #    define ICloudProvider_GetPropertyDescription(p, aName, aDescription) ((p)->lpVtbl->GetPropertyDescription(p, aName, aDescription))
29036 #    define ICloudProvider_CreateProfile(p, aProfileName, aNames, aValues) ((p)->lpVtbl->CreateProfile(p, aProfileName, aNames, aValues))
29037 #    define ICloudProvider_ImportProfiles(p) ((p)->lpVtbl->ImportProfiles(p))
29038 #    define ICloudProvider_RestoreProfiles(p) ((p)->lpVtbl->RestoreProfiles(p))
29039 #    define ICloudProvider_SaveProfiles(p) ((p)->lpVtbl->SaveProfiles(p))
29040 #    define ICloudProvider_GetProfileByName(p, aProfileName, aProfile) ((p)->lpVtbl->GetProfileByName(p, aProfileName, aProfile))
29041 #    define ICloudProvider_PrepareUninstall(p) ((p)->lpVtbl->PrepareUninstall(p))
29042 #   endif /* VBOX_WITH_GLUE */
29043 
29044 interface ICloudProvider
29045 {
29046 #   ifndef VBOX_WITH_GLUE
29047     struct ICloudProvider_vtbl *vtbl;
29048 #   else /* VBOX_WITH_GLUE */
29049     CONST_VTBL struct ICloudProviderVtbl *lpVtbl;
29050 #   endif /* VBOX_WITH_GLUE */
29051 };
29052 /* End of struct ICloudProvider declaration */
29053 
29054 
29055 /* Start of struct ICloudProviderManager declaration */
29056 #   define ICLOUDPROVIDERMANAGER_IID_STR "9128800f-762e-4120-871c-a2014234a607"
29057 #   define ICLOUDPROVIDERMANAGER_IID { \
29058     0x9128800f, 0x762e, 0x4120, \
29059     { 0x87, 0x1c, 0xa2, 0x01, 0x42, 0x34, 0xa6, 0x07 } \
29060 }
29061 /* COM compatibility */
29062 VBOX_EXTERN_CONST(nsIID, IID_ICloudProviderManager);
29063 #   ifndef VBOX_WITH_GLUE
29064 struct ICloudProviderManager_vtbl
29065 {
29066     struct nsISupports_vtbl nsisupports;
29067 
29068     nsresult (*GetProviders)(ICloudProviderManager *pThis, PRUint32 *providersSize, ICloudProvider * **providers);
29069 
29070     nsresult (*GetInternalAndReservedAttribute1ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29071 
29072     nsresult (*GetInternalAndReservedAttribute2ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29073 
29074     nsresult (*GetInternalAndReservedAttribute3ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29075 
29076     nsresult (*GetInternalAndReservedAttribute4ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29077 
29078     nsresult (*GetInternalAndReservedAttribute5ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29079 
29080     nsresult (*GetInternalAndReservedAttribute6ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29081 
29082     nsresult (*GetInternalAndReservedAttribute7ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29083 
29084     nsresult (*GetInternalAndReservedAttribute8ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29085 
29086     nsresult (*GetProviderById)(
29087         ICloudProviderManager *pThis,
29088         PRUnichar * providerId,
29089         ICloudProvider * * provider
29090     );
29091 
29092     nsresult (*GetProviderByShortName)(
29093         ICloudProviderManager *pThis,
29094         PRUnichar * providerName,
29095         ICloudProvider * * provider
29096     );
29097 
29098     nsresult (*GetProviderByName)(
29099         ICloudProviderManager *pThis,
29100         PRUnichar * providerName,
29101         ICloudProvider * * provider
29102     );
29103 
29104     nsresult (*InternalAndReservedMethod1ICloudProviderManager)(ICloudProviderManager *pThis);
29105 
29106     nsresult (*InternalAndReservedMethod2ICloudProviderManager)(ICloudProviderManager *pThis);
29107 
29108     nsresult (*InternalAndReservedMethod3ICloudProviderManager)(ICloudProviderManager *pThis);
29109 
29110     nsresult (*InternalAndReservedMethod4ICloudProviderManager)(ICloudProviderManager *pThis);
29111 
29112 };
29113 #   else /* VBOX_WITH_GLUE */
29114 struct ICloudProviderManagerVtbl
29115 {
29116     nsresult (*QueryInterface)(ICloudProviderManager *pThis, const nsID *iid, void **resultp);
29117     nsrefcnt (*AddRef)(ICloudProviderManager *pThis);
29118     nsrefcnt (*Release)(ICloudProviderManager *pThis);
29119     nsresult (*GetProviders)(ICloudProviderManager *pThis, PRUint32 *providersSize, ICloudProvider * **providers);
29120 
29121     nsresult (*GetInternalAndReservedAttribute1ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29122 
29123     nsresult (*GetInternalAndReservedAttribute2ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29124 
29125     nsresult (*GetInternalAndReservedAttribute3ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29126 
29127     nsresult (*GetInternalAndReservedAttribute4ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29128 
29129     nsresult (*GetInternalAndReservedAttribute5ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29130 
29131     nsresult (*GetInternalAndReservedAttribute6ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29132 
29133     nsresult (*GetInternalAndReservedAttribute7ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29134 
29135     nsresult (*GetInternalAndReservedAttribute8ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
29136 
29137     nsresult (*GetProviderById)(
29138         ICloudProviderManager *pThis,
29139         PRUnichar * providerId,
29140         ICloudProvider * * provider
29141     );
29142 
29143     nsresult (*GetProviderByShortName)(
29144         ICloudProviderManager *pThis,
29145         PRUnichar * providerName,
29146         ICloudProvider * * provider
29147     );
29148 
29149     nsresult (*GetProviderByName)(
29150         ICloudProviderManager *pThis,
29151         PRUnichar * providerName,
29152         ICloudProvider * * provider
29153     );
29154 
29155     nsresult (*InternalAndReservedMethod1ICloudProviderManager)(ICloudProviderManager *pThis);
29156 
29157     nsresult (*InternalAndReservedMethod2ICloudProviderManager)(ICloudProviderManager *pThis);
29158 
29159     nsresult (*InternalAndReservedMethod3ICloudProviderManager)(ICloudProviderManager *pThis);
29160 
29161     nsresult (*InternalAndReservedMethod4ICloudProviderManager)(ICloudProviderManager *pThis);
29162 
29163 };
29164 #    define ICloudProviderManager_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29165 #    define ICloudProviderManager_AddRef(p) ((p)->lpVtbl->AddRef(p))
29166 #    define ICloudProviderManager_Release(p) ((p)->lpVtbl->Release(p))
29167 #    define ICloudProviderManager_get_Providers(p, aProviders) ((p)->lpVtbl->GetProviders(p, aProviders))
29168 #    define ICloudProviderManager_GetProviders(p, aProviders) ((p)->lpVtbl->GetProviders(p, aProviders))
29169 #    define ICloudProviderManager_GetProviderById(p, aProviderId, aProvider) ((p)->lpVtbl->GetProviderById(p, aProviderId, aProvider))
29170 #    define ICloudProviderManager_GetProviderByShortName(p, aProviderName, aProvider) ((p)->lpVtbl->GetProviderByShortName(p, aProviderName, aProvider))
29171 #    define ICloudProviderManager_GetProviderByName(p, aProviderName, aProvider) ((p)->lpVtbl->GetProviderByName(p, aProviderName, aProvider))
29172 #   endif /* VBOX_WITH_GLUE */
29173 
29174 interface ICloudProviderManager
29175 {
29176 #   ifndef VBOX_WITH_GLUE
29177     struct ICloudProviderManager_vtbl *vtbl;
29178 #   else /* VBOX_WITH_GLUE */
29179     CONST_VTBL struct ICloudProviderManagerVtbl *lpVtbl;
29180 #   endif /* VBOX_WITH_GLUE */
29181 };
29182 /* End of struct ICloudProviderManager declaration */
29183 
29184 
29185 
29186 #   define NS_VIRTUALBOX_CID { \
29187     0xB1A7A4F2, 0x47B9, 0x4A1E, \
29188     { 0x82, 0xB2, 0x07, 0xCC, 0xD5, 0x32, 0x3C, 0x3F } \
29189 }
29190 #   define NS_VIRTUALBOX_CONTRACTID "@virtualbox.org/VirtualBox;1"
29191 /* COM compatibility */
29192 VBOX_EXTERN_CONST(nsCID, CLSID_VirtualBox);
29193 
29194 
29195 
29196 #   define NS_VIRTUALBOXCLIENT_CID { \
29197     0xdd3fc71d, 0x26c0, 0x4fe1, \
29198     { 0xbf, 0x6f, 0x67, 0xf6, 0x33, 0x26, 0x5b, 0xba } \
29199 }
29200 #   define NS_VIRTUALBOXCLIENT_CONTRACTID "@virtualbox.org/VirtualBoxClient;1"
29201 /* COM compatibility */
29202 VBOX_EXTERN_CONST(nsCID, CLSID_VirtualBoxClient);
29203 
29204 
29205 
29206 #   define NS_SESSION_CID { \
29207     0x3C02F46D, 0xC9D2, 0x4F11, \
29208     { 0xA3, 0x84, 0x53, 0xF0, 0xCF, 0x91, 0x72, 0x14 } \
29209 }
29210 #   define NS_SESSION_CONTRACTID "@virtualbox.org/Session;1"
29211 /* COM compatibility */
29212 VBOX_EXTERN_CONST(nsCID, CLSID_Session);
29213 
29214 
29215 
29216 
29217 #  endif /* __cplusplus */
29218 
29219 # endif /* !WIN32 */
29220 
29221 # ifdef __cplusplus
29222 extern "C"
29223 {
29224 # endif /* __cplusplus */
29225 
29226 
29227 /**
29228  * Function table for dynamic linking.
29229  * Use VBoxGetCAPIFunctions() to obtain the pointer to it.
29230  */
29231 typedef struct VBOXCAPI
29232 {
29233     /** The size of the structure. */
29234     unsigned cb;
29235     /** The structure version. */
29236     unsigned uVersion;
29237 
29238     /** Gets the VirtualBox version, major * 1000000 + minor * 1000 + patch. */
29239     unsigned int (*pfnGetVersion)(void);
29240 
29241     /** Gets the VirtualBox API version, major * 1000 + minor, e.g. 4003. */
29242     unsigned int (*pfnGetAPIVersion)(void);
29243 
29244     /**
29245      * New and preferred way to initialize the C bindings for an API client.
29246      *
29247      * This way is much more flexible, as it can easily handle multiple
29248      * sessions (important with more complicated API clients, including
29249      * multithreaded ones), and even VBoxSVC crashes can be detected and
29250      * processed appropriately by listening for events from the associated
29251      * event source in VirtualBoxClient. It is completely up to the client
29252      * to decide what to do (terminate or continue after getting new
29253      * object references to server-side objects). Must be called in the
29254      * primary thread of the client, later API use can be done in any
29255      * thread.
29256      *
29257      * Note that the returned reference is owned by the caller, and thus it's
29258      * the caller's responsibility to handle the reference count appropriately.
29259      *
29260      * @param pszVirtualBoxClientIID    pass IVIRTUALBOXCLIENT_IID_STR
29261      * @param ppVirtualBoxClient        output parameter for VirtualBoxClient
29262      *              reference, handled as usual with COM/XPCOM.
29263      * @returns COM/XPCOM error code
29264      */
29265     HRESULT (*pfnClientInitialize)(const char *pszVirtualBoxClientIID,
29266                                    IVirtualBoxClient **ppVirtualBoxClient);
29267     /**
29268      * Initialize the use of the C bindings in a non-primary thread.
29269      *
29270      * Must be called on any newly created thread which wants to use the
29271      * VirtualBox API.
29272      *
29273      * @returns COM/XPCOM error code
29274      */
29275     HRESULT (*pfnClientThreadInitialize)(void);
29276     /**
29277      * Uninitialize the use of the C bindings in a non-primary thread.
29278      *
29279      * Should be called before terminating the thread which initialized the
29280      * C bindings using pfnClientThreadInitialize.
29281      *
29282      * @returns COM/XPCOM error code
29283      */
29284     HRESULT (*pfnClientThreadUninitialize)(void);
29285     /**
29286      * Uninitialize the C bindings for an API client.
29287      *
29288      * Should be called when the API client is about to terminate and does
29289      * not want to use the C bindings any more. It will invalidate all
29290      * object references. It is possible, however, to change one's mind,
29291      * and call pfnClientInitialize again to continue using the API, as long
29292      * as none of the object references from before the re-initialization
29293      * are used. Must be called from the primary thread of the client.
29294      */
29295     void (*pfnClientUninitialize)(void);
29296 
29297     /**
29298      * Deprecated way to initialize the C bindings and getting important
29299      * object references. Kept for backwards compatibility.
29300      *
29301      * If any returned reference is NULL then the initialization failed.
29302      * Note that the returned references are owned by the C bindings. The
29303      * number of calls to Release in the client code must match the number
29304      * of calls to AddRef, and additionally at no point in time there can
29305      * be more Release calls than AddRef calls.
29306      *
29307      * @param pszVirtualBoxIID      pass IVIRTUALBOX_IID_STR
29308      * @param ppVirtualBox          output parameter for VirtualBox reference,
29309      *          owned by C bindings
29310      * @param pszSessionIID         pass ISESSION_IID_STR
29311      * @param ppSession             output parameter for Session reference,
29312      *          owned by C bindings
29313      */
29314     void (*pfnComInitialize)(const char *pszVirtualBoxIID,
29315                              IVirtualBox **ppVirtualBox,
29316                              const char *pszSessionIID,
29317                              ISession **ppSession);
29318     /**
29319      * Deprecated way to uninitialize the C bindings for an API client.
29320      * Kept for backwards compatibility and must be used if the C bindings
29321      * were initialized using pfnComInitialize. */
29322     void (*pfnComUninitialize)(void);
29323 
29324     /**
29325      * Free string managed by COM/XPCOM.
29326      *
29327      * @param pwsz          pointer to string to be freed
29328      */
29329     void (*pfnComUnallocString)(BSTR pwsz);
29330 # ifndef WIN32
29331     /** Legacy function, was always for freeing strings only. */
29332 #  define pfnComUnallocMem(pv) pfnComUnallocString((BSTR)(pv))
29333 # endif /* !WIN32 */
29334 
29335     /**
29336      * Convert string from UTF-16 encoding to UTF-8 encoding.
29337      *
29338      * @param pwszString    input string
29339      * @param ppszString    output string
29340      * @returns IPRT status code
29341      */
29342     int (*pfnUtf16ToUtf8)(CBSTR pwszString, char **ppszString);
29343     /**
29344      * Convert string from UTF-8 encoding to UTF-16 encoding.
29345      *
29346      * @param pszString     input string
29347      * @param ppwszString   output string
29348      * @returns IPRT status code
29349      */
29350     int (*pfnUtf8ToUtf16)(const char *pszString, BSTR *ppwszString);
29351     /**
29352      * Free memory returned by pfnUtf16ToUtf8. Do not use for anything else.
29353      *
29354      * @param pszString     string to be freed.
29355      */
29356     void (*pfnUtf8Free)(char *pszString);
29357     /**
29358      * Free memory returned by pfnUtf8ToUtf16. Do not use for anything else.
29359      *
29360      * @param pwszString    string to be freed.
29361      */
29362     void (*pfnUtf16Free)(BSTR pwszString);
29363 
29364     /**
29365      * Create a safearray (used for passing arrays to COM/XPCOM)
29366      *
29367      * Must be freed by pfnSafeArrayDestroy.
29368      *
29369      * @param vt            variant type, defines the size of the elements
29370      * @param lLbound       lower bound of the index, should be 0
29371      * @param cElements     number of elements
29372      * @returns pointer to safearray
29373      */
29374     SAFEARRAY *(*pfnSafeArrayCreateVector)(VARTYPE vt, LONG lLbound, ULONG cElements);
29375     /**
29376      * Pre-allocate a safearray to be used by an out safearray parameter
29377      *
29378      * Must be freed by pfnSafeArrayDestroy.
29379      *
29380      * @returns pointer to safearray (system dependent, may be NULL if
29381      *    there is no need to pre-allocate a safearray)
29382      */
29383     SAFEARRAY *(*pfnSafeArrayOutParamAlloc)(void);
29384     /**
29385      * Copy a C array into a safearray (for passing as an input parameter)
29386      *
29387      * @param psa           pointer to already created safearray.
29388      * @param pv            pointer to memory block to copy into safearray.
29389      * @param cb            number of bytes to copy.
29390      * @returns COM/XPCOM error code
29391      */
29392     HRESULT (*pfnSafeArrayCopyInParamHelper)(SAFEARRAY *psa, const void *pv, ULONG cb);
29393     /**
29394      * Copy a safearray into a C array (for getting an output parameter)
29395      *
29396      * @param ppv           output pointer to newly created array, which has to
29397      *          be freed with pfnArrayOutFree.
29398      * @param pcb           number of bytes in the output buffer.
29399      * @param vt            variant type, defines the size of the elements
29400      * @param psa           pointer to safearray for getting the data
29401      * @returns COM/XPCOM error code
29402      */
29403     HRESULT (*pfnSafeArrayCopyOutParamHelper)(void **ppv, ULONG *pcb, VARTYPE vt, SAFEARRAY *psa);
29404     /**
29405      * Copy a safearray into a C array (special variant for interface pointers)
29406      *
29407      * @param ppaObj        output pointer to newly created array, which has
29408      *          to be freed with pfnArrayOutFree. Note that it's the caller's
29409      *          responsibility to call Release() on each non-NULL interface
29410      *          pointer before freeing.
29411      * @param pcObj         number of pointers in the output buffer.
29412      * @param psa           pointer to safearray for getting the data
29413      * @returns COM/XPCOM error code
29414      */
29415     HRESULT (*pfnSafeArrayCopyOutIfaceParamHelper)(IUnknown ***ppaObj, ULONG *pcObj, SAFEARRAY *psa);
29416     /**
29417      * Free a safearray
29418      *
29419      * @param psa           pointer to safearray
29420      * @returns COM/XPCOM error code
29421      */
29422     HRESULT (*pfnSafeArrayDestroy)(SAFEARRAY *psa);
29423     /**
29424      * Free an out array created by pfnSafeArrayCopyOutParamHelper or
29425      * pdnSafeArrayCopyOutIfaceParamHelper.
29426      *
29427      * @param psa           pointer to memory block
29428      * @returns COM/XPCOM error code
29429      */
29430     HRESULT (*pfnArrayOutFree)(void *pv);
29431 
29432 # ifndef WIN32
29433     /**
29434      * Get XPCOM event queue. Deprecated!
29435      *
29436      * @param ppEventQueue      output parameter for nsIEventQueue reference,
29437      *              owned by C bindings.
29438      */
29439     void (*pfnGetEventQueue)(nsIEventQueue **ppEventQueue);
29440 # endif /* !WIN32 */
29441 
29442     /**
29443      * Get current COM/XPCOM exception.
29444      *
29445      * @param ppException       output parameter for exception info reference,
29446      *              may be @c NULL if no exception object has been created by
29447      *              a previous COM/XPCOM call.
29448      * @returns COM/XPCOM error code
29449      */
29450     HRESULT (*pfnGetException)(IErrorInfo **ppException);
29451     /**
29452      * Clears current COM/XPCOM exception.
29453      *
29454      * @returns COM/XPCOM error code
29455      */
29456     HRESULT (*pfnClearException)(void);
29457 
29458     /**
29459      * Process the event queue for a given amount of time.
29460      *
29461      * Must be called on the primary thread. Typical timeouts are from 200 to
29462      * 5000 msecs, to allow for checking a volatile variable if the event queue
29463      * processing should be terminated (,
29464      * or 0 if only the pending events should be processed, without waiting.
29465      *
29466      * @param iTimeoutMS        how long to process the event queue, -1 means
29467      *              infinitely long
29468      * @returns status code
29469      * @retval 0 if at least one event has been processed
29470      * @retval 1 if any signal interrupted the native system call (or returned
29471      *      otherwise)
29472      * @retval 2 if the event queue was explicitly interrupted
29473      * @retval 3 if the timeout expired
29474      * @retval 4 if the function was called from the wrong thread
29475      * @retval 5 for all other (unexpected) errors
29476      */
29477     int (*pfnProcessEventQueue)(LONG64 iTimeoutMS);
29478     /**
29479      * Interrupt event queue processing.
29480      *
29481      * Can be called on any thread. Note that this function is not async-signal
29482      * safe, so never use it in such a context, instead use a volatile global
29483      * variable and a sensible timeout.
29484      * @returns 0 if successful, 1 otherwise.
29485      */
29486     int (*pfnInterruptEventQueueProcessing)(void);
29487 
29488     /**
29489      * Clear memory used by a UTF-8 string. Must be zero terminated.
29490      * Can be used for any UTF-8 or ASCII/ANSI string.
29491      *
29492      * @param pszString     input/output string
29493      */
29494     void (*pfnUtf8Clear)(char *pszString);
29495     /**
29496      * Clear memory used by a UTF-16 string. Must be zero terminated.
29497      * Can be used for any UTF-16 or UCS-2 string.
29498      *
29499      * @param pwszString    input/output string
29500      */
29501      void (*pfnUtf16Clear)(BSTR pwszString);
29502 
29503     /** Tail version, same as uVersion.
29504      *
29505      * This should only be accessed if for some reason an API client needs
29506      * exactly the version it requested, or if cb is used to calculate the
29507      * address of this field. It may move as the structure before this is
29508      * allowed to grow as long as all the data from earlier minor versions
29509      * remains at the same place.
29510      */
29511     unsigned uEndVersion;
29512 } VBOXCAPI;
29513 /** Pointer to a const VBOXCAPI function table. */
29514 typedef VBOXCAPI const *PCVBOXCAPI;
29515 # ifndef WIN32
29516 /** Backwards compatibility: Pointer to a const VBOXCAPI function table.
29517  * Use PCVBOXCAPI instead. */
29518 typedef VBOXCAPI const *PCVBOXXPCOM;
29519 # endif /* !WIN32 */
29520 
29521 # ifndef WIN32
29522 /** Backwards compatibility: make sure old code using VBOXXPCOMC still compiles.
29523  * Use VBOXCAPI instead. */
29524 #  define VBOXXPCOMC VBOXCAPI
29525 # endif /* !WIN32 */
29526 
29527 /** Extract the C API style major version.
29528  * Useful for comparing the interface version in VBOXCAPI::uVersion. */
29529 # define VBOX_CAPI_MAJOR(x) (((x) & 0xffff0000U) >> 16)
29530 
29531 /** Extract the C API style major version.
29532  * Useful for comparing the interface version in VBOXCAPI::uVersion. */
29533 # define VBOX_CAPI_MINOR(x) ((x) & 0x0000ffffU)
29534 
29535 /** The current interface version.
29536  * For use with VBoxGetCAPIFunctions and to be found in VBOXCAPI::uVersion. */
29537 # define VBOX_CAPI_VERSION 0x00040001U
29538 
29539 # ifndef WIN32
29540 /** Backwards compatibility: The current interface version.
29541  * Use VBOX_CAPI_VERSION instead. */
29542 #  define VBOX_XPCOMC_VERSION VBOX_CAPI_VERSION
29543 # endif /* !WIN32 */
29544 
29545 /** VBoxGetCAPIFunctions. */
29546 VBOXCAPI_DECL(PCVBOXCAPI) VBoxGetCAPIFunctions(unsigned uVersion);
29547 # ifndef WIN32
29548 /** Backwards compatibility: VBoxGetXPCOMCFunctions.
29549  * Use VBoxGetCAPIFunctions instead. */
29550 VBOXCAPI_DECL(PCVBOXCAPI) VBoxGetXPCOMCFunctions(unsigned uVersion);
29551 # endif /* !WIN32 */
29552 
29553 /** Typedef for VBoxGetCAPIFunctions. */
29554 typedef PCVBOXCAPI (*PFNVBOXGETCAPIFUNCTIONS)(unsigned uVersion);
29555 # ifndef WIN32
29556 /** Backwards compatibility: Typedef for VBoxGetXPCOMCFunctions.
29557  * Use PFNVBOXGETCAPIFUNCTIONS instead. */
29558 typedef PCVBOXCAPI (*PFNVBOXGETXPCOMCFUNCTIONS)(unsigned uVersion);
29559 # endif /* !WIN32 */
29560 
29561 /** The symbol name of VBoxGetCAPIFunctions. */
29562 # ifdef __OS2__
29563 #  define VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME "_VBoxGetCAPIFunctions"
29564 # else /* !__OS2__ */
29565 #  define VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME "VBoxGetCAPIFunctions"
29566 # endif /* !__OS2__ */
29567 # ifndef WIN32
29568 /** Backwards compatibility: The symbol name of VBoxGetXPCOMCFunctions.
29569  * Use VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME instead. */
29570 #  ifdef __OS2__
29571 #   define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "_VBoxGetXPCOMCFunctions"
29572 #  else /* !__OS2__ */
29573 #   define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "VBoxGetXPCOMCFunctions"
29574 #  endif /* !__OS2__ */
29575 # endif /* !WIN32 */
29576 
29577 
29578 # ifdef __cplusplus
29579 }
29580 # endif /* __cplusplus */
29581 
29582 #endif /* !___VirtualBox_CXPCOM_h */
29583