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 
1184 
1185 interface IVirtualBoxErrorInfo;
1186 interface INATNetwork;
1187 interface IDHCPServer;
1188 interface IVirtualBox;
1189 interface IVFSExplorer;
1190 interface ICertificate;
1191 interface IAppliance;
1192 interface IVirtualSystemDescription;
1193 interface IUnattended;
1194 interface IBIOSSettings;
1195 interface IPCIAddress;
1196 interface IPCIDeviceAttachment;
1197 interface IMachine;
1198 interface IEmulatedUSB;
1199 interface IVRDEServerInfo;
1200 interface IConsole;
1201 interface IHostNetworkInterface;
1202 interface IHostVideoInputDevice;
1203 interface IHost;
1204 interface ISystemProperties;
1205 interface IGuestOSType;
1206 interface IAdditionsFacility;
1207 interface IDnDBase;
1208 interface IDnDSource;
1209 interface IGuestDnDSource;
1210 interface IDnDTarget;
1211 interface IGuestDnDTarget;
1212 interface IGuestSession;
1213 interface IProcess;
1214 interface IGuestProcess;
1215 interface IDirectory;
1216 interface IGuestDirectory;
1217 interface IFile;
1218 interface IGuestFile;
1219 interface IFsObjInfo;
1220 interface IGuestFsObjInfo;
1221 interface IGuest;
1222 interface IProgress;
1223 interface ISnapshot;
1224 interface IMediumAttachment;
1225 interface IMedium;
1226 interface IMediumFormat;
1227 interface IToken;
1228 interface IKeyboard;
1229 interface IMousePointerShape;
1230 interface IMouse;
1231 interface IDisplaySourceBitmap;
1232 interface IFramebuffer;
1233 interface IFramebufferOverlay;
1234 interface IGuestScreenInfo;
1235 interface IDisplay;
1236 interface INetworkAdapter;
1237 interface ISerialPort;
1238 interface IParallelPort;
1239 interface IMachineDebugger;
1240 interface IUSBDeviceFilters;
1241 interface IUSBController;
1242 interface IUSBDevice;
1243 interface IUSBDeviceFilter;
1244 interface IHostUSBDevice;
1245 interface IHostUSBDeviceFilter;
1246 interface IUSBProxyBackend;
1247 interface IAudioAdapter;
1248 interface IVRDEServer;
1249 interface ISharedFolder;
1250 interface ISession;
1251 interface IStorageController;
1252 interface IPerformanceMetric;
1253 interface IPerformanceCollector;
1254 interface INATEngine;
1255 interface IExtPackPlugIn;
1256 interface IExtPackBase;
1257 interface IExtPack;
1258 interface IExtPackFile;
1259 interface IExtPackManager;
1260 interface IBandwidthGroup;
1261 interface IBandwidthControl;
1262 interface IVirtualBoxClient;
1263 interface IEventSource;
1264 interface IEventListener;
1265 interface IEvent;
1266 interface IReusableEvent;
1267 interface IMachineEvent;
1268 interface IMachineStateChangedEvent;
1269 interface IMachineDataChangedEvent;
1270 interface IMediumRegisteredEvent;
1271 interface IMediumConfigChangedEvent;
1272 interface IMachineRegisteredEvent;
1273 interface ISessionStateChangedEvent;
1274 interface IGuestPropertyChangedEvent;
1275 interface ISnapshotEvent;
1276 interface ISnapshotTakenEvent;
1277 interface ISnapshotDeletedEvent;
1278 interface ISnapshotRestoredEvent;
1279 interface ISnapshotChangedEvent;
1280 interface IMousePointerShapeChangedEvent;
1281 interface IMouseCapabilityChangedEvent;
1282 interface IKeyboardLedsChangedEvent;
1283 interface IStateChangedEvent;
1284 interface IAdditionsStateChangedEvent;
1285 interface INetworkAdapterChangedEvent;
1286 interface IAudioAdapterChangedEvent;
1287 interface ISerialPortChangedEvent;
1288 interface IParallelPortChangedEvent;
1289 interface IStorageControllerChangedEvent;
1290 interface IMediumChangedEvent;
1291 interface IClipboardModeChangedEvent;
1292 interface IDnDModeChangedEvent;
1293 interface ICPUChangedEvent;
1294 interface ICPUExecutionCapChangedEvent;
1295 interface IGuestKeyboardEvent;
1296 interface IGuestMouseEvent;
1297 interface IGuestMultiTouchEvent;
1298 interface IGuestSessionEvent;
1299 interface IGuestSessionStateChangedEvent;
1300 interface IGuestSessionRegisteredEvent;
1301 interface IGuestProcessEvent;
1302 interface IGuestProcessRegisteredEvent;
1303 interface IGuestProcessStateChangedEvent;
1304 interface IGuestProcessIOEvent;
1305 interface IGuestProcessInputNotifyEvent;
1306 interface IGuestProcessOutputEvent;
1307 interface IGuestFileEvent;
1308 interface IGuestFileRegisteredEvent;
1309 interface IGuestFileStateChangedEvent;
1310 interface IGuestFileIOEvent;
1311 interface IGuestFileOffsetChangedEvent;
1312 interface IGuestFileReadEvent;
1313 interface IGuestFileWriteEvent;
1314 interface IVRDEServerChangedEvent;
1315 interface IVRDEServerInfoChangedEvent;
1316 interface IVideoCaptureChangedEvent;
1317 interface IUSBControllerChangedEvent;
1318 interface IUSBDeviceStateChangedEvent;
1319 interface ISharedFolderChangedEvent;
1320 interface IRuntimeErrorEvent;
1321 interface IEventSourceChangedEvent;
1322 interface IExtraDataChangedEvent;
1323 interface IVetoEvent;
1324 interface IExtraDataCanChangeEvent;
1325 interface ICanShowWindowEvent;
1326 interface IShowWindowEvent;
1327 interface INATRedirectEvent;
1328 interface IHostPCIDevicePlugEvent;
1329 interface IVBoxSVCAvailabilityChangedEvent;
1330 interface IBandwidthGroupChangedEvent;
1331 interface IGuestMonitorChangedEvent;
1332 interface IGuestUserStateChangedEvent;
1333 interface IStorageDeviceChangedEvent;
1334 interface INATNetworkChangedEvent;
1335 interface INATNetworkStartStopEvent;
1336 interface INATNetworkAlterEvent;
1337 interface INATNetworkCreationDeletionEvent;
1338 interface INATNetworkSettingEvent;
1339 interface INATNetworkPortForwardEvent;
1340 interface IHostNameResolutionConfigurationChangeEvent;
1341 interface IProgressEvent;
1342 interface IProgressPercentageChangedEvent;
1343 interface IProgressTaskCompletedEvent;
1344 
1345 typedef interface IVirtualBoxErrorInfo IVirtualBoxErrorInfo;
1346 typedef interface INATNetwork INATNetwork;
1347 typedef interface IDHCPServer IDHCPServer;
1348 typedef interface IVirtualBox IVirtualBox;
1349 typedef interface IVFSExplorer IVFSExplorer;
1350 typedef interface ICertificate ICertificate;
1351 typedef interface IAppliance IAppliance;
1352 typedef interface IVirtualSystemDescription IVirtualSystemDescription;
1353 typedef interface IUnattended IUnattended;
1354 typedef interface IBIOSSettings IBIOSSettings;
1355 typedef interface IPCIAddress IPCIAddress;
1356 typedef interface IPCIDeviceAttachment IPCIDeviceAttachment;
1357 typedef interface IMachine IMachine;
1358 typedef interface IEmulatedUSB IEmulatedUSB;
1359 typedef interface IVRDEServerInfo IVRDEServerInfo;
1360 typedef interface IConsole IConsole;
1361 typedef interface IHostNetworkInterface IHostNetworkInterface;
1362 typedef interface IHostVideoInputDevice IHostVideoInputDevice;
1363 typedef interface IHost IHost;
1364 typedef interface ISystemProperties ISystemProperties;
1365 typedef interface IGuestOSType IGuestOSType;
1366 typedef interface IAdditionsFacility IAdditionsFacility;
1367 typedef interface IDnDBase IDnDBase;
1368 typedef interface IDnDSource IDnDSource;
1369 typedef interface IGuestDnDSource IGuestDnDSource;
1370 typedef interface IDnDTarget IDnDTarget;
1371 typedef interface IGuestDnDTarget IGuestDnDTarget;
1372 typedef interface IGuestSession IGuestSession;
1373 typedef interface IProcess IProcess;
1374 typedef interface IGuestProcess IGuestProcess;
1375 typedef interface IDirectory IDirectory;
1376 typedef interface IGuestDirectory IGuestDirectory;
1377 typedef interface IFile IFile;
1378 typedef interface IGuestFile IGuestFile;
1379 typedef interface IFsObjInfo IFsObjInfo;
1380 typedef interface IGuestFsObjInfo IGuestFsObjInfo;
1381 typedef interface IGuest IGuest;
1382 typedef interface IProgress IProgress;
1383 typedef interface ISnapshot ISnapshot;
1384 typedef interface IMediumAttachment IMediumAttachment;
1385 typedef interface IMedium IMedium;
1386 typedef interface IMediumFormat IMediumFormat;
1387 typedef interface IToken IToken;
1388 typedef interface IKeyboard IKeyboard;
1389 typedef interface IMousePointerShape IMousePointerShape;
1390 typedef interface IMouse IMouse;
1391 typedef interface IDisplaySourceBitmap IDisplaySourceBitmap;
1392 typedef interface IFramebuffer IFramebuffer;
1393 typedef interface IFramebufferOverlay IFramebufferOverlay;
1394 typedef interface IGuestScreenInfo IGuestScreenInfo;
1395 typedef interface IDisplay IDisplay;
1396 typedef interface INetworkAdapter INetworkAdapter;
1397 typedef interface ISerialPort ISerialPort;
1398 typedef interface IParallelPort IParallelPort;
1399 typedef interface IMachineDebugger IMachineDebugger;
1400 typedef interface IUSBDeviceFilters IUSBDeviceFilters;
1401 typedef interface IUSBController IUSBController;
1402 typedef interface IUSBDevice IUSBDevice;
1403 typedef interface IUSBDeviceFilter IUSBDeviceFilter;
1404 typedef interface IHostUSBDevice IHostUSBDevice;
1405 typedef interface IHostUSBDeviceFilter IHostUSBDeviceFilter;
1406 typedef interface IUSBProxyBackend IUSBProxyBackend;
1407 typedef interface IAudioAdapter IAudioAdapter;
1408 typedef interface IVRDEServer IVRDEServer;
1409 typedef interface ISharedFolder ISharedFolder;
1410 typedef interface ISession ISession;
1411 typedef interface IStorageController IStorageController;
1412 typedef interface IPerformanceMetric IPerformanceMetric;
1413 typedef interface IPerformanceCollector IPerformanceCollector;
1414 typedef interface INATEngine INATEngine;
1415 typedef interface IExtPackPlugIn IExtPackPlugIn;
1416 typedef interface IExtPackBase IExtPackBase;
1417 typedef interface IExtPack IExtPack;
1418 typedef interface IExtPackFile IExtPackFile;
1419 typedef interface IExtPackManager IExtPackManager;
1420 typedef interface IBandwidthGroup IBandwidthGroup;
1421 typedef interface IBandwidthControl IBandwidthControl;
1422 typedef interface IVirtualBoxClient IVirtualBoxClient;
1423 typedef interface IEventSource IEventSource;
1424 typedef interface IEventListener IEventListener;
1425 typedef interface IEvent IEvent;
1426 typedef interface IReusableEvent IReusableEvent;
1427 typedef interface IMachineEvent IMachineEvent;
1428 typedef interface IMachineStateChangedEvent IMachineStateChangedEvent;
1429 typedef interface IMachineDataChangedEvent IMachineDataChangedEvent;
1430 typedef interface IMediumRegisteredEvent IMediumRegisteredEvent;
1431 typedef interface IMediumConfigChangedEvent IMediumConfigChangedEvent;
1432 typedef interface IMachineRegisteredEvent IMachineRegisteredEvent;
1433 typedef interface ISessionStateChangedEvent ISessionStateChangedEvent;
1434 typedef interface IGuestPropertyChangedEvent IGuestPropertyChangedEvent;
1435 typedef interface ISnapshotEvent ISnapshotEvent;
1436 typedef interface ISnapshotTakenEvent ISnapshotTakenEvent;
1437 typedef interface ISnapshotDeletedEvent ISnapshotDeletedEvent;
1438 typedef interface ISnapshotRestoredEvent ISnapshotRestoredEvent;
1439 typedef interface ISnapshotChangedEvent ISnapshotChangedEvent;
1440 typedef interface IMousePointerShapeChangedEvent IMousePointerShapeChangedEvent;
1441 typedef interface IMouseCapabilityChangedEvent IMouseCapabilityChangedEvent;
1442 typedef interface IKeyboardLedsChangedEvent IKeyboardLedsChangedEvent;
1443 typedef interface IStateChangedEvent IStateChangedEvent;
1444 typedef interface IAdditionsStateChangedEvent IAdditionsStateChangedEvent;
1445 typedef interface INetworkAdapterChangedEvent INetworkAdapterChangedEvent;
1446 typedef interface IAudioAdapterChangedEvent IAudioAdapterChangedEvent;
1447 typedef interface ISerialPortChangedEvent ISerialPortChangedEvent;
1448 typedef interface IParallelPortChangedEvent IParallelPortChangedEvent;
1449 typedef interface IStorageControllerChangedEvent IStorageControllerChangedEvent;
1450 typedef interface IMediumChangedEvent IMediumChangedEvent;
1451 typedef interface IClipboardModeChangedEvent IClipboardModeChangedEvent;
1452 typedef interface IDnDModeChangedEvent IDnDModeChangedEvent;
1453 typedef interface ICPUChangedEvent ICPUChangedEvent;
1454 typedef interface ICPUExecutionCapChangedEvent ICPUExecutionCapChangedEvent;
1455 typedef interface IGuestKeyboardEvent IGuestKeyboardEvent;
1456 typedef interface IGuestMouseEvent IGuestMouseEvent;
1457 typedef interface IGuestMultiTouchEvent IGuestMultiTouchEvent;
1458 typedef interface IGuestSessionEvent IGuestSessionEvent;
1459 typedef interface IGuestSessionStateChangedEvent IGuestSessionStateChangedEvent;
1460 typedef interface IGuestSessionRegisteredEvent IGuestSessionRegisteredEvent;
1461 typedef interface IGuestProcessEvent IGuestProcessEvent;
1462 typedef interface IGuestProcessRegisteredEvent IGuestProcessRegisteredEvent;
1463 typedef interface IGuestProcessStateChangedEvent IGuestProcessStateChangedEvent;
1464 typedef interface IGuestProcessIOEvent IGuestProcessIOEvent;
1465 typedef interface IGuestProcessInputNotifyEvent IGuestProcessInputNotifyEvent;
1466 typedef interface IGuestProcessOutputEvent IGuestProcessOutputEvent;
1467 typedef interface IGuestFileEvent IGuestFileEvent;
1468 typedef interface IGuestFileRegisteredEvent IGuestFileRegisteredEvent;
1469 typedef interface IGuestFileStateChangedEvent IGuestFileStateChangedEvent;
1470 typedef interface IGuestFileIOEvent IGuestFileIOEvent;
1471 typedef interface IGuestFileOffsetChangedEvent IGuestFileOffsetChangedEvent;
1472 typedef interface IGuestFileReadEvent IGuestFileReadEvent;
1473 typedef interface IGuestFileWriteEvent IGuestFileWriteEvent;
1474 typedef interface IVRDEServerChangedEvent IVRDEServerChangedEvent;
1475 typedef interface IVRDEServerInfoChangedEvent IVRDEServerInfoChangedEvent;
1476 typedef interface IVideoCaptureChangedEvent IVideoCaptureChangedEvent;
1477 typedef interface IUSBControllerChangedEvent IUSBControllerChangedEvent;
1478 typedef interface IUSBDeviceStateChangedEvent IUSBDeviceStateChangedEvent;
1479 typedef interface ISharedFolderChangedEvent ISharedFolderChangedEvent;
1480 typedef interface IRuntimeErrorEvent IRuntimeErrorEvent;
1481 typedef interface IEventSourceChangedEvent IEventSourceChangedEvent;
1482 typedef interface IExtraDataChangedEvent IExtraDataChangedEvent;
1483 typedef interface IVetoEvent IVetoEvent;
1484 typedef interface IExtraDataCanChangeEvent IExtraDataCanChangeEvent;
1485 typedef interface ICanShowWindowEvent ICanShowWindowEvent;
1486 typedef interface IShowWindowEvent IShowWindowEvent;
1487 typedef interface INATRedirectEvent INATRedirectEvent;
1488 typedef interface IHostPCIDevicePlugEvent IHostPCIDevicePlugEvent;
1489 typedef interface IVBoxSVCAvailabilityChangedEvent IVBoxSVCAvailabilityChangedEvent;
1490 typedef interface IBandwidthGroupChangedEvent IBandwidthGroupChangedEvent;
1491 typedef interface IGuestMonitorChangedEvent IGuestMonitorChangedEvent;
1492 typedef interface IGuestUserStateChangedEvent IGuestUserStateChangedEvent;
1493 typedef interface IStorageDeviceChangedEvent IStorageDeviceChangedEvent;
1494 typedef interface INATNetworkChangedEvent INATNetworkChangedEvent;
1495 typedef interface INATNetworkStartStopEvent INATNetworkStartStopEvent;
1496 typedef interface INATNetworkAlterEvent INATNetworkAlterEvent;
1497 typedef interface INATNetworkCreationDeletionEvent INATNetworkCreationDeletionEvent;
1498 typedef interface INATNetworkSettingEvent INATNetworkSettingEvent;
1499 typedef interface INATNetworkPortForwardEvent INATNetworkPortForwardEvent;
1500 typedef interface IHostNameResolutionConfigurationChangeEvent IHostNameResolutionConfigurationChangeEvent;
1501 typedef interface IProgressEvent IProgressEvent;
1502 typedef interface IProgressPercentageChangedEvent IProgressPercentageChangedEvent;
1503 typedef interface IProgressTaskCompletedEvent IProgressTaskCompletedEvent;
1504 typedef interface IVirtualBoxSDS IVirtualBoxSDS;
1505 
1506 /* Start of enum SettingsVersion declaration */
1507 #   define SETTINGSVERSION_IID_STR "b4cc23c2-96f2-419d-830b-bd13c1135dfb"
1508 #   define SETTINGSVERSION_IID { \
1509     0xb4cc23c2, 0x96f2, 0x419d, \
1510     { 0x83, 0x0b, 0xbd, 0x13, 0xc1, 0x13, 0x5d, 0xfb } \
1511 }
1512 typedef enum SettingsVersion
1513 {
1514     SettingsVersion_Null = 0,
1515     SettingsVersion_v1_0 = 1,
1516     SettingsVersion_v1_1 = 2,
1517     SettingsVersion_v1_2 = 3,
1518     SettingsVersion_v1_3pre = 4,
1519     SettingsVersion_v1_3 = 5,
1520     SettingsVersion_v1_4 = 6,
1521     SettingsVersion_v1_5 = 7,
1522     SettingsVersion_v1_6 = 8,
1523     SettingsVersion_v1_7 = 9,
1524     SettingsVersion_v1_8 = 10,
1525     SettingsVersion_v1_9 = 11,
1526     SettingsVersion_v1_10 = 12,
1527     SettingsVersion_v1_11 = 13,
1528     SettingsVersion_v1_12 = 14,
1529     SettingsVersion_v1_13 = 15,
1530     SettingsVersion_v1_14 = 16,
1531     SettingsVersion_v1_15 = 17,
1532     SettingsVersion_v1_16 = 18,
1533     SettingsVersion_v1_17 = 19,
1534     SettingsVersion_Future = 99999
1535 } SettingsVersion;
1536 /* End of enum SettingsVersion declaration */
1537 #   define SettingsVersion_T PRUint32
1538 
1539 
1540 /* Start of enum AccessMode declaration */
1541 #   define ACCESSMODE_IID_STR "1da0007c-ddf7-4be8-bcac-d84a1558785f"
1542 #   define ACCESSMODE_IID { \
1543     0x1da0007c, 0xddf7, 0x4be8, \
1544     { 0xbc, 0xac, 0xd8, 0x4a, 0x15, 0x58, 0x78, 0x5f } \
1545 }
1546 typedef enum AccessMode
1547 {
1548     AccessMode_ReadOnly = 1,
1549     AccessMode_ReadWrite = 2
1550 } AccessMode;
1551 /* End of enum AccessMode declaration */
1552 #   define AccessMode_T PRUint32
1553 
1554 
1555 /* Start of enum MachineState declaration */
1556 #   define MACHINESTATE_IID_STR "87f085c3-ca67-4e45-9225-6057f32e9e8e"
1557 #   define MACHINESTATE_IID { \
1558     0x87f085c3, 0xca67, 0x4e45, \
1559     { 0x92, 0x25, 0x60, 0x57, 0xf3, 0x2e, 0x9e, 0x8e } \
1560 }
1561 typedef enum MachineState
1562 {
1563     MachineState_Null = 0,
1564     MachineState_PoweredOff = 1,
1565     MachineState_Saved = 2,
1566     MachineState_Teleported = 3,
1567     MachineState_Aborted = 4,
1568     MachineState_Running = 5,
1569     MachineState_Paused = 6,
1570     MachineState_Stuck = 7,
1571     MachineState_Teleporting = 8,
1572     MachineState_LiveSnapshotting = 9,
1573     MachineState_Starting = 10,
1574     MachineState_Stopping = 11,
1575     MachineState_Saving = 12,
1576     MachineState_Restoring = 13,
1577     MachineState_TeleportingPausedVM = 14,
1578     MachineState_TeleportingIn = 15,
1579     MachineState_FaultTolerantSyncing = 16,
1580     MachineState_DeletingSnapshotOnline = 17,
1581     MachineState_DeletingSnapshotPaused = 18,
1582     MachineState_OnlineSnapshotting = 19,
1583     MachineState_RestoringSnapshot = 20,
1584     MachineState_DeletingSnapshot = 21,
1585     MachineState_SettingUp = 22,
1586     MachineState_Snapshotting = 23,
1587     MachineState_FirstOnline = 5,
1588     MachineState_LastOnline = 19,
1589     MachineState_FirstTransient = 8,
1590     MachineState_LastTransient = 23
1591 } MachineState;
1592 /* End of enum MachineState declaration */
1593 #   define MachineState_T PRUint32
1594 
1595 
1596 /* Start of enum SessionState declaration */
1597 #   define SESSIONSTATE_IID_STR "cf2700c0-ea4b-47ae-9725-7810114b94d8"
1598 #   define SESSIONSTATE_IID { \
1599     0xcf2700c0, 0xea4b, 0x47ae, \
1600     { 0x97, 0x25, 0x78, 0x10, 0x11, 0x4b, 0x94, 0xd8 } \
1601 }
1602 typedef enum SessionState
1603 {
1604     SessionState_Null = 0,
1605     SessionState_Unlocked = 1,
1606     SessionState_Locked = 2,
1607     SessionState_Spawning = 3,
1608     SessionState_Unlocking = 4
1609 } SessionState;
1610 /* End of enum SessionState declaration */
1611 #   define SessionState_T PRUint32
1612 
1613 
1614 /* Start of enum CPUPropertyType declaration */
1615 #   define CPUPROPERTYTYPE_IID_STR "cc6ecdad-a07c-4e81-9c0e-d767e0678d5a"
1616 #   define CPUPROPERTYTYPE_IID { \
1617     0xcc6ecdad, 0xa07c, 0x4e81, \
1618     { 0x9c, 0x0e, 0xd7, 0x67, 0xe0, 0x67, 0x8d, 0x5a } \
1619 }
1620 typedef enum CPUPropertyType
1621 {
1622     CPUPropertyType_Null = 0,
1623     CPUPropertyType_PAE = 1,
1624     CPUPropertyType_LongMode = 2,
1625     CPUPropertyType_TripleFaultReset = 3,
1626     CPUPropertyType_APIC = 4,
1627     CPUPropertyType_X2APIC = 5
1628 } CPUPropertyType;
1629 /* End of enum CPUPropertyType declaration */
1630 #   define CPUPropertyType_T PRUint32
1631 
1632 
1633 /* Start of enum HWVirtExPropertyType declaration */
1634 #   define HWVIRTEXPROPERTYTYPE_IID_STR "411ad0ea-aeeb-44cb-9d03-1624d0d025ac"
1635 #   define HWVIRTEXPROPERTYTYPE_IID { \
1636     0x411ad0ea, 0xaeeb, 0x44cb, \
1637     { 0x9d, 0x03, 0x16, 0x24, 0xd0, 0xd0, 0x25, 0xac } \
1638 }
1639 typedef enum HWVirtExPropertyType
1640 {
1641     HWVirtExPropertyType_Null = 0,
1642     HWVirtExPropertyType_Enabled = 1,
1643     HWVirtExPropertyType_VPID = 2,
1644     HWVirtExPropertyType_NestedPaging = 3,
1645     HWVirtExPropertyType_UnrestrictedExecution = 4,
1646     HWVirtExPropertyType_LargePages = 5,
1647     HWVirtExPropertyType_Force = 6
1648 } HWVirtExPropertyType;
1649 /* End of enum HWVirtExPropertyType declaration */
1650 #   define HWVirtExPropertyType_T PRUint32
1651 
1652 
1653 /* Start of enum ParavirtProvider declaration */
1654 #   define PARAVIRTPROVIDER_IID_STR "696453ec-3742-4a05-bead-658ccbf2c944"
1655 #   define PARAVIRTPROVIDER_IID { \
1656     0x696453ec, 0x3742, 0x4a05, \
1657     { 0xbe, 0xad, 0x65, 0x8c, 0xcb, 0xf2, 0xc9, 0x44 } \
1658 }
1659 typedef enum ParavirtProvider
1660 {
1661     ParavirtProvider_None = 0,
1662     ParavirtProvider_Default = 1,
1663     ParavirtProvider_Legacy = 2,
1664     ParavirtProvider_Minimal = 3,
1665     ParavirtProvider_HyperV = 4,
1666     ParavirtProvider_KVM = 5
1667 } ParavirtProvider;
1668 /* End of enum ParavirtProvider declaration */
1669 #   define ParavirtProvider_T PRUint32
1670 
1671 
1672 /* Start of enum FaultToleranceState declaration */
1673 #   define FAULTTOLERANCESTATE_IID_STR "5124f7ec-6b67-493c-9dee-ee45a44114e1"
1674 #   define FAULTTOLERANCESTATE_IID { \
1675     0x5124f7ec, 0x6b67, 0x493c, \
1676     { 0x9d, 0xee, 0xee, 0x45, 0xa4, 0x41, 0x14, 0xe1 } \
1677 }
1678 typedef enum FaultToleranceState
1679 {
1680     FaultToleranceState_Inactive = 1,
1681     FaultToleranceState_Master = 2,
1682     FaultToleranceState_Standby = 3
1683 } FaultToleranceState;
1684 /* End of enum FaultToleranceState declaration */
1685 #   define FaultToleranceState_T PRUint32
1686 
1687 
1688 /* Start of enum LockType declaration */
1689 #   define LOCKTYPE_IID_STR "678aaf14-2815-4c3e-b20a-e86ed0216498"
1690 #   define LOCKTYPE_IID { \
1691     0x678aaf14, 0x2815, 0x4c3e, \
1692     { 0xb2, 0x0a, 0xe8, 0x6e, 0xd0, 0x21, 0x64, 0x98 } \
1693 }
1694 typedef enum LockType
1695 {
1696     LockType_Null = 0,
1697     LockType_Shared = 1,
1698     LockType_Write = 2,
1699     LockType_VM = 3
1700 } LockType;
1701 /* End of enum LockType declaration */
1702 #   define LockType_T PRUint32
1703 
1704 
1705 /* Start of enum SessionType declaration */
1706 #   define SESSIONTYPE_IID_STR "A13C02CB-0C2C-421E-8317-AC0E8AAA153A"
1707 #   define SESSIONTYPE_IID { \
1708     0xA13C02CB, 0x0C2C, 0x421E, \
1709     { 0x83, 0x17, 0xAC, 0x0E, 0x8A, 0xAA, 0x15, 0x3A } \
1710 }
1711 typedef enum SessionType
1712 {
1713     SessionType_Null = 0,
1714     SessionType_WriteLock = 1,
1715     SessionType_Remote = 2,
1716     SessionType_Shared = 3
1717 } SessionType;
1718 /* End of enum SessionType declaration */
1719 #   define SessionType_T PRUint32
1720 
1721 
1722 /* Start of enum DeviceType declaration */
1723 #   define DEVICETYPE_IID_STR "cb977be1-d1fb-41f8-ad7e-951736c6cb3e"
1724 #   define DEVICETYPE_IID { \
1725     0xcb977be1, 0xd1fb, 0x41f8, \
1726     { 0xad, 0x7e, 0x95, 0x17, 0x36, 0xc6, 0xcb, 0x3e } \
1727 }
1728 typedef enum DeviceType
1729 {
1730     DeviceType_Null = 0,
1731     DeviceType_Floppy = 1,
1732     DeviceType_DVD = 2,
1733     DeviceType_HardDisk = 3,
1734     DeviceType_Network = 4,
1735     DeviceType_USB = 5,
1736     DeviceType_SharedFolder = 6,
1737     DeviceType_Graphics3D = 7
1738 } DeviceType;
1739 /* End of enum DeviceType declaration */
1740 #   define DeviceType_T PRUint32
1741 
1742 
1743 /* Start of enum DeviceActivity declaration */
1744 #   define DEVICEACTIVITY_IID_STR "6FC8AEAA-130A-4eb5-8954-3F921422D707"
1745 #   define DEVICEACTIVITY_IID { \
1746     0x6FC8AEAA, 0x130A, 0x4eb5, \
1747     { 0x89, 0x54, 0x3F, 0x92, 0x14, 0x22, 0xD7, 0x07 } \
1748 }
1749 typedef enum DeviceActivity
1750 {
1751     DeviceActivity_Null = 0,
1752     DeviceActivity_Idle = 1,
1753     DeviceActivity_Reading = 2,
1754     DeviceActivity_Writing = 3
1755 } DeviceActivity;
1756 /* End of enum DeviceActivity declaration */
1757 #   define DeviceActivity_T PRUint32
1758 
1759 
1760 /* Start of enum ClipboardMode declaration */
1761 #   define CLIPBOARDMODE_IID_STR "33364716-4008-4701-8f14-be0fa3d62950"
1762 #   define CLIPBOARDMODE_IID { \
1763     0x33364716, 0x4008, 0x4701, \
1764     { 0x8f, 0x14, 0xbe, 0x0f, 0xa3, 0xd6, 0x29, 0x50 } \
1765 }
1766 typedef enum ClipboardMode
1767 {
1768     ClipboardMode_Disabled = 0,
1769     ClipboardMode_HostToGuest = 1,
1770     ClipboardMode_GuestToHost = 2,
1771     ClipboardMode_Bidirectional = 3
1772 } ClipboardMode;
1773 /* End of enum ClipboardMode declaration */
1774 #   define ClipboardMode_T PRUint32
1775 
1776 
1777 /* Start of enum DnDMode declaration */
1778 #   define DNDMODE_IID_STR "07af8800-f936-4b33-9172-cd400e83c148"
1779 #   define DNDMODE_IID { \
1780     0x07af8800, 0xf936, 0x4b33, \
1781     { 0x91, 0x72, 0xcd, 0x40, 0x0e, 0x83, 0xc1, 0x48 } \
1782 }
1783 typedef enum DnDMode
1784 {
1785     DnDMode_Disabled = 0,
1786     DnDMode_HostToGuest = 1,
1787     DnDMode_GuestToHost = 2,
1788     DnDMode_Bidirectional = 3
1789 } DnDMode;
1790 /* End of enum DnDMode declaration */
1791 #   define DnDMode_T PRUint32
1792 
1793 
1794 /* Start of enum Scope declaration */
1795 #   define SCOPE_IID_STR "7c91096e-499e-4eca-9f9b-9001438d7855"
1796 #   define SCOPE_IID { \
1797     0x7c91096e, 0x499e, 0x4eca, \
1798     { 0x9f, 0x9b, 0x90, 0x01, 0x43, 0x8d, 0x78, 0x55 } \
1799 }
1800 typedef enum Scope
1801 {
1802     Scope_Global = 0,
1803     Scope_Machine = 1,
1804     Scope_Session = 2
1805 } Scope;
1806 /* End of enum Scope declaration */
1807 #   define Scope_T PRUint32
1808 
1809 
1810 /* Start of enum BIOSBootMenuMode declaration */
1811 #   define BIOSBOOTMENUMODE_IID_STR "ae4fb9f7-29d2-45b4-b2c7-d579603135d5"
1812 #   define BIOSBOOTMENUMODE_IID { \
1813     0xae4fb9f7, 0x29d2, 0x45b4, \
1814     { 0xb2, 0xc7, 0xd5, 0x79, 0x60, 0x31, 0x35, 0xd5 } \
1815 }
1816 typedef enum BIOSBootMenuMode
1817 {
1818     BIOSBootMenuMode_Disabled = 0,
1819     BIOSBootMenuMode_MenuOnly = 1,
1820     BIOSBootMenuMode_MessageAndMenu = 2
1821 } BIOSBootMenuMode;
1822 /* End of enum BIOSBootMenuMode declaration */
1823 #   define BIOSBootMenuMode_T PRUint32
1824 
1825 
1826 /* Start of enum APICMode declaration */
1827 #   define APICMODE_IID_STR "c6884ba5-3cc4-4a92-a7f6-4410f9fd894e"
1828 #   define APICMODE_IID { \
1829     0xc6884ba5, 0x3cc4, 0x4a92, \
1830     { 0xa7, 0xf6, 0x44, 0x10, 0xf9, 0xfd, 0x89, 0x4e } \
1831 }
1832 typedef enum APICMode
1833 {
1834     APICMode_Disabled = 0,
1835     APICMode_APIC = 1,
1836     APICMode_X2APIC = 2
1837 } APICMode;
1838 /* End of enum APICMode declaration */
1839 #   define APICMode_T PRUint32
1840 
1841 
1842 /* Start of enum ProcessorFeature declaration */
1843 #   define PROCESSORFEATURE_IID_STR "64c38e6b-8bcf-45ad-ac03-9b406287c5bf"
1844 #   define PROCESSORFEATURE_IID { \
1845     0x64c38e6b, 0x8bcf, 0x45ad, \
1846     { 0xac, 0x03, 0x9b, 0x40, 0x62, 0x87, 0xc5, 0xbf } \
1847 }
1848 typedef enum ProcessorFeature
1849 {
1850     ProcessorFeature_HWVirtEx = 0,
1851     ProcessorFeature_PAE = 1,
1852     ProcessorFeature_LongMode = 2,
1853     ProcessorFeature_NestedPaging = 3
1854 } ProcessorFeature;
1855 /* End of enum ProcessorFeature declaration */
1856 #   define ProcessorFeature_T PRUint32
1857 
1858 
1859 /* Start of enum FirmwareType declaration */
1860 #   define FIRMWARETYPE_IID_STR "b903f264-c230-483e-ac74-2b37ce60d371"
1861 #   define FIRMWARETYPE_IID { \
1862     0xb903f264, 0xc230, 0x483e, \
1863     { 0xac, 0x74, 0x2b, 0x37, 0xce, 0x60, 0xd3, 0x71 } \
1864 }
1865 typedef enum FirmwareType
1866 {
1867     FirmwareType_BIOS = 1,
1868     FirmwareType_EFI = 2,
1869     FirmwareType_EFI32 = 3,
1870     FirmwareType_EFI64 = 4,
1871     FirmwareType_EFIDUAL = 5
1872 } FirmwareType;
1873 /* End of enum FirmwareType declaration */
1874 #   define FirmwareType_T PRUint32
1875 
1876 
1877 /* Start of enum PointingHIDType declaration */
1878 #   define POINTINGHIDTYPE_IID_STR "19964e93-0050-45c4-9382-a7bccc53e666"
1879 #   define POINTINGHIDTYPE_IID { \
1880     0x19964e93, 0x0050, 0x45c4, \
1881     { 0x93, 0x82, 0xa7, 0xbc, 0xcc, 0x53, 0xe6, 0x66 } \
1882 }
1883 typedef enum PointingHIDType
1884 {
1885     PointingHIDType_None = 1,
1886     PointingHIDType_PS2Mouse = 2,
1887     PointingHIDType_USBMouse = 3,
1888     PointingHIDType_USBTablet = 4,
1889     PointingHIDType_ComboMouse = 5,
1890     PointingHIDType_USBMultiTouch = 6
1891 } PointingHIDType;
1892 /* End of enum PointingHIDType declaration */
1893 #   define PointingHIDType_T PRUint32
1894 
1895 
1896 /* Start of enum KeyboardHIDType declaration */
1897 #   define KEYBOARDHIDTYPE_IID_STR "383e43d7-5c7c-4ec8-9cb8-eda1bccd6699"
1898 #   define KEYBOARDHIDTYPE_IID { \
1899     0x383e43d7, 0x5c7c, 0x4ec8, \
1900     { 0x9c, 0xb8, 0xed, 0xa1, 0xbc, 0xcd, 0x66, 0x99 } \
1901 }
1902 typedef enum KeyboardHIDType
1903 {
1904     KeyboardHIDType_None = 1,
1905     KeyboardHIDType_PS2Keyboard = 2,
1906     KeyboardHIDType_USBKeyboard = 3,
1907     KeyboardHIDType_ComboKeyboard = 4
1908 } KeyboardHIDType;
1909 /* End of enum KeyboardHIDType declaration */
1910 #   define KeyboardHIDType_T PRUint32
1911 
1912 
1913 /* Start of enum BitmapFormat declaration */
1914 #   define BITMAPFORMAT_IID_STR "afb2bf39-8b1e-4f9f-8948-d1b887f83eb0"
1915 #   define BITMAPFORMAT_IID { \
1916     0xafb2bf39, 0x8b1e, 0x4f9f, \
1917     { 0x89, 0x48, 0xd1, 0xb8, 0x87, 0xf8, 0x3e, 0xb0 } \
1918 }
1919 typedef enum BitmapFormat
1920 {
1921     BitmapFormat_Opaque = 0,
1922     BitmapFormat_BGR = 0x20524742,
1923     BitmapFormat_BGR0 = 0x30524742,
1924     BitmapFormat_BGRA = 0x41524742,
1925     BitmapFormat_RGBA = 0x41424752,
1926     BitmapFormat_PNG = 0x20474E50,
1927     BitmapFormat_JPEG = 0x4745504A
1928 } BitmapFormat;
1929 /* End of enum BitmapFormat declaration */
1930 #   define BitmapFormat_T PRUint32
1931 
1932 
1933 /* Start of enum DhcpOpt declaration */
1934 #   define DHCPOPT_IID_STR "40d99bd3-3ece-44d2-a07e-1085fe9c4f0b"
1935 #   define DHCPOPT_IID { \
1936     0x40d99bd3, 0x3ece, 0x44d2, \
1937     { 0xa0, 0x7e, 0x10, 0x85, 0xfe, 0x9c, 0x4f, 0x0b } \
1938 }
1939 typedef enum DhcpOpt
1940 {
1941     DhcpOpt_SubnetMask = 1,
1942     DhcpOpt_TimeOffset = 2,
1943     DhcpOpt_Router = 3,
1944     DhcpOpt_TimeServer = 4,
1945     DhcpOpt_NameServer = 5,
1946     DhcpOpt_DomainNameServer = 6,
1947     DhcpOpt_LogServer = 7,
1948     DhcpOpt_Cookie = 8,
1949     DhcpOpt_LPRServer = 9,
1950     DhcpOpt_ImpressServer = 10,
1951     DhcpOpt_ResourseLocationServer = 11,
1952     DhcpOpt_HostName = 12,
1953     DhcpOpt_BootFileSize = 13,
1954     DhcpOpt_MeritDumpFile = 14,
1955     DhcpOpt_DomainName = 15,
1956     DhcpOpt_SwapServer = 16,
1957     DhcpOpt_RootPath = 17,
1958     DhcpOpt_ExtensionPath = 18,
1959     DhcpOpt_IPForwardingEnableDisable = 19,
1960     DhcpOpt_NonLocalSourceRoutingEnableDisable = 20,
1961     DhcpOpt_PolicyFilter = 21,
1962     DhcpOpt_MaximumDatagramReassemblySize = 22,
1963     DhcpOpt_DefaultIPTime2Live = 23,
1964     DhcpOpt_PathMTUAgingTimeout = 24,
1965     DhcpOpt_IPLayerParametersPerInterface = 25,
1966     DhcpOpt_InterfaceMTU = 26,
1967     DhcpOpt_AllSubnetsAreLocal = 27,
1968     DhcpOpt_BroadcastAddress = 28,
1969     DhcpOpt_PerformMaskDiscovery = 29,
1970     DhcpOpt_MaskSupplier = 30,
1971     DhcpOpt_PerformRouteDiscovery = 31,
1972     DhcpOpt_RouterSolicitationAddress = 32,
1973     DhcpOpt_StaticRoute = 33,
1974     DhcpOpt_TrailerEncapsulation = 34,
1975     DhcpOpt_ARPCacheTimeout = 35,
1976     DhcpOpt_EthernetEncapsulation = 36,
1977     DhcpOpt_TCPDefaultTTL = 37,
1978     DhcpOpt_TCPKeepAliveInterval = 38,
1979     DhcpOpt_TCPKeepAliveGarbage = 39,
1980     DhcpOpt_NetworkInformationServiceDomain = 40,
1981     DhcpOpt_NetworkInformationServiceServers = 41,
1982     DhcpOpt_NetworkTimeProtocolServers = 42,
1983     DhcpOpt_VendorSpecificInformation = 43,
1984     DhcpOpt_Option_44 = 44,
1985     DhcpOpt_Option_45 = 45,
1986     DhcpOpt_Option_46 = 46,
1987     DhcpOpt_Option_47 = 47,
1988     DhcpOpt_Option_48 = 48,
1989     DhcpOpt_Option_49 = 49,
1990     DhcpOpt_IPAddressLeaseTime = 51,
1991     DhcpOpt_Option_64 = 64,
1992     DhcpOpt_Option_65 = 65,
1993     DhcpOpt_TFTPServerName = 66,
1994     DhcpOpt_BootfileName = 67,
1995     DhcpOpt_Option_68 = 68,
1996     DhcpOpt_Option_69 = 69,
1997     DhcpOpt_Option_70 = 70,
1998     DhcpOpt_Option_71 = 71,
1999     DhcpOpt_Option_72 = 72,
2000     DhcpOpt_Option_73 = 73,
2001     DhcpOpt_Option_74 = 74,
2002     DhcpOpt_Option_75 = 75,
2003     DhcpOpt_Option_119 = 119
2004 } DhcpOpt;
2005 /* End of enum DhcpOpt declaration */
2006 #   define DhcpOpt_T PRUint32
2007 
2008 
2009 /* Start of enum DhcpOptEncoding declaration */
2010 #   define DHCPOPTENCODING_IID_STR "88ea6d70-8648-4871-ba30-1f49c61cfaa2"
2011 #   define DHCPOPTENCODING_IID { \
2012     0x88ea6d70, 0x8648, 0x4871, \
2013     { 0xba, 0x30, 0x1f, 0x49, 0xc6, 0x1c, 0xfa, 0xa2 } \
2014 }
2015 typedef enum DhcpOptEncoding
2016 {
2017     DhcpOptEncoding_Legacy = 0,
2018     DhcpOptEncoding_Hex = 1
2019 } DhcpOptEncoding;
2020 /* End of enum DhcpOptEncoding declaration */
2021 #   define DhcpOptEncoding_T PRUint32
2022 
2023 
2024 /* Start of enum VFSType declaration */
2025 #   define VFSTYPE_IID_STR "813999ba-b949-48a8-9230-aadc6285e2f2"
2026 #   define VFSTYPE_IID { \
2027     0x813999ba, 0xb949, 0x48a8, \
2028     { 0x92, 0x30, 0xaa, 0xdc, 0x62, 0x85, 0xe2, 0xf2 } \
2029 }
2030 typedef enum VFSType
2031 {
2032     VFSType_File = 1,
2033     VFSType_Cloud = 2,
2034     VFSType_S3 = 3,
2035     VFSType_WebDav = 4
2036 } VFSType;
2037 /* End of enum VFSType declaration */
2038 #   define VFSType_T PRUint32
2039 
2040 
2041 /* Start of enum ImportOptions declaration */
2042 #   define IMPORTOPTIONS_IID_STR "0a981523-3b20-4004-8ee3-dfd322202ace"
2043 #   define IMPORTOPTIONS_IID { \
2044     0x0a981523, 0x3b20, 0x4004, \
2045     { 0x8e, 0xe3, 0xdf, 0xd3, 0x22, 0x20, 0x2a, 0xce } \
2046 }
2047 typedef enum ImportOptions
2048 {
2049     ImportOptions_KeepAllMACs = 1,
2050     ImportOptions_KeepNATMACs = 2,
2051     ImportOptions_ImportToVDI = 3
2052 } ImportOptions;
2053 /* End of enum ImportOptions declaration */
2054 #   define ImportOptions_T PRUint32
2055 
2056 
2057 /* Start of enum ExportOptions declaration */
2058 #   define EXPORTOPTIONS_IID_STR "8f45eb08-fd34-41ee-af95-a880bdee5554"
2059 #   define EXPORTOPTIONS_IID { \
2060     0x8f45eb08, 0xfd34, 0x41ee, \
2061     { 0xaf, 0x95, 0xa8, 0x80, 0xbd, 0xee, 0x55, 0x54 } \
2062 }
2063 typedef enum ExportOptions
2064 {
2065     ExportOptions_CreateManifest = 1,
2066     ExportOptions_ExportDVDImages = 2,
2067     ExportOptions_StripAllMACs = 3,
2068     ExportOptions_StripAllNonNATMACs = 4
2069 } ExportOptions;
2070 /* End of enum ExportOptions declaration */
2071 #   define ExportOptions_T PRUint32
2072 
2073 
2074 /* Start of enum CertificateVersion declaration */
2075 #   define CERTIFICATEVERSION_IID_STR "9e232a99-51d0-4dbd-96a0-ffac4bc3e2a8"
2076 #   define CERTIFICATEVERSION_IID { \
2077     0x9e232a99, 0x51d0, 0x4dbd, \
2078     { 0x96, 0xa0, 0xff, 0xac, 0x4b, 0xc3, 0xe2, 0xa8 } \
2079 }
2080 typedef enum CertificateVersion
2081 {
2082     CertificateVersion_V1 = 1,
2083     CertificateVersion_V2 = 2,
2084     CertificateVersion_V3 = 3,
2085     CertificateVersion_Unknown = 99
2086 } CertificateVersion;
2087 /* End of enum CertificateVersion declaration */
2088 #   define CertificateVersion_T PRUint32
2089 
2090 
2091 /* Start of enum VirtualSystemDescriptionType declaration */
2092 #   define VIRTUALSYSTEMDESCRIPTIONTYPE_IID_STR "303c0900-a746-4612-8c67-79003e91f459"
2093 #   define VIRTUALSYSTEMDESCRIPTIONTYPE_IID { \
2094     0x303c0900, 0xa746, 0x4612, \
2095     { 0x8c, 0x67, 0x79, 0x00, 0x3e, 0x91, 0xf4, 0x59 } \
2096 }
2097 typedef enum VirtualSystemDescriptionType
2098 {
2099     VirtualSystemDescriptionType_Ignore = 1,
2100     VirtualSystemDescriptionType_OS = 2,
2101     VirtualSystemDescriptionType_Name = 3,
2102     VirtualSystemDescriptionType_Product = 4,
2103     VirtualSystemDescriptionType_Vendor = 5,
2104     VirtualSystemDescriptionType_Version = 6,
2105     VirtualSystemDescriptionType_ProductUrl = 7,
2106     VirtualSystemDescriptionType_VendorUrl = 8,
2107     VirtualSystemDescriptionType_Description = 9,
2108     VirtualSystemDescriptionType_License = 10,
2109     VirtualSystemDescriptionType_Miscellaneous = 11,
2110     VirtualSystemDescriptionType_CPU = 12,
2111     VirtualSystemDescriptionType_Memory = 13,
2112     VirtualSystemDescriptionType_HardDiskControllerIDE = 14,
2113     VirtualSystemDescriptionType_HardDiskControllerSATA = 15,
2114     VirtualSystemDescriptionType_HardDiskControllerSCSI = 16,
2115     VirtualSystemDescriptionType_HardDiskControllerSAS = 17,
2116     VirtualSystemDescriptionType_HardDiskImage = 18,
2117     VirtualSystemDescriptionType_Floppy = 19,
2118     VirtualSystemDescriptionType_CDROM = 20,
2119     VirtualSystemDescriptionType_NetworkAdapter = 21,
2120     VirtualSystemDescriptionType_USBController = 22,
2121     VirtualSystemDescriptionType_SoundCard = 23,
2122     VirtualSystemDescriptionType_SettingsFile = 24
2123 } VirtualSystemDescriptionType;
2124 /* End of enum VirtualSystemDescriptionType declaration */
2125 #   define VirtualSystemDescriptionType_T PRUint32
2126 
2127 
2128 /* Start of enum VirtualSystemDescriptionValueType declaration */
2129 #   define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID_STR "56d9403f-3425-4118-9919-36f2a9b8c77c"
2130 #   define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID { \
2131     0x56d9403f, 0x3425, 0x4118, \
2132     { 0x99, 0x19, 0x36, 0xf2, 0xa9, 0xb8, 0xc7, 0x7c } \
2133 }
2134 typedef enum VirtualSystemDescriptionValueType
2135 {
2136     VirtualSystemDescriptionValueType_Reference = 1,
2137     VirtualSystemDescriptionValueType_Original = 2,
2138     VirtualSystemDescriptionValueType_Auto = 3,
2139     VirtualSystemDescriptionValueType_ExtraConfig = 4
2140 } VirtualSystemDescriptionValueType;
2141 /* End of enum VirtualSystemDescriptionValueType declaration */
2142 #   define VirtualSystemDescriptionValueType_T PRUint32
2143 
2144 
2145 /* Start of enum GraphicsControllerType declaration */
2146 #   define GRAPHICSCONTROLLERTYPE_IID_STR "79c96ca0-9f39-4900-948e-68c41cbe127a"
2147 #   define GRAPHICSCONTROLLERTYPE_IID { \
2148     0x79c96ca0, 0x9f39, 0x4900, \
2149     { 0x94, 0x8e, 0x68, 0xc4, 0x1c, 0xbe, 0x12, 0x7a } \
2150 }
2151 typedef enum GraphicsControllerType
2152 {
2153     GraphicsControllerType_Null = 0,
2154     GraphicsControllerType_VBoxVGA = 1,
2155     GraphicsControllerType_VMSVGA = 2
2156 } GraphicsControllerType;
2157 /* End of enum GraphicsControllerType declaration */
2158 #   define GraphicsControllerType_T PRUint32
2159 
2160 
2161 /* Start of enum CleanupMode declaration */
2162 #   define CLEANUPMODE_IID_STR "67897c50-7cca-47a9-83f6-ce8fd8eb5441"
2163 #   define CLEANUPMODE_IID { \
2164     0x67897c50, 0x7cca, 0x47a9, \
2165     { 0x83, 0xf6, 0xce, 0x8f, 0xd8, 0xeb, 0x54, 0x41 } \
2166 }
2167 typedef enum CleanupMode
2168 {
2169     CleanupMode_UnregisterOnly = 1,
2170     CleanupMode_DetachAllReturnNone = 2,
2171     CleanupMode_DetachAllReturnHardDisksOnly = 3,
2172     CleanupMode_Full = 4
2173 } CleanupMode;
2174 /* End of enum CleanupMode declaration */
2175 #   define CleanupMode_T PRUint32
2176 
2177 
2178 /* Start of enum CloneMode declaration */
2179 #   define CLONEMODE_IID_STR "A7A159FE-5096-4B8D-8C3C-D033CB0B35A8"
2180 #   define CLONEMODE_IID { \
2181     0xA7A159FE, 0x5096, 0x4B8D, \
2182     { 0x8C, 0x3C, 0xD0, 0x33, 0xCB, 0x0B, 0x35, 0xA8 } \
2183 }
2184 typedef enum CloneMode
2185 {
2186     CloneMode_MachineState = 1,
2187     CloneMode_MachineAndChildStates = 2,
2188     CloneMode_AllStates = 3
2189 } CloneMode;
2190 /* End of enum CloneMode declaration */
2191 #   define CloneMode_T PRUint32
2192 
2193 
2194 /* Start of enum CloneOptions declaration */
2195 #   define CLONEOPTIONS_IID_STR "22243f8e-96ab-497c-8cf0-f40a566c630b"
2196 #   define CLONEOPTIONS_IID { \
2197     0x22243f8e, 0x96ab, 0x497c, \
2198     { 0x8c, 0xf0, 0xf4, 0x0a, 0x56, 0x6c, 0x63, 0x0b } \
2199 }
2200 typedef enum CloneOptions
2201 {
2202     CloneOptions_Link = 1,
2203     CloneOptions_KeepAllMACs = 2,
2204     CloneOptions_KeepNATMACs = 3,
2205     CloneOptions_KeepDiskNames = 4
2206 } CloneOptions;
2207 /* End of enum CloneOptions declaration */
2208 #   define CloneOptions_T PRUint32
2209 
2210 
2211 /* Start of enum AutostopType declaration */
2212 #   define AUTOSTOPTYPE_IID_STR "6bb96740-cf34-470d-aab2-2cd48ea2e10e"
2213 #   define AUTOSTOPTYPE_IID { \
2214     0x6bb96740, 0xcf34, 0x470d, \
2215     { 0xaa, 0xb2, 0x2c, 0xd4, 0x8e, 0xa2, 0xe1, 0x0e } \
2216 }
2217 typedef enum AutostopType
2218 {
2219     AutostopType_Disabled = 1,
2220     AutostopType_SaveState = 2,
2221     AutostopType_PowerOff = 3,
2222     AutostopType_AcpiShutdown = 4
2223 } AutostopType;
2224 /* End of enum AutostopType declaration */
2225 #   define AutostopType_T PRUint32
2226 
2227 
2228 /* Start of enum HostNetworkInterfaceMediumType declaration */
2229 #   define HOSTNETWORKINTERFACEMEDIUMTYPE_IID_STR "1aa54aaf-2497-45a2-bfb1-8eb225e93d5b"
2230 #   define HOSTNETWORKINTERFACEMEDIUMTYPE_IID { \
2231     0x1aa54aaf, 0x2497, 0x45a2, \
2232     { 0xbf, 0xb1, 0x8e, 0xb2, 0x25, 0xe9, 0x3d, 0x5b } \
2233 }
2234 typedef enum HostNetworkInterfaceMediumType
2235 {
2236     HostNetworkInterfaceMediumType_Unknown = 0,
2237     HostNetworkInterfaceMediumType_Ethernet = 1,
2238     HostNetworkInterfaceMediumType_PPP = 2,
2239     HostNetworkInterfaceMediumType_SLIP = 3
2240 } HostNetworkInterfaceMediumType;
2241 /* End of enum HostNetworkInterfaceMediumType declaration */
2242 #   define HostNetworkInterfaceMediumType_T PRUint32
2243 
2244 
2245 /* Start of enum HostNetworkInterfaceStatus declaration */
2246 #   define HOSTNETWORKINTERFACESTATUS_IID_STR "CC474A69-2710-434B-8D99-C38E5D5A6F41"
2247 #   define HOSTNETWORKINTERFACESTATUS_IID { \
2248     0xCC474A69, 0x2710, 0x434B, \
2249     { 0x8D, 0x99, 0xC3, 0x8E, 0x5D, 0x5A, 0x6F, 0x41 } \
2250 }
2251 typedef enum HostNetworkInterfaceStatus
2252 {
2253     HostNetworkInterfaceStatus_Unknown = 0,
2254     HostNetworkInterfaceStatus_Up = 1,
2255     HostNetworkInterfaceStatus_Down = 2
2256 } HostNetworkInterfaceStatus;
2257 /* End of enum HostNetworkInterfaceStatus declaration */
2258 #   define HostNetworkInterfaceStatus_T PRUint32
2259 
2260 
2261 /* Start of enum HostNetworkInterfaceType declaration */
2262 #   define HOSTNETWORKINTERFACETYPE_IID_STR "67431b00-9946-48a2-bc02-b25c5919f4f3"
2263 #   define HOSTNETWORKINTERFACETYPE_IID { \
2264     0x67431b00, 0x9946, 0x48a2, \
2265     { 0xbc, 0x02, 0xb2, 0x5c, 0x59, 0x19, 0xf4, 0xf3 } \
2266 }
2267 typedef enum HostNetworkInterfaceType
2268 {
2269     HostNetworkInterfaceType_Bridged = 1,
2270     HostNetworkInterfaceType_HostOnly = 2
2271 } HostNetworkInterfaceType;
2272 /* End of enum HostNetworkInterfaceType declaration */
2273 #   define HostNetworkInterfaceType_T PRUint32
2274 
2275 
2276 /* Start of enum AdditionsFacilityType declaration */
2277 #   define ADDITIONSFACILITYTYPE_IID_STR "c4b10d74-dd48-4ff4-9a40-785a2a389ade"
2278 #   define ADDITIONSFACILITYTYPE_IID { \
2279     0xc4b10d74, 0xdd48, 0x4ff4, \
2280     { 0x9a, 0x40, 0x78, 0x5a, 0x2a, 0x38, 0x9a, 0xde } \
2281 }
2282 typedef enum AdditionsFacilityType
2283 {
2284     AdditionsFacilityType_None = 0,
2285     AdditionsFacilityType_VBoxGuestDriver = 20,
2286     AdditionsFacilityType_AutoLogon = 90,
2287     AdditionsFacilityType_VBoxService = 100,
2288     AdditionsFacilityType_VBoxTrayClient = 101,
2289     AdditionsFacilityType_Seamless = 1000,
2290     AdditionsFacilityType_Graphics = 1100,
2291     AdditionsFacilityType_MonitorAttach = 1101,
2292     AdditionsFacilityType_All = 2147483646
2293 } AdditionsFacilityType;
2294 /* End of enum AdditionsFacilityType declaration */
2295 #   define AdditionsFacilityType_T PRUint32
2296 
2297 
2298 /* Start of enum AdditionsFacilityClass declaration */
2299 #   define ADDITIONSFACILITYCLASS_IID_STR "446451b2-c88d-4e5d-84c9-91bc7f533f5f"
2300 #   define ADDITIONSFACILITYCLASS_IID { \
2301     0x446451b2, 0xc88d, 0x4e5d, \
2302     { 0x84, 0xc9, 0x91, 0xbc, 0x7f, 0x53, 0x3f, 0x5f } \
2303 }
2304 typedef enum AdditionsFacilityClass
2305 {
2306     AdditionsFacilityClass_None = 0,
2307     AdditionsFacilityClass_Driver = 10,
2308     AdditionsFacilityClass_Service = 30,
2309     AdditionsFacilityClass_Program = 50,
2310     AdditionsFacilityClass_Feature = 100,
2311     AdditionsFacilityClass_ThirdParty = 999,
2312     AdditionsFacilityClass_All = 2147483646
2313 } AdditionsFacilityClass;
2314 /* End of enum AdditionsFacilityClass declaration */
2315 #   define AdditionsFacilityClass_T PRUint32
2316 
2317 
2318 /* Start of enum AdditionsFacilityStatus declaration */
2319 #   define ADDITIONSFACILITYSTATUS_IID_STR "ce06f9e1-394e-4fe9-9368-5a88c567dbde"
2320 #   define ADDITIONSFACILITYSTATUS_IID { \
2321     0xce06f9e1, 0x394e, 0x4fe9, \
2322     { 0x93, 0x68, 0x5a, 0x88, 0xc5, 0x67, 0xdb, 0xde } \
2323 }
2324 typedef enum AdditionsFacilityStatus
2325 {
2326     AdditionsFacilityStatus_Inactive = 0,
2327     AdditionsFacilityStatus_Paused = 1,
2328     AdditionsFacilityStatus_PreInit = 20,
2329     AdditionsFacilityStatus_Init = 30,
2330     AdditionsFacilityStatus_Active = 50,
2331     AdditionsFacilityStatus_Terminating = 100,
2332     AdditionsFacilityStatus_Terminated = 101,
2333     AdditionsFacilityStatus_Failed = 800,
2334     AdditionsFacilityStatus_Unknown = 999
2335 } AdditionsFacilityStatus;
2336 /* End of enum AdditionsFacilityStatus declaration */
2337 #   define AdditionsFacilityStatus_T PRUint32
2338 
2339 
2340 /* Start of enum AdditionsRunLevelType declaration */
2341 #   define ADDITIONSRUNLEVELTYPE_IID_STR "a25417ee-a9dd-4f5b-b0dc-377860087754"
2342 #   define ADDITIONSRUNLEVELTYPE_IID { \
2343     0xa25417ee, 0xa9dd, 0x4f5b, \
2344     { 0xb0, 0xdc, 0x37, 0x78, 0x60, 0x08, 0x77, 0x54 } \
2345 }
2346 typedef enum AdditionsRunLevelType
2347 {
2348     AdditionsRunLevelType_None = 0,
2349     AdditionsRunLevelType_System = 1,
2350     AdditionsRunLevelType_Userland = 2,
2351     AdditionsRunLevelType_Desktop = 3
2352 } AdditionsRunLevelType;
2353 /* End of enum AdditionsRunLevelType declaration */
2354 #   define AdditionsRunLevelType_T PRUint32
2355 
2356 
2357 /* Start of enum AdditionsUpdateFlag declaration */
2358 #   define ADDITIONSUPDATEFLAG_IID_STR "726a818d-18d6-4389-94e8-3e9e6826171a"
2359 #   define ADDITIONSUPDATEFLAG_IID { \
2360     0x726a818d, 0x18d6, 0x4389, \
2361     { 0x94, 0xe8, 0x3e, 0x9e, 0x68, 0x26, 0x17, 0x1a } \
2362 }
2363 typedef enum AdditionsUpdateFlag
2364 {
2365     AdditionsUpdateFlag_None = 0,
2366     AdditionsUpdateFlag_WaitForUpdateStartOnly = 1
2367 } AdditionsUpdateFlag;
2368 /* End of enum AdditionsUpdateFlag declaration */
2369 #   define AdditionsUpdateFlag_T PRUint32
2370 
2371 
2372 /* Start of enum GuestSessionStatus declaration */
2373 #   define GUESTSESSIONSTATUS_IID_STR "ac2669da-4624-44f2-85b5-0b0bfb8d8673"
2374 #   define GUESTSESSIONSTATUS_IID { \
2375     0xac2669da, 0x4624, 0x44f2, \
2376     { 0x85, 0xb5, 0x0b, 0x0b, 0xfb, 0x8d, 0x86, 0x73 } \
2377 }
2378 typedef enum GuestSessionStatus
2379 {
2380     GuestSessionStatus_Undefined = 0,
2381     GuestSessionStatus_Starting = 10,
2382     GuestSessionStatus_Started = 100,
2383     GuestSessionStatus_Terminating = 480,
2384     GuestSessionStatus_Terminated = 500,
2385     GuestSessionStatus_TimedOutKilled = 512,
2386     GuestSessionStatus_TimedOutAbnormally = 513,
2387     GuestSessionStatus_Down = 600,
2388     GuestSessionStatus_Error = 800
2389 } GuestSessionStatus;
2390 /* End of enum GuestSessionStatus declaration */
2391 #   define GuestSessionStatus_T PRUint32
2392 
2393 
2394 /* Start of enum GuestSessionWaitForFlag declaration */
2395 #   define GUESTSESSIONWAITFORFLAG_IID_STR "bb7a372a-f635-4e11-a81a-e707f3a52ef5"
2396 #   define GUESTSESSIONWAITFORFLAG_IID { \
2397     0xbb7a372a, 0xf635, 0x4e11, \
2398     { 0xa8, 0x1a, 0xe7, 0x07, 0xf3, 0xa5, 0x2e, 0xf5 } \
2399 }
2400 typedef enum GuestSessionWaitForFlag
2401 {
2402     GuestSessionWaitForFlag_None = 0,
2403     GuestSessionWaitForFlag_Start = 1,
2404     GuestSessionWaitForFlag_Terminate = 2,
2405     GuestSessionWaitForFlag_Status = 4
2406 } GuestSessionWaitForFlag;
2407 /* End of enum GuestSessionWaitForFlag declaration */
2408 #   define GuestSessionWaitForFlag_T PRUint32
2409 
2410 
2411 /* Start of enum GuestSessionWaitResult declaration */
2412 #   define GUESTSESSIONWAITRESULT_IID_STR "c0f6a8a5-fdb6-42bf-a582-56c6f82bcd2d"
2413 #   define GUESTSESSIONWAITRESULT_IID { \
2414     0xc0f6a8a5, 0xfdb6, 0x42bf, \
2415     { 0xa5, 0x82, 0x56, 0xc6, 0xf8, 0x2b, 0xcd, 0x2d } \
2416 }
2417 typedef enum GuestSessionWaitResult
2418 {
2419     GuestSessionWaitResult_None = 0,
2420     GuestSessionWaitResult_Start = 1,
2421     GuestSessionWaitResult_Terminate = 2,
2422     GuestSessionWaitResult_Status = 3,
2423     GuestSessionWaitResult_Error = 4,
2424     GuestSessionWaitResult_Timeout = 5,
2425     GuestSessionWaitResult_WaitFlagNotSupported = 6
2426 } GuestSessionWaitResult;
2427 /* End of enum GuestSessionWaitResult declaration */
2428 #   define GuestSessionWaitResult_T PRUint32
2429 
2430 
2431 /* Start of enum GuestUserState declaration */
2432 #   define GUESTUSERSTATE_IID_STR "b2a82b02-fd3d-4fc2-ba84-6ba5ac8be198"
2433 #   define GUESTUSERSTATE_IID { \
2434     0xb2a82b02, 0xfd3d, 0x4fc2, \
2435     { 0xba, 0x84, 0x6b, 0xa5, 0xac, 0x8b, 0xe1, 0x98 } \
2436 }
2437 typedef enum GuestUserState
2438 {
2439     GuestUserState_Unknown = 0,
2440     GuestUserState_LoggedIn = 1,
2441     GuestUserState_LoggedOut = 2,
2442     GuestUserState_Locked = 3,
2443     GuestUserState_Unlocked = 4,
2444     GuestUserState_Disabled = 5,
2445     GuestUserState_Idle = 6,
2446     GuestUserState_InUse = 7,
2447     GuestUserState_Created = 8,
2448     GuestUserState_Deleted = 9,
2449     GuestUserState_SessionChanged = 10,
2450     GuestUserState_CredentialsChanged = 11,
2451     GuestUserState_RoleChanged = 12,
2452     GuestUserState_GroupAdded = 13,
2453     GuestUserState_GroupRemoved = 14,
2454     GuestUserState_Elevated = 15
2455 } GuestUserState;
2456 /* End of enum GuestUserState declaration */
2457 #   define GuestUserState_T PRUint32
2458 
2459 
2460 /* Start of enum FileSeekOrigin declaration */
2461 #   define FILESEEKORIGIN_IID_STR "ad32f789-4279-4530-979c-f16892e1c263"
2462 #   define FILESEEKORIGIN_IID { \
2463     0xad32f789, 0x4279, 0x4530, \
2464     { 0x97, 0x9c, 0xf1, 0x68, 0x92, 0xe1, 0xc2, 0x63 } \
2465 }
2466 typedef enum FileSeekOrigin
2467 {
2468     FileSeekOrigin_Begin = 0,
2469     FileSeekOrigin_Current = 1,
2470     FileSeekOrigin_End = 2
2471 } FileSeekOrigin;
2472 /* End of enum FileSeekOrigin declaration */
2473 #   define FileSeekOrigin_T PRUint32
2474 
2475 
2476 /* Start of enum ProcessInputFlag declaration */
2477 #   define PROCESSINPUTFLAG_IID_STR "5d38c1dd-2604-4ddf-92e5-0c0cdd3bdbd5"
2478 #   define PROCESSINPUTFLAG_IID { \
2479     0x5d38c1dd, 0x2604, 0x4ddf, \
2480     { 0x92, 0xe5, 0x0c, 0x0c, 0xdd, 0x3b, 0xdb, 0xd5 } \
2481 }
2482 typedef enum ProcessInputFlag
2483 {
2484     ProcessInputFlag_None = 0,
2485     ProcessInputFlag_EndOfFile = 1
2486 } ProcessInputFlag;
2487 /* End of enum ProcessInputFlag declaration */
2488 #   define ProcessInputFlag_T PRUint32
2489 
2490 
2491 /* Start of enum ProcessOutputFlag declaration */
2492 #   define PROCESSOUTPUTFLAG_IID_STR "9979e85a-52bb-40b7-870c-57115e27e0f1"
2493 #   define PROCESSOUTPUTFLAG_IID { \
2494     0x9979e85a, 0x52bb, 0x40b7, \
2495     { 0x87, 0x0c, 0x57, 0x11, 0x5e, 0x27, 0xe0, 0xf1 } \
2496 }
2497 typedef enum ProcessOutputFlag
2498 {
2499     ProcessOutputFlag_None = 0,
2500     ProcessOutputFlag_StdErr = 1
2501 } ProcessOutputFlag;
2502 /* End of enum ProcessOutputFlag declaration */
2503 #   define ProcessOutputFlag_T PRUint32
2504 
2505 
2506 /* Start of enum ProcessWaitForFlag declaration */
2507 #   define PROCESSWAITFORFLAG_IID_STR "23b550c7-78e1-437e-98f0-65fd9757bcd2"
2508 #   define PROCESSWAITFORFLAG_IID { \
2509     0x23b550c7, 0x78e1, 0x437e, \
2510     { 0x98, 0xf0, 0x65, 0xfd, 0x97, 0x57, 0xbc, 0xd2 } \
2511 }
2512 typedef enum ProcessWaitForFlag
2513 {
2514     ProcessWaitForFlag_None = 0,
2515     ProcessWaitForFlag_Start = 1,
2516     ProcessWaitForFlag_Terminate = 2,
2517     ProcessWaitForFlag_StdIn = 4,
2518     ProcessWaitForFlag_StdOut = 8,
2519     ProcessWaitForFlag_StdErr = 16
2520 } ProcessWaitForFlag;
2521 /* End of enum ProcessWaitForFlag declaration */
2522 #   define ProcessWaitForFlag_T PRUint32
2523 
2524 
2525 /* Start of enum ProcessWaitResult declaration */
2526 #   define PROCESSWAITRESULT_IID_STR "40719cbe-f192-4fe9-a231-6697b3c8e2b4"
2527 #   define PROCESSWAITRESULT_IID { \
2528     0x40719cbe, 0xf192, 0x4fe9, \
2529     { 0xa2, 0x31, 0x66, 0x97, 0xb3, 0xc8, 0xe2, 0xb4 } \
2530 }
2531 typedef enum ProcessWaitResult
2532 {
2533     ProcessWaitResult_None = 0,
2534     ProcessWaitResult_Start = 1,
2535     ProcessWaitResult_Terminate = 2,
2536     ProcessWaitResult_Status = 3,
2537     ProcessWaitResult_Error = 4,
2538     ProcessWaitResult_Timeout = 5,
2539     ProcessWaitResult_StdIn = 6,
2540     ProcessWaitResult_StdOut = 7,
2541     ProcessWaitResult_StdErr = 8,
2542     ProcessWaitResult_WaitFlagNotSupported = 9
2543 } ProcessWaitResult;
2544 /* End of enum ProcessWaitResult declaration */
2545 #   define ProcessWaitResult_T PRUint32
2546 
2547 
2548 /* Start of enum FileCopyFlag declaration */
2549 #   define FILECOPYFLAG_IID_STR "791909d7-4c64-2fa4-4303-adb10658d347"
2550 #   define FILECOPYFLAG_IID { \
2551     0x791909d7, 0x4c64, 0x2fa4, \
2552     { 0x43, 0x03, 0xad, 0xb1, 0x06, 0x58, 0xd3, 0x47 } \
2553 }
2554 typedef enum FileCopyFlag
2555 {
2556     FileCopyFlag_None = 0,
2557     FileCopyFlag_NoReplace = 1,
2558     FileCopyFlag_FollowLinks = 2,
2559     FileCopyFlag_Update = 4
2560 } FileCopyFlag;
2561 /* End of enum FileCopyFlag declaration */
2562 #   define FileCopyFlag_T PRUint32
2563 
2564 
2565 /* Start of enum FsObjMoveFlags declaration */
2566 #   define FSOBJMOVEFLAGS_IID_STR "98fdd11f-4063-ac60-5737-e49092aab95f"
2567 #   define FSOBJMOVEFLAGS_IID { \
2568     0x98fdd11f, 0x4063, 0xac60, \
2569     { 0x57, 0x37, 0xe4, 0x90, 0x92, 0xaa, 0xb9, 0x5f } \
2570 }
2571 typedef enum FsObjMoveFlags
2572 {
2573     FsObjMoveFlags_None = 0,
2574     FsObjMoveFlags_Replace = 1,
2575     FsObjMoveFlags_FollowLinks = 2,
2576     FsObjMoveFlags_AllowDirectoryMoves = 4
2577 } FsObjMoveFlags;
2578 /* End of enum FsObjMoveFlags declaration */
2579 #   define FsObjMoveFlags_T PRUint32
2580 
2581 
2582 /* Start of enum DirectoryCreateFlag declaration */
2583 #   define DIRECTORYCREATEFLAG_IID_STR "bd721b0e-ced5-4f79-b368-249897c32a36"
2584 #   define DIRECTORYCREATEFLAG_IID { \
2585     0xbd721b0e, 0xced5, 0x4f79, \
2586     { 0xb3, 0x68, 0x24, 0x98, 0x97, 0xc3, 0x2a, 0x36 } \
2587 }
2588 typedef enum DirectoryCreateFlag
2589 {
2590     DirectoryCreateFlag_None = 0,
2591     DirectoryCreateFlag_Parents = 1
2592 } DirectoryCreateFlag;
2593 /* End of enum DirectoryCreateFlag declaration */
2594 #   define DirectoryCreateFlag_T PRUint32
2595 
2596 
2597 /* Start of enum DirectoryCopyFlags declaration */
2598 #   define DIRECTORYCOPYFLAGS_IID_STR "cc500f0c-4a54-88c9-56b3-7e9310416da7"
2599 #   define DIRECTORYCOPYFLAGS_IID { \
2600     0xcc500f0c, 0x4a54, 0x88c9, \
2601     { 0x56, 0xb3, 0x7e, 0x93, 0x10, 0x41, 0x6d, 0xa7 } \
2602 }
2603 typedef enum DirectoryCopyFlags
2604 {
2605     DirectoryCopyFlags_None = 0,
2606     DirectoryCopyFlags_CopyIntoExisting = 1
2607 } DirectoryCopyFlags;
2608 /* End of enum DirectoryCopyFlags declaration */
2609 #   define DirectoryCopyFlags_T PRUint32
2610 
2611 
2612 /* Start of enum DirectoryRemoveRecFlag declaration */
2613 #   define DIRECTORYREMOVERECFLAG_IID_STR "455aabf0-7692-48f6-9061-f21579b65769"
2614 #   define DIRECTORYREMOVERECFLAG_IID { \
2615     0x455aabf0, 0x7692, 0x48f6, \
2616     { 0x90, 0x61, 0xf2, 0x15, 0x79, 0xb6, 0x57, 0x69 } \
2617 }
2618 typedef enum DirectoryRemoveRecFlag
2619 {
2620     DirectoryRemoveRecFlag_None = 0,
2621     DirectoryRemoveRecFlag_ContentAndDir = 1,
2622     DirectoryRemoveRecFlag_ContentOnly = 2
2623 } DirectoryRemoveRecFlag;
2624 /* End of enum DirectoryRemoveRecFlag declaration */
2625 #   define DirectoryRemoveRecFlag_T PRUint32
2626 
2627 
2628 /* Start of enum FsObjRenameFlag declaration */
2629 #   define FSOBJRENAMEFLAG_IID_STR "59bbf3a1-4e23-d7cf-05d5-ccae32080ed2"
2630 #   define FSOBJRENAMEFLAG_IID { \
2631     0x59bbf3a1, 0x4e23, 0xd7cf, \
2632     { 0x05, 0xd5, 0xcc, 0xae, 0x32, 0x08, 0x0e, 0xd2 } \
2633 }
2634 typedef enum FsObjRenameFlag
2635 {
2636     FsObjRenameFlag_NoReplace = 0,
2637     FsObjRenameFlag_Replace = 1
2638 } FsObjRenameFlag;
2639 /* End of enum FsObjRenameFlag declaration */
2640 #   define FsObjRenameFlag_T PRUint32
2641 
2642 
2643 /* Start of enum ProcessCreateFlag declaration */
2644 #   define PROCESSCREATEFLAG_IID_STR "C544CD2B-F02D-4886-9901-71C523DB8DC5"
2645 #   define PROCESSCREATEFLAG_IID { \
2646     0xC544CD2B, 0xF02D, 0x4886, \
2647     { 0x99, 0x01, 0x71, 0xC5, 0x23, 0xDB, 0x8D, 0xC5 } \
2648 }
2649 typedef enum ProcessCreateFlag
2650 {
2651     ProcessCreateFlag_None = 0,
2652     ProcessCreateFlag_WaitForProcessStartOnly = 1,
2653     ProcessCreateFlag_IgnoreOrphanedProcesses = 2,
2654     ProcessCreateFlag_Hidden = 4,
2655     ProcessCreateFlag_Profile = 8,
2656     ProcessCreateFlag_WaitForStdOut = 16,
2657     ProcessCreateFlag_WaitForStdErr = 32,
2658     ProcessCreateFlag_ExpandArguments = 64,
2659     ProcessCreateFlag_UnquotedArguments = 128
2660 } ProcessCreateFlag;
2661 /* End of enum ProcessCreateFlag declaration */
2662 #   define ProcessCreateFlag_T PRUint32
2663 
2664 
2665 /* Start of enum ProcessPriority declaration */
2666 #   define PROCESSPRIORITY_IID_STR "ee8cac50-e232-49fe-806b-d1214d9c2e49"
2667 #   define PROCESSPRIORITY_IID { \
2668     0xee8cac50, 0xe232, 0x49fe, \
2669     { 0x80, 0x6b, 0xd1, 0x21, 0x4d, 0x9c, 0x2e, 0x49 } \
2670 }
2671 typedef enum ProcessPriority
2672 {
2673     ProcessPriority_Invalid = 0,
2674     ProcessPriority_Default = 1
2675 } ProcessPriority;
2676 /* End of enum ProcessPriority declaration */
2677 #   define ProcessPriority_T PRUint32
2678 
2679 
2680 /* Start of enum SymlinkType declaration */
2681 #   define SYMLINKTYPE_IID_STR "37794668-f8f1-4714-98a5-6f8fa2ed0118"
2682 #   define SYMLINKTYPE_IID { \
2683     0x37794668, 0xf8f1, 0x4714, \
2684     { 0x98, 0xa5, 0x6f, 0x8f, 0xa2, 0xed, 0x01, 0x18 } \
2685 }
2686 typedef enum SymlinkType
2687 {
2688     SymlinkType_Unknown = 0,
2689     SymlinkType_Directory = 1,
2690     SymlinkType_File = 2
2691 } SymlinkType;
2692 /* End of enum SymlinkType declaration */
2693 #   define SymlinkType_T PRUint32
2694 
2695 
2696 /* Start of enum SymlinkReadFlag declaration */
2697 #   define SYMLINKREADFLAG_IID_STR "b7fe2b9d-790e-4b25-8adf-1ca33026931f"
2698 #   define SYMLINKREADFLAG_IID { \
2699     0xb7fe2b9d, 0x790e, 0x4b25, \
2700     { 0x8a, 0xdf, 0x1c, 0xa3, 0x30, 0x26, 0x93, 0x1f } \
2701 }
2702 typedef enum SymlinkReadFlag
2703 {
2704     SymlinkReadFlag_None = 0,
2705     SymlinkReadFlag_NoSymlinks = 1
2706 } SymlinkReadFlag;
2707 /* End of enum SymlinkReadFlag declaration */
2708 #   define SymlinkReadFlag_T PRUint32
2709 
2710 
2711 /* Start of enum ProcessStatus declaration */
2712 #   define PROCESSSTATUS_IID_STR "4d52368f-5b48-4bfe-b486-acf89139b52f"
2713 #   define PROCESSSTATUS_IID { \
2714     0x4d52368f, 0x5b48, 0x4bfe, \
2715     { 0xb4, 0x86, 0xac, 0xf8, 0x91, 0x39, 0xb5, 0x2f } \
2716 }
2717 typedef enum ProcessStatus
2718 {
2719     ProcessStatus_Undefined = 0,
2720     ProcessStatus_Starting = 10,
2721     ProcessStatus_Started = 100,
2722     ProcessStatus_Paused = 110,
2723     ProcessStatus_Terminating = 480,
2724     ProcessStatus_TerminatedNormally = 500,
2725     ProcessStatus_TerminatedSignal = 510,
2726     ProcessStatus_TerminatedAbnormally = 511,
2727     ProcessStatus_TimedOutKilled = 512,
2728     ProcessStatus_TimedOutAbnormally = 513,
2729     ProcessStatus_Down = 600,
2730     ProcessStatus_Error = 800
2731 } ProcessStatus;
2732 /* End of enum ProcessStatus declaration */
2733 #   define ProcessStatus_T PRUint32
2734 
2735 
2736 /* Start of enum ProcessInputStatus declaration */
2737 #   define PROCESSINPUTSTATUS_IID_STR "a4a0ef9c-29cc-4805-9803-c8215ae9da6c"
2738 #   define PROCESSINPUTSTATUS_IID { \
2739     0xa4a0ef9c, 0x29cc, 0x4805, \
2740     { 0x98, 0x03, 0xc8, 0x21, 0x5a, 0xe9, 0xda, 0x6c } \
2741 }
2742 typedef enum ProcessInputStatus
2743 {
2744     ProcessInputStatus_Undefined = 0,
2745     ProcessInputStatus_Broken = 1,
2746     ProcessInputStatus_Available = 10,
2747     ProcessInputStatus_Written = 50,
2748     ProcessInputStatus_Overflow = 100
2749 } ProcessInputStatus;
2750 /* End of enum ProcessInputStatus declaration */
2751 #   define ProcessInputStatus_T PRUint32
2752 
2753 
2754 /* Start of enum PathStyle declaration */
2755 #   define PATHSTYLE_IID_STR "97303a5b-42e8-0a55-d16f-d2a92c295261"
2756 #   define PATHSTYLE_IID { \
2757     0x97303a5b, 0x42e8, 0x0a55, \
2758     { 0xd1, 0x6f, 0xd2, 0xa9, 0x2c, 0x29, 0x52, 0x61 } \
2759 }
2760 typedef enum PathStyle
2761 {
2762     PathStyle_DOS = 1,
2763     PathStyle_UNIX = 2,
2764     PathStyle_Unknown = 8
2765 } PathStyle;
2766 /* End of enum PathStyle declaration */
2767 #   define PathStyle_T PRUint32
2768 
2769 
2770 /* Start of enum FileAccessMode declaration */
2771 #   define FILEACCESSMODE_IID_STR "231a578f-47fb-ea30-3b3e-8489558227f0"
2772 #   define FILEACCESSMODE_IID { \
2773     0x231a578f, 0x47fb, 0xea30, \
2774     { 0x3b, 0x3e, 0x84, 0x89, 0x55, 0x82, 0x27, 0xf0 } \
2775 }
2776 typedef enum FileAccessMode
2777 {
2778     FileAccessMode_ReadOnly = 1,
2779     FileAccessMode_WriteOnly = 2,
2780     FileAccessMode_ReadWrite = 3,
2781     FileAccessMode_AppendOnly = 4,
2782     FileAccessMode_AppendRead = 5
2783 } FileAccessMode;
2784 /* End of enum FileAccessMode declaration */
2785 #   define FileAccessMode_T PRUint32
2786 
2787 
2788 /* Start of enum FileOpenAction declaration */
2789 #   define FILEOPENACTION_IID_STR "12bc97e2-4fc6-a8b4-4f84-0cbf4ab970d2"
2790 #   define FILEOPENACTION_IID { \
2791     0x12bc97e2, 0x4fc6, 0xa8b4, \
2792     { 0x4f, 0x84, 0x0c, 0xbf, 0x4a, 0xb9, 0x70, 0xd2 } \
2793 }
2794 typedef enum FileOpenAction
2795 {
2796     FileOpenAction_OpenExisting = 1,
2797     FileOpenAction_OpenOrCreate = 2,
2798     FileOpenAction_CreateNew = 3,
2799     FileOpenAction_CreateOrReplace = 4,
2800     FileOpenAction_OpenExistingTruncated = 5,
2801     FileOpenAction_AppendOrCreate = 99
2802 } FileOpenAction;
2803 /* End of enum FileOpenAction declaration */
2804 #   define FileOpenAction_T PRUint32
2805 
2806 
2807 /* Start of enum FileSharingMode declaration */
2808 #   define FILESHARINGMODE_IID_STR "f87dfe58-425b-c5ba-7d6d-22adeea25de1"
2809 #   define FILESHARINGMODE_IID { \
2810     0xf87dfe58, 0x425b, 0xc5ba, \
2811     { 0x7d, 0x6d, 0x22, 0xad, 0xee, 0xa2, 0x5d, 0xe1 } \
2812 }
2813 typedef enum FileSharingMode
2814 {
2815     FileSharingMode_Read = 1,
2816     FileSharingMode_Write = 2,
2817     FileSharingMode_ReadWrite = 3,
2818     FileSharingMode_Delete = 4,
2819     FileSharingMode_ReadDelete = 5,
2820     FileSharingMode_WriteDelete = 6,
2821     FileSharingMode_All = 7
2822 } FileSharingMode;
2823 /* End of enum FileSharingMode declaration */
2824 #   define FileSharingMode_T PRUint32
2825 
2826 
2827 /* Start of enum FileOpenExFlags declaration */
2828 #   define FILEOPENEXFLAGS_IID_STR "9d62017b-ddd3-4e5a-a08e-14d1c23bbac1"
2829 #   define FILEOPENEXFLAGS_IID { \
2830     0x9d62017b, 0xddd3, 0x4e5a, \
2831     { 0xa0, 0x8e, 0x14, 0xd1, 0xc2, 0x3b, 0xba, 0xc1 } \
2832 }
2833 typedef enum FileOpenExFlags
2834 {
2835     FileOpenExFlags_None = 0
2836 } FileOpenExFlags;
2837 /* End of enum FileOpenExFlags declaration */
2838 #   define FileOpenExFlags_T PRUint32
2839 
2840 
2841 /* Start of enum FileStatus declaration */
2842 #   define FILESTATUS_IID_STR "8c86468b-b97b-4080-8914-e29f5b0abd2c"
2843 #   define FILESTATUS_IID { \
2844     0x8c86468b, 0xb97b, 0x4080, \
2845     { 0x89, 0x14, 0xe2, 0x9f, 0x5b, 0x0a, 0xbd, 0x2c } \
2846 }
2847 typedef enum FileStatus
2848 {
2849     FileStatus_Undefined = 0,
2850     FileStatus_Opening = 10,
2851     FileStatus_Open = 100,
2852     FileStatus_Closing = 150,
2853     FileStatus_Closed = 200,
2854     FileStatus_Down = 600,
2855     FileStatus_Error = 800
2856 } FileStatus;
2857 /* End of enum FileStatus declaration */
2858 #   define FileStatus_T PRUint32
2859 
2860 
2861 /* Start of enum FsObjType declaration */
2862 #   define FSOBJTYPE_IID_STR "34a0d1aa-491e-e209-e150-84964d6cee5f"
2863 #   define FSOBJTYPE_IID { \
2864     0x34a0d1aa, 0x491e, 0xe209, \
2865     { 0xe1, 0x50, 0x84, 0x96, 0x4d, 0x6c, 0xee, 0x5f } \
2866 }
2867 typedef enum FsObjType
2868 {
2869     FsObjType_Unknown = 1,
2870     FsObjType_Fifo = 2,
2871     FsObjType_DevChar = 3,
2872     FsObjType_Directory = 4,
2873     FsObjType_DevBlock = 5,
2874     FsObjType_File = 6,
2875     FsObjType_Symlink = 7,
2876     FsObjType_Socket = 8,
2877     FsObjType_WhiteOut = 9
2878 } FsObjType;
2879 /* End of enum FsObjType declaration */
2880 #   define FsObjType_T PRUint32
2881 
2882 
2883 /* Start of enum DnDAction declaration */
2884 #   define DNDACTION_IID_STR "17609e74-778e-4d0e-8827-35f5230f287b"
2885 #   define DNDACTION_IID { \
2886     0x17609e74, 0x778e, 0x4d0e, \
2887     { 0x88, 0x27, 0x35, 0xf5, 0x23, 0x0f, 0x28, 0x7b } \
2888 }
2889 typedef enum DnDAction
2890 {
2891     DnDAction_Ignore = 0,
2892     DnDAction_Copy = 1,
2893     DnDAction_Move = 2,
2894     DnDAction_Link = 3
2895 } DnDAction;
2896 /* End of enum DnDAction declaration */
2897 #   define DnDAction_T PRUint32
2898 
2899 
2900 /* Start of enum DirectoryOpenFlag declaration */
2901 #   define DIRECTORYOPENFLAG_IID_STR "5138837a-8fd2-4194-a1b0-08f7bc3949d0"
2902 #   define DIRECTORYOPENFLAG_IID { \
2903     0x5138837a, 0x8fd2, 0x4194, \
2904     { 0xa1, 0xb0, 0x08, 0xf7, 0xbc, 0x39, 0x49, 0xd0 } \
2905 }
2906 typedef enum DirectoryOpenFlag
2907 {
2908     DirectoryOpenFlag_None = 0,
2909     DirectoryOpenFlag_NoSymlinks = 1
2910 } DirectoryOpenFlag;
2911 /* End of enum DirectoryOpenFlag declaration */
2912 #   define DirectoryOpenFlag_T PRUint32
2913 
2914 
2915 /* Start of enum MediumState declaration */
2916 #   define MEDIUMSTATE_IID_STR "ef41e980-e012-43cd-9dea-479d4ef14d13"
2917 #   define MEDIUMSTATE_IID { \
2918     0xef41e980, 0xe012, 0x43cd, \
2919     { 0x9d, 0xea, 0x47, 0x9d, 0x4e, 0xf1, 0x4d, 0x13 } \
2920 }
2921 typedef enum MediumState
2922 {
2923     MediumState_NotCreated = 0,
2924     MediumState_Created = 1,
2925     MediumState_LockedRead = 2,
2926     MediumState_LockedWrite = 3,
2927     MediumState_Inaccessible = 4,
2928     MediumState_Creating = 5,
2929     MediumState_Deleting = 6
2930 } MediumState;
2931 /* End of enum MediumState declaration */
2932 #   define MediumState_T PRUint32
2933 
2934 
2935 /* Start of enum MediumType declaration */
2936 #   define MEDIUMTYPE_IID_STR "fe663fb5-c244-4e1b-9d81-c628b417dd04"
2937 #   define MEDIUMTYPE_IID { \
2938     0xfe663fb5, 0xc244, 0x4e1b, \
2939     { 0x9d, 0x81, 0xc6, 0x28, 0xb4, 0x17, 0xdd, 0x04 } \
2940 }
2941 typedef enum MediumType
2942 {
2943     MediumType_Normal = 0,
2944     MediumType_Immutable = 1,
2945     MediumType_Writethrough = 2,
2946     MediumType_Shareable = 3,
2947     MediumType_Readonly = 4,
2948     MediumType_MultiAttach = 5
2949 } MediumType;
2950 /* End of enum MediumType declaration */
2951 #   define MediumType_T PRUint32
2952 
2953 
2954 /* Start of enum MediumVariant declaration */
2955 #   define MEDIUMVARIANT_IID_STR "0282e97f-4ef3-4411-a8e0-47c384803cb6"
2956 #   define MEDIUMVARIANT_IID { \
2957     0x0282e97f, 0x4ef3, 0x4411, \
2958     { 0xa8, 0xe0, 0x47, 0xc3, 0x84, 0x80, 0x3c, 0xb6 } \
2959 }
2960 typedef enum MediumVariant
2961 {
2962     MediumVariant_Standard = 0,
2963     MediumVariant_VmdkSplit2G = 0x01,
2964     MediumVariant_VmdkRawDisk = 0x02,
2965     MediumVariant_VmdkStreamOptimized = 0x04,
2966     MediumVariant_VmdkESX = 0x08,
2967     MediumVariant_VdiZeroExpand = 0x100,
2968     MediumVariant_Fixed = 0x10000,
2969     MediumVariant_Diff = 0x20000,
2970     MediumVariant_NoCreateDir = 0x40000000
2971 } MediumVariant;
2972 /* End of enum MediumVariant declaration */
2973 #   define MediumVariant_T PRUint32
2974 
2975 
2976 /* Start of enum DataType declaration */
2977 #   define DATATYPE_IID_STR "d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7"
2978 #   define DATATYPE_IID { \
2979     0xd90ea51e, 0xa3f1, 0x4a01, \
2980     { 0xbe, 0xb1, 0xc1, 0x72, 0x3c, 0x0d, 0x3b, 0xa7 } \
2981 }
2982 typedef enum DataType
2983 {
2984     DataType_Int32 = 0,
2985     DataType_Int8 = 1,
2986     DataType_String = 2
2987 } DataType;
2988 /* End of enum DataType declaration */
2989 #   define DataType_T PRUint32
2990 
2991 
2992 /* Start of enum DataFlags declaration */
2993 #   define DATAFLAGS_IID_STR "86884dcf-1d6b-4f1b-b4bf-f5aa44959d60"
2994 #   define DATAFLAGS_IID { \
2995     0x86884dcf, 0x1d6b, 0x4f1b, \
2996     { 0xb4, 0xbf, 0xf5, 0xaa, 0x44, 0x95, 0x9d, 0x60 } \
2997 }
2998 typedef enum DataFlags
2999 {
3000     DataFlags_None = 0x00,
3001     DataFlags_Mandatory = 0x01,
3002     DataFlags_Expert = 0x02,
3003     DataFlags_Array = 0x04,
3004     DataFlags_FlagMask = 0x07
3005 } DataFlags;
3006 /* End of enum DataFlags declaration */
3007 #   define DataFlags_T PRUint32
3008 
3009 
3010 /* Start of enum MediumFormatCapabilities declaration */
3011 #   define MEDIUMFORMATCAPABILITIES_IID_STR "7342ba79-7ce0-4d94-8f86-5ed5a185d9bd"
3012 #   define MEDIUMFORMATCAPABILITIES_IID { \
3013     0x7342ba79, 0x7ce0, 0x4d94, \
3014     { 0x8f, 0x86, 0x5e, 0xd5, 0xa1, 0x85, 0xd9, 0xbd } \
3015 }
3016 typedef enum MediumFormatCapabilities
3017 {
3018     MediumFormatCapabilities_Uuid = 0x01,
3019     MediumFormatCapabilities_CreateFixed = 0x02,
3020     MediumFormatCapabilities_CreateDynamic = 0x04,
3021     MediumFormatCapabilities_CreateSplit2G = 0x08,
3022     MediumFormatCapabilities_Differencing = 0x10,
3023     MediumFormatCapabilities_Asynchronous = 0x20,
3024     MediumFormatCapabilities_File = 0x40,
3025     MediumFormatCapabilities_Properties = 0x80,
3026     MediumFormatCapabilities_TcpNetworking = 0x100,
3027     MediumFormatCapabilities_VFS = 0x200,
3028     MediumFormatCapabilities_Discard = 0x400,
3029     MediumFormatCapabilities_Preferred = 0x800,
3030     MediumFormatCapabilities_CapabilityMask = 0xFFF
3031 } MediumFormatCapabilities;
3032 /* End of enum MediumFormatCapabilities declaration */
3033 #   define MediumFormatCapabilities_T PRUint32
3034 
3035 
3036 /* Start of enum KeyboardLED declaration */
3037 #   define KEYBOARDLED_IID_STR "ef29ea38-409b-49c7-a817-c858d426dfba"
3038 #   define KEYBOARDLED_IID { \
3039     0xef29ea38, 0x409b, 0x49c7, \
3040     { 0xa8, 0x17, 0xc8, 0x58, 0xd4, 0x26, 0xdf, 0xba } \
3041 }
3042 typedef enum KeyboardLED
3043 {
3044     KeyboardLED_NumLock = 0x01,
3045     KeyboardLED_CapsLock = 0x02,
3046     KeyboardLED_ScrollLock = 0x04
3047 } KeyboardLED;
3048 /* End of enum KeyboardLED declaration */
3049 #   define KeyboardLED_T PRUint32
3050 
3051 
3052 /* Start of enum MouseButtonState declaration */
3053 #   define MOUSEBUTTONSTATE_IID_STR "9ee094b8-b28a-4d56-a166-973cb588d7f8"
3054 #   define MOUSEBUTTONSTATE_IID { \
3055     0x9ee094b8, 0xb28a, 0x4d56, \
3056     { 0xa1, 0x66, 0x97, 0x3c, 0xb5, 0x88, 0xd7, 0xf8 } \
3057 }
3058 typedef enum MouseButtonState
3059 {
3060     MouseButtonState_LeftButton = 0x01,
3061     MouseButtonState_RightButton = 0x02,
3062     MouseButtonState_MiddleButton = 0x04,
3063     MouseButtonState_WheelUp = 0x08,
3064     MouseButtonState_WheelDown = 0x10,
3065     MouseButtonState_XButton1 = 0x20,
3066     MouseButtonState_XButton2 = 0x40,
3067     MouseButtonState_MouseStateMask = 0x7F
3068 } MouseButtonState;
3069 /* End of enum MouseButtonState declaration */
3070 #   define MouseButtonState_T PRUint32
3071 
3072 
3073 /* Start of enum TouchContactState declaration */
3074 #   define TOUCHCONTACTSTATE_IID_STR "3f942686-2506-421c-927c-90d4b45f4a38"
3075 #   define TOUCHCONTACTSTATE_IID { \
3076     0x3f942686, 0x2506, 0x421c, \
3077     { 0x92, 0x7c, 0x90, 0xd4, 0xb4, 0x5f, 0x4a, 0x38 } \
3078 }
3079 typedef enum TouchContactState
3080 {
3081     TouchContactState_None = 0x00,
3082     TouchContactState_InContact = 0x01,
3083     TouchContactState_InRange = 0x02,
3084     TouchContactState_ContactStateMask = 0x03
3085 } TouchContactState;
3086 /* End of enum TouchContactState declaration */
3087 #   define TouchContactState_T PRUint32
3088 
3089 
3090 /* Start of enum FramebufferCapabilities declaration */
3091 #   define FRAMEBUFFERCAPABILITIES_IID_STR "cc395839-30fa-4ca5-ae65-e6360e3edd7a"
3092 #   define FRAMEBUFFERCAPABILITIES_IID { \
3093     0xcc395839, 0x30fa, 0x4ca5, \
3094     { 0xae, 0x65, 0xe6, 0x36, 0x0e, 0x3e, 0xdd, 0x7a } \
3095 }
3096 typedef enum FramebufferCapabilities
3097 {
3098     FramebufferCapabilities_UpdateImage = 0x01,
3099     FramebufferCapabilities_VHWA = 0x02,
3100     FramebufferCapabilities_VisibleRegion = 0x04
3101 } FramebufferCapabilities;
3102 /* End of enum FramebufferCapabilities declaration */
3103 #   define FramebufferCapabilities_T PRUint32
3104 
3105 
3106 /* Start of enum GuestMonitorStatus declaration */
3107 #   define GUESTMONITORSTATUS_IID_STR "6b8d3f71-39cb-459e-a916-48917ed43e19"
3108 #   define GUESTMONITORSTATUS_IID { \
3109     0x6b8d3f71, 0x39cb, 0x459e, \
3110     { 0xa9, 0x16, 0x48, 0x91, 0x7e, 0xd4, 0x3e, 0x19 } \
3111 }
3112 typedef enum GuestMonitorStatus
3113 {
3114     GuestMonitorStatus_Disabled = 0,
3115     GuestMonitorStatus_Enabled = 1,
3116     GuestMonitorStatus_Blank = 2
3117 } GuestMonitorStatus;
3118 /* End of enum GuestMonitorStatus declaration */
3119 #   define GuestMonitorStatus_T PRUint32
3120 
3121 
3122 /* Start of enum ScreenLayoutMode declaration */
3123 #   define SCREENLAYOUTMODE_IID_STR "c7a9ee66-cfed-438b-9f8c-d3adf7588a4d"
3124 #   define SCREENLAYOUTMODE_IID { \
3125     0xc7a9ee66, 0xcfed, 0x438b, \
3126     { 0x9f, 0x8c, 0xd3, 0xad, 0xf7, 0x58, 0x8a, 0x4d } \
3127 }
3128 typedef enum ScreenLayoutMode
3129 {
3130     ScreenLayoutMode_Apply = 0,
3131     ScreenLayoutMode_Reset = 1,
3132     ScreenLayoutMode_Attach = 2
3133 } ScreenLayoutMode;
3134 /* End of enum ScreenLayoutMode declaration */
3135 #   define ScreenLayoutMode_T PRUint32
3136 
3137 
3138 /* Start of enum NetworkAttachmentType declaration */
3139 #   define NETWORKATTACHMENTTYPE_IID_STR "524a8f9d-4b86-4b51-877d-1aa27c4ebeac"
3140 #   define NETWORKATTACHMENTTYPE_IID { \
3141     0x524a8f9d, 0x4b86, 0x4b51, \
3142     { 0x87, 0x7d, 0x1a, 0xa2, 0x7c, 0x4e, 0xbe, 0xac } \
3143 }
3144 typedef enum NetworkAttachmentType
3145 {
3146     NetworkAttachmentType_Null = 0,
3147     NetworkAttachmentType_NAT = 1,
3148     NetworkAttachmentType_Bridged = 2,
3149     NetworkAttachmentType_Internal = 3,
3150     NetworkAttachmentType_HostOnly = 4,
3151     NetworkAttachmentType_Generic = 5,
3152     NetworkAttachmentType_NATNetwork = 6
3153 } NetworkAttachmentType;
3154 /* End of enum NetworkAttachmentType declaration */
3155 #   define NetworkAttachmentType_T PRUint32
3156 
3157 
3158 /* Start of enum NetworkAdapterType declaration */
3159 #   define NETWORKADAPTERTYPE_IID_STR "3c2281e4-d952-4e87-8c7d-24379cb6a81c"
3160 #   define NETWORKADAPTERTYPE_IID { \
3161     0x3c2281e4, 0xd952, 0x4e87, \
3162     { 0x8c, 0x7d, 0x24, 0x37, 0x9c, 0xb6, 0xa8, 0x1c } \
3163 }
3164 typedef enum NetworkAdapterType
3165 {
3166     NetworkAdapterType_Null = 0,
3167     NetworkAdapterType_Am79C970A = 1,
3168     NetworkAdapterType_Am79C973 = 2,
3169     NetworkAdapterType_I82540EM = 3,
3170     NetworkAdapterType_I82543GC = 4,
3171     NetworkAdapterType_I82545EM = 5,
3172     NetworkAdapterType_Virtio = 6
3173 } NetworkAdapterType;
3174 /* End of enum NetworkAdapterType declaration */
3175 #   define NetworkAdapterType_T PRUint32
3176 
3177 
3178 /* Start of enum NetworkAdapterPromiscModePolicy declaration */
3179 #   define NETWORKADAPTERPROMISCMODEPOLICY_IID_STR "c963768a-376f-4c85-8d84-d8ced4b7269e"
3180 #   define NETWORKADAPTERPROMISCMODEPOLICY_IID { \
3181     0xc963768a, 0x376f, 0x4c85, \
3182     { 0x8d, 0x84, 0xd8, 0xce, 0xd4, 0xb7, 0x26, 0x9e } \
3183 }
3184 typedef enum NetworkAdapterPromiscModePolicy
3185 {
3186     NetworkAdapterPromiscModePolicy_Deny = 1,
3187     NetworkAdapterPromiscModePolicy_AllowNetwork = 2,
3188     NetworkAdapterPromiscModePolicy_AllowAll = 3
3189 } NetworkAdapterPromiscModePolicy;
3190 /* End of enum NetworkAdapterPromiscModePolicy declaration */
3191 #   define NetworkAdapterPromiscModePolicy_T PRUint32
3192 
3193 
3194 /* Start of enum PortMode declaration */
3195 #   define PORTMODE_IID_STR "7485fcfd-d603-470a-87af-26d33beb7de9"
3196 #   define PORTMODE_IID { \
3197     0x7485fcfd, 0xd603, 0x470a, \
3198     { 0x87, 0xaf, 0x26, 0xd3, 0x3b, 0xeb, 0x7d, 0xe9 } \
3199 }
3200 typedef enum PortMode
3201 {
3202     PortMode_Disconnected = 0,
3203     PortMode_HostPipe = 1,
3204     PortMode_HostDevice = 2,
3205     PortMode_RawFile = 3,
3206     PortMode_TCP = 4
3207 } PortMode;
3208 /* End of enum PortMode declaration */
3209 #   define PortMode_T PRUint32
3210 
3211 
3212 /* Start of enum USBControllerType declaration */
3213 #   define USBCONTROLLERTYPE_IID_STR "8fdd1c6a-5412-41da-ab07-7baed7d6e18e"
3214 #   define USBCONTROLLERTYPE_IID { \
3215     0x8fdd1c6a, 0x5412, 0x41da, \
3216     { 0xab, 0x07, 0x7b, 0xae, 0xd7, 0xd6, 0xe1, 0x8e } \
3217 }
3218 typedef enum USBControllerType
3219 {
3220     USBControllerType_Null = 0,
3221     USBControllerType_OHCI = 1,
3222     USBControllerType_EHCI = 2,
3223     USBControllerType_XHCI = 3,
3224     USBControllerType_Last = 4
3225 } USBControllerType;
3226 /* End of enum USBControllerType declaration */
3227 #   define USBControllerType_T PRUint32
3228 
3229 
3230 /* Start of enum USBConnectionSpeed declaration */
3231 #   define USBCONNECTIONSPEED_IID_STR "d2915840-ea26-4fb4-b72a-21eaf6b888ff"
3232 #   define USBCONNECTIONSPEED_IID { \
3233     0xd2915840, 0xea26, 0x4fb4, \
3234     { 0xb7, 0x2a, 0x21, 0xea, 0xf6, 0xb8, 0x88, 0xff } \
3235 }
3236 typedef enum USBConnectionSpeed
3237 {
3238     USBConnectionSpeed_Null = 0,
3239     USBConnectionSpeed_Low = 1,
3240     USBConnectionSpeed_Full = 2,
3241     USBConnectionSpeed_High = 3,
3242     USBConnectionSpeed_Super = 4,
3243     USBConnectionSpeed_SuperPlus = 5
3244 } USBConnectionSpeed;
3245 /* End of enum USBConnectionSpeed declaration */
3246 #   define USBConnectionSpeed_T PRUint32
3247 
3248 
3249 /* Start of enum USBDeviceState declaration */
3250 #   define USBDEVICESTATE_IID_STR "b99a2e65-67fb-4882-82fd-f3e5e8193ab4"
3251 #   define USBDEVICESTATE_IID { \
3252     0xb99a2e65, 0x67fb, 0x4882, \
3253     { 0x82, 0xfd, 0xf3, 0xe5, 0xe8, 0x19, 0x3a, 0xb4 } \
3254 }
3255 typedef enum USBDeviceState
3256 {
3257     USBDeviceState_NotSupported = 0,
3258     USBDeviceState_Unavailable = 1,
3259     USBDeviceState_Busy = 2,
3260     USBDeviceState_Available = 3,
3261     USBDeviceState_Held = 4,
3262     USBDeviceState_Captured = 5
3263 } USBDeviceState;
3264 /* End of enum USBDeviceState declaration */
3265 #   define USBDeviceState_T PRUint32
3266 
3267 
3268 /* Start of enum USBDeviceFilterAction declaration */
3269 #   define USBDEVICEFILTERACTION_IID_STR "cbc30a49-2f4e-43b5-9da6-121320475933"
3270 #   define USBDEVICEFILTERACTION_IID { \
3271     0xcbc30a49, 0x2f4e, 0x43b5, \
3272     { 0x9d, 0xa6, 0x12, 0x13, 0x20, 0x47, 0x59, 0x33 } \
3273 }
3274 typedef enum USBDeviceFilterAction
3275 {
3276     USBDeviceFilterAction_Null = 0,
3277     USBDeviceFilterAction_Ignore = 1,
3278     USBDeviceFilterAction_Hold = 2
3279 } USBDeviceFilterAction;
3280 /* End of enum USBDeviceFilterAction declaration */
3281 #   define USBDeviceFilterAction_T PRUint32
3282 
3283 
3284 /* Start of enum AudioDriverType declaration */
3285 #   define AUDIODRIVERTYPE_IID_STR "4bcc3d73-c2fe-40db-b72f-0c2ca9d68496"
3286 #   define AUDIODRIVERTYPE_IID { \
3287     0x4bcc3d73, 0xc2fe, 0x40db, \
3288     { 0xb7, 0x2f, 0x0c, 0x2c, 0xa9, 0xd6, 0x84, 0x96 } \
3289 }
3290 typedef enum AudioDriverType
3291 {
3292     AudioDriverType_Null = 0,
3293     AudioDriverType_WinMM = 1,
3294     AudioDriverType_OSS = 2,
3295     AudioDriverType_ALSA = 3,
3296     AudioDriverType_DirectSound = 4,
3297     AudioDriverType_CoreAudio = 5,
3298     AudioDriverType_MMPM = 6,
3299     AudioDriverType_Pulse = 7,
3300     AudioDriverType_SolAudio = 8
3301 } AudioDriverType;
3302 /* End of enum AudioDriverType declaration */
3303 #   define AudioDriverType_T PRUint32
3304 
3305 
3306 /* Start of enum AudioControllerType declaration */
3307 #   define AUDIOCONTROLLERTYPE_IID_STR "7afd395c-42c3-444e-8788-3ce80292f36c"
3308 #   define AUDIOCONTROLLERTYPE_IID { \
3309     0x7afd395c, 0x42c3, 0x444e, \
3310     { 0x87, 0x88, 0x3c, 0xe8, 0x02, 0x92, 0xf3, 0x6c } \
3311 }
3312 typedef enum AudioControllerType
3313 {
3314     AudioControllerType_AC97 = 0,
3315     AudioControllerType_SB16 = 1,
3316     AudioControllerType_HDA = 2
3317 } AudioControllerType;
3318 /* End of enum AudioControllerType declaration */
3319 #   define AudioControllerType_T PRUint32
3320 
3321 
3322 /* Start of enum AudioCodecType declaration */
3323 #   define AUDIOCODECTYPE_IID_STR "7b406301-f520-420c-9805-8ce11c086370"
3324 #   define AUDIOCODECTYPE_IID { \
3325     0x7b406301, 0xf520, 0x420c, \
3326     { 0x98, 0x05, 0x8c, 0xe1, 0x1c, 0x08, 0x63, 0x70 } \
3327 }
3328 typedef enum AudioCodecType
3329 {
3330     AudioCodecType_Null = 0,
3331     AudioCodecType_SB16 = 1,
3332     AudioCodecType_STAC9700 = 2,
3333     AudioCodecType_AD1980 = 3,
3334     AudioCodecType_STAC9221 = 4
3335 } AudioCodecType;
3336 /* End of enum AudioCodecType declaration */
3337 #   define AudioCodecType_T PRUint32
3338 
3339 
3340 /* Start of enum AuthType declaration */
3341 #   define AUTHTYPE_IID_STR "7eef6ef6-98c2-4dc2-ab35-10d2b292028d"
3342 #   define AUTHTYPE_IID { \
3343     0x7eef6ef6, 0x98c2, 0x4dc2, \
3344     { 0xab, 0x35, 0x10, 0xd2, 0xb2, 0x92, 0x02, 0x8d } \
3345 }
3346 typedef enum AuthType
3347 {
3348     AuthType_Null = 0,
3349     AuthType_External = 1,
3350     AuthType_Guest = 2
3351 } AuthType;
3352 /* End of enum AuthType declaration */
3353 #   define AuthType_T PRUint32
3354 
3355 
3356 /* Start of enum Reason declaration */
3357 #   define REASON_IID_STR "e7e8e097-299d-4e98-8bbc-c31c2d47d0cc"
3358 #   define REASON_IID { \
3359     0xe7e8e097, 0x299d, 0x4e98, \
3360     { 0x8b, 0xbc, 0xc3, 0x1c, 0x2d, 0x47, 0xd0, 0xcc } \
3361 }
3362 typedef enum Reason
3363 {
3364     Reason_Unspecified = 0,
3365     Reason_HostSuspend = 1,
3366     Reason_HostResume = 2,
3367     Reason_HostBatteryLow = 3,
3368     Reason_Snapshot = 4
3369 } Reason;
3370 /* End of enum Reason declaration */
3371 #   define Reason_T PRUint32
3372 
3373 
3374 /* Start of enum StorageBus declaration */
3375 #   define STORAGEBUS_IID_STR "21371490-8542-4b5a-a74d-ee9ac2d45a90"
3376 #   define STORAGEBUS_IID { \
3377     0x21371490, 0x8542, 0x4b5a, \
3378     { 0xa7, 0x4d, 0xee, 0x9a, 0xc2, 0xd4, 0x5a, 0x90 } \
3379 }
3380 typedef enum StorageBus
3381 {
3382     StorageBus_Null = 0,
3383     StorageBus_IDE = 1,
3384     StorageBus_SATA = 2,
3385     StorageBus_SCSI = 3,
3386     StorageBus_Floppy = 4,
3387     StorageBus_SAS = 5,
3388     StorageBus_USB = 6,
3389     StorageBus_PCIe = 7
3390 } StorageBus;
3391 /* End of enum StorageBus declaration */
3392 #   define StorageBus_T PRUint32
3393 
3394 
3395 /* Start of enum StorageControllerType declaration */
3396 #   define STORAGECONTROLLERTYPE_IID_STR "9427f309-82e7-468f-9964-abfefc4d3058"
3397 #   define STORAGECONTROLLERTYPE_IID { \
3398     0x9427f309, 0x82e7, 0x468f, \
3399     { 0x99, 0x64, 0xab, 0xfe, 0xfc, 0x4d, 0x30, 0x58 } \
3400 }
3401 typedef enum StorageControllerType
3402 {
3403     StorageControllerType_Null = 0,
3404     StorageControllerType_LsiLogic = 1,
3405     StorageControllerType_BusLogic = 2,
3406     StorageControllerType_IntelAhci = 3,
3407     StorageControllerType_PIIX3 = 4,
3408     StorageControllerType_PIIX4 = 5,
3409     StorageControllerType_ICH6 = 6,
3410     StorageControllerType_I82078 = 7,
3411     StorageControllerType_LsiLogicSas = 8,
3412     StorageControllerType_USB = 9,
3413     StorageControllerType_NVMe = 10
3414 } StorageControllerType;
3415 /* End of enum StorageControllerType declaration */
3416 #   define StorageControllerType_T PRUint32
3417 
3418 
3419 /* Start of enum ChipsetType declaration */
3420 #   define CHIPSETTYPE_IID_STR "8b4096a8-a7c3-4d3b-bbb1-05a0a51ec394"
3421 #   define CHIPSETTYPE_IID { \
3422     0x8b4096a8, 0xa7c3, 0x4d3b, \
3423     { 0xbb, 0xb1, 0x05, 0xa0, 0xa5, 0x1e, 0xc3, 0x94 } \
3424 }
3425 typedef enum ChipsetType
3426 {
3427     ChipsetType_Null = 0,
3428     ChipsetType_PIIX3 = 1,
3429     ChipsetType_ICH9 = 2
3430 } ChipsetType;
3431 /* End of enum ChipsetType declaration */
3432 #   define ChipsetType_T PRUint32
3433 
3434 
3435 /* Start of enum NATAliasMode declaration */
3436 #   define NATALIASMODE_IID_STR "67772168-50d9-11df-9669-7fb714ee4fa1"
3437 #   define NATALIASMODE_IID { \
3438     0x67772168, 0x50d9, 0x11df, \
3439     { 0x96, 0x69, 0x7f, 0xb7, 0x14, 0xee, 0x4f, 0xa1 } \
3440 }
3441 typedef enum NATAliasMode
3442 {
3443     NATAliasMode_AliasLog = 0x1,
3444     NATAliasMode_AliasProxyOnly = 0x02,
3445     NATAliasMode_AliasUseSamePorts = 0x04
3446 } NATAliasMode;
3447 /* End of enum NATAliasMode declaration */
3448 #   define NATAliasMode_T PRUint32
3449 
3450 
3451 /* Start of enum NATProtocol declaration */
3452 #   define NATPROTOCOL_IID_STR "e90164be-eb03-11de-94af-fff9b1c1b19f"
3453 #   define NATPROTOCOL_IID { \
3454     0xe90164be, 0xeb03, 0x11de, \
3455     { 0x94, 0xaf, 0xff, 0xf9, 0xb1, 0xc1, 0xb1, 0x9f } \
3456 }
3457 typedef enum NATProtocol
3458 {
3459     NATProtocol_UDP = 0,
3460     NATProtocol_TCP = 1
3461 } NATProtocol;
3462 /* End of enum NATProtocol declaration */
3463 #   define NATProtocol_T PRUint32
3464 
3465 
3466 /* Start of enum BandwidthGroupType declaration */
3467 #   define BANDWIDTHGROUPTYPE_IID_STR "1d92b67d-dc69-4be9-ad4c-93a01e1e0c8e"
3468 #   define BANDWIDTHGROUPTYPE_IID { \
3469     0x1d92b67d, 0xdc69, 0x4be9, \
3470     { 0xad, 0x4c, 0x93, 0xa0, 0x1e, 0x1e, 0x0c, 0x8e } \
3471 }
3472 typedef enum BandwidthGroupType
3473 {
3474     BandwidthGroupType_Null = 0,
3475     BandwidthGroupType_Disk = 1,
3476     BandwidthGroupType_Network = 2
3477 } BandwidthGroupType;
3478 /* End of enum BandwidthGroupType declaration */
3479 #   define BandwidthGroupType_T PRUint32
3480 
3481 
3482 /* Start of enum VBoxEventType declaration */
3483 #   define VBOXEVENTTYPE_IID_STR "b2ddb312-2f9e-4e69-98df-7235e43b2149"
3484 #   define VBOXEVENTTYPE_IID { \
3485     0xb2ddb312, 0x2f9e, 0x4e69, \
3486     { 0x98, 0xdf, 0x72, 0x35, 0xe4, 0x3b, 0x21, 0x49 } \
3487 }
3488 typedef enum VBoxEventType
3489 {
3490     VBoxEventType_Invalid = 0,
3491     VBoxEventType_Any = 1,
3492     VBoxEventType_Vetoable = 2,
3493     VBoxEventType_MachineEvent = 3,
3494     VBoxEventType_SnapshotEvent = 4,
3495     VBoxEventType_InputEvent = 5,
3496     VBoxEventType_LastWildcard = 31,
3497     VBoxEventType_OnMachineStateChanged = 32,
3498     VBoxEventType_OnMachineDataChanged = 33,
3499     VBoxEventType_OnExtraDataChanged = 34,
3500     VBoxEventType_OnExtraDataCanChange = 35,
3501     VBoxEventType_OnMediumRegistered = 36,
3502     VBoxEventType_OnMachineRegistered = 37,
3503     VBoxEventType_OnSessionStateChanged = 38,
3504     VBoxEventType_OnSnapshotTaken = 39,
3505     VBoxEventType_OnSnapshotDeleted = 40,
3506     VBoxEventType_OnSnapshotChanged = 41,
3507     VBoxEventType_OnGuestPropertyChanged = 42,
3508     VBoxEventType_OnMousePointerShapeChanged = 43,
3509     VBoxEventType_OnMouseCapabilityChanged = 44,
3510     VBoxEventType_OnKeyboardLedsChanged = 45,
3511     VBoxEventType_OnStateChanged = 46,
3512     VBoxEventType_OnAdditionsStateChanged = 47,
3513     VBoxEventType_OnNetworkAdapterChanged = 48,
3514     VBoxEventType_OnSerialPortChanged = 49,
3515     VBoxEventType_OnParallelPortChanged = 50,
3516     VBoxEventType_OnStorageControllerChanged = 51,
3517     VBoxEventType_OnMediumChanged = 52,
3518     VBoxEventType_OnVRDEServerChanged = 53,
3519     VBoxEventType_OnUSBControllerChanged = 54,
3520     VBoxEventType_OnUSBDeviceStateChanged = 55,
3521     VBoxEventType_OnSharedFolderChanged = 56,
3522     VBoxEventType_OnRuntimeError = 57,
3523     VBoxEventType_OnCanShowWindow = 58,
3524     VBoxEventType_OnShowWindow = 59,
3525     VBoxEventType_OnCPUChanged = 60,
3526     VBoxEventType_OnVRDEServerInfoChanged = 61,
3527     VBoxEventType_OnEventSourceChanged = 62,
3528     VBoxEventType_OnCPUExecutionCapChanged = 63,
3529     VBoxEventType_OnGuestKeyboard = 64,
3530     VBoxEventType_OnGuestMouse = 65,
3531     VBoxEventType_OnNATRedirect = 66,
3532     VBoxEventType_OnHostPCIDevicePlug = 67,
3533     VBoxEventType_OnVBoxSVCAvailabilityChanged = 68,
3534     VBoxEventType_OnBandwidthGroupChanged = 69,
3535     VBoxEventType_OnGuestMonitorChanged = 70,
3536     VBoxEventType_OnStorageDeviceChanged = 71,
3537     VBoxEventType_OnClipboardModeChanged = 72,
3538     VBoxEventType_OnDnDModeChanged = 73,
3539     VBoxEventType_OnNATNetworkChanged = 74,
3540     VBoxEventType_OnNATNetworkStartStop = 75,
3541     VBoxEventType_OnNATNetworkAlter = 76,
3542     VBoxEventType_OnNATNetworkCreationDeletion = 77,
3543     VBoxEventType_OnNATNetworkSetting = 78,
3544     VBoxEventType_OnNATNetworkPortForward = 79,
3545     VBoxEventType_OnGuestSessionStateChanged = 80,
3546     VBoxEventType_OnGuestSessionRegistered = 81,
3547     VBoxEventType_OnGuestProcessRegistered = 82,
3548     VBoxEventType_OnGuestProcessStateChanged = 83,
3549     VBoxEventType_OnGuestProcessInputNotify = 84,
3550     VBoxEventType_OnGuestProcessOutput = 85,
3551     VBoxEventType_OnGuestFileRegistered = 86,
3552     VBoxEventType_OnGuestFileStateChanged = 87,
3553     VBoxEventType_OnGuestFileOffsetChanged = 88,
3554     VBoxEventType_OnGuestFileRead = 89,
3555     VBoxEventType_OnGuestFileWrite = 90,
3556     VBoxEventType_OnVideoCaptureChanged = 91,
3557     VBoxEventType_OnGuestUserStateChanged = 92,
3558     VBoxEventType_OnGuestMultiTouch = 93,
3559     VBoxEventType_OnHostNameResolutionConfigurationChange = 94,
3560     VBoxEventType_OnSnapshotRestored = 95,
3561     VBoxEventType_OnMediumConfigChanged = 96,
3562     VBoxEventType_OnAudioAdapterChanged = 97,
3563     VBoxEventType_OnProgressPercentageChanged = 98,
3564     VBoxEventType_OnProgressTaskCompleted = 99,
3565     VBoxEventType_Last = 100
3566 } VBoxEventType;
3567 /* End of enum VBoxEventType declaration */
3568 #   define VBoxEventType_T PRUint32
3569 
3570 
3571 /* Start of enum GuestMouseEventMode declaration */
3572 #   define GUESTMOUSEEVENTMODE_IID_STR "4b500146-ebba-4b7c-bc29-69c2d57a5caf"
3573 #   define GUESTMOUSEEVENTMODE_IID { \
3574     0x4b500146, 0xebba, 0x4b7c, \
3575     { 0xbc, 0x29, 0x69, 0xc2, 0xd5, 0x7a, 0x5c, 0xaf } \
3576 }
3577 typedef enum GuestMouseEventMode
3578 {
3579     GuestMouseEventMode_Relative = 0,
3580     GuestMouseEventMode_Absolute = 1
3581 } GuestMouseEventMode;
3582 /* End of enum GuestMouseEventMode declaration */
3583 #   define GuestMouseEventMode_T PRUint32
3584 
3585 
3586 /* Start of enum GuestMonitorChangedEventType declaration */
3587 #   define GUESTMONITORCHANGEDEVENTTYPE_IID_STR "ef172985-7e36-4297-95be-e46396968d66"
3588 #   define GUESTMONITORCHANGEDEVENTTYPE_IID { \
3589     0xef172985, 0x7e36, 0x4297, \
3590     { 0x95, 0xbe, 0xe4, 0x63, 0x96, 0x96, 0x8d, 0x66 } \
3591 }
3592 typedef enum GuestMonitorChangedEventType
3593 {
3594     GuestMonitorChangedEventType_Enabled = 0,
3595     GuestMonitorChangedEventType_Disabled = 1,
3596     GuestMonitorChangedEventType_NewOrigin = 2
3597 } GuestMonitorChangedEventType;
3598 /* End of enum GuestMonitorChangedEventType declaration */
3599 #   define GuestMonitorChangedEventType_T PRUint32
3600 
3601 
3602 /* Start of struct IVirtualBoxErrorInfo declaration */
3603 #   define IVIRTUALBOXERRORINFO_IID_STR "c1bcc6d5-7966-481d-ab0b-d0ed73e28135"
3604 #   define IVIRTUALBOXERRORINFO_IID { \
3605     0xc1bcc6d5, 0x7966, 0x481d, \
3606     { 0xab, 0x0b, 0xd0, 0xed, 0x73, 0xe2, 0x81, 0x35 } \
3607 }
3608 /* COM compatibility */
3609 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBoxErrorInfo);
3610 #   ifndef VBOX_WITH_GLUE
3611 struct IVirtualBoxErrorInfo_vtbl
3612 {
3613     struct nsIException_vtbl nsiexception;
3614 
3615     nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
3616 
3617     nsresult (*GetResultDetail)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultDetail);
3618 
3619     nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
3620 
3621     nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
3622 
3623     nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
3624 
3625     nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
3626 
3627 };
3628 #   else /* VBOX_WITH_GLUE */
3629 struct IVirtualBoxErrorInfoVtbl
3630 {
3631     nsresult (*QueryInterface)(IVirtualBoxErrorInfo *pThis, const nsID *iid, void **resultp);
3632     nsrefcnt (*AddRef)(IVirtualBoxErrorInfo *pThis);
3633     nsrefcnt (*Release)(IVirtualBoxErrorInfo *pThis);
3634     nsresult (*GetMessage)(IVirtualBoxErrorInfo *pThis, PRUnichar * *aMessage);
3635     nsresult (*GetResult)(IVirtualBoxErrorInfo *pThis, nsresult *aResult);
3636     nsresult (*GetName)(IVirtualBoxErrorInfo*pThis, PRUnichar * *aName);
3637     nsresult (*GetFilename)(IVirtualBoxErrorInfo *pThis, PRUnichar * *aFilename);
3638     nsresult (*GetLineNumber)(IVirtualBoxErrorInfo *pThis, PRUint32 *aLineNumber);
3639     nsresult (*GetColumnNumber)(IVirtualBoxErrorInfo *pThis, PRUint32 *aColumnNumber);
3640     nsresult (*GetLocation)(IVirtualBoxErrorInfo *pThis, nsIStackFrame * *aLocation);
3641     nsresult (*GetInner)(IVirtualBoxErrorInfo *pThis, nsIException * *aInner);
3642     nsresult (*GetData)(IVirtualBoxErrorInfo *pThis, nsISupports * *aData);
3643     nsresult (*ToString)(IVirtualBoxErrorInfo *pThis, PRUnichar **_retval);
3644     nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
3645 
3646     nsresult (*GetResultDetail)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultDetail);
3647 
3648     nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
3649 
3650     nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
3651 
3652     nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
3653 
3654     nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
3655 
3656 };
3657 #    define IVirtualBoxErrorInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
3658 #    define IVirtualBoxErrorInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
3659 #    define IVirtualBoxErrorInfo_Release(p) ((p)->lpVtbl->Release(p))
3660 #    define IVirtualBoxErrorInfo_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
3661 #    define IVirtualBoxErrorInfo_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
3662 #    define IVirtualBoxErrorInfo_get_Result(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
3663 #    define IVirtualBoxErrorInfo_GetResult(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
3664 #    define IVirtualBoxErrorInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
3665 #    define IVirtualBoxErrorInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
3666 #    define IVirtualBoxErrorInfo_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
3667 #    define IVirtualBoxErrorInfo_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
3668 #    define IVirtualBoxErrorInfo_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
3669 #    define IVirtualBoxErrorInfo_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
3670 #    define IVirtualBoxErrorInfo_get_ColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
3671 #    define IVirtualBoxErrorInfo_GetColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
3672 #    define IVirtualBoxErrorInfo_get_Location(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
3673 #    define IVirtualBoxErrorInfo_GetLocation(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
3674 #    define IVirtualBoxErrorInfo_get_Inner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
3675 #    define IVirtualBoxErrorInfo_GetInner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
3676 #    define IVirtualBoxErrorInfo_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
3677 #    define IVirtualBoxErrorInfo_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
3678 #    define IVirtualBoxErrorInfo_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
3679 #    define IVirtualBoxErrorInfo_get_ResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
3680 #    define IVirtualBoxErrorInfo_GetResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
3681 #    define IVirtualBoxErrorInfo_get_ResultDetail(p, aResultDetail) ((p)->lpVtbl->GetResultDetail(p, aResultDetail))
3682 #    define IVirtualBoxErrorInfo_GetResultDetail(p, aResultDetail) ((p)->lpVtbl->GetResultDetail(p, aResultDetail))
3683 #    define IVirtualBoxErrorInfo_get_InterfaceID(p, aInterfaceID) ((p)->lpVtbl->GetInterfaceID(p, aInterfaceID))
3684 #    define IVirtualBoxErrorInfo_GetInterfaceID(p, aInterfaceID) ((p)->lpVtbl->GetInterfaceID(p, aInterfaceID))
3685 #    define IVirtualBoxErrorInfo_get_Component(p, aComponent) ((p)->lpVtbl->GetComponent(p, aComponent))
3686 #    define IVirtualBoxErrorInfo_GetComponent(p, aComponent) ((p)->lpVtbl->GetComponent(p, aComponent))
3687 #    define IVirtualBoxErrorInfo_get_Text(p, aText) ((p)->lpVtbl->GetText(p, aText))
3688 #    define IVirtualBoxErrorInfo_GetText(p, aText) ((p)->lpVtbl->GetText(p, aText))
3689 #    define IVirtualBoxErrorInfo_get_Next(p, aNext) ((p)->lpVtbl->GetNext(p, aNext))
3690 #    define IVirtualBoxErrorInfo_GetNext(p, aNext) ((p)->lpVtbl->GetNext(p, aNext))
3691 #   endif /* VBOX_WITH_GLUE */
3692 
3693 interface IVirtualBoxErrorInfo
3694 {
3695 #   ifndef VBOX_WITH_GLUE
3696     struct IVirtualBoxErrorInfo_vtbl *vtbl;
3697 #   else /* VBOX_WITH_GLUE */
3698     CONST_VTBL struct IVirtualBoxErrorInfoVtbl *lpVtbl;
3699 #   endif /* VBOX_WITH_GLUE */
3700 };
3701 /* End of struct IVirtualBoxErrorInfo declaration */
3702 
3703 
3704 /* Start of struct INATNetwork declaration */
3705 #   define INATNETWORK_IID_STR "4bbc405d-f268-4483-9a52-f43ffdbf67f8"
3706 #   define INATNETWORK_IID { \
3707     0x4bbc405d, 0xf268, 0x4483, \
3708     { 0x9a, 0x52, 0xf4, 0x3f, 0xfd, 0xbf, 0x67, 0xf8 } \
3709 }
3710 /* COM compatibility */
3711 VBOX_EXTERN_CONST(nsIID, IID_INATNetwork);
3712 #   ifndef VBOX_WITH_GLUE
3713 struct INATNetwork_vtbl
3714 {
3715     struct nsISupports_vtbl nsisupports;
3716 
3717     nsresult (*GetNetworkName)(INATNetwork *pThis, PRUnichar * *networkName);
3718     nsresult (*SetNetworkName)(INATNetwork *pThis, PRUnichar * networkName);
3719 
3720     nsresult (*GetEnabled)(INATNetwork *pThis, PRBool *enabled);
3721     nsresult (*SetEnabled)(INATNetwork *pThis, PRBool enabled);
3722 
3723     nsresult (*GetNetwork)(INATNetwork *pThis, PRUnichar * *network);
3724     nsresult (*SetNetwork)(INATNetwork *pThis, PRUnichar * network);
3725 
3726     nsresult (*GetGateway)(INATNetwork *pThis, PRUnichar * *gateway);
3727 
3728     nsresult (*GetIPv6Enabled)(INATNetwork *pThis, PRBool *IPv6Enabled);
3729     nsresult (*SetIPv6Enabled)(INATNetwork *pThis, PRBool IPv6Enabled);
3730 
3731     nsresult (*GetIPv6Prefix)(INATNetwork *pThis, PRUnichar * *IPv6Prefix);
3732     nsresult (*SetIPv6Prefix)(INATNetwork *pThis, PRUnichar * IPv6Prefix);
3733 
3734     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
3735     nsresult (*SetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool advertiseDefaultIPv6RouteEnabled);
3736 
3737     nsresult (*GetNeedDhcpServer)(INATNetwork *pThis, PRBool *needDhcpServer);
3738     nsresult (*SetNeedDhcpServer)(INATNetwork *pThis, PRBool needDhcpServer);
3739 
3740     nsresult (*GetEventSource)(INATNetwork *pThis, IEventSource * *eventSource);
3741 
3742     nsresult (*GetPortForwardRules4)(INATNetwork *pThis, PRUint32 *portForwardRules4Size, PRUnichar * **portForwardRules4);
3743 
3744     nsresult (*GetLocalMappings)(INATNetwork *pThis, PRUint32 *localMappingsSize, PRUnichar * **localMappings);
3745 
3746     nsresult (*GetLoopbackIp6)(INATNetwork *pThis, PRInt32 *loopbackIp6);
3747     nsresult (*SetLoopbackIp6)(INATNetwork *pThis, PRInt32 loopbackIp6);
3748 
3749     nsresult (*GetPortForwardRules6)(INATNetwork *pThis, PRUint32 *portForwardRules6Size, PRUnichar * **portForwardRules6);
3750 
3751     nsresult (*GetInternalAndReservedAttribute1INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3752 
3753     nsresult (*GetInternalAndReservedAttribute2INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3754 
3755     nsresult (*GetInternalAndReservedAttribute3INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3756 
3757     nsresult (*GetInternalAndReservedAttribute4INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3758 
3759     nsresult (*GetInternalAndReservedAttribute5INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3760 
3761     nsresult (*GetInternalAndReservedAttribute6INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3762 
3763     nsresult (*GetInternalAndReservedAttribute7INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3764 
3765     nsresult (*GetInternalAndReservedAttribute8INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3766 
3767     nsresult (*AddLocalMapping)(
3768         INATNetwork *pThis,
3769         PRUnichar * hostid,
3770         PRInt32 offset
3771     );
3772 
3773     nsresult (*AddPortForwardRule)(
3774         INATNetwork *pThis,
3775         PRBool isIpv6,
3776         PRUnichar * ruleName,
3777         PRUint32 proto,
3778         PRUnichar * hostIP,
3779         PRUint16 hostPort,
3780         PRUnichar * guestIP,
3781         PRUint16 guestPort
3782     );
3783 
3784     nsresult (*RemovePortForwardRule)(
3785         INATNetwork *pThis,
3786         PRBool iSipv6,
3787         PRUnichar * ruleName
3788     );
3789 
3790     nsresult (*Start)(
3791         INATNetwork *pThis,
3792         PRUnichar * trunkType
3793     );
3794 
3795     nsresult (*Stop)(INATNetwork *pThis );
3796 
3797     nsresult (*InternalAndReservedMethod1INATNetwork)(INATNetwork *pThis);
3798 
3799     nsresult (*InternalAndReservedMethod2INATNetwork)(INATNetwork *pThis);
3800 
3801 };
3802 #   else /* VBOX_WITH_GLUE */
3803 struct INATNetworkVtbl
3804 {
3805     nsresult (*QueryInterface)(INATNetwork *pThis, const nsID *iid, void **resultp);
3806     nsrefcnt (*AddRef)(INATNetwork *pThis);
3807     nsrefcnt (*Release)(INATNetwork *pThis);
3808     nsresult (*GetNetworkName)(INATNetwork *pThis, PRUnichar * *networkName);
3809     nsresult (*SetNetworkName)(INATNetwork *pThis, PRUnichar * networkName);
3810 
3811     nsresult (*GetEnabled)(INATNetwork *pThis, PRBool *enabled);
3812     nsresult (*SetEnabled)(INATNetwork *pThis, PRBool enabled);
3813 
3814     nsresult (*GetNetwork)(INATNetwork *pThis, PRUnichar * *network);
3815     nsresult (*SetNetwork)(INATNetwork *pThis, PRUnichar * network);
3816 
3817     nsresult (*GetGateway)(INATNetwork *pThis, PRUnichar * *gateway);
3818 
3819     nsresult (*GetIPv6Enabled)(INATNetwork *pThis, PRBool *IPv6Enabled);
3820     nsresult (*SetIPv6Enabled)(INATNetwork *pThis, PRBool IPv6Enabled);
3821 
3822     nsresult (*GetIPv6Prefix)(INATNetwork *pThis, PRUnichar * *IPv6Prefix);
3823     nsresult (*SetIPv6Prefix)(INATNetwork *pThis, PRUnichar * IPv6Prefix);
3824 
3825     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
3826     nsresult (*SetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool advertiseDefaultIPv6RouteEnabled);
3827 
3828     nsresult (*GetNeedDhcpServer)(INATNetwork *pThis, PRBool *needDhcpServer);
3829     nsresult (*SetNeedDhcpServer)(INATNetwork *pThis, PRBool needDhcpServer);
3830 
3831     nsresult (*GetEventSource)(INATNetwork *pThis, IEventSource * *eventSource);
3832 
3833     nsresult (*GetPortForwardRules4)(INATNetwork *pThis, PRUint32 *portForwardRules4Size, PRUnichar * **portForwardRules4);
3834 
3835     nsresult (*GetLocalMappings)(INATNetwork *pThis, PRUint32 *localMappingsSize, PRUnichar * **localMappings);
3836 
3837     nsresult (*GetLoopbackIp6)(INATNetwork *pThis, PRInt32 *loopbackIp6);
3838     nsresult (*SetLoopbackIp6)(INATNetwork *pThis, PRInt32 loopbackIp6);
3839 
3840     nsresult (*GetPortForwardRules6)(INATNetwork *pThis, PRUint32 *portForwardRules6Size, PRUnichar * **portForwardRules6);
3841 
3842     nsresult (*GetInternalAndReservedAttribute1INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3843 
3844     nsresult (*GetInternalAndReservedAttribute2INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3845 
3846     nsresult (*GetInternalAndReservedAttribute3INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3847 
3848     nsresult (*GetInternalAndReservedAttribute4INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3849 
3850     nsresult (*GetInternalAndReservedAttribute5INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3851 
3852     nsresult (*GetInternalAndReservedAttribute6INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3853 
3854     nsresult (*GetInternalAndReservedAttribute7INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3855 
3856     nsresult (*GetInternalAndReservedAttribute8INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
3857 
3858     nsresult (*AddLocalMapping)(
3859         INATNetwork *pThis,
3860         PRUnichar * hostid,
3861         PRInt32 offset
3862     );
3863 
3864     nsresult (*AddPortForwardRule)(
3865         INATNetwork *pThis,
3866         PRBool isIpv6,
3867         PRUnichar * ruleName,
3868         PRUint32 proto,
3869         PRUnichar * hostIP,
3870         PRUint16 hostPort,
3871         PRUnichar * guestIP,
3872         PRUint16 guestPort
3873     );
3874 
3875     nsresult (*RemovePortForwardRule)(
3876         INATNetwork *pThis,
3877         PRBool iSipv6,
3878         PRUnichar * ruleName
3879     );
3880 
3881     nsresult (*Start)(
3882         INATNetwork *pThis,
3883         PRUnichar * trunkType
3884     );
3885 
3886     nsresult (*Stop)(INATNetwork *pThis );
3887 
3888     nsresult (*InternalAndReservedMethod1INATNetwork)(INATNetwork *pThis);
3889 
3890     nsresult (*InternalAndReservedMethod2INATNetwork)(INATNetwork *pThis);
3891 
3892 };
3893 #    define INATNetwork_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
3894 #    define INATNetwork_AddRef(p) ((p)->lpVtbl->AddRef(p))
3895 #    define INATNetwork_Release(p) ((p)->lpVtbl->Release(p))
3896 #    define INATNetwork_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
3897 #    define INATNetwork_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
3898 #    define INATNetwork_put_NetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
3899 #    define INATNetwork_SetNetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
3900 #    define INATNetwork_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
3901 #    define INATNetwork_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
3902 #    define INATNetwork_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
3903 #    define INATNetwork_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
3904 #    define INATNetwork_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
3905 #    define INATNetwork_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
3906 #    define INATNetwork_put_Network(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
3907 #    define INATNetwork_SetNetwork(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
3908 #    define INATNetwork_get_Gateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
3909 #    define INATNetwork_GetGateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
3910 #    define INATNetwork_get_IPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->GetIPv6Enabled(p, aIPv6Enabled))
3911 #    define INATNetwork_GetIPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->GetIPv6Enabled(p, aIPv6Enabled))
3912 #    define INATNetwork_put_IPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->SetIPv6Enabled(p, aIPv6Enabled))
3913 #    define INATNetwork_SetIPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->SetIPv6Enabled(p, aIPv6Enabled))
3914 #    define INATNetwork_get_IPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->GetIPv6Prefix(p, aIPv6Prefix))
3915 #    define INATNetwork_GetIPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->GetIPv6Prefix(p, aIPv6Prefix))
3916 #    define INATNetwork_put_IPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->SetIPv6Prefix(p, aIPv6Prefix))
3917 #    define INATNetwork_SetIPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->SetIPv6Prefix(p, aIPv6Prefix))
3918 #    define INATNetwork_get_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
3919 #    define INATNetwork_GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
3920 #    define INATNetwork_put_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
3921 #    define INATNetwork_SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
3922 #    define INATNetwork_get_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
3923 #    define INATNetwork_GetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
3924 #    define INATNetwork_put_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->SetNeedDhcpServer(p, aNeedDhcpServer))
3925 #    define INATNetwork_SetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->SetNeedDhcpServer(p, aNeedDhcpServer))
3926 #    define INATNetwork_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
3927 #    define INATNetwork_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
3928 #    define INATNetwork_get_PortForwardRules4(p, aPortForwardRules4) ((p)->lpVtbl->GetPortForwardRules4(p, aPortForwardRules4))
3929 #    define INATNetwork_GetPortForwardRules4(p, aPortForwardRules4) ((p)->lpVtbl->GetPortForwardRules4(p, aPortForwardRules4))
3930 #    define INATNetwork_get_LocalMappings(p, aLocalMappings) ((p)->lpVtbl->GetLocalMappings(p, aLocalMappings))
3931 #    define INATNetwork_GetLocalMappings(p, aLocalMappings) ((p)->lpVtbl->GetLocalMappings(p, aLocalMappings))
3932 #    define INATNetwork_get_LoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->GetLoopbackIp6(p, aLoopbackIp6))
3933 #    define INATNetwork_GetLoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->GetLoopbackIp6(p, aLoopbackIp6))
3934 #    define INATNetwork_put_LoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->SetLoopbackIp6(p, aLoopbackIp6))
3935 #    define INATNetwork_SetLoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->SetLoopbackIp6(p, aLoopbackIp6))
3936 #    define INATNetwork_get_PortForwardRules6(p, aPortForwardRules6) ((p)->lpVtbl->GetPortForwardRules6(p, aPortForwardRules6))
3937 #    define INATNetwork_GetPortForwardRules6(p, aPortForwardRules6) ((p)->lpVtbl->GetPortForwardRules6(p, aPortForwardRules6))
3938 #    define INATNetwork_AddLocalMapping(p, aHostid, aOffset) ((p)->lpVtbl->AddLocalMapping(p, aHostid, aOffset))
3939 #    define INATNetwork_AddPortForwardRule(p, aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort) ((p)->lpVtbl->AddPortForwardRule(p, aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort))
3940 #    define INATNetwork_RemovePortForwardRule(p, aISipv6, aRuleName) ((p)->lpVtbl->RemovePortForwardRule(p, aISipv6, aRuleName))
3941 #    define INATNetwork_Start(p, aTrunkType) ((p)->lpVtbl->Start(p, aTrunkType))
3942 #    define INATNetwork_Stop(p) ((p)->lpVtbl->Stop(p))
3943 #   endif /* VBOX_WITH_GLUE */
3944 
3945 interface INATNetwork
3946 {
3947 #   ifndef VBOX_WITH_GLUE
3948     struct INATNetwork_vtbl *vtbl;
3949 #   else /* VBOX_WITH_GLUE */
3950     CONST_VTBL struct INATNetworkVtbl *lpVtbl;
3951 #   endif /* VBOX_WITH_GLUE */
3952 };
3953 /* End of struct INATNetwork declaration */
3954 
3955 
3956 /* Start of struct IDHCPServer declaration */
3957 #   define IDHCPSERVER_IID_STR "00c8f974-92c5-44a1-8f3f-702469fdd04b"
3958 #   define IDHCPSERVER_IID { \
3959     0x00c8f974, 0x92c5, 0x44a1, \
3960     { 0x8f, 0x3f, 0x70, 0x24, 0x69, 0xfd, 0xd0, 0x4b } \
3961 }
3962 /* COM compatibility */
3963 VBOX_EXTERN_CONST(nsIID, IID_IDHCPServer);
3964 #   ifndef VBOX_WITH_GLUE
3965 struct IDHCPServer_vtbl
3966 {
3967     struct nsISupports_vtbl nsisupports;
3968 
3969     nsresult (*GetEventSource)(IDHCPServer *pThis, IEventSource * *eventSource);
3970 
3971     nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
3972     nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
3973 
3974     nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
3975 
3976     nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
3977 
3978     nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
3979 
3980     nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
3981 
3982     nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
3983 
3984     nsresult (*GetGlobalOptions)(IDHCPServer *pThis, PRUint32 *globalOptionsSize, PRUnichar * **globalOptions);
3985 
3986     nsresult (*GetVmConfigs)(IDHCPServer *pThis, PRUint32 *vmConfigsSize, PRUnichar * **vmConfigs);
3987 
3988     nsresult (*GetInternalAndReservedAttribute1IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
3989 
3990     nsresult (*GetInternalAndReservedAttribute2IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
3991 
3992     nsresult (*GetInternalAndReservedAttribute3IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
3993 
3994     nsresult (*GetInternalAndReservedAttribute4IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
3995 
3996     nsresult (*GetInternalAndReservedAttribute5IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
3997 
3998     nsresult (*GetInternalAndReservedAttribute6IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
3999 
4000     nsresult (*AddGlobalOption)(
4001         IDHCPServer *pThis,
4002         PRUint32 option,
4003         PRUnichar * value
4004     );
4005 
4006     nsresult (*AddVmSlotOption)(
4007         IDHCPServer *pThis,
4008         PRUnichar * vmname,
4009         PRInt32 slot,
4010         PRUint32 option,
4011         PRUnichar * value
4012     );
4013 
4014     nsresult (*RemoveVmSlotOptions)(
4015         IDHCPServer *pThis,
4016         PRUnichar * vmname,
4017         PRInt32 slot
4018     );
4019 
4020     nsresult (*GetVmSlotOptions)(
4021         IDHCPServer *pThis,
4022         PRUnichar * vmname,
4023         PRInt32 slot,
4024         PRUint32 *optionSize,
4025         PRUnichar *** option
4026     );
4027 
4028     nsresult (*GetMacOptions)(
4029         IDHCPServer *pThis,
4030         PRUnichar * mac,
4031         PRUint32 *optionSize,
4032         PRUnichar *** option
4033     );
4034 
4035     nsresult (*SetConfiguration)(
4036         IDHCPServer *pThis,
4037         PRUnichar * IPAddress,
4038         PRUnichar * networkMask,
4039         PRUnichar * FromIPAddress,
4040         PRUnichar * ToIPAddress
4041     );
4042 
4043     nsresult (*Start)(
4044         IDHCPServer *pThis,
4045         PRUnichar * networkName,
4046         PRUnichar * trunkName,
4047         PRUnichar * trunkType
4048     );
4049 
4050     nsresult (*Stop)(IDHCPServer *pThis );
4051 
4052     nsresult (*InternalAndReservedMethod1IDHCPServer)(IDHCPServer *pThis);
4053 
4054     nsresult (*InternalAndReservedMethod2IDHCPServer)(IDHCPServer *pThis);
4055 
4056 };
4057 #   else /* VBOX_WITH_GLUE */
4058 struct IDHCPServerVtbl
4059 {
4060     nsresult (*QueryInterface)(IDHCPServer *pThis, const nsID *iid, void **resultp);
4061     nsrefcnt (*AddRef)(IDHCPServer *pThis);
4062     nsrefcnt (*Release)(IDHCPServer *pThis);
4063     nsresult (*GetEventSource)(IDHCPServer *pThis, IEventSource * *eventSource);
4064 
4065     nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
4066     nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
4067 
4068     nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
4069 
4070     nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
4071 
4072     nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
4073 
4074     nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
4075 
4076     nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
4077 
4078     nsresult (*GetGlobalOptions)(IDHCPServer *pThis, PRUint32 *globalOptionsSize, PRUnichar * **globalOptions);
4079 
4080     nsresult (*GetVmConfigs)(IDHCPServer *pThis, PRUint32 *vmConfigsSize, PRUnichar * **vmConfigs);
4081 
4082     nsresult (*GetInternalAndReservedAttribute1IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4083 
4084     nsresult (*GetInternalAndReservedAttribute2IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4085 
4086     nsresult (*GetInternalAndReservedAttribute3IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4087 
4088     nsresult (*GetInternalAndReservedAttribute4IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4089 
4090     nsresult (*GetInternalAndReservedAttribute5IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4091 
4092     nsresult (*GetInternalAndReservedAttribute6IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4093 
4094     nsresult (*AddGlobalOption)(
4095         IDHCPServer *pThis,
4096         PRUint32 option,
4097         PRUnichar * value
4098     );
4099 
4100     nsresult (*AddVmSlotOption)(
4101         IDHCPServer *pThis,
4102         PRUnichar * vmname,
4103         PRInt32 slot,
4104         PRUint32 option,
4105         PRUnichar * value
4106     );
4107 
4108     nsresult (*RemoveVmSlotOptions)(
4109         IDHCPServer *pThis,
4110         PRUnichar * vmname,
4111         PRInt32 slot
4112     );
4113 
4114     nsresult (*GetVmSlotOptions)(
4115         IDHCPServer *pThis,
4116         PRUnichar * vmname,
4117         PRInt32 slot,
4118         PRUint32 *optionSize,
4119         PRUnichar *** option
4120     );
4121 
4122     nsresult (*GetMacOptions)(
4123         IDHCPServer *pThis,
4124         PRUnichar * mac,
4125         PRUint32 *optionSize,
4126         PRUnichar *** option
4127     );
4128 
4129     nsresult (*SetConfiguration)(
4130         IDHCPServer *pThis,
4131         PRUnichar * IPAddress,
4132         PRUnichar * networkMask,
4133         PRUnichar * FromIPAddress,
4134         PRUnichar * ToIPAddress
4135     );
4136 
4137     nsresult (*Start)(
4138         IDHCPServer *pThis,
4139         PRUnichar * networkName,
4140         PRUnichar * trunkName,
4141         PRUnichar * trunkType
4142     );
4143 
4144     nsresult (*Stop)(IDHCPServer *pThis );
4145 
4146     nsresult (*InternalAndReservedMethod1IDHCPServer)(IDHCPServer *pThis);
4147 
4148     nsresult (*InternalAndReservedMethod2IDHCPServer)(IDHCPServer *pThis);
4149 
4150 };
4151 #    define IDHCPServer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4152 #    define IDHCPServer_AddRef(p) ((p)->lpVtbl->AddRef(p))
4153 #    define IDHCPServer_Release(p) ((p)->lpVtbl->Release(p))
4154 #    define IDHCPServer_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4155 #    define IDHCPServer_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4156 #    define IDHCPServer_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4157 #    define IDHCPServer_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4158 #    define IDHCPServer_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4159 #    define IDHCPServer_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4160 #    define IDHCPServer_get_IPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
4161 #    define IDHCPServer_GetIPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
4162 #    define IDHCPServer_get_NetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
4163 #    define IDHCPServer_GetNetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
4164 #    define IDHCPServer_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4165 #    define IDHCPServer_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4166 #    define IDHCPServer_get_LowerIP(p, aLowerIP) ((p)->lpVtbl->GetLowerIP(p, aLowerIP))
4167 #    define IDHCPServer_GetLowerIP(p, aLowerIP) ((p)->lpVtbl->GetLowerIP(p, aLowerIP))
4168 #    define IDHCPServer_get_UpperIP(p, aUpperIP) ((p)->lpVtbl->GetUpperIP(p, aUpperIP))
4169 #    define IDHCPServer_GetUpperIP(p, aUpperIP) ((p)->lpVtbl->GetUpperIP(p, aUpperIP))
4170 #    define IDHCPServer_get_GlobalOptions(p, aGlobalOptions) ((p)->lpVtbl->GetGlobalOptions(p, aGlobalOptions))
4171 #    define IDHCPServer_GetGlobalOptions(p, aGlobalOptions) ((p)->lpVtbl->GetGlobalOptions(p, aGlobalOptions))
4172 #    define IDHCPServer_get_VmConfigs(p, aVmConfigs) ((p)->lpVtbl->GetVmConfigs(p, aVmConfigs))
4173 #    define IDHCPServer_GetVmConfigs(p, aVmConfigs) ((p)->lpVtbl->GetVmConfigs(p, aVmConfigs))
4174 #    define IDHCPServer_AddGlobalOption(p, aOption, aValue) ((p)->lpVtbl->AddGlobalOption(p, aOption, aValue))
4175 #    define IDHCPServer_AddVmSlotOption(p, aVmname, aSlot, aOption, aValue) ((p)->lpVtbl->AddVmSlotOption(p, aVmname, aSlot, aOption, aValue))
4176 #    define IDHCPServer_RemoveVmSlotOptions(p, aVmname, aSlot) ((p)->lpVtbl->RemoveVmSlotOptions(p, aVmname, aSlot))
4177 #    define IDHCPServer_GetVmSlotOptions(p, aVmname, aSlot, aOption) ((p)->lpVtbl->GetVmSlotOptions(p, aVmname, aSlot, aOption))
4178 #    define IDHCPServer_GetMacOptions(p, aMac, aOption) ((p)->lpVtbl->GetMacOptions(p, aMac, aOption))
4179 #    define IDHCPServer_SetConfiguration(p, aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress) ((p)->lpVtbl->SetConfiguration(p, aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress))
4180 #    define IDHCPServer_Start(p, aNetworkName, aTrunkName, aTrunkType) ((p)->lpVtbl->Start(p, aNetworkName, aTrunkName, aTrunkType))
4181 #    define IDHCPServer_Stop(p) ((p)->lpVtbl->Stop(p))
4182 #   endif /* VBOX_WITH_GLUE */
4183 
4184 interface IDHCPServer
4185 {
4186 #   ifndef VBOX_WITH_GLUE
4187     struct IDHCPServer_vtbl *vtbl;
4188 #   else /* VBOX_WITH_GLUE */
4189     CONST_VTBL struct IDHCPServerVtbl *lpVtbl;
4190 #   endif /* VBOX_WITH_GLUE */
4191 };
4192 /* End of struct IDHCPServer declaration */
4193 
4194 
4195 /* Start of struct IVirtualBox declaration */
4196 #   define IVIRTUALBOX_IID_STR "9570b9d5-f1a1-448a-10c5-e12f5285adad"
4197 #   define IVIRTUALBOX_IID { \
4198     0x9570b9d5, 0xf1a1, 0x448a, \
4199     { 0x10, 0xc5, 0xe1, 0x2f, 0x52, 0x85, 0xad, 0xad } \
4200 }
4201 /* COM compatibility */
4202 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBox);
4203 #   ifndef VBOX_WITH_GLUE
4204 struct IVirtualBox_vtbl
4205 {
4206     struct nsISupports_vtbl nsisupports;
4207 
4208     nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
4209 
4210     nsresult (*GetVersionNormalized)(IVirtualBox *pThis, PRUnichar * *versionNormalized);
4211 
4212     nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
4213 
4214     nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
4215 
4216     nsresult (*GetAPIVersion)(IVirtualBox *pThis, PRUnichar * *APIVersion);
4217 
4218     nsresult (*GetAPIRevision)(IVirtualBox *pThis, PRInt64 *APIRevision);
4219 
4220     nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
4221 
4222     nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
4223 
4224     nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
4225 
4226     nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
4227 
4228     nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
4229 
4230     nsresult (*GetMachineGroups)(IVirtualBox *pThis, PRUint32 *machineGroupsSize, PRUnichar * **machineGroups);
4231 
4232     nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
4233 
4234     nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
4235 
4236     nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
4237 
4238     nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
4239 
4240     nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
4241 
4242     nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
4243 
4244     nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
4245 
4246     nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
4247 
4248     nsresult (*GetNATNetworks)(IVirtualBox *pThis, PRUint32 *NATNetworksSize, INATNetwork * **NATNetworks);
4249 
4250     nsresult (*GetEventSource)(IVirtualBox *pThis, IEventSource * *eventSource);
4251 
4252     nsresult (*GetExtensionPackManager)(IVirtualBox *pThis, IExtPackManager * *extensionPackManager);
4253 
4254     nsresult (*GetInternalNetworks)(IVirtualBox *pThis, PRUint32 *internalNetworksSize, PRUnichar * **internalNetworks);
4255 
4256     nsresult (*GetGenericNetworkDrivers)(IVirtualBox *pThis, PRUint32 *genericNetworkDriversSize, PRUnichar * **genericNetworkDrivers);
4257 
4258     nsresult (*GetInternalAndReservedAttribute1IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4259 
4260     nsresult (*GetInternalAndReservedAttribute2IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4261 
4262     nsresult (*GetInternalAndReservedAttribute3IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4263 
4264     nsresult (*GetInternalAndReservedAttribute4IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4265 
4266     nsresult (*GetInternalAndReservedAttribute5IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4267 
4268     nsresult (*GetInternalAndReservedAttribute6IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4269 
4270     nsresult (*GetInternalAndReservedAttribute7IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4271 
4272     nsresult (*GetInternalAndReservedAttribute8IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4273 
4274     nsresult (*GetInternalAndReservedAttribute9IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4275 
4276     nsresult (*GetInternalAndReservedAttribute10IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4277 
4278     nsresult (*GetInternalAndReservedAttribute11IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4279 
4280     nsresult (*GetInternalAndReservedAttribute12IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4281 
4282     nsresult (*ComposeMachineFilename)(
4283         IVirtualBox *pThis,
4284         PRUnichar * name,
4285         PRUnichar * group,
4286         PRUnichar * createFlags,
4287         PRUnichar * baseFolder,
4288         PRUnichar * * file
4289     );
4290 
4291     nsresult (*CreateMachine)(
4292         IVirtualBox *pThis,
4293         PRUnichar * settingsFile,
4294         PRUnichar * name,
4295         PRUint32 groupsSize,
4296         PRUnichar ** groups,
4297         PRUnichar * osTypeId,
4298         PRUnichar * flags,
4299         IMachine * * machine
4300     );
4301 
4302     nsresult (*OpenMachine)(
4303         IVirtualBox *pThis,
4304         PRUnichar * settingsFile,
4305         IMachine * * machine
4306     );
4307 
4308     nsresult (*RegisterMachine)(
4309         IVirtualBox *pThis,
4310         IMachine * machine
4311     );
4312 
4313     nsresult (*FindMachine)(
4314         IVirtualBox *pThis,
4315         PRUnichar * nameOrId,
4316         IMachine * * machine
4317     );
4318 
4319     nsresult (*GetMachinesByGroups)(
4320         IVirtualBox *pThis,
4321         PRUint32 groupsSize,
4322         PRUnichar ** groups,
4323         PRUint32 *machinesSize,
4324         IMachine *** machines
4325     );
4326 
4327     nsresult (*GetMachineStates)(
4328         IVirtualBox *pThis,
4329         PRUint32 machinesSize,
4330         IMachine ** machines,
4331         PRUint32 *statesSize,
4332         PRUint32** states
4333     );
4334 
4335     nsresult (*CreateAppliance)(
4336         IVirtualBox *pThis,
4337         IAppliance * * appliance
4338     );
4339 
4340     nsresult (*CreateUnattendedInstaller)(
4341         IVirtualBox *pThis,
4342         IUnattended * * unattended
4343     );
4344 
4345     nsresult (*CreateMedium)(
4346         IVirtualBox *pThis,
4347         PRUnichar * format,
4348         PRUnichar * location,
4349         PRUint32 accessMode,
4350         PRUint32 aDeviceTypeType,
4351         IMedium * * medium
4352     );
4353 
4354     nsresult (*OpenMedium)(
4355         IVirtualBox *pThis,
4356         PRUnichar * location,
4357         PRUint32 deviceType,
4358         PRUint32 accessMode,
4359         PRBool forceNewUuid,
4360         IMedium * * medium
4361     );
4362 
4363     nsresult (*GetGuestOSType)(
4364         IVirtualBox *pThis,
4365         PRUnichar * id,
4366         IGuestOSType * * type
4367     );
4368 
4369     nsresult (*CreateSharedFolder)(
4370         IVirtualBox *pThis,
4371         PRUnichar * name,
4372         PRUnichar * hostPath,
4373         PRBool writable,
4374         PRBool automount
4375     );
4376 
4377     nsresult (*RemoveSharedFolder)(
4378         IVirtualBox *pThis,
4379         PRUnichar * name
4380     );
4381 
4382     nsresult (*GetExtraDataKeys)(
4383         IVirtualBox *pThis,
4384         PRUint32 *keysSize,
4385         PRUnichar *** keys
4386     );
4387 
4388     nsresult (*GetExtraData)(
4389         IVirtualBox *pThis,
4390         PRUnichar * key,
4391         PRUnichar * * value
4392     );
4393 
4394     nsresult (*SetExtraData)(
4395         IVirtualBox *pThis,
4396         PRUnichar * key,
4397         PRUnichar * value
4398     );
4399 
4400     nsresult (*SetSettingsSecret)(
4401         IVirtualBox *pThis,
4402         PRUnichar * password
4403     );
4404 
4405     nsresult (*CreateDHCPServer)(
4406         IVirtualBox *pThis,
4407         PRUnichar * name,
4408         IDHCPServer * * server
4409     );
4410 
4411     nsresult (*FindDHCPServerByNetworkName)(
4412         IVirtualBox *pThis,
4413         PRUnichar * name,
4414         IDHCPServer * * server
4415     );
4416 
4417     nsresult (*RemoveDHCPServer)(
4418         IVirtualBox *pThis,
4419         IDHCPServer * server
4420     );
4421 
4422     nsresult (*CreateNATNetwork)(
4423         IVirtualBox *pThis,
4424         PRUnichar * networkName,
4425         INATNetwork * * network
4426     );
4427 
4428     nsresult (*FindNATNetworkByName)(
4429         IVirtualBox *pThis,
4430         PRUnichar * networkName,
4431         INATNetwork * * network
4432     );
4433 
4434     nsresult (*RemoveNATNetwork)(
4435         IVirtualBox *pThis,
4436         INATNetwork * network
4437     );
4438 
4439     nsresult (*CheckFirmwarePresent)(
4440         IVirtualBox *pThis,
4441         PRUint32 firmwareType,
4442         PRUnichar * version,
4443         PRUnichar * * url,
4444         PRUnichar * * file,
4445         PRBool * result
4446     );
4447 
4448     nsresult (*InternalAndReservedMethod1IVirtualBox)(IVirtualBox *pThis);
4449 
4450     nsresult (*InternalAndReservedMethod2IVirtualBox)(IVirtualBox *pThis);
4451 
4452     nsresult (*InternalAndReservedMethod3IVirtualBox)(IVirtualBox *pThis);
4453 
4454     nsresult (*InternalAndReservedMethod4IVirtualBox)(IVirtualBox *pThis);
4455 
4456     nsresult (*InternalAndReservedMethod5IVirtualBox)(IVirtualBox *pThis);
4457 
4458     nsresult (*InternalAndReservedMethod6IVirtualBox)(IVirtualBox *pThis);
4459 
4460     nsresult (*InternalAndReservedMethod7IVirtualBox)(IVirtualBox *pThis);
4461 
4462     nsresult (*InternalAndReservedMethod8IVirtualBox)(IVirtualBox *pThis);
4463 
4464 };
4465 #   else /* VBOX_WITH_GLUE */
4466 struct IVirtualBoxVtbl
4467 {
4468     nsresult (*QueryInterface)(IVirtualBox *pThis, const nsID *iid, void **resultp);
4469     nsrefcnt (*AddRef)(IVirtualBox *pThis);
4470     nsrefcnt (*Release)(IVirtualBox *pThis);
4471     nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
4472 
4473     nsresult (*GetVersionNormalized)(IVirtualBox *pThis, PRUnichar * *versionNormalized);
4474 
4475     nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
4476 
4477     nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
4478 
4479     nsresult (*GetAPIVersion)(IVirtualBox *pThis, PRUnichar * *APIVersion);
4480 
4481     nsresult (*GetAPIRevision)(IVirtualBox *pThis, PRInt64 *APIRevision);
4482 
4483     nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
4484 
4485     nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
4486 
4487     nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
4488 
4489     nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
4490 
4491     nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
4492 
4493     nsresult (*GetMachineGroups)(IVirtualBox *pThis, PRUint32 *machineGroupsSize, PRUnichar * **machineGroups);
4494 
4495     nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
4496 
4497     nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
4498 
4499     nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
4500 
4501     nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
4502 
4503     nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
4504 
4505     nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
4506 
4507     nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
4508 
4509     nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
4510 
4511     nsresult (*GetNATNetworks)(IVirtualBox *pThis, PRUint32 *NATNetworksSize, INATNetwork * **NATNetworks);
4512 
4513     nsresult (*GetEventSource)(IVirtualBox *pThis, IEventSource * *eventSource);
4514 
4515     nsresult (*GetExtensionPackManager)(IVirtualBox *pThis, IExtPackManager * *extensionPackManager);
4516 
4517     nsresult (*GetInternalNetworks)(IVirtualBox *pThis, PRUint32 *internalNetworksSize, PRUnichar * **internalNetworks);
4518 
4519     nsresult (*GetGenericNetworkDrivers)(IVirtualBox *pThis, PRUint32 *genericNetworkDriversSize, PRUnichar * **genericNetworkDrivers);
4520 
4521     nsresult (*GetInternalAndReservedAttribute1IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4522 
4523     nsresult (*GetInternalAndReservedAttribute2IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4524 
4525     nsresult (*GetInternalAndReservedAttribute3IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4526 
4527     nsresult (*GetInternalAndReservedAttribute4IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4528 
4529     nsresult (*GetInternalAndReservedAttribute5IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4530 
4531     nsresult (*GetInternalAndReservedAttribute6IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4532 
4533     nsresult (*GetInternalAndReservedAttribute7IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4534 
4535     nsresult (*GetInternalAndReservedAttribute8IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4536 
4537     nsresult (*GetInternalAndReservedAttribute9IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4538 
4539     nsresult (*GetInternalAndReservedAttribute10IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4540 
4541     nsresult (*GetInternalAndReservedAttribute11IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4542 
4543     nsresult (*GetInternalAndReservedAttribute12IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
4544 
4545     nsresult (*ComposeMachineFilename)(
4546         IVirtualBox *pThis,
4547         PRUnichar * name,
4548         PRUnichar * group,
4549         PRUnichar * createFlags,
4550         PRUnichar * baseFolder,
4551         PRUnichar * * file
4552     );
4553 
4554     nsresult (*CreateMachine)(
4555         IVirtualBox *pThis,
4556         PRUnichar * settingsFile,
4557         PRUnichar * name,
4558         PRUint32 groupsSize,
4559         PRUnichar ** groups,
4560         PRUnichar * osTypeId,
4561         PRUnichar * flags,
4562         IMachine * * machine
4563     );
4564 
4565     nsresult (*OpenMachine)(
4566         IVirtualBox *pThis,
4567         PRUnichar * settingsFile,
4568         IMachine * * machine
4569     );
4570 
4571     nsresult (*RegisterMachine)(
4572         IVirtualBox *pThis,
4573         IMachine * machine
4574     );
4575 
4576     nsresult (*FindMachine)(
4577         IVirtualBox *pThis,
4578         PRUnichar * nameOrId,
4579         IMachine * * machine
4580     );
4581 
4582     nsresult (*GetMachinesByGroups)(
4583         IVirtualBox *pThis,
4584         PRUint32 groupsSize,
4585         PRUnichar ** groups,
4586         PRUint32 *machinesSize,
4587         IMachine *** machines
4588     );
4589 
4590     nsresult (*GetMachineStates)(
4591         IVirtualBox *pThis,
4592         PRUint32 machinesSize,
4593         IMachine ** machines,
4594         PRUint32 *statesSize,
4595         PRUint32** states
4596     );
4597 
4598     nsresult (*CreateAppliance)(
4599         IVirtualBox *pThis,
4600         IAppliance * * appliance
4601     );
4602 
4603     nsresult (*CreateUnattendedInstaller)(
4604         IVirtualBox *pThis,
4605         IUnattended * * unattended
4606     );
4607 
4608     nsresult (*CreateMedium)(
4609         IVirtualBox *pThis,
4610         PRUnichar * format,
4611         PRUnichar * location,
4612         PRUint32 accessMode,
4613         PRUint32 aDeviceTypeType,
4614         IMedium * * medium
4615     );
4616 
4617     nsresult (*OpenMedium)(
4618         IVirtualBox *pThis,
4619         PRUnichar * location,
4620         PRUint32 deviceType,
4621         PRUint32 accessMode,
4622         PRBool forceNewUuid,
4623         IMedium * * medium
4624     );
4625 
4626     nsresult (*GetGuestOSType)(
4627         IVirtualBox *pThis,
4628         PRUnichar * id,
4629         IGuestOSType * * type
4630     );
4631 
4632     nsresult (*CreateSharedFolder)(
4633         IVirtualBox *pThis,
4634         PRUnichar * name,
4635         PRUnichar * hostPath,
4636         PRBool writable,
4637         PRBool automount
4638     );
4639 
4640     nsresult (*RemoveSharedFolder)(
4641         IVirtualBox *pThis,
4642         PRUnichar * name
4643     );
4644 
4645     nsresult (*GetExtraDataKeys)(
4646         IVirtualBox *pThis,
4647         PRUint32 *keysSize,
4648         PRUnichar *** keys
4649     );
4650 
4651     nsresult (*GetExtraData)(
4652         IVirtualBox *pThis,
4653         PRUnichar * key,
4654         PRUnichar * * value
4655     );
4656 
4657     nsresult (*SetExtraData)(
4658         IVirtualBox *pThis,
4659         PRUnichar * key,
4660         PRUnichar * value
4661     );
4662 
4663     nsresult (*SetSettingsSecret)(
4664         IVirtualBox *pThis,
4665         PRUnichar * password
4666     );
4667 
4668     nsresult (*CreateDHCPServer)(
4669         IVirtualBox *pThis,
4670         PRUnichar * name,
4671         IDHCPServer * * server
4672     );
4673 
4674     nsresult (*FindDHCPServerByNetworkName)(
4675         IVirtualBox *pThis,
4676         PRUnichar * name,
4677         IDHCPServer * * server
4678     );
4679 
4680     nsresult (*RemoveDHCPServer)(
4681         IVirtualBox *pThis,
4682         IDHCPServer * server
4683     );
4684 
4685     nsresult (*CreateNATNetwork)(
4686         IVirtualBox *pThis,
4687         PRUnichar * networkName,
4688         INATNetwork * * network
4689     );
4690 
4691     nsresult (*FindNATNetworkByName)(
4692         IVirtualBox *pThis,
4693         PRUnichar * networkName,
4694         INATNetwork * * network
4695     );
4696 
4697     nsresult (*RemoveNATNetwork)(
4698         IVirtualBox *pThis,
4699         INATNetwork * network
4700     );
4701 
4702     nsresult (*CheckFirmwarePresent)(
4703         IVirtualBox *pThis,
4704         PRUint32 firmwareType,
4705         PRUnichar * version,
4706         PRUnichar * * url,
4707         PRUnichar * * file,
4708         PRBool * result
4709     );
4710 
4711     nsresult (*InternalAndReservedMethod1IVirtualBox)(IVirtualBox *pThis);
4712 
4713     nsresult (*InternalAndReservedMethod2IVirtualBox)(IVirtualBox *pThis);
4714 
4715     nsresult (*InternalAndReservedMethod3IVirtualBox)(IVirtualBox *pThis);
4716 
4717     nsresult (*InternalAndReservedMethod4IVirtualBox)(IVirtualBox *pThis);
4718 
4719     nsresult (*InternalAndReservedMethod5IVirtualBox)(IVirtualBox *pThis);
4720 
4721     nsresult (*InternalAndReservedMethod6IVirtualBox)(IVirtualBox *pThis);
4722 
4723     nsresult (*InternalAndReservedMethod7IVirtualBox)(IVirtualBox *pThis);
4724 
4725     nsresult (*InternalAndReservedMethod8IVirtualBox)(IVirtualBox *pThis);
4726 
4727 };
4728 #    define IVirtualBox_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4729 #    define IVirtualBox_AddRef(p) ((p)->lpVtbl->AddRef(p))
4730 #    define IVirtualBox_Release(p) ((p)->lpVtbl->Release(p))
4731 #    define IVirtualBox_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
4732 #    define IVirtualBox_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
4733 #    define IVirtualBox_get_VersionNormalized(p, aVersionNormalized) ((p)->lpVtbl->GetVersionNormalized(p, aVersionNormalized))
4734 #    define IVirtualBox_GetVersionNormalized(p, aVersionNormalized) ((p)->lpVtbl->GetVersionNormalized(p, aVersionNormalized))
4735 #    define IVirtualBox_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
4736 #    define IVirtualBox_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
4737 #    define IVirtualBox_get_PackageType(p, aPackageType) ((p)->lpVtbl->GetPackageType(p, aPackageType))
4738 #    define IVirtualBox_GetPackageType(p, aPackageType) ((p)->lpVtbl->GetPackageType(p, aPackageType))
4739 #    define IVirtualBox_get_APIVersion(p, aAPIVersion) ((p)->lpVtbl->GetAPIVersion(p, aAPIVersion))
4740 #    define IVirtualBox_GetAPIVersion(p, aAPIVersion) ((p)->lpVtbl->GetAPIVersion(p, aAPIVersion))
4741 #    define IVirtualBox_get_APIRevision(p, aAPIRevision) ((p)->lpVtbl->GetAPIRevision(p, aAPIRevision))
4742 #    define IVirtualBox_GetAPIRevision(p, aAPIRevision) ((p)->lpVtbl->GetAPIRevision(p, aAPIRevision))
4743 #    define IVirtualBox_get_HomeFolder(p, aHomeFolder) ((p)->lpVtbl->GetHomeFolder(p, aHomeFolder))
4744 #    define IVirtualBox_GetHomeFolder(p, aHomeFolder) ((p)->lpVtbl->GetHomeFolder(p, aHomeFolder))
4745 #    define IVirtualBox_get_SettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
4746 #    define IVirtualBox_GetSettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
4747 #    define IVirtualBox_get_Host(p, aHost) ((p)->lpVtbl->GetHost(p, aHost))
4748 #    define IVirtualBox_GetHost(p, aHost) ((p)->lpVtbl->GetHost(p, aHost))
4749 #    define IVirtualBox_get_SystemProperties(p, aSystemProperties) ((p)->lpVtbl->GetSystemProperties(p, aSystemProperties))
4750 #    define IVirtualBox_GetSystemProperties(p, aSystemProperties) ((p)->lpVtbl->GetSystemProperties(p, aSystemProperties))
4751 #    define IVirtualBox_get_Machines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
4752 #    define IVirtualBox_GetMachines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
4753 #    define IVirtualBox_get_MachineGroups(p, aMachineGroups) ((p)->lpVtbl->GetMachineGroups(p, aMachineGroups))
4754 #    define IVirtualBox_GetMachineGroups(p, aMachineGroups) ((p)->lpVtbl->GetMachineGroups(p, aMachineGroups))
4755 #    define IVirtualBox_get_HardDisks(p, aHardDisks) ((p)->lpVtbl->GetHardDisks(p, aHardDisks))
4756 #    define IVirtualBox_GetHardDisks(p, aHardDisks) ((p)->lpVtbl->GetHardDisks(p, aHardDisks))
4757 #    define IVirtualBox_get_DVDImages(p, aDVDImages) ((p)->lpVtbl->GetDVDImages(p, aDVDImages))
4758 #    define IVirtualBox_GetDVDImages(p, aDVDImages) ((p)->lpVtbl->GetDVDImages(p, aDVDImages))
4759 #    define IVirtualBox_get_FloppyImages(p, aFloppyImages) ((p)->lpVtbl->GetFloppyImages(p, aFloppyImages))
4760 #    define IVirtualBox_GetFloppyImages(p, aFloppyImages) ((p)->lpVtbl->GetFloppyImages(p, aFloppyImages))
4761 #    define IVirtualBox_get_ProgressOperations(p, aProgressOperations) ((p)->lpVtbl->GetProgressOperations(p, aProgressOperations))
4762 #    define IVirtualBox_GetProgressOperations(p, aProgressOperations) ((p)->lpVtbl->GetProgressOperations(p, aProgressOperations))
4763 #    define IVirtualBox_get_GuestOSTypes(p, aGuestOSTypes) ((p)->lpVtbl->GetGuestOSTypes(p, aGuestOSTypes))
4764 #    define IVirtualBox_GetGuestOSTypes(p, aGuestOSTypes) ((p)->lpVtbl->GetGuestOSTypes(p, aGuestOSTypes))
4765 #    define IVirtualBox_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
4766 #    define IVirtualBox_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
4767 #    define IVirtualBox_get_PerformanceCollector(p, aPerformanceCollector) ((p)->lpVtbl->GetPerformanceCollector(p, aPerformanceCollector))
4768 #    define IVirtualBox_GetPerformanceCollector(p, aPerformanceCollector) ((p)->lpVtbl->GetPerformanceCollector(p, aPerformanceCollector))
4769 #    define IVirtualBox_get_DHCPServers(p, aDHCPServers) ((p)->lpVtbl->GetDHCPServers(p, aDHCPServers))
4770 #    define IVirtualBox_GetDHCPServers(p, aDHCPServers) ((p)->lpVtbl->GetDHCPServers(p, aDHCPServers))
4771 #    define IVirtualBox_get_NATNetworks(p, aNATNetworks) ((p)->lpVtbl->GetNATNetworks(p, aNATNetworks))
4772 #    define IVirtualBox_GetNATNetworks(p, aNATNetworks) ((p)->lpVtbl->GetNATNetworks(p, aNATNetworks))
4773 #    define IVirtualBox_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4774 #    define IVirtualBox_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4775 #    define IVirtualBox_get_ExtensionPackManager(p, aExtensionPackManager) ((p)->lpVtbl->GetExtensionPackManager(p, aExtensionPackManager))
4776 #    define IVirtualBox_GetExtensionPackManager(p, aExtensionPackManager) ((p)->lpVtbl->GetExtensionPackManager(p, aExtensionPackManager))
4777 #    define IVirtualBox_get_InternalNetworks(p, aInternalNetworks) ((p)->lpVtbl->GetInternalNetworks(p, aInternalNetworks))
4778 #    define IVirtualBox_GetInternalNetworks(p, aInternalNetworks) ((p)->lpVtbl->GetInternalNetworks(p, aInternalNetworks))
4779 #    define IVirtualBox_get_GenericNetworkDrivers(p, aGenericNetworkDrivers) ((p)->lpVtbl->GetGenericNetworkDrivers(p, aGenericNetworkDrivers))
4780 #    define IVirtualBox_GetGenericNetworkDrivers(p, aGenericNetworkDrivers) ((p)->lpVtbl->GetGenericNetworkDrivers(p, aGenericNetworkDrivers))
4781 #    define IVirtualBox_ComposeMachineFilename(p, aName, aGroup, aCreateFlags, aBaseFolder, aFile) ((p)->lpVtbl->ComposeMachineFilename(p, aName, aGroup, aCreateFlags, aBaseFolder, aFile))
4782 #    define IVirtualBox_CreateMachine(p, aSettingsFile, aName, aGroups, aOsTypeId, aFlags, aMachine) ((p)->lpVtbl->CreateMachine(p, aSettingsFile, aName, aGroups, aOsTypeId, aFlags, aMachine))
4783 #    define IVirtualBox_OpenMachine(p, aSettingsFile, aMachine) ((p)->lpVtbl->OpenMachine(p, aSettingsFile, aMachine))
4784 #    define IVirtualBox_RegisterMachine(p, aMachine) ((p)->lpVtbl->RegisterMachine(p, aMachine))
4785 #    define IVirtualBox_FindMachine(p, aNameOrId, aMachine) ((p)->lpVtbl->FindMachine(p, aNameOrId, aMachine))
4786 #    define IVirtualBox_GetMachinesByGroups(p, aGroups, aMachines) ((p)->lpVtbl->GetMachinesByGroups(p, aGroups, aMachines))
4787 #    define IVirtualBox_GetMachineStates(p, aMachines, aStates) ((p)->lpVtbl->GetMachineStates(p, aMachines, aStates))
4788 #    define IVirtualBox_CreateAppliance(p, aAppliance) ((p)->lpVtbl->CreateAppliance(p, aAppliance))
4789 #    define IVirtualBox_CreateUnattendedInstaller(p, aUnattended) ((p)->lpVtbl->CreateUnattendedInstaller(p, aUnattended))
4790 #    define IVirtualBox_CreateMedium(p, aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium) ((p)->lpVtbl->CreateMedium(p, aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium))
4791 #    define IVirtualBox_OpenMedium(p, aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium) ((p)->lpVtbl->OpenMedium(p, aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium))
4792 #    define IVirtualBox_GetGuestOSType(p, aId, aType) ((p)->lpVtbl->GetGuestOSType(p, aId, aType))
4793 #    define IVirtualBox_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount))
4794 #    define IVirtualBox_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
4795 #    define IVirtualBox_GetExtraDataKeys(p, aKeys) ((p)->lpVtbl->GetExtraDataKeys(p, aKeys))
4796 #    define IVirtualBox_GetExtraData(p, aKey, aValue) ((p)->lpVtbl->GetExtraData(p, aKey, aValue))
4797 #    define IVirtualBox_SetExtraData(p, aKey, aValue) ((p)->lpVtbl->SetExtraData(p, aKey, aValue))
4798 #    define IVirtualBox_SetSettingsSecret(p, aPassword) ((p)->lpVtbl->SetSettingsSecret(p, aPassword))
4799 #    define IVirtualBox_CreateDHCPServer(p, aName, aServer) ((p)->lpVtbl->CreateDHCPServer(p, aName, aServer))
4800 #    define IVirtualBox_FindDHCPServerByNetworkName(p, aName, aServer) ((p)->lpVtbl->FindDHCPServerByNetworkName(p, aName, aServer))
4801 #    define IVirtualBox_RemoveDHCPServer(p, aServer) ((p)->lpVtbl->RemoveDHCPServer(p, aServer))
4802 #    define IVirtualBox_CreateNATNetwork(p, aNetworkName, aNetwork) ((p)->lpVtbl->CreateNATNetwork(p, aNetworkName, aNetwork))
4803 #    define IVirtualBox_FindNATNetworkByName(p, aNetworkName, aNetwork) ((p)->lpVtbl->FindNATNetworkByName(p, aNetworkName, aNetwork))
4804 #    define IVirtualBox_RemoveNATNetwork(p, aNetwork) ((p)->lpVtbl->RemoveNATNetwork(p, aNetwork))
4805 #    define IVirtualBox_CheckFirmwarePresent(p, aFirmwareType, aVersion, aUrl, aFile, aResult) ((p)->lpVtbl->CheckFirmwarePresent(p, aFirmwareType, aVersion, aUrl, aFile, aResult))
4806 #   endif /* VBOX_WITH_GLUE */
4807 
4808 interface IVirtualBox
4809 {
4810 #   ifndef VBOX_WITH_GLUE
4811     struct IVirtualBox_vtbl *vtbl;
4812 #   else /* VBOX_WITH_GLUE */
4813     CONST_VTBL struct IVirtualBoxVtbl *lpVtbl;
4814 #   endif /* VBOX_WITH_GLUE */
4815 };
4816 /* End of struct IVirtualBox declaration */
4817 
4818 
4819 /* Start of struct IVFSExplorer declaration */
4820 #   define IVFSEXPLORER_IID_STR "fb220201-2fd3-47e2-a5dc-2c2431d833cc"
4821 #   define IVFSEXPLORER_IID { \
4822     0xfb220201, 0x2fd3, 0x47e2, \
4823     { 0xa5, 0xdc, 0x2c, 0x24, 0x31, 0xd8, 0x33, 0xcc } \
4824 }
4825 /* COM compatibility */
4826 VBOX_EXTERN_CONST(nsIID, IID_IVFSExplorer);
4827 #   ifndef VBOX_WITH_GLUE
4828 struct IVFSExplorer_vtbl
4829 {
4830     struct nsISupports_vtbl nsisupports;
4831 
4832     nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
4833 
4834     nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
4835 
4836     nsresult (*Update)(
4837         IVFSExplorer *pThis,
4838         IProgress * * progress
4839     );
4840 
4841     nsresult (*Cd)(
4842         IVFSExplorer *pThis,
4843         PRUnichar * dir,
4844         IProgress * * progress
4845     );
4846 
4847     nsresult (*CdUp)(
4848         IVFSExplorer *pThis,
4849         IProgress * * progress
4850     );
4851 
4852     nsresult (*EntryList)(
4853         IVFSExplorer *pThis,
4854         PRUint32 *namesSize,
4855         PRUnichar *** names,
4856         PRUint32 *typesSize,
4857         PRUint32** types,
4858         PRUint32 *sizesSize,
4859         PRInt64** sizes,
4860         PRUint32 *modesSize,
4861         PRUint32** modes
4862     );
4863 
4864     nsresult (*Exists)(
4865         IVFSExplorer *pThis,
4866         PRUint32 namesSize,
4867         PRUnichar ** names,
4868         PRUint32 *existsSize,
4869         PRUnichar *** exists
4870     );
4871 
4872     nsresult (*Remove)(
4873         IVFSExplorer *pThis,
4874         PRUint32 namesSize,
4875         PRUnichar ** names,
4876         IProgress * * progress
4877     );
4878 
4879 };
4880 #   else /* VBOX_WITH_GLUE */
4881 struct IVFSExplorerVtbl
4882 {
4883     nsresult (*QueryInterface)(IVFSExplorer *pThis, const nsID *iid, void **resultp);
4884     nsrefcnt (*AddRef)(IVFSExplorer *pThis);
4885     nsrefcnt (*Release)(IVFSExplorer *pThis);
4886     nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
4887 
4888     nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
4889 
4890     nsresult (*Update)(
4891         IVFSExplorer *pThis,
4892         IProgress * * progress
4893     );
4894 
4895     nsresult (*Cd)(
4896         IVFSExplorer *pThis,
4897         PRUnichar * dir,
4898         IProgress * * progress
4899     );
4900 
4901     nsresult (*CdUp)(
4902         IVFSExplorer *pThis,
4903         IProgress * * progress
4904     );
4905 
4906     nsresult (*EntryList)(
4907         IVFSExplorer *pThis,
4908         PRUint32 *namesSize,
4909         PRUnichar *** names,
4910         PRUint32 *typesSize,
4911         PRUint32** types,
4912         PRUint32 *sizesSize,
4913         PRInt64** sizes,
4914         PRUint32 *modesSize,
4915         PRUint32** modes
4916     );
4917 
4918     nsresult (*Exists)(
4919         IVFSExplorer *pThis,
4920         PRUint32 namesSize,
4921         PRUnichar ** names,
4922         PRUint32 *existsSize,
4923         PRUnichar *** exists
4924     );
4925 
4926     nsresult (*Remove)(
4927         IVFSExplorer *pThis,
4928         PRUint32 namesSize,
4929         PRUnichar ** names,
4930         IProgress * * progress
4931     );
4932 
4933 };
4934 #    define IVFSExplorer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4935 #    define IVFSExplorer_AddRef(p) ((p)->lpVtbl->AddRef(p))
4936 #    define IVFSExplorer_Release(p) ((p)->lpVtbl->Release(p))
4937 #    define IVFSExplorer_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
4938 #    define IVFSExplorer_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
4939 #    define IVFSExplorer_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
4940 #    define IVFSExplorer_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
4941 #    define IVFSExplorer_Update(p, aProgress) ((p)->lpVtbl->Update(p, aProgress))
4942 #    define IVFSExplorer_Cd(p, aDir, aProgress) ((p)->lpVtbl->Cd(p, aDir, aProgress))
4943 #    define IVFSExplorer_CdUp(p, aProgress) ((p)->lpVtbl->CdUp(p, aProgress))
4944 #    define IVFSExplorer_EntryList(p, aNames, aTypes, aSizes, aModes) ((p)->lpVtbl->EntryList(p, aNames, aTypes, aSizes, aModes))
4945 #    define IVFSExplorer_Exists(p, aNames, aExists) ((p)->lpVtbl->Exists(p, aNames, aExists))
4946 #    define IVFSExplorer_Remove(p, aNames, aProgress) ((p)->lpVtbl->Remove(p, aNames, aProgress))
4947 #   endif /* VBOX_WITH_GLUE */
4948 
4949 interface IVFSExplorer
4950 {
4951 #   ifndef VBOX_WITH_GLUE
4952     struct IVFSExplorer_vtbl *vtbl;
4953 #   else /* VBOX_WITH_GLUE */
4954     CONST_VTBL struct IVFSExplorerVtbl *lpVtbl;
4955 #   endif /* VBOX_WITH_GLUE */
4956 };
4957 /* End of struct IVFSExplorer declaration */
4958 
4959 
4960 /* Start of struct ICertificate declaration */
4961 #   define ICERTIFICATE_IID_STR "392f1de4-80e1-4a8a-93a1-67c5f92a838a"
4962 #   define ICERTIFICATE_IID { \
4963     0x392f1de4, 0x80e1, 0x4a8a, \
4964     { 0x93, 0xa1, 0x67, 0xc5, 0xf9, 0x2a, 0x83, 0x8a } \
4965 }
4966 /* COM compatibility */
4967 VBOX_EXTERN_CONST(nsIID, IID_ICertificate);
4968 #   ifndef VBOX_WITH_GLUE
4969 struct ICertificate_vtbl
4970 {
4971     struct nsISupports_vtbl nsisupports;
4972 
4973     nsresult (*GetVersionNumber)(ICertificate *pThis, PRUint32 *versionNumber);
4974 
4975     nsresult (*GetSerialNumber)(ICertificate *pThis, PRUnichar * *serialNumber);
4976 
4977     nsresult (*GetSignatureAlgorithmOID)(ICertificate *pThis, PRUnichar * *signatureAlgorithmOID);
4978 
4979     nsresult (*GetSignatureAlgorithmName)(ICertificate *pThis, PRUnichar * *signatureAlgorithmName);
4980 
4981     nsresult (*GetIssuerName)(ICertificate *pThis, PRUint32 *issuerNameSize, PRUnichar * **issuerName);
4982 
4983     nsresult (*GetSubjectName)(ICertificate *pThis, PRUint32 *subjectNameSize, PRUnichar * **subjectName);
4984 
4985     nsresult (*GetFriendlyName)(ICertificate *pThis, PRUnichar * *friendlyName);
4986 
4987     nsresult (*GetValidityPeriodNotBefore)(ICertificate *pThis, PRUnichar * *validityPeriodNotBefore);
4988 
4989     nsresult (*GetValidityPeriodNotAfter)(ICertificate *pThis, PRUnichar * *validityPeriodNotAfter);
4990 
4991     nsresult (*GetPublicKeyAlgorithmOID)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithmOID);
4992 
4993     nsresult (*GetPublicKeyAlgorithm)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithm);
4994 
4995     nsresult (*GetSubjectPublicKey)(ICertificate *pThis, PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey);
4996 
4997     nsresult (*GetIssuerUniqueIdentifier)(ICertificate *pThis, PRUnichar * *issuerUniqueIdentifier);
4998 
4999     nsresult (*GetSubjectUniqueIdentifier)(ICertificate *pThis, PRUnichar * *subjectUniqueIdentifier);
5000 
5001     nsresult (*GetCertificateAuthority)(ICertificate *pThis, PRBool *certificateAuthority);
5002 
5003     nsresult (*GetKeyUsage)(ICertificate *pThis, PRUint32 *keyUsage);
5004 
5005     nsresult (*GetExtendedKeyUsage)(ICertificate *pThis, PRUint32 *extendedKeyUsageSize, PRUnichar * **extendedKeyUsage);
5006 
5007     nsresult (*GetRawCertData)(ICertificate *pThis, PRUint32 *rawCertDataSize, PRUint8 **rawCertData);
5008 
5009     nsresult (*GetSelfSigned)(ICertificate *pThis, PRBool *selfSigned);
5010 
5011     nsresult (*GetTrusted)(ICertificate *pThis, PRBool *trusted);
5012 
5013     nsresult (*GetExpired)(ICertificate *pThis, PRBool *expired);
5014 
5015     nsresult (*GetInternalAndReservedAttribute1ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5016 
5017     nsresult (*GetInternalAndReservedAttribute2ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5018 
5019     nsresult (*GetInternalAndReservedAttribute3ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5020 
5021     nsresult (*GetInternalAndReservedAttribute4ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5022 
5023     nsresult (*GetInternalAndReservedAttribute5ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5024 
5025     nsresult (*GetInternalAndReservedAttribute6ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5026 
5027     nsresult (*GetInternalAndReservedAttribute7ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5028 
5029     nsresult (*GetInternalAndReservedAttribute8ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5030 
5031     nsresult (*GetInternalAndReservedAttribute9ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5032 
5033     nsresult (*GetInternalAndReservedAttribute10ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5034 
5035     nsresult (*GetInternalAndReservedAttribute11ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5036 
5037     nsresult (*GetInternalAndReservedAttribute12ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5038 
5039     nsresult (*IsCurrentlyExpired)(
5040         ICertificate *pThis,
5041         PRBool * result
5042     );
5043 
5044     nsresult (*QueryInfo)(
5045         ICertificate *pThis,
5046         PRInt32 what,
5047         PRUnichar * * result
5048     );
5049 
5050     nsresult (*InternalAndReservedMethod1ICertificate)(ICertificate *pThis);
5051 
5052     nsresult (*InternalAndReservedMethod2ICertificate)(ICertificate *pThis);
5053 
5054 };
5055 #   else /* VBOX_WITH_GLUE */
5056 struct ICertificateVtbl
5057 {
5058     nsresult (*QueryInterface)(ICertificate *pThis, const nsID *iid, void **resultp);
5059     nsrefcnt (*AddRef)(ICertificate *pThis);
5060     nsrefcnt (*Release)(ICertificate *pThis);
5061     nsresult (*GetVersionNumber)(ICertificate *pThis, PRUint32 *versionNumber);
5062 
5063     nsresult (*GetSerialNumber)(ICertificate *pThis, PRUnichar * *serialNumber);
5064 
5065     nsresult (*GetSignatureAlgorithmOID)(ICertificate *pThis, PRUnichar * *signatureAlgorithmOID);
5066 
5067     nsresult (*GetSignatureAlgorithmName)(ICertificate *pThis, PRUnichar * *signatureAlgorithmName);
5068 
5069     nsresult (*GetIssuerName)(ICertificate *pThis, PRUint32 *issuerNameSize, PRUnichar * **issuerName);
5070 
5071     nsresult (*GetSubjectName)(ICertificate *pThis, PRUint32 *subjectNameSize, PRUnichar * **subjectName);
5072 
5073     nsresult (*GetFriendlyName)(ICertificate *pThis, PRUnichar * *friendlyName);
5074 
5075     nsresult (*GetValidityPeriodNotBefore)(ICertificate *pThis, PRUnichar * *validityPeriodNotBefore);
5076 
5077     nsresult (*GetValidityPeriodNotAfter)(ICertificate *pThis, PRUnichar * *validityPeriodNotAfter);
5078 
5079     nsresult (*GetPublicKeyAlgorithmOID)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithmOID);
5080 
5081     nsresult (*GetPublicKeyAlgorithm)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithm);
5082 
5083     nsresult (*GetSubjectPublicKey)(ICertificate *pThis, PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey);
5084 
5085     nsresult (*GetIssuerUniqueIdentifier)(ICertificate *pThis, PRUnichar * *issuerUniqueIdentifier);
5086 
5087     nsresult (*GetSubjectUniqueIdentifier)(ICertificate *pThis, PRUnichar * *subjectUniqueIdentifier);
5088 
5089     nsresult (*GetCertificateAuthority)(ICertificate *pThis, PRBool *certificateAuthority);
5090 
5091     nsresult (*GetKeyUsage)(ICertificate *pThis, PRUint32 *keyUsage);
5092 
5093     nsresult (*GetExtendedKeyUsage)(ICertificate *pThis, PRUint32 *extendedKeyUsageSize, PRUnichar * **extendedKeyUsage);
5094 
5095     nsresult (*GetRawCertData)(ICertificate *pThis, PRUint32 *rawCertDataSize, PRUint8 **rawCertData);
5096 
5097     nsresult (*GetSelfSigned)(ICertificate *pThis, PRBool *selfSigned);
5098 
5099     nsresult (*GetTrusted)(ICertificate *pThis, PRBool *trusted);
5100 
5101     nsresult (*GetExpired)(ICertificate *pThis, PRBool *expired);
5102 
5103     nsresult (*GetInternalAndReservedAttribute1ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5104 
5105     nsresult (*GetInternalAndReservedAttribute2ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5106 
5107     nsresult (*GetInternalAndReservedAttribute3ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5108 
5109     nsresult (*GetInternalAndReservedAttribute4ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5110 
5111     nsresult (*GetInternalAndReservedAttribute5ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5112 
5113     nsresult (*GetInternalAndReservedAttribute6ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5114 
5115     nsresult (*GetInternalAndReservedAttribute7ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5116 
5117     nsresult (*GetInternalAndReservedAttribute8ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5118 
5119     nsresult (*GetInternalAndReservedAttribute9ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5120 
5121     nsresult (*GetInternalAndReservedAttribute10ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5122 
5123     nsresult (*GetInternalAndReservedAttribute11ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5124 
5125     nsresult (*GetInternalAndReservedAttribute12ICertificate)(ICertificate *pThis, PRUint32 *reserved);
5126 
5127     nsresult (*IsCurrentlyExpired)(
5128         ICertificate *pThis,
5129         PRBool * result
5130     );
5131 
5132     nsresult (*QueryInfo)(
5133         ICertificate *pThis,
5134         PRInt32 what,
5135         PRUnichar * * result
5136     );
5137 
5138     nsresult (*InternalAndReservedMethod1ICertificate)(ICertificate *pThis);
5139 
5140     nsresult (*InternalAndReservedMethod2ICertificate)(ICertificate *pThis);
5141 
5142 };
5143 #    define ICertificate_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5144 #    define ICertificate_AddRef(p) ((p)->lpVtbl->AddRef(p))
5145 #    define ICertificate_Release(p) ((p)->lpVtbl->Release(p))
5146 #    define ICertificate_get_VersionNumber(p, aVersionNumber) ((p)->lpVtbl->GetVersionNumber(p, aVersionNumber))
5147 #    define ICertificate_GetVersionNumber(p, aVersionNumber) ((p)->lpVtbl->GetVersionNumber(p, aVersionNumber))
5148 #    define ICertificate_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
5149 #    define ICertificate_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
5150 #    define ICertificate_get_SignatureAlgorithmOID(p, aSignatureAlgorithmOID) ((p)->lpVtbl->GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID))
5151 #    define ICertificate_GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID) ((p)->lpVtbl->GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID))
5152 #    define ICertificate_get_SignatureAlgorithmName(p, aSignatureAlgorithmName) ((p)->lpVtbl->GetSignatureAlgorithmName(p, aSignatureAlgorithmName))
5153 #    define ICertificate_GetSignatureAlgorithmName(p, aSignatureAlgorithmName) ((p)->lpVtbl->GetSignatureAlgorithmName(p, aSignatureAlgorithmName))
5154 #    define ICertificate_get_IssuerName(p, aIssuerName) ((p)->lpVtbl->GetIssuerName(p, aIssuerName))
5155 #    define ICertificate_GetIssuerName(p, aIssuerName) ((p)->lpVtbl->GetIssuerName(p, aIssuerName))
5156 #    define ICertificate_get_SubjectName(p, aSubjectName) ((p)->lpVtbl->GetSubjectName(p, aSubjectName))
5157 #    define ICertificate_GetSubjectName(p, aSubjectName) ((p)->lpVtbl->GetSubjectName(p, aSubjectName))
5158 #    define ICertificate_get_FriendlyName(p, aFriendlyName) ((p)->lpVtbl->GetFriendlyName(p, aFriendlyName))
5159 #    define ICertificate_GetFriendlyName(p, aFriendlyName) ((p)->lpVtbl->GetFriendlyName(p, aFriendlyName))
5160 #    define ICertificate_get_ValidityPeriodNotBefore(p, aValidityPeriodNotBefore) ((p)->lpVtbl->GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore))
5161 #    define ICertificate_GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore) ((p)->lpVtbl->GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore))
5162 #    define ICertificate_get_ValidityPeriodNotAfter(p, aValidityPeriodNotAfter) ((p)->lpVtbl->GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter))
5163 #    define ICertificate_GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter) ((p)->lpVtbl->GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter))
5164 #    define ICertificate_get_PublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID) ((p)->lpVtbl->GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID))
5165 #    define ICertificate_GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID) ((p)->lpVtbl->GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID))
5166 #    define ICertificate_get_PublicKeyAlgorithm(p, aPublicKeyAlgorithm) ((p)->lpVtbl->GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm))
5167 #    define ICertificate_GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm) ((p)->lpVtbl->GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm))
5168 #    define ICertificate_get_SubjectPublicKey(p, aSubjectPublicKey) ((p)->lpVtbl->GetSubjectPublicKey(p, aSubjectPublicKey))
5169 #    define ICertificate_GetSubjectPublicKey(p, aSubjectPublicKey) ((p)->lpVtbl->GetSubjectPublicKey(p, aSubjectPublicKey))
5170 #    define ICertificate_get_IssuerUniqueIdentifier(p, aIssuerUniqueIdentifier) ((p)->lpVtbl->GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier))
5171 #    define ICertificate_GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier) ((p)->lpVtbl->GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier))
5172 #    define ICertificate_get_SubjectUniqueIdentifier(p, aSubjectUniqueIdentifier) ((p)->lpVtbl->GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier))
5173 #    define ICertificate_GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier) ((p)->lpVtbl->GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier))
5174 #    define ICertificate_get_CertificateAuthority(p, aCertificateAuthority) ((p)->lpVtbl->GetCertificateAuthority(p, aCertificateAuthority))
5175 #    define ICertificate_GetCertificateAuthority(p, aCertificateAuthority) ((p)->lpVtbl->GetCertificateAuthority(p, aCertificateAuthority))
5176 #    define ICertificate_get_KeyUsage(p, aKeyUsage) ((p)->lpVtbl->GetKeyUsage(p, aKeyUsage))
5177 #    define ICertificate_GetKeyUsage(p, aKeyUsage) ((p)->lpVtbl->GetKeyUsage(p, aKeyUsage))
5178 #    define ICertificate_get_ExtendedKeyUsage(p, aExtendedKeyUsage) ((p)->lpVtbl->GetExtendedKeyUsage(p, aExtendedKeyUsage))
5179 #    define ICertificate_GetExtendedKeyUsage(p, aExtendedKeyUsage) ((p)->lpVtbl->GetExtendedKeyUsage(p, aExtendedKeyUsage))
5180 #    define ICertificate_get_RawCertData(p, aRawCertData) ((p)->lpVtbl->GetRawCertData(p, aRawCertData))
5181 #    define ICertificate_GetRawCertData(p, aRawCertData) ((p)->lpVtbl->GetRawCertData(p, aRawCertData))
5182 #    define ICertificate_get_SelfSigned(p, aSelfSigned) ((p)->lpVtbl->GetSelfSigned(p, aSelfSigned))
5183 #    define ICertificate_GetSelfSigned(p, aSelfSigned) ((p)->lpVtbl->GetSelfSigned(p, aSelfSigned))
5184 #    define ICertificate_get_Trusted(p, aTrusted) ((p)->lpVtbl->GetTrusted(p, aTrusted))
5185 #    define ICertificate_GetTrusted(p, aTrusted) ((p)->lpVtbl->GetTrusted(p, aTrusted))
5186 #    define ICertificate_get_Expired(p, aExpired) ((p)->lpVtbl->GetExpired(p, aExpired))
5187 #    define ICertificate_GetExpired(p, aExpired) ((p)->lpVtbl->GetExpired(p, aExpired))
5188 #    define ICertificate_IsCurrentlyExpired(p, aResult) ((p)->lpVtbl->IsCurrentlyExpired(p, aResult))
5189 #    define ICertificate_QueryInfo(p, aWhat, aResult) ((p)->lpVtbl->QueryInfo(p, aWhat, aResult))
5190 #   endif /* VBOX_WITH_GLUE */
5191 
5192 interface ICertificate
5193 {
5194 #   ifndef VBOX_WITH_GLUE
5195     struct ICertificate_vtbl *vtbl;
5196 #   else /* VBOX_WITH_GLUE */
5197     CONST_VTBL struct ICertificateVtbl *lpVtbl;
5198 #   endif /* VBOX_WITH_GLUE */
5199 };
5200 /* End of struct ICertificate declaration */
5201 
5202 
5203 /* Start of struct IAppliance declaration */
5204 #   define IAPPLIANCE_IID_STR "8398f026-4add-4474-5bc3-2f9f2140b23e"
5205 #   define IAPPLIANCE_IID { \
5206     0x8398f026, 0x4add, 0x4474, \
5207     { 0x5b, 0xc3, 0x2f, 0x9f, 0x21, 0x40, 0xb2, 0x3e } \
5208 }
5209 /* COM compatibility */
5210 VBOX_EXTERN_CONST(nsIID, IID_IAppliance);
5211 #   ifndef VBOX_WITH_GLUE
5212 struct IAppliance_vtbl
5213 {
5214     struct nsISupports_vtbl nsisupports;
5215 
5216     nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
5217 
5218     nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
5219 
5220     nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
5221 
5222     nsresult (*GetMachines)(IAppliance *pThis, PRUint32 *machinesSize, PRUnichar * **machines);
5223 
5224     nsresult (*GetCertificate)(IAppliance *pThis, ICertificate * *certificate);
5225 
5226     nsresult (*GetInternalAndReservedAttribute1IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5227 
5228     nsresult (*GetInternalAndReservedAttribute2IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5229 
5230     nsresult (*GetInternalAndReservedAttribute3IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5231 
5232     nsresult (*GetInternalAndReservedAttribute4IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5233 
5234     nsresult (*GetInternalAndReservedAttribute5IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5235 
5236     nsresult (*GetInternalAndReservedAttribute6IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5237 
5238     nsresult (*GetInternalAndReservedAttribute7IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5239 
5240     nsresult (*Read)(
5241         IAppliance *pThis,
5242         PRUnichar * file,
5243         IProgress * * progress
5244     );
5245 
5246     nsresult (*Interpret)(IAppliance *pThis );
5247 
5248     nsresult (*ImportMachines)(
5249         IAppliance *pThis,
5250         PRUint32 optionsSize,
5251         PRUint32* options,
5252         IProgress * * progress
5253     );
5254 
5255     nsresult (*CreateVFSExplorer)(
5256         IAppliance *pThis,
5257         PRUnichar * URI,
5258         IVFSExplorer * * explorer
5259     );
5260 
5261     nsresult (*Write)(
5262         IAppliance *pThis,
5263         PRUnichar * format,
5264         PRUint32 optionsSize,
5265         PRUint32* options,
5266         PRUnichar * path,
5267         IProgress * * progress
5268     );
5269 
5270     nsresult (*GetWarnings)(
5271         IAppliance *pThis,
5272         PRUint32 *warningsSize,
5273         PRUnichar *** warnings
5274     );
5275 
5276     nsresult (*GetPasswordIds)(
5277         IAppliance *pThis,
5278         PRUint32 *identifiersSize,
5279         PRUnichar *** identifiers
5280     );
5281 
5282     nsresult (*GetMediumIdsForPasswordId)(
5283         IAppliance *pThis,
5284         PRUnichar * passwordId,
5285         PRUint32 *identifiersSize,
5286         PRUnichar *** identifiers
5287     );
5288 
5289     nsresult (*AddPasswords)(
5290         IAppliance *pThis,
5291         PRUint32 identifiersSize,
5292         PRUnichar ** identifiers,
5293         PRUint32 passwordsSize,
5294         PRUnichar ** passwords
5295     );
5296 
5297     nsresult (*InternalAndReservedMethod1IAppliance)(IAppliance *pThis);
5298 
5299     nsresult (*InternalAndReservedMethod2IAppliance)(IAppliance *pThis);
5300 
5301     nsresult (*InternalAndReservedMethod3IAppliance)(IAppliance *pThis);
5302 
5303     nsresult (*InternalAndReservedMethod4IAppliance)(IAppliance *pThis);
5304 
5305     nsresult (*InternalAndReservedMethod5IAppliance)(IAppliance *pThis);
5306 
5307     nsresult (*InternalAndReservedMethod6IAppliance)(IAppliance *pThis);
5308 
5309     nsresult (*InternalAndReservedMethod7IAppliance)(IAppliance *pThis);
5310 
5311     nsresult (*InternalAndReservedMethod8IAppliance)(IAppliance *pThis);
5312 
5313 };
5314 #   else /* VBOX_WITH_GLUE */
5315 struct IApplianceVtbl
5316 {
5317     nsresult (*QueryInterface)(IAppliance *pThis, const nsID *iid, void **resultp);
5318     nsrefcnt (*AddRef)(IAppliance *pThis);
5319     nsrefcnt (*Release)(IAppliance *pThis);
5320     nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
5321 
5322     nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
5323 
5324     nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
5325 
5326     nsresult (*GetMachines)(IAppliance *pThis, PRUint32 *machinesSize, PRUnichar * **machines);
5327 
5328     nsresult (*GetCertificate)(IAppliance *pThis, ICertificate * *certificate);
5329 
5330     nsresult (*GetInternalAndReservedAttribute1IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5331 
5332     nsresult (*GetInternalAndReservedAttribute2IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5333 
5334     nsresult (*GetInternalAndReservedAttribute3IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5335 
5336     nsresult (*GetInternalAndReservedAttribute4IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5337 
5338     nsresult (*GetInternalAndReservedAttribute5IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5339 
5340     nsresult (*GetInternalAndReservedAttribute6IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5341 
5342     nsresult (*GetInternalAndReservedAttribute7IAppliance)(IAppliance *pThis, PRUint32 *reserved);
5343 
5344     nsresult (*Read)(
5345         IAppliance *pThis,
5346         PRUnichar * file,
5347         IProgress * * progress
5348     );
5349 
5350     nsresult (*Interpret)(IAppliance *pThis );
5351 
5352     nsresult (*ImportMachines)(
5353         IAppliance *pThis,
5354         PRUint32 optionsSize,
5355         PRUint32* options,
5356         IProgress * * progress
5357     );
5358 
5359     nsresult (*CreateVFSExplorer)(
5360         IAppliance *pThis,
5361         PRUnichar * URI,
5362         IVFSExplorer * * explorer
5363     );
5364 
5365     nsresult (*Write)(
5366         IAppliance *pThis,
5367         PRUnichar * format,
5368         PRUint32 optionsSize,
5369         PRUint32* options,
5370         PRUnichar * path,
5371         IProgress * * progress
5372     );
5373 
5374     nsresult (*GetWarnings)(
5375         IAppliance *pThis,
5376         PRUint32 *warningsSize,
5377         PRUnichar *** warnings
5378     );
5379 
5380     nsresult (*GetPasswordIds)(
5381         IAppliance *pThis,
5382         PRUint32 *identifiersSize,
5383         PRUnichar *** identifiers
5384     );
5385 
5386     nsresult (*GetMediumIdsForPasswordId)(
5387         IAppliance *pThis,
5388         PRUnichar * passwordId,
5389         PRUint32 *identifiersSize,
5390         PRUnichar *** identifiers
5391     );
5392 
5393     nsresult (*AddPasswords)(
5394         IAppliance *pThis,
5395         PRUint32 identifiersSize,
5396         PRUnichar ** identifiers,
5397         PRUint32 passwordsSize,
5398         PRUnichar ** passwords
5399     );
5400 
5401     nsresult (*InternalAndReservedMethod1IAppliance)(IAppliance *pThis);
5402 
5403     nsresult (*InternalAndReservedMethod2IAppliance)(IAppliance *pThis);
5404 
5405     nsresult (*InternalAndReservedMethod3IAppliance)(IAppliance *pThis);
5406 
5407     nsresult (*InternalAndReservedMethod4IAppliance)(IAppliance *pThis);
5408 
5409     nsresult (*InternalAndReservedMethod5IAppliance)(IAppliance *pThis);
5410 
5411     nsresult (*InternalAndReservedMethod6IAppliance)(IAppliance *pThis);
5412 
5413     nsresult (*InternalAndReservedMethod7IAppliance)(IAppliance *pThis);
5414 
5415     nsresult (*InternalAndReservedMethod8IAppliance)(IAppliance *pThis);
5416 
5417 };
5418 #    define IAppliance_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5419 #    define IAppliance_AddRef(p) ((p)->lpVtbl->AddRef(p))
5420 #    define IAppliance_Release(p) ((p)->lpVtbl->Release(p))
5421 #    define IAppliance_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
5422 #    define IAppliance_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
5423 #    define IAppliance_get_Disks(p, aDisks) ((p)->lpVtbl->GetDisks(p, aDisks))
5424 #    define IAppliance_GetDisks(p, aDisks) ((p)->lpVtbl->GetDisks(p, aDisks))
5425 #    define IAppliance_get_VirtualSystemDescriptions(p, aVirtualSystemDescriptions) ((p)->lpVtbl->GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions))
5426 #    define IAppliance_GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions) ((p)->lpVtbl->GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions))
5427 #    define IAppliance_get_Machines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
5428 #    define IAppliance_GetMachines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
5429 #    define IAppliance_get_Certificate(p, aCertificate) ((p)->lpVtbl->GetCertificate(p, aCertificate))
5430 #    define IAppliance_GetCertificate(p, aCertificate) ((p)->lpVtbl->GetCertificate(p, aCertificate))
5431 #    define IAppliance_Read(p, aFile, aProgress) ((p)->lpVtbl->Read(p, aFile, aProgress))
5432 #    define IAppliance_Interpret(p) ((p)->lpVtbl->Interpret(p))
5433 #    define IAppliance_ImportMachines(p, aOptions, aProgress) ((p)->lpVtbl->ImportMachines(p, aOptions, aProgress))
5434 #    define IAppliance_CreateVFSExplorer(p, aURI, aExplorer) ((p)->lpVtbl->CreateVFSExplorer(p, aURI, aExplorer))
5435 #    define IAppliance_Write(p, aFormat, aOptions, aPath, aProgress) ((p)->lpVtbl->Write(p, aFormat, aOptions, aPath, aProgress))
5436 #    define IAppliance_GetWarnings(p, aWarnings) ((p)->lpVtbl->GetWarnings(p, aWarnings))
5437 #    define IAppliance_GetPasswordIds(p, aIdentifiers) ((p)->lpVtbl->GetPasswordIds(p, aIdentifiers))
5438 #    define IAppliance_GetMediumIdsForPasswordId(p, aPasswordId, aIdentifiers) ((p)->lpVtbl->GetMediumIdsForPasswordId(p, aPasswordId, aIdentifiers))
5439 #    define IAppliance_AddPasswords(p, aIdentifiers, aPasswords) ((p)->lpVtbl->AddPasswords(p, aIdentifiers, aPasswords))
5440 #   endif /* VBOX_WITH_GLUE */
5441 
5442 interface IAppliance
5443 {
5444 #   ifndef VBOX_WITH_GLUE
5445     struct IAppliance_vtbl *vtbl;
5446 #   else /* VBOX_WITH_GLUE */
5447     CONST_VTBL struct IApplianceVtbl *lpVtbl;
5448 #   endif /* VBOX_WITH_GLUE */
5449 };
5450 /* End of struct IAppliance declaration */
5451 
5452 
5453 /* Start of struct IVirtualSystemDescription declaration */
5454 #   define IVIRTUALSYSTEMDESCRIPTION_IID_STR "316c99a2-405d-41af-8508-46889144d067"
5455 #   define IVIRTUALSYSTEMDESCRIPTION_IID { \
5456     0x316c99a2, 0x405d, 0x41af, \
5457     { 0x85, 0x08, 0x46, 0x88, 0x91, 0x44, 0xd0, 0x67 } \
5458 }
5459 /* COM compatibility */
5460 VBOX_EXTERN_CONST(nsIID, IID_IVirtualSystemDescription);
5461 #   ifndef VBOX_WITH_GLUE
5462 struct IVirtualSystemDescription_vtbl
5463 {
5464     struct nsISupports_vtbl nsisupports;
5465 
5466     nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
5467 
5468     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5469 
5470     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5471 
5472     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5473 
5474     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5475 
5476     nsresult (*GetDescription)(
5477         IVirtualSystemDescription *pThis,
5478         PRUint32 *typesSize,
5479         PRUint32** types,
5480         PRUint32 *refsSize,
5481         PRUnichar *** refs,
5482         PRUint32 *OVFValuesSize,
5483         PRUnichar *** OVFValues,
5484         PRUint32 *VBoxValuesSize,
5485         PRUnichar *** VBoxValues,
5486         PRUint32 *extraConfigValuesSize,
5487         PRUnichar *** extraConfigValues
5488     );
5489 
5490     nsresult (*GetDescriptionByType)(
5491         IVirtualSystemDescription *pThis,
5492         PRUint32 type,
5493         PRUint32 *typesSize,
5494         PRUint32** types,
5495         PRUint32 *refsSize,
5496         PRUnichar *** refs,
5497         PRUint32 *OVFValuesSize,
5498         PRUnichar *** OVFValues,
5499         PRUint32 *VBoxValuesSize,
5500         PRUnichar *** VBoxValues,
5501         PRUint32 *extraConfigValuesSize,
5502         PRUnichar *** extraConfigValues
5503     );
5504 
5505     nsresult (*GetValuesByType)(
5506         IVirtualSystemDescription *pThis,
5507         PRUint32 type,
5508         PRUint32 which,
5509         PRUint32 *valuesSize,
5510         PRUnichar *** values
5511     );
5512 
5513     nsresult (*SetFinalValues)(
5514         IVirtualSystemDescription *pThis,
5515         PRUint32 enabledSize,
5516         PRBool* enabled,
5517         PRUint32 VBoxValuesSize,
5518         PRUnichar ** VBoxValues,
5519         PRUint32 extraConfigValuesSize,
5520         PRUnichar ** extraConfigValues
5521     );
5522 
5523     nsresult (*AddDescription)(
5524         IVirtualSystemDescription *pThis,
5525         PRUint32 type,
5526         PRUnichar * VBoxValue,
5527         PRUnichar * extraConfigValue
5528     );
5529 
5530     nsresult (*InternalAndReservedMethod1IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5531 
5532     nsresult (*InternalAndReservedMethod2IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5533 
5534     nsresult (*InternalAndReservedMethod3IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5535 
5536     nsresult (*InternalAndReservedMethod4IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5537 
5538 };
5539 #   else /* VBOX_WITH_GLUE */
5540 struct IVirtualSystemDescriptionVtbl
5541 {
5542     nsresult (*QueryInterface)(IVirtualSystemDescription *pThis, const nsID *iid, void **resultp);
5543     nsrefcnt (*AddRef)(IVirtualSystemDescription *pThis);
5544     nsrefcnt (*Release)(IVirtualSystemDescription *pThis);
5545     nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
5546 
5547     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5548 
5549     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5550 
5551     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5552 
5553     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
5554 
5555     nsresult (*GetDescription)(
5556         IVirtualSystemDescription *pThis,
5557         PRUint32 *typesSize,
5558         PRUint32** types,
5559         PRUint32 *refsSize,
5560         PRUnichar *** refs,
5561         PRUint32 *OVFValuesSize,
5562         PRUnichar *** OVFValues,
5563         PRUint32 *VBoxValuesSize,
5564         PRUnichar *** VBoxValues,
5565         PRUint32 *extraConfigValuesSize,
5566         PRUnichar *** extraConfigValues
5567     );
5568 
5569     nsresult (*GetDescriptionByType)(
5570         IVirtualSystemDescription *pThis,
5571         PRUint32 type,
5572         PRUint32 *typesSize,
5573         PRUint32** types,
5574         PRUint32 *refsSize,
5575         PRUnichar *** refs,
5576         PRUint32 *OVFValuesSize,
5577         PRUnichar *** OVFValues,
5578         PRUint32 *VBoxValuesSize,
5579         PRUnichar *** VBoxValues,
5580         PRUint32 *extraConfigValuesSize,
5581         PRUnichar *** extraConfigValues
5582     );
5583 
5584     nsresult (*GetValuesByType)(
5585         IVirtualSystemDescription *pThis,
5586         PRUint32 type,
5587         PRUint32 which,
5588         PRUint32 *valuesSize,
5589         PRUnichar *** values
5590     );
5591 
5592     nsresult (*SetFinalValues)(
5593         IVirtualSystemDescription *pThis,
5594         PRUint32 enabledSize,
5595         PRBool* enabled,
5596         PRUint32 VBoxValuesSize,
5597         PRUnichar ** VBoxValues,
5598         PRUint32 extraConfigValuesSize,
5599         PRUnichar ** extraConfigValues
5600     );
5601 
5602     nsresult (*AddDescription)(
5603         IVirtualSystemDescription *pThis,
5604         PRUint32 type,
5605         PRUnichar * VBoxValue,
5606         PRUnichar * extraConfigValue
5607     );
5608 
5609     nsresult (*InternalAndReservedMethod1IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5610 
5611     nsresult (*InternalAndReservedMethod2IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5612 
5613     nsresult (*InternalAndReservedMethod3IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5614 
5615     nsresult (*InternalAndReservedMethod4IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
5616 
5617 };
5618 #    define IVirtualSystemDescription_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5619 #    define IVirtualSystemDescription_AddRef(p) ((p)->lpVtbl->AddRef(p))
5620 #    define IVirtualSystemDescription_Release(p) ((p)->lpVtbl->Release(p))
5621 #    define IVirtualSystemDescription_get_Count(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
5622 #    define IVirtualSystemDescription_GetCount(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
5623 #    define IVirtualSystemDescription_GetDescription(p, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->GetDescription(p, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues))
5624 #    define IVirtualSystemDescription_GetDescriptionByType(p, aType, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->GetDescriptionByType(p, aType, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues))
5625 #    define IVirtualSystemDescription_GetValuesByType(p, aType, aWhich, aValues) ((p)->lpVtbl->GetValuesByType(p, aType, aWhich, aValues))
5626 #    define IVirtualSystemDescription_SetFinalValues(p, aEnabled, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->SetFinalValues(p, aEnabled, aVBoxValues, aExtraConfigValues))
5627 #    define IVirtualSystemDescription_AddDescription(p, aType, aVBoxValue, aExtraConfigValue) ((p)->lpVtbl->AddDescription(p, aType, aVBoxValue, aExtraConfigValue))
5628 #   endif /* VBOX_WITH_GLUE */
5629 
5630 interface IVirtualSystemDescription
5631 {
5632 #   ifndef VBOX_WITH_GLUE
5633     struct IVirtualSystemDescription_vtbl *vtbl;
5634 #   else /* VBOX_WITH_GLUE */
5635     CONST_VTBL struct IVirtualSystemDescriptionVtbl *lpVtbl;
5636 #   endif /* VBOX_WITH_GLUE */
5637 };
5638 /* End of struct IVirtualSystemDescription declaration */
5639 
5640 
5641 /* Start of struct IUnattended declaration */
5642 #   define IUNATTENDED_IID_STR "6f89464f-7193-426c-a41f-522e8f537fa0"
5643 #   define IUNATTENDED_IID { \
5644     0x6f89464f, 0x7193, 0x426c, \
5645     { 0xa4, 0x1f, 0x52, 0x2e, 0x8f, 0x53, 0x7f, 0xa0 } \
5646 }
5647 /* COM compatibility */
5648 VBOX_EXTERN_CONST(nsIID, IID_IUnattended);
5649 #   ifndef VBOX_WITH_GLUE
5650 struct IUnattended_vtbl
5651 {
5652     struct nsISupports_vtbl nsisupports;
5653 
5654     nsresult (*GetIsoPath)(IUnattended *pThis, PRUnichar * *isoPath);
5655     nsresult (*SetIsoPath)(IUnattended *pThis, PRUnichar * isoPath);
5656 
5657     nsresult (*GetMachine)(IUnattended *pThis, IMachine * *machine);
5658     nsresult (*SetMachine)(IUnattended *pThis, IMachine * machine);
5659 
5660     nsresult (*GetUser)(IUnattended *pThis, PRUnichar * *user);
5661     nsresult (*SetUser)(IUnattended *pThis, PRUnichar * user);
5662 
5663     nsresult (*GetPassword)(IUnattended *pThis, PRUnichar * *password);
5664     nsresult (*SetPassword)(IUnattended *pThis, PRUnichar * password);
5665 
5666     nsresult (*GetFullUserName)(IUnattended *pThis, PRUnichar * *fullUserName);
5667     nsresult (*SetFullUserName)(IUnattended *pThis, PRUnichar * fullUserName);
5668 
5669     nsresult (*GetProductKey)(IUnattended *pThis, PRUnichar * *productKey);
5670     nsresult (*SetProductKey)(IUnattended *pThis, PRUnichar * productKey);
5671 
5672     nsresult (*GetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * *additionsIsoPath);
5673     nsresult (*SetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * additionsIsoPath);
5674 
5675     nsresult (*GetInstallGuestAdditions)(IUnattended *pThis, PRBool *installGuestAdditions);
5676     nsresult (*SetInstallGuestAdditions)(IUnattended *pThis, PRBool installGuestAdditions);
5677 
5678     nsresult (*GetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * *validationKitIsoPath);
5679     nsresult (*SetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * validationKitIsoPath);
5680 
5681     nsresult (*GetInstallTestExecService)(IUnattended *pThis, PRBool *installTestExecService);
5682     nsresult (*SetInstallTestExecService)(IUnattended *pThis, PRBool installTestExecService);
5683 
5684     nsresult (*GetTimeZone)(IUnattended *pThis, PRUnichar * *timeZone);
5685     nsresult (*SetTimeZone)(IUnattended *pThis, PRUnichar * timeZone);
5686 
5687     nsresult (*GetLocale)(IUnattended *pThis, PRUnichar * *locale);
5688     nsresult (*SetLocale)(IUnattended *pThis, PRUnichar * locale);
5689 
5690     nsresult (*GetLanguage)(IUnattended *pThis, PRUnichar * *language);
5691     nsresult (*SetLanguage)(IUnattended *pThis, PRUnichar * language);
5692 
5693     nsresult (*GetCountry)(IUnattended *pThis, PRUnichar * *country);
5694     nsresult (*SetCountry)(IUnattended *pThis, PRUnichar * country);
5695 
5696     nsresult (*GetProxy)(IUnattended *pThis, PRUnichar * *proxy);
5697     nsresult (*SetProxy)(IUnattended *pThis, PRUnichar * proxy);
5698 
5699     nsresult (*GetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * *packageSelectionAdjustments);
5700     nsresult (*SetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * packageSelectionAdjustments);
5701 
5702     nsresult (*GetHostname)(IUnattended *pThis, PRUnichar * *hostname);
5703     nsresult (*SetHostname)(IUnattended *pThis, PRUnichar * hostname);
5704 
5705     nsresult (*GetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * *auxiliaryBasePath);
5706     nsresult (*SetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * auxiliaryBasePath);
5707 
5708     nsresult (*GetImageIndex)(IUnattended *pThis, PRUint32 *imageIndex);
5709     nsresult (*SetImageIndex)(IUnattended *pThis, PRUint32 imageIndex);
5710 
5711     nsresult (*GetScriptTemplatePath)(IUnattended *pThis, PRUnichar * *scriptTemplatePath);
5712     nsresult (*SetScriptTemplatePath)(IUnattended *pThis, PRUnichar * scriptTemplatePath);
5713 
5714     nsresult (*GetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * *postInstallScriptTemplatePath);
5715     nsresult (*SetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * postInstallScriptTemplatePath);
5716 
5717     nsresult (*GetPostInstallCommand)(IUnattended *pThis, PRUnichar * *postInstallCommand);
5718     nsresult (*SetPostInstallCommand)(IUnattended *pThis, PRUnichar * postInstallCommand);
5719 
5720     nsresult (*GetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * *extraInstallKernelParameters);
5721     nsresult (*SetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * extraInstallKernelParameters);
5722 
5723     nsresult (*GetDetectedOSTypeId)(IUnattended *pThis, PRUnichar * *detectedOSTypeId);
5724 
5725     nsresult (*GetDetectedOSVersion)(IUnattended *pThis, PRUnichar * *detectedOSVersion);
5726 
5727     nsresult (*GetDetectedOSFlavor)(IUnattended *pThis, PRUnichar * *detectedOSFlavor);
5728 
5729     nsresult (*GetDetectedOSLanguages)(IUnattended *pThis, PRUnichar * *detectedOSLanguages);
5730 
5731     nsresult (*GetDetectedOSHints)(IUnattended *pThis, PRUnichar * *detectedOSHints);
5732 
5733     nsresult (*GetInternalAndReservedAttribute1IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5734 
5735     nsresult (*GetInternalAndReservedAttribute2IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5736 
5737     nsresult (*GetInternalAndReservedAttribute3IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5738 
5739     nsresult (*GetInternalAndReservedAttribute4IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5740 
5741     nsresult (*GetInternalAndReservedAttribute5IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5742 
5743     nsresult (*GetInternalAndReservedAttribute6IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5744 
5745     nsresult (*GetInternalAndReservedAttribute7IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5746 
5747     nsresult (*GetInternalAndReservedAttribute8IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5748 
5749     nsresult (*GetInternalAndReservedAttribute9IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5750 
5751     nsresult (*GetInternalAndReservedAttribute10IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5752 
5753     nsresult (*GetInternalAndReservedAttribute11IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5754 
5755     nsresult (*GetInternalAndReservedAttribute12IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5756 
5757     nsresult (*GetInternalAndReservedAttribute13IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5758 
5759     nsresult (*GetInternalAndReservedAttribute14IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5760 
5761     nsresult (*GetInternalAndReservedAttribute15IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5762 
5763     nsresult (*GetInternalAndReservedAttribute16IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5764 
5765     nsresult (*DetectIsoOS)(IUnattended *pThis );
5766 
5767     nsresult (*Prepare)(IUnattended *pThis );
5768 
5769     nsresult (*ConstructMedia)(IUnattended *pThis );
5770 
5771     nsresult (*ReconfigureVM)(IUnattended *pThis );
5772 
5773     nsresult (*Done)(IUnattended *pThis );
5774 
5775     nsresult (*InternalAndReservedMethod1IUnattended)(IUnattended *pThis);
5776 
5777     nsresult (*InternalAndReservedMethod2IUnattended)(IUnattended *pThis);
5778 
5779     nsresult (*InternalAndReservedMethod3IUnattended)(IUnattended *pThis);
5780 
5781     nsresult (*InternalAndReservedMethod4IUnattended)(IUnattended *pThis);
5782 
5783 };
5784 #   else /* VBOX_WITH_GLUE */
5785 struct IUnattendedVtbl
5786 {
5787     nsresult (*QueryInterface)(IUnattended *pThis, const nsID *iid, void **resultp);
5788     nsrefcnt (*AddRef)(IUnattended *pThis);
5789     nsrefcnt (*Release)(IUnattended *pThis);
5790     nsresult (*GetIsoPath)(IUnattended *pThis, PRUnichar * *isoPath);
5791     nsresult (*SetIsoPath)(IUnattended *pThis, PRUnichar * isoPath);
5792 
5793     nsresult (*GetMachine)(IUnattended *pThis, IMachine * *machine);
5794     nsresult (*SetMachine)(IUnattended *pThis, IMachine * machine);
5795 
5796     nsresult (*GetUser)(IUnattended *pThis, PRUnichar * *user);
5797     nsresult (*SetUser)(IUnattended *pThis, PRUnichar * user);
5798 
5799     nsresult (*GetPassword)(IUnattended *pThis, PRUnichar * *password);
5800     nsresult (*SetPassword)(IUnattended *pThis, PRUnichar * password);
5801 
5802     nsresult (*GetFullUserName)(IUnattended *pThis, PRUnichar * *fullUserName);
5803     nsresult (*SetFullUserName)(IUnattended *pThis, PRUnichar * fullUserName);
5804 
5805     nsresult (*GetProductKey)(IUnattended *pThis, PRUnichar * *productKey);
5806     nsresult (*SetProductKey)(IUnattended *pThis, PRUnichar * productKey);
5807 
5808     nsresult (*GetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * *additionsIsoPath);
5809     nsresult (*SetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * additionsIsoPath);
5810 
5811     nsresult (*GetInstallGuestAdditions)(IUnattended *pThis, PRBool *installGuestAdditions);
5812     nsresult (*SetInstallGuestAdditions)(IUnattended *pThis, PRBool installGuestAdditions);
5813 
5814     nsresult (*GetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * *validationKitIsoPath);
5815     nsresult (*SetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * validationKitIsoPath);
5816 
5817     nsresult (*GetInstallTestExecService)(IUnattended *pThis, PRBool *installTestExecService);
5818     nsresult (*SetInstallTestExecService)(IUnattended *pThis, PRBool installTestExecService);
5819 
5820     nsresult (*GetTimeZone)(IUnattended *pThis, PRUnichar * *timeZone);
5821     nsresult (*SetTimeZone)(IUnattended *pThis, PRUnichar * timeZone);
5822 
5823     nsresult (*GetLocale)(IUnattended *pThis, PRUnichar * *locale);
5824     nsresult (*SetLocale)(IUnattended *pThis, PRUnichar * locale);
5825 
5826     nsresult (*GetLanguage)(IUnattended *pThis, PRUnichar * *language);
5827     nsresult (*SetLanguage)(IUnattended *pThis, PRUnichar * language);
5828 
5829     nsresult (*GetCountry)(IUnattended *pThis, PRUnichar * *country);
5830     nsresult (*SetCountry)(IUnattended *pThis, PRUnichar * country);
5831 
5832     nsresult (*GetProxy)(IUnattended *pThis, PRUnichar * *proxy);
5833     nsresult (*SetProxy)(IUnattended *pThis, PRUnichar * proxy);
5834 
5835     nsresult (*GetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * *packageSelectionAdjustments);
5836     nsresult (*SetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * packageSelectionAdjustments);
5837 
5838     nsresult (*GetHostname)(IUnattended *pThis, PRUnichar * *hostname);
5839     nsresult (*SetHostname)(IUnattended *pThis, PRUnichar * hostname);
5840 
5841     nsresult (*GetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * *auxiliaryBasePath);
5842     nsresult (*SetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * auxiliaryBasePath);
5843 
5844     nsresult (*GetImageIndex)(IUnattended *pThis, PRUint32 *imageIndex);
5845     nsresult (*SetImageIndex)(IUnattended *pThis, PRUint32 imageIndex);
5846 
5847     nsresult (*GetScriptTemplatePath)(IUnattended *pThis, PRUnichar * *scriptTemplatePath);
5848     nsresult (*SetScriptTemplatePath)(IUnattended *pThis, PRUnichar * scriptTemplatePath);
5849 
5850     nsresult (*GetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * *postInstallScriptTemplatePath);
5851     nsresult (*SetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * postInstallScriptTemplatePath);
5852 
5853     nsresult (*GetPostInstallCommand)(IUnattended *pThis, PRUnichar * *postInstallCommand);
5854     nsresult (*SetPostInstallCommand)(IUnattended *pThis, PRUnichar * postInstallCommand);
5855 
5856     nsresult (*GetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * *extraInstallKernelParameters);
5857     nsresult (*SetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * extraInstallKernelParameters);
5858 
5859     nsresult (*GetDetectedOSTypeId)(IUnattended *pThis, PRUnichar * *detectedOSTypeId);
5860 
5861     nsresult (*GetDetectedOSVersion)(IUnattended *pThis, PRUnichar * *detectedOSVersion);
5862 
5863     nsresult (*GetDetectedOSFlavor)(IUnattended *pThis, PRUnichar * *detectedOSFlavor);
5864 
5865     nsresult (*GetDetectedOSLanguages)(IUnattended *pThis, PRUnichar * *detectedOSLanguages);
5866 
5867     nsresult (*GetDetectedOSHints)(IUnattended *pThis, PRUnichar * *detectedOSHints);
5868 
5869     nsresult (*GetInternalAndReservedAttribute1IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5870 
5871     nsresult (*GetInternalAndReservedAttribute2IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5872 
5873     nsresult (*GetInternalAndReservedAttribute3IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5874 
5875     nsresult (*GetInternalAndReservedAttribute4IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5876 
5877     nsresult (*GetInternalAndReservedAttribute5IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5878 
5879     nsresult (*GetInternalAndReservedAttribute6IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5880 
5881     nsresult (*GetInternalAndReservedAttribute7IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5882 
5883     nsresult (*GetInternalAndReservedAttribute8IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5884 
5885     nsresult (*GetInternalAndReservedAttribute9IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5886 
5887     nsresult (*GetInternalAndReservedAttribute10IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5888 
5889     nsresult (*GetInternalAndReservedAttribute11IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5890 
5891     nsresult (*GetInternalAndReservedAttribute12IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5892 
5893     nsresult (*GetInternalAndReservedAttribute13IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5894 
5895     nsresult (*GetInternalAndReservedAttribute14IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5896 
5897     nsresult (*GetInternalAndReservedAttribute15IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5898 
5899     nsresult (*GetInternalAndReservedAttribute16IUnattended)(IUnattended *pThis, PRUint32 *reserved);
5900 
5901     nsresult (*DetectIsoOS)(IUnattended *pThis );
5902 
5903     nsresult (*Prepare)(IUnattended *pThis );
5904 
5905     nsresult (*ConstructMedia)(IUnattended *pThis );
5906 
5907     nsresult (*ReconfigureVM)(IUnattended *pThis );
5908 
5909     nsresult (*Done)(IUnattended *pThis );
5910 
5911     nsresult (*InternalAndReservedMethod1IUnattended)(IUnattended *pThis);
5912 
5913     nsresult (*InternalAndReservedMethod2IUnattended)(IUnattended *pThis);
5914 
5915     nsresult (*InternalAndReservedMethod3IUnattended)(IUnattended *pThis);
5916 
5917     nsresult (*InternalAndReservedMethod4IUnattended)(IUnattended *pThis);
5918 
5919 };
5920 #    define IUnattended_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5921 #    define IUnattended_AddRef(p) ((p)->lpVtbl->AddRef(p))
5922 #    define IUnattended_Release(p) ((p)->lpVtbl->Release(p))
5923 #    define IUnattended_get_IsoPath(p, aIsoPath) ((p)->lpVtbl->GetIsoPath(p, aIsoPath))
5924 #    define IUnattended_GetIsoPath(p, aIsoPath) ((p)->lpVtbl->GetIsoPath(p, aIsoPath))
5925 #    define IUnattended_put_IsoPath(p, aIsoPath) ((p)->lpVtbl->SetIsoPath(p, aIsoPath))
5926 #    define IUnattended_SetIsoPath(p, aIsoPath) ((p)->lpVtbl->SetIsoPath(p, aIsoPath))
5927 #    define IUnattended_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
5928 #    define IUnattended_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
5929 #    define IUnattended_put_Machine(p, aMachine) ((p)->lpVtbl->SetMachine(p, aMachine))
5930 #    define IUnattended_SetMachine(p, aMachine) ((p)->lpVtbl->SetMachine(p, aMachine))
5931 #    define IUnattended_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
5932 #    define IUnattended_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
5933 #    define IUnattended_put_User(p, aUser) ((p)->lpVtbl->SetUser(p, aUser))
5934 #    define IUnattended_SetUser(p, aUser) ((p)->lpVtbl->SetUser(p, aUser))
5935 #    define IUnattended_get_Password(p, aPassword) ((p)->lpVtbl->GetPassword(p, aPassword))
5936 #    define IUnattended_GetPassword(p, aPassword) ((p)->lpVtbl->GetPassword(p, aPassword))
5937 #    define IUnattended_put_Password(p, aPassword) ((p)->lpVtbl->SetPassword(p, aPassword))
5938 #    define IUnattended_SetPassword(p, aPassword) ((p)->lpVtbl->SetPassword(p, aPassword))
5939 #    define IUnattended_get_FullUserName(p, aFullUserName) ((p)->lpVtbl->GetFullUserName(p, aFullUserName))
5940 #    define IUnattended_GetFullUserName(p, aFullUserName) ((p)->lpVtbl->GetFullUserName(p, aFullUserName))
5941 #    define IUnattended_put_FullUserName(p, aFullUserName) ((p)->lpVtbl->SetFullUserName(p, aFullUserName))
5942 #    define IUnattended_SetFullUserName(p, aFullUserName) ((p)->lpVtbl->SetFullUserName(p, aFullUserName))
5943 #    define IUnattended_get_ProductKey(p, aProductKey) ((p)->lpVtbl->GetProductKey(p, aProductKey))
5944 #    define IUnattended_GetProductKey(p, aProductKey) ((p)->lpVtbl->GetProductKey(p, aProductKey))
5945 #    define IUnattended_put_ProductKey(p, aProductKey) ((p)->lpVtbl->SetProductKey(p, aProductKey))
5946 #    define IUnattended_SetProductKey(p, aProductKey) ((p)->lpVtbl->SetProductKey(p, aProductKey))
5947 #    define IUnattended_get_AdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->GetAdditionsIsoPath(p, aAdditionsIsoPath))
5948 #    define IUnattended_GetAdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->GetAdditionsIsoPath(p, aAdditionsIsoPath))
5949 #    define IUnattended_put_AdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->SetAdditionsIsoPath(p, aAdditionsIsoPath))
5950 #    define IUnattended_SetAdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->SetAdditionsIsoPath(p, aAdditionsIsoPath))
5951 #    define IUnattended_get_InstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->GetInstallGuestAdditions(p, aInstallGuestAdditions))
5952 #    define IUnattended_GetInstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->GetInstallGuestAdditions(p, aInstallGuestAdditions))
5953 #    define IUnattended_put_InstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->SetInstallGuestAdditions(p, aInstallGuestAdditions))
5954 #    define IUnattended_SetInstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->SetInstallGuestAdditions(p, aInstallGuestAdditions))
5955 #    define IUnattended_get_ValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->GetValidationKitIsoPath(p, aValidationKitIsoPath))
5956 #    define IUnattended_GetValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->GetValidationKitIsoPath(p, aValidationKitIsoPath))
5957 #    define IUnattended_put_ValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->SetValidationKitIsoPath(p, aValidationKitIsoPath))
5958 #    define IUnattended_SetValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->SetValidationKitIsoPath(p, aValidationKitIsoPath))
5959 #    define IUnattended_get_InstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->GetInstallTestExecService(p, aInstallTestExecService))
5960 #    define IUnattended_GetInstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->GetInstallTestExecService(p, aInstallTestExecService))
5961 #    define IUnattended_put_InstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->SetInstallTestExecService(p, aInstallTestExecService))
5962 #    define IUnattended_SetInstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->SetInstallTestExecService(p, aInstallTestExecService))
5963 #    define IUnattended_get_TimeZone(p, aTimeZone) ((p)->lpVtbl->GetTimeZone(p, aTimeZone))
5964 #    define IUnattended_GetTimeZone(p, aTimeZone) ((p)->lpVtbl->GetTimeZone(p, aTimeZone))
5965 #    define IUnattended_put_TimeZone(p, aTimeZone) ((p)->lpVtbl->SetTimeZone(p, aTimeZone))
5966 #    define IUnattended_SetTimeZone(p, aTimeZone) ((p)->lpVtbl->SetTimeZone(p, aTimeZone))
5967 #    define IUnattended_get_Locale(p, aLocale) ((p)->lpVtbl->GetLocale(p, aLocale))
5968 #    define IUnattended_GetLocale(p, aLocale) ((p)->lpVtbl->GetLocale(p, aLocale))
5969 #    define IUnattended_put_Locale(p, aLocale) ((p)->lpVtbl->SetLocale(p, aLocale))
5970 #    define IUnattended_SetLocale(p, aLocale) ((p)->lpVtbl->SetLocale(p, aLocale))
5971 #    define IUnattended_get_Language(p, aLanguage) ((p)->lpVtbl->GetLanguage(p, aLanguage))
5972 #    define IUnattended_GetLanguage(p, aLanguage) ((p)->lpVtbl->GetLanguage(p, aLanguage))
5973 #    define IUnattended_put_Language(p, aLanguage) ((p)->lpVtbl->SetLanguage(p, aLanguage))
5974 #    define IUnattended_SetLanguage(p, aLanguage) ((p)->lpVtbl->SetLanguage(p, aLanguage))
5975 #    define IUnattended_get_Country(p, aCountry) ((p)->lpVtbl->GetCountry(p, aCountry))
5976 #    define IUnattended_GetCountry(p, aCountry) ((p)->lpVtbl->GetCountry(p, aCountry))
5977 #    define IUnattended_put_Country(p, aCountry) ((p)->lpVtbl->SetCountry(p, aCountry))
5978 #    define IUnattended_SetCountry(p, aCountry) ((p)->lpVtbl->SetCountry(p, aCountry))
5979 #    define IUnattended_get_Proxy(p, aProxy) ((p)->lpVtbl->GetProxy(p, aProxy))
5980 #    define IUnattended_GetProxy(p, aProxy) ((p)->lpVtbl->GetProxy(p, aProxy))
5981 #    define IUnattended_put_Proxy(p, aProxy) ((p)->lpVtbl->SetProxy(p, aProxy))
5982 #    define IUnattended_SetProxy(p, aProxy) ((p)->lpVtbl->SetProxy(p, aProxy))
5983 #    define IUnattended_get_PackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
5984 #    define IUnattended_GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
5985 #    define IUnattended_put_PackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
5986 #    define IUnattended_SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
5987 #    define IUnattended_get_Hostname(p, aHostname) ((p)->lpVtbl->GetHostname(p, aHostname))
5988 #    define IUnattended_GetHostname(p, aHostname) ((p)->lpVtbl->GetHostname(p, aHostname))
5989 #    define IUnattended_put_Hostname(p, aHostname) ((p)->lpVtbl->SetHostname(p, aHostname))
5990 #    define IUnattended_SetHostname(p, aHostname) ((p)->lpVtbl->SetHostname(p, aHostname))
5991 #    define IUnattended_get_AuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->GetAuxiliaryBasePath(p, aAuxiliaryBasePath))
5992 #    define IUnattended_GetAuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->GetAuxiliaryBasePath(p, aAuxiliaryBasePath))
5993 #    define IUnattended_put_AuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->SetAuxiliaryBasePath(p, aAuxiliaryBasePath))
5994 #    define IUnattended_SetAuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->SetAuxiliaryBasePath(p, aAuxiliaryBasePath))
5995 #    define IUnattended_get_ImageIndex(p, aImageIndex) ((p)->lpVtbl->GetImageIndex(p, aImageIndex))
5996 #    define IUnattended_GetImageIndex(p, aImageIndex) ((p)->lpVtbl->GetImageIndex(p, aImageIndex))
5997 #    define IUnattended_put_ImageIndex(p, aImageIndex) ((p)->lpVtbl->SetImageIndex(p, aImageIndex))
5998 #    define IUnattended_SetImageIndex(p, aImageIndex) ((p)->lpVtbl->SetImageIndex(p, aImageIndex))
5999 #    define IUnattended_get_ScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->GetScriptTemplatePath(p, aScriptTemplatePath))
6000 #    define IUnattended_GetScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->GetScriptTemplatePath(p, aScriptTemplatePath))
6001 #    define IUnattended_put_ScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->SetScriptTemplatePath(p, aScriptTemplatePath))
6002 #    define IUnattended_SetScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->SetScriptTemplatePath(p, aScriptTemplatePath))
6003 #    define IUnattended_get_PostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6004 #    define IUnattended_GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6005 #    define IUnattended_put_PostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6006 #    define IUnattended_SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
6007 #    define IUnattended_get_PostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->GetPostInstallCommand(p, aPostInstallCommand))
6008 #    define IUnattended_GetPostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->GetPostInstallCommand(p, aPostInstallCommand))
6009 #    define IUnattended_put_PostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->SetPostInstallCommand(p, aPostInstallCommand))
6010 #    define IUnattended_SetPostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->SetPostInstallCommand(p, aPostInstallCommand))
6011 #    define IUnattended_get_ExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6012 #    define IUnattended_GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6013 #    define IUnattended_put_ExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6014 #    define IUnattended_SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
6015 #    define IUnattended_get_DetectedOSTypeId(p, aDetectedOSTypeId) ((p)->lpVtbl->GetDetectedOSTypeId(p, aDetectedOSTypeId))
6016 #    define IUnattended_GetDetectedOSTypeId(p, aDetectedOSTypeId) ((p)->lpVtbl->GetDetectedOSTypeId(p, aDetectedOSTypeId))
6017 #    define IUnattended_get_DetectedOSVersion(p, aDetectedOSVersion) ((p)->lpVtbl->GetDetectedOSVersion(p, aDetectedOSVersion))
6018 #    define IUnattended_GetDetectedOSVersion(p, aDetectedOSVersion) ((p)->lpVtbl->GetDetectedOSVersion(p, aDetectedOSVersion))
6019 #    define IUnattended_get_DetectedOSFlavor(p, aDetectedOSFlavor) ((p)->lpVtbl->GetDetectedOSFlavor(p, aDetectedOSFlavor))
6020 #    define IUnattended_GetDetectedOSFlavor(p, aDetectedOSFlavor) ((p)->lpVtbl->GetDetectedOSFlavor(p, aDetectedOSFlavor))
6021 #    define IUnattended_get_DetectedOSLanguages(p, aDetectedOSLanguages) ((p)->lpVtbl->GetDetectedOSLanguages(p, aDetectedOSLanguages))
6022 #    define IUnattended_GetDetectedOSLanguages(p, aDetectedOSLanguages) ((p)->lpVtbl->GetDetectedOSLanguages(p, aDetectedOSLanguages))
6023 #    define IUnattended_get_DetectedOSHints(p, aDetectedOSHints) ((p)->lpVtbl->GetDetectedOSHints(p, aDetectedOSHints))
6024 #    define IUnattended_GetDetectedOSHints(p, aDetectedOSHints) ((p)->lpVtbl->GetDetectedOSHints(p, aDetectedOSHints))
6025 #    define IUnattended_DetectIsoOS(p) ((p)->lpVtbl->DetectIsoOS(p))
6026 #    define IUnattended_Prepare(p) ((p)->lpVtbl->Prepare(p))
6027 #    define IUnattended_ConstructMedia(p) ((p)->lpVtbl->ConstructMedia(p))
6028 #    define IUnattended_ReconfigureVM(p) ((p)->lpVtbl->ReconfigureVM(p))
6029 #    define IUnattended_Done(p) ((p)->lpVtbl->Done(p))
6030 #   endif /* VBOX_WITH_GLUE */
6031 
6032 interface IUnattended
6033 {
6034 #   ifndef VBOX_WITH_GLUE
6035     struct IUnattended_vtbl *vtbl;
6036 #   else /* VBOX_WITH_GLUE */
6037     CONST_VTBL struct IUnattendedVtbl *lpVtbl;
6038 #   endif /* VBOX_WITH_GLUE */
6039 };
6040 /* End of struct IUnattended declaration */
6041 
6042 
6043 /* Start of struct IBIOSSettings declaration */
6044 #   define IBIOSSETTINGS_IID_STR "f13f667d-3624-4ac5-99c1-3d982ebd8d98"
6045 #   define IBIOSSETTINGS_IID { \
6046     0xf13f667d, 0x3624, 0x4ac5, \
6047     { 0x99, 0xc1, 0x3d, 0x98, 0x2e, 0xbd, 0x8d, 0x98 } \
6048 }
6049 /* COM compatibility */
6050 VBOX_EXTERN_CONST(nsIID, IID_IBIOSSettings);
6051 #   ifndef VBOX_WITH_GLUE
6052 struct IBIOSSettings_vtbl
6053 {
6054     struct nsISupports_vtbl nsisupports;
6055 
6056     nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
6057     nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
6058 
6059     nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
6060     nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
6061 
6062     nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
6063     nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
6064 
6065     nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
6066     nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
6067 
6068     nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
6069     nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
6070 
6071     nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
6072     nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
6073 
6074     nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
6075     nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
6076 
6077     nsresult (*GetAPICMode)(IBIOSSettings *pThis, PRUint32 *APICMode);
6078     nsresult (*SetAPICMode)(IBIOSSettings *pThis, PRUint32 APICMode);
6079 
6080     nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
6081     nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
6082 
6083     nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
6084     nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
6085 
6086     nsresult (*GetNonVolatileStorageFile)(IBIOSSettings *pThis, PRUnichar * *nonVolatileStorageFile);
6087 
6088     nsresult (*GetInternalAndReservedAttribute1IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6089 
6090     nsresult (*GetInternalAndReservedAttribute2IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6091 
6092     nsresult (*GetInternalAndReservedAttribute3IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6093 
6094     nsresult (*GetInternalAndReservedAttribute4IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6095 
6096     nsresult (*GetInternalAndReservedAttribute5IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6097 
6098     nsresult (*GetInternalAndReservedAttribute6IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6099 
6100     nsresult (*GetInternalAndReservedAttribute7IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6101 
6102     nsresult (*GetInternalAndReservedAttribute8IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6103 
6104     nsresult (*InternalAndReservedMethod1IBIOSSettings)(IBIOSSettings *pThis);
6105 
6106 };
6107 #   else /* VBOX_WITH_GLUE */
6108 struct IBIOSSettingsVtbl
6109 {
6110     nsresult (*QueryInterface)(IBIOSSettings *pThis, const nsID *iid, void **resultp);
6111     nsrefcnt (*AddRef)(IBIOSSettings *pThis);
6112     nsrefcnt (*Release)(IBIOSSettings *pThis);
6113     nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
6114     nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
6115 
6116     nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
6117     nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
6118 
6119     nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
6120     nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
6121 
6122     nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
6123     nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
6124 
6125     nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
6126     nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
6127 
6128     nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
6129     nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
6130 
6131     nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
6132     nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
6133 
6134     nsresult (*GetAPICMode)(IBIOSSettings *pThis, PRUint32 *APICMode);
6135     nsresult (*SetAPICMode)(IBIOSSettings *pThis, PRUint32 APICMode);
6136 
6137     nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
6138     nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
6139 
6140     nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
6141     nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
6142 
6143     nsresult (*GetNonVolatileStorageFile)(IBIOSSettings *pThis, PRUnichar * *nonVolatileStorageFile);
6144 
6145     nsresult (*GetInternalAndReservedAttribute1IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6146 
6147     nsresult (*GetInternalAndReservedAttribute2IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6148 
6149     nsresult (*GetInternalAndReservedAttribute3IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6150 
6151     nsresult (*GetInternalAndReservedAttribute4IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6152 
6153     nsresult (*GetInternalAndReservedAttribute5IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6154 
6155     nsresult (*GetInternalAndReservedAttribute6IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6156 
6157     nsresult (*GetInternalAndReservedAttribute7IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6158 
6159     nsresult (*GetInternalAndReservedAttribute8IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
6160 
6161     nsresult (*InternalAndReservedMethod1IBIOSSettings)(IBIOSSettings *pThis);
6162 
6163 };
6164 #    define IBIOSSettings_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6165 #    define IBIOSSettings_AddRef(p) ((p)->lpVtbl->AddRef(p))
6166 #    define IBIOSSettings_Release(p) ((p)->lpVtbl->Release(p))
6167 #    define IBIOSSettings_get_LogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->GetLogoFadeIn(p, aLogoFadeIn))
6168 #    define IBIOSSettings_GetLogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->GetLogoFadeIn(p, aLogoFadeIn))
6169 #    define IBIOSSettings_put_LogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->SetLogoFadeIn(p, aLogoFadeIn))
6170 #    define IBIOSSettings_SetLogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->SetLogoFadeIn(p, aLogoFadeIn))
6171 #    define IBIOSSettings_get_LogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->GetLogoFadeOut(p, aLogoFadeOut))
6172 #    define IBIOSSettings_GetLogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->GetLogoFadeOut(p, aLogoFadeOut))
6173 #    define IBIOSSettings_put_LogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->SetLogoFadeOut(p, aLogoFadeOut))
6174 #    define IBIOSSettings_SetLogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->SetLogoFadeOut(p, aLogoFadeOut))
6175 #    define IBIOSSettings_get_LogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->GetLogoDisplayTime(p, aLogoDisplayTime))
6176 #    define IBIOSSettings_GetLogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->GetLogoDisplayTime(p, aLogoDisplayTime))
6177 #    define IBIOSSettings_put_LogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->SetLogoDisplayTime(p, aLogoDisplayTime))
6178 #    define IBIOSSettings_SetLogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->SetLogoDisplayTime(p, aLogoDisplayTime))
6179 #    define IBIOSSettings_get_LogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->GetLogoImagePath(p, aLogoImagePath))
6180 #    define IBIOSSettings_GetLogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->GetLogoImagePath(p, aLogoImagePath))
6181 #    define IBIOSSettings_put_LogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->SetLogoImagePath(p, aLogoImagePath))
6182 #    define IBIOSSettings_SetLogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->SetLogoImagePath(p, aLogoImagePath))
6183 #    define IBIOSSettings_get_BootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->GetBootMenuMode(p, aBootMenuMode))
6184 #    define IBIOSSettings_GetBootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->GetBootMenuMode(p, aBootMenuMode))
6185 #    define IBIOSSettings_put_BootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->SetBootMenuMode(p, aBootMenuMode))
6186 #    define IBIOSSettings_SetBootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->SetBootMenuMode(p, aBootMenuMode))
6187 #    define IBIOSSettings_get_ACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->GetACPIEnabled(p, aACPIEnabled))
6188 #    define IBIOSSettings_GetACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->GetACPIEnabled(p, aACPIEnabled))
6189 #    define IBIOSSettings_put_ACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->SetACPIEnabled(p, aACPIEnabled))
6190 #    define IBIOSSettings_SetACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->SetACPIEnabled(p, aACPIEnabled))
6191 #    define IBIOSSettings_get_IOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->GetIOAPICEnabled(p, aIOAPICEnabled))
6192 #    define IBIOSSettings_GetIOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->GetIOAPICEnabled(p, aIOAPICEnabled))
6193 #    define IBIOSSettings_put_IOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->SetIOAPICEnabled(p, aIOAPICEnabled))
6194 #    define IBIOSSettings_SetIOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->SetIOAPICEnabled(p, aIOAPICEnabled))
6195 #    define IBIOSSettings_get_APICMode(p, aAPICMode) ((p)->lpVtbl->GetAPICMode(p, aAPICMode))
6196 #    define IBIOSSettings_GetAPICMode(p, aAPICMode) ((p)->lpVtbl->GetAPICMode(p, aAPICMode))
6197 #    define IBIOSSettings_put_APICMode(p, aAPICMode) ((p)->lpVtbl->SetAPICMode(p, aAPICMode))
6198 #    define IBIOSSettings_SetAPICMode(p, aAPICMode) ((p)->lpVtbl->SetAPICMode(p, aAPICMode))
6199 #    define IBIOSSettings_get_TimeOffset(p, aTimeOffset) ((p)->lpVtbl->GetTimeOffset(p, aTimeOffset))
6200 #    define IBIOSSettings_GetTimeOffset(p, aTimeOffset) ((p)->lpVtbl->GetTimeOffset(p, aTimeOffset))
6201 #    define IBIOSSettings_put_TimeOffset(p, aTimeOffset) ((p)->lpVtbl->SetTimeOffset(p, aTimeOffset))
6202 #    define IBIOSSettings_SetTimeOffset(p, aTimeOffset) ((p)->lpVtbl->SetTimeOffset(p, aTimeOffset))
6203 #    define IBIOSSettings_get_PXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->GetPXEDebugEnabled(p, aPXEDebugEnabled))
6204 #    define IBIOSSettings_GetPXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->GetPXEDebugEnabled(p, aPXEDebugEnabled))
6205 #    define IBIOSSettings_put_PXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->SetPXEDebugEnabled(p, aPXEDebugEnabled))
6206 #    define IBIOSSettings_SetPXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->SetPXEDebugEnabled(p, aPXEDebugEnabled))
6207 #    define IBIOSSettings_get_NonVolatileStorageFile(p, aNonVolatileStorageFile) ((p)->lpVtbl->GetNonVolatileStorageFile(p, aNonVolatileStorageFile))
6208 #    define IBIOSSettings_GetNonVolatileStorageFile(p, aNonVolatileStorageFile) ((p)->lpVtbl->GetNonVolatileStorageFile(p, aNonVolatileStorageFile))
6209 #   endif /* VBOX_WITH_GLUE */
6210 
6211 interface IBIOSSettings
6212 {
6213 #   ifndef VBOX_WITH_GLUE
6214     struct IBIOSSettings_vtbl *vtbl;
6215 #   else /* VBOX_WITH_GLUE */
6216     CONST_VTBL struct IBIOSSettingsVtbl *lpVtbl;
6217 #   endif /* VBOX_WITH_GLUE */
6218 };
6219 /* End of struct IBIOSSettings declaration */
6220 
6221 
6222 /* Start of struct IPCIAddress declaration */
6223 #   define IPCIADDRESS_IID_STR "c984d15f-e191-400b-840e-970f3dad7296"
6224 #   define IPCIADDRESS_IID { \
6225     0xc984d15f, 0xe191, 0x400b, \
6226     { 0x84, 0x0e, 0x97, 0x0f, 0x3d, 0xad, 0x72, 0x96 } \
6227 }
6228 /* COM compatibility */
6229 VBOX_EXTERN_CONST(nsIID, IID_IPCIAddress);
6230 #   ifndef VBOX_WITH_GLUE
6231 struct IPCIAddress_vtbl
6232 {
6233     struct nsISupports_vtbl nsisupports;
6234 
6235     nsresult (*GetBus)(IPCIAddress *pThis, PRInt16 *bus);
6236     nsresult (*SetBus)(IPCIAddress *pThis, PRInt16 bus);
6237 
6238     nsresult (*GetDevice)(IPCIAddress *pThis, PRInt16 *device);
6239     nsresult (*SetDevice)(IPCIAddress *pThis, PRInt16 device);
6240 
6241     nsresult (*GetDevFunction)(IPCIAddress *pThis, PRInt16 *devFunction);
6242     nsresult (*SetDevFunction)(IPCIAddress *pThis, PRInt16 devFunction);
6243 
6244     nsresult (*AsLong)(
6245         IPCIAddress *pThis,
6246         PRInt32 * result
6247     );
6248 
6249     nsresult (*FromLong)(
6250         IPCIAddress *pThis,
6251         PRInt32 number
6252     );
6253 
6254 };
6255 #   else /* VBOX_WITH_GLUE */
6256 struct IPCIAddressVtbl
6257 {
6258     nsresult (*QueryInterface)(IPCIAddress *pThis, const nsID *iid, void **resultp);
6259     nsrefcnt (*AddRef)(IPCIAddress *pThis);
6260     nsrefcnt (*Release)(IPCIAddress *pThis);
6261     nsresult (*GetBus)(IPCIAddress *pThis, PRInt16 *bus);
6262     nsresult (*SetBus)(IPCIAddress *pThis, PRInt16 bus);
6263 
6264     nsresult (*GetDevice)(IPCIAddress *pThis, PRInt16 *device);
6265     nsresult (*SetDevice)(IPCIAddress *pThis, PRInt16 device);
6266 
6267     nsresult (*GetDevFunction)(IPCIAddress *pThis, PRInt16 *devFunction);
6268     nsresult (*SetDevFunction)(IPCIAddress *pThis, PRInt16 devFunction);
6269 
6270     nsresult (*AsLong)(
6271         IPCIAddress *pThis,
6272         PRInt32 * result
6273     );
6274 
6275     nsresult (*FromLong)(
6276         IPCIAddress *pThis,
6277         PRInt32 number
6278     );
6279 
6280 };
6281 #    define IPCIAddress_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6282 #    define IPCIAddress_AddRef(p) ((p)->lpVtbl->AddRef(p))
6283 #    define IPCIAddress_Release(p) ((p)->lpVtbl->Release(p))
6284 #    define IPCIAddress_get_Bus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
6285 #    define IPCIAddress_GetBus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
6286 #    define IPCIAddress_put_Bus(p, aBus) ((p)->lpVtbl->SetBus(p, aBus))
6287 #    define IPCIAddress_SetBus(p, aBus) ((p)->lpVtbl->SetBus(p, aBus))
6288 #    define IPCIAddress_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
6289 #    define IPCIAddress_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
6290 #    define IPCIAddress_put_Device(p, aDevice) ((p)->lpVtbl->SetDevice(p, aDevice))
6291 #    define IPCIAddress_SetDevice(p, aDevice) ((p)->lpVtbl->SetDevice(p, aDevice))
6292 #    define IPCIAddress_get_DevFunction(p, aDevFunction) ((p)->lpVtbl->GetDevFunction(p, aDevFunction))
6293 #    define IPCIAddress_GetDevFunction(p, aDevFunction) ((p)->lpVtbl->GetDevFunction(p, aDevFunction))
6294 #    define IPCIAddress_put_DevFunction(p, aDevFunction) ((p)->lpVtbl->SetDevFunction(p, aDevFunction))
6295 #    define IPCIAddress_SetDevFunction(p, aDevFunction) ((p)->lpVtbl->SetDevFunction(p, aDevFunction))
6296 #    define IPCIAddress_AsLong(p, aResult) ((p)->lpVtbl->AsLong(p, aResult))
6297 #    define IPCIAddress_FromLong(p, aNumber) ((p)->lpVtbl->FromLong(p, aNumber))
6298 #   endif /* VBOX_WITH_GLUE */
6299 
6300 interface IPCIAddress
6301 {
6302 #   ifndef VBOX_WITH_GLUE
6303     struct IPCIAddress_vtbl *vtbl;
6304 #   else /* VBOX_WITH_GLUE */
6305     CONST_VTBL struct IPCIAddressVtbl *lpVtbl;
6306 #   endif /* VBOX_WITH_GLUE */
6307 };
6308 /* End of struct IPCIAddress declaration */
6309 
6310 
6311 /* Start of struct IPCIDeviceAttachment declaration */
6312 #   define IPCIDEVICEATTACHMENT_IID_STR "91f33d6f-e621-4f70-a77e-15f0e3c714d5"
6313 #   define IPCIDEVICEATTACHMENT_IID { \
6314     0x91f33d6f, 0xe621, 0x4f70, \
6315     { 0xa7, 0x7e, 0x15, 0xf0, 0xe3, 0xc7, 0x14, 0xd5 } \
6316 }
6317 /* COM compatibility */
6318 VBOX_EXTERN_CONST(nsIID, IID_IPCIDeviceAttachment);
6319 #   ifndef VBOX_WITH_GLUE
6320 struct IPCIDeviceAttachment_vtbl
6321 {
6322     struct nsISupports_vtbl nsisupports;
6323 
6324     nsresult (*GetName)(IPCIDeviceAttachment *pThis, PRUnichar * *name);
6325 
6326     nsresult (*GetIsPhysicalDevice)(IPCIDeviceAttachment *pThis, PRBool *isPhysicalDevice);
6327 
6328     nsresult (*GetHostAddress)(IPCIDeviceAttachment *pThis, PRInt32 *hostAddress);
6329 
6330     nsresult (*GetGuestAddress)(IPCIDeviceAttachment *pThis, PRInt32 *guestAddress);
6331 
6332 };
6333 #   else /* VBOX_WITH_GLUE */
6334 struct IPCIDeviceAttachmentVtbl
6335 {
6336     nsresult (*QueryInterface)(IPCIDeviceAttachment *pThis, const nsID *iid, void **resultp);
6337     nsrefcnt (*AddRef)(IPCIDeviceAttachment *pThis);
6338     nsrefcnt (*Release)(IPCIDeviceAttachment *pThis);
6339     nsresult (*GetName)(IPCIDeviceAttachment *pThis, PRUnichar * *name);
6340 
6341     nsresult (*GetIsPhysicalDevice)(IPCIDeviceAttachment *pThis, PRBool *isPhysicalDevice);
6342 
6343     nsresult (*GetHostAddress)(IPCIDeviceAttachment *pThis, PRInt32 *hostAddress);
6344 
6345     nsresult (*GetGuestAddress)(IPCIDeviceAttachment *pThis, PRInt32 *guestAddress);
6346 
6347 };
6348 #    define IPCIDeviceAttachment_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6349 #    define IPCIDeviceAttachment_AddRef(p) ((p)->lpVtbl->AddRef(p))
6350 #    define IPCIDeviceAttachment_Release(p) ((p)->lpVtbl->Release(p))
6351 #    define IPCIDeviceAttachment_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
6352 #    define IPCIDeviceAttachment_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
6353 #    define IPCIDeviceAttachment_get_IsPhysicalDevice(p, aIsPhysicalDevice) ((p)->lpVtbl->GetIsPhysicalDevice(p, aIsPhysicalDevice))
6354 #    define IPCIDeviceAttachment_GetIsPhysicalDevice(p, aIsPhysicalDevice) ((p)->lpVtbl->GetIsPhysicalDevice(p, aIsPhysicalDevice))
6355 #    define IPCIDeviceAttachment_get_HostAddress(p, aHostAddress) ((p)->lpVtbl->GetHostAddress(p, aHostAddress))
6356 #    define IPCIDeviceAttachment_GetHostAddress(p, aHostAddress) ((p)->lpVtbl->GetHostAddress(p, aHostAddress))
6357 #    define IPCIDeviceAttachment_get_GuestAddress(p, aGuestAddress) ((p)->lpVtbl->GetGuestAddress(p, aGuestAddress))
6358 #    define IPCIDeviceAttachment_GetGuestAddress(p, aGuestAddress) ((p)->lpVtbl->GetGuestAddress(p, aGuestAddress))
6359 #   endif /* VBOX_WITH_GLUE */
6360 
6361 interface IPCIDeviceAttachment
6362 {
6363 #   ifndef VBOX_WITH_GLUE
6364     struct IPCIDeviceAttachment_vtbl *vtbl;
6365 #   else /* VBOX_WITH_GLUE */
6366     CONST_VTBL struct IPCIDeviceAttachmentVtbl *lpVtbl;
6367 #   endif /* VBOX_WITH_GLUE */
6368 };
6369 /* End of struct IPCIDeviceAttachment declaration */
6370 
6371 
6372 /* Start of struct IMachine declaration */
6373 #   define IMACHINE_IID_STR "85cd948e-a71f-4289-281e-0ca7ad48cd89"
6374 #   define IMACHINE_IID { \
6375     0x85cd948e, 0xa71f, 0x4289, \
6376     { 0x28, 0x1e, 0x0c, 0xa7, 0xad, 0x48, 0xcd, 0x89 } \
6377 }
6378 /* COM compatibility */
6379 VBOX_EXTERN_CONST(nsIID, IID_IMachine);
6380 #   ifndef VBOX_WITH_GLUE
6381 struct IMachine_vtbl
6382 {
6383     struct nsISupports_vtbl nsisupports;
6384 
6385     nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
6386 
6387     nsresult (*GetIcon)(IMachine *pThis, PRUint32 *iconSize, PRUint8 **icon);
6388     nsresult (*SetIcon)(IMachine *pThis, PRUint32 iconSize, PRUint8 *icon);
6389 
6390     nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
6391 
6392     nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
6393 
6394     nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
6395     nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
6396 
6397     nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
6398     nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
6399 
6400     nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
6401 
6402     nsresult (*GetGroups)(IMachine *pThis, PRUint32 *groupsSize, PRUnichar * **groups);
6403     nsresult (*SetGroups)(IMachine *pThis, PRUint32 groupsSize, PRUnichar * *groups);
6404 
6405     nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
6406     nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
6407 
6408     nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *hardwareVersion);
6409     nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * hardwareVersion);
6410 
6411     nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
6412     nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
6413 
6414     nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
6415     nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
6416 
6417     nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
6418     nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
6419 
6420     nsresult (*GetCPUExecutionCap)(IMachine *pThis, PRUint32 *CPUExecutionCap);
6421     nsresult (*SetCPUExecutionCap)(IMachine *pThis, PRUint32 CPUExecutionCap);
6422 
6423     nsresult (*GetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 *CPUIDPortabilityLevel);
6424     nsresult (*SetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 CPUIDPortabilityLevel);
6425 
6426     nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
6427     nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
6428 
6429     nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
6430     nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
6431 
6432     nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *pageFusionEnabled);
6433     nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool pageFusionEnabled);
6434 
6435     nsresult (*GetGraphicsControllerType)(IMachine *pThis, PRUint32 *graphicsControllerType);
6436     nsresult (*SetGraphicsControllerType)(IMachine *pThis, PRUint32 graphicsControllerType);
6437 
6438     nsresult (*GetVRAMSize)(IMachine *pThis, PRUint32 *VRAMSize);
6439     nsresult (*SetVRAMSize)(IMachine *pThis, PRUint32 VRAMSize);
6440 
6441     nsresult (*GetAccelerate3DEnabled)(IMachine *pThis, PRBool *accelerate3DEnabled);
6442     nsresult (*SetAccelerate3DEnabled)(IMachine *pThis, PRBool accelerate3DEnabled);
6443 
6444     nsresult (*GetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool *accelerate2DVideoEnabled);
6445     nsresult (*SetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool accelerate2DVideoEnabled);
6446 
6447     nsresult (*GetMonitorCount)(IMachine *pThis, PRUint32 *monitorCount);
6448     nsresult (*SetMonitorCount)(IMachine *pThis, PRUint32 monitorCount);
6449 
6450     nsresult (*GetVideoCaptureEnabled)(IMachine *pThis, PRBool *videoCaptureEnabled);
6451     nsresult (*SetVideoCaptureEnabled)(IMachine *pThis, PRBool videoCaptureEnabled);
6452 
6453     nsresult (*GetVideoCaptureScreens)(IMachine *pThis, PRUint32 *videoCaptureScreensSize, PRBool **videoCaptureScreens);
6454     nsresult (*SetVideoCaptureScreens)(IMachine *pThis, PRUint32 videoCaptureScreensSize, PRBool *videoCaptureScreens);
6455 
6456     nsresult (*GetVideoCaptureFile)(IMachine *pThis, PRUnichar * *videoCaptureFile);
6457     nsresult (*SetVideoCaptureFile)(IMachine *pThis, PRUnichar * videoCaptureFile);
6458 
6459     nsresult (*GetVideoCaptureWidth)(IMachine *pThis, PRUint32 *videoCaptureWidth);
6460     nsresult (*SetVideoCaptureWidth)(IMachine *pThis, PRUint32 videoCaptureWidth);
6461 
6462     nsresult (*GetVideoCaptureHeight)(IMachine *pThis, PRUint32 *videoCaptureHeight);
6463     nsresult (*SetVideoCaptureHeight)(IMachine *pThis, PRUint32 videoCaptureHeight);
6464 
6465     nsresult (*GetVideoCaptureRate)(IMachine *pThis, PRUint32 *videoCaptureRate);
6466     nsresult (*SetVideoCaptureRate)(IMachine *pThis, PRUint32 videoCaptureRate);
6467 
6468     nsresult (*GetVideoCaptureFPS)(IMachine *pThis, PRUint32 *videoCaptureFPS);
6469     nsresult (*SetVideoCaptureFPS)(IMachine *pThis, PRUint32 videoCaptureFPS);
6470 
6471     nsresult (*GetVideoCaptureMaxTime)(IMachine *pThis, PRUint32 *videoCaptureMaxTime);
6472     nsresult (*SetVideoCaptureMaxTime)(IMachine *pThis, PRUint32 videoCaptureMaxTime);
6473 
6474     nsresult (*GetVideoCaptureMaxFileSize)(IMachine *pThis, PRUint32 *videoCaptureMaxFileSize);
6475     nsresult (*SetVideoCaptureMaxFileSize)(IMachine *pThis, PRUint32 videoCaptureMaxFileSize);
6476 
6477     nsresult (*GetVideoCaptureOptions)(IMachine *pThis, PRUnichar * *videoCaptureOptions);
6478     nsresult (*SetVideoCaptureOptions)(IMachine *pThis, PRUnichar * videoCaptureOptions);
6479 
6480     nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
6481 
6482     nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
6483     nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
6484 
6485     nsresult (*GetPointingHIDType)(IMachine *pThis, PRUint32 *pointingHIDType);
6486     nsresult (*SetPointingHIDType)(IMachine *pThis, PRUint32 pointingHIDType);
6487 
6488     nsresult (*GetKeyboardHIDType)(IMachine *pThis, PRUint32 *keyboardHIDType);
6489     nsresult (*SetKeyboardHIDType)(IMachine *pThis, PRUint32 keyboardHIDType);
6490 
6491     nsresult (*GetHPETEnabled)(IMachine *pThis, PRBool *HPETEnabled);
6492     nsresult (*SetHPETEnabled)(IMachine *pThis, PRBool HPETEnabled);
6493 
6494     nsresult (*GetChipsetType)(IMachine *pThis, PRUint32 *chipsetType);
6495     nsresult (*SetChipsetType)(IMachine *pThis, PRUint32 chipsetType);
6496 
6497     nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
6498     nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
6499 
6500     nsresult (*GetVRDEServer)(IMachine *pThis, IVRDEServer * *VRDEServer);
6501 
6502     nsresult (*GetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool *emulatedUSBCardReaderEnabled);
6503     nsresult (*SetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool emulatedUSBCardReaderEnabled);
6504 
6505     nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
6506 
6507     nsresult (*GetUSBControllers)(IMachine *pThis, PRUint32 *USBControllersSize, IUSBController * **USBControllers);
6508 
6509     nsresult (*GetUSBDeviceFilters)(IMachine *pThis, IUSBDeviceFilters * *USBDeviceFilters);
6510 
6511     nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
6512 
6513     nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
6514 
6515     nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
6516 
6517     nsresult (*GetSettingsAuxFilePath)(IMachine *pThis, PRUnichar * *settingsAuxFilePath);
6518 
6519     nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
6520 
6521     nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
6522 
6523     nsresult (*GetSessionName)(IMachine *pThis, PRUnichar * *sessionName);
6524 
6525     nsresult (*GetSessionPID)(IMachine *pThis, PRUint32 *sessionPID);
6526 
6527     nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
6528 
6529     nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
6530 
6531     nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
6532 
6533     nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
6534 
6535     nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
6536 
6537     nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
6538 
6539     nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
6540 
6541     nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
6542 
6543     nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
6544     nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
6545 
6546     nsresult (*GetDnDMode)(IMachine *pThis, PRUint32 *dnDMode);
6547     nsresult (*SetDnDMode)(IMachine *pThis, PRUint32 dnDMode);
6548 
6549     nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
6550     nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
6551 
6552     nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
6553     nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
6554 
6555     nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
6556     nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
6557 
6558     nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
6559     nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
6560 
6561     nsresult (*GetParavirtProvider)(IMachine *pThis, PRUint32 *paravirtProvider);
6562     nsresult (*SetParavirtProvider)(IMachine *pThis, PRUint32 paravirtProvider);
6563 
6564     nsresult (*GetFaultToleranceState)(IMachine *pThis, PRUint32 *faultToleranceState);
6565     nsresult (*SetFaultToleranceState)(IMachine *pThis, PRUint32 faultToleranceState);
6566 
6567     nsresult (*GetFaultTolerancePort)(IMachine *pThis, PRUint32 *faultTolerancePort);
6568     nsresult (*SetFaultTolerancePort)(IMachine *pThis, PRUint32 faultTolerancePort);
6569 
6570     nsresult (*GetFaultToleranceAddress)(IMachine *pThis, PRUnichar * *faultToleranceAddress);
6571     nsresult (*SetFaultToleranceAddress)(IMachine *pThis, PRUnichar * faultToleranceAddress);
6572 
6573     nsresult (*GetFaultTolerancePassword)(IMachine *pThis, PRUnichar * *faultTolerancePassword);
6574     nsresult (*SetFaultTolerancePassword)(IMachine *pThis, PRUnichar * faultTolerancePassword);
6575 
6576     nsresult (*GetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 *faultToleranceSyncInterval);
6577     nsresult (*SetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 faultToleranceSyncInterval);
6578 
6579     nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
6580     nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
6581 
6582     nsresult (*GetIOCacheEnabled)(IMachine *pThis, PRBool *IOCacheEnabled);
6583     nsresult (*SetIOCacheEnabled)(IMachine *pThis, PRBool IOCacheEnabled);
6584 
6585     nsresult (*GetIOCacheSize)(IMachine *pThis, PRUint32 *IOCacheSize);
6586     nsresult (*SetIOCacheSize)(IMachine *pThis, PRUint32 IOCacheSize);
6587 
6588     nsresult (*GetPCIDeviceAssignments)(IMachine *pThis, PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment * **PCIDeviceAssignments);
6589 
6590     nsresult (*GetBandwidthControl)(IMachine *pThis, IBandwidthControl * *bandwidthControl);
6591 
6592     nsresult (*GetTracingEnabled)(IMachine *pThis, PRBool *tracingEnabled);
6593     nsresult (*SetTracingEnabled)(IMachine *pThis, PRBool tracingEnabled);
6594 
6595     nsresult (*GetTracingConfig)(IMachine *pThis, PRUnichar * *tracingConfig);
6596     nsresult (*SetTracingConfig)(IMachine *pThis, PRUnichar * tracingConfig);
6597 
6598     nsresult (*GetAllowTracingToAccessVM)(IMachine *pThis, PRBool *allowTracingToAccessVM);
6599     nsresult (*SetAllowTracingToAccessVM)(IMachine *pThis, PRBool allowTracingToAccessVM);
6600 
6601     nsresult (*GetAutostartEnabled)(IMachine *pThis, PRBool *autostartEnabled);
6602     nsresult (*SetAutostartEnabled)(IMachine *pThis, PRBool autostartEnabled);
6603 
6604     nsresult (*GetAutostartDelay)(IMachine *pThis, PRUint32 *autostartDelay);
6605     nsresult (*SetAutostartDelay)(IMachine *pThis, PRUint32 autostartDelay);
6606 
6607     nsresult (*GetAutostopType)(IMachine *pThis, PRUint32 *autostopType);
6608     nsresult (*SetAutostopType)(IMachine *pThis, PRUint32 autostopType);
6609 
6610     nsresult (*GetDefaultFrontend)(IMachine *pThis, PRUnichar * *defaultFrontend);
6611     nsresult (*SetDefaultFrontend)(IMachine *pThis, PRUnichar * defaultFrontend);
6612 
6613     nsresult (*GetUSBProxyAvailable)(IMachine *pThis, PRBool *USBProxyAvailable);
6614 
6615     nsresult (*GetVMProcessPriority)(IMachine *pThis, PRUnichar * *VMProcessPriority);
6616     nsresult (*SetVMProcessPriority)(IMachine *pThis, PRUnichar * VMProcessPriority);
6617 
6618     nsresult (*GetParavirtDebug)(IMachine *pThis, PRUnichar * *paravirtDebug);
6619     nsresult (*SetParavirtDebug)(IMachine *pThis, PRUnichar * paravirtDebug);
6620 
6621     nsresult (*GetCPUProfile)(IMachine *pThis, PRUnichar * *CPUProfile);
6622     nsresult (*SetCPUProfile)(IMachine *pThis, PRUnichar * CPUProfile);
6623 
6624     nsresult (*GetInternalAndReservedAttribute1IMachine)(IMachine *pThis, PRUint32 *reserved);
6625 
6626     nsresult (*GetInternalAndReservedAttribute2IMachine)(IMachine *pThis, PRUint32 *reserved);
6627 
6628     nsresult (*GetInternalAndReservedAttribute3IMachine)(IMachine *pThis, PRUint32 *reserved);
6629 
6630     nsresult (*GetInternalAndReservedAttribute4IMachine)(IMachine *pThis, PRUint32 *reserved);
6631 
6632     nsresult (*GetInternalAndReservedAttribute5IMachine)(IMachine *pThis, PRUint32 *reserved);
6633 
6634     nsresult (*GetInternalAndReservedAttribute6IMachine)(IMachine *pThis, PRUint32 *reserved);
6635 
6636     nsresult (*GetInternalAndReservedAttribute7IMachine)(IMachine *pThis, PRUint32 *reserved);
6637 
6638     nsresult (*GetInternalAndReservedAttribute8IMachine)(IMachine *pThis, PRUint32 *reserved);
6639 
6640     nsresult (*GetInternalAndReservedAttribute9IMachine)(IMachine *pThis, PRUint32 *reserved);
6641 
6642     nsresult (*LockMachine)(
6643         IMachine *pThis,
6644         ISession * session,
6645         PRUint32 lockType
6646     );
6647 
6648     nsresult (*LaunchVMProcess)(
6649         IMachine *pThis,
6650         ISession * session,
6651         PRUnichar * name,
6652         PRUnichar * environment,
6653         IProgress * * progress
6654     );
6655 
6656     nsresult (*SetBootOrder)(
6657         IMachine *pThis,
6658         PRUint32 position,
6659         PRUint32 device
6660     );
6661 
6662     nsresult (*GetBootOrder)(
6663         IMachine *pThis,
6664         PRUint32 position,
6665         PRUint32 * device
6666     );
6667 
6668     nsresult (*AttachDevice)(
6669         IMachine *pThis,
6670         PRUnichar * name,
6671         PRInt32 controllerPort,
6672         PRInt32 device,
6673         PRUint32 type,
6674         IMedium * medium
6675     );
6676 
6677     nsresult (*AttachDeviceWithoutMedium)(
6678         IMachine *pThis,
6679         PRUnichar * name,
6680         PRInt32 controllerPort,
6681         PRInt32 device,
6682         PRUint32 type
6683     );
6684 
6685     nsresult (*DetachDevice)(
6686         IMachine *pThis,
6687         PRUnichar * name,
6688         PRInt32 controllerPort,
6689         PRInt32 device
6690     );
6691 
6692     nsresult (*PassthroughDevice)(
6693         IMachine *pThis,
6694         PRUnichar * name,
6695         PRInt32 controllerPort,
6696         PRInt32 device,
6697         PRBool passthrough
6698     );
6699 
6700     nsresult (*TemporaryEjectDevice)(
6701         IMachine *pThis,
6702         PRUnichar * name,
6703         PRInt32 controllerPort,
6704         PRInt32 device,
6705         PRBool temporaryEject
6706     );
6707 
6708     nsresult (*NonRotationalDevice)(
6709         IMachine *pThis,
6710         PRUnichar * name,
6711         PRInt32 controllerPort,
6712         PRInt32 device,
6713         PRBool nonRotational
6714     );
6715 
6716     nsresult (*SetAutoDiscardForDevice)(
6717         IMachine *pThis,
6718         PRUnichar * name,
6719         PRInt32 controllerPort,
6720         PRInt32 device,
6721         PRBool discard
6722     );
6723 
6724     nsresult (*SetHotPluggableForDevice)(
6725         IMachine *pThis,
6726         PRUnichar * name,
6727         PRInt32 controllerPort,
6728         PRInt32 device,
6729         PRBool hotPluggable
6730     );
6731 
6732     nsresult (*SetBandwidthGroupForDevice)(
6733         IMachine *pThis,
6734         PRUnichar * name,
6735         PRInt32 controllerPort,
6736         PRInt32 device,
6737         IBandwidthGroup * bandwidthGroup
6738     );
6739 
6740     nsresult (*SetNoBandwidthGroupForDevice)(
6741         IMachine *pThis,
6742         PRUnichar * name,
6743         PRInt32 controllerPort,
6744         PRInt32 device
6745     );
6746 
6747     nsresult (*UnmountMedium)(
6748         IMachine *pThis,
6749         PRUnichar * name,
6750         PRInt32 controllerPort,
6751         PRInt32 device,
6752         PRBool force
6753     );
6754 
6755     nsresult (*MountMedium)(
6756         IMachine *pThis,
6757         PRUnichar * name,
6758         PRInt32 controllerPort,
6759         PRInt32 device,
6760         IMedium * medium,
6761         PRBool force
6762     );
6763 
6764     nsresult (*GetMedium)(
6765         IMachine *pThis,
6766         PRUnichar * name,
6767         PRInt32 controllerPort,
6768         PRInt32 device,
6769         IMedium * * medium
6770     );
6771 
6772     nsresult (*GetMediumAttachmentsOfController)(
6773         IMachine *pThis,
6774         PRUnichar * name,
6775         PRUint32 *mediumAttachmentsSize,
6776         IMediumAttachment *** mediumAttachments
6777     );
6778 
6779     nsresult (*GetMediumAttachment)(
6780         IMachine *pThis,
6781         PRUnichar * name,
6782         PRInt32 controllerPort,
6783         PRInt32 device,
6784         IMediumAttachment * * attachment
6785     );
6786 
6787     nsresult (*AttachHostPCIDevice)(
6788         IMachine *pThis,
6789         PRInt32 hostAddress,
6790         PRInt32 desiredGuestAddress,
6791         PRBool tryToUnbind
6792     );
6793 
6794     nsresult (*DetachHostPCIDevice)(
6795         IMachine *pThis,
6796         PRInt32 hostAddress
6797     );
6798 
6799     nsresult (*GetNetworkAdapter)(
6800         IMachine *pThis,
6801         PRUint32 slot,
6802         INetworkAdapter * * adapter
6803     );
6804 
6805     nsresult (*AddStorageController)(
6806         IMachine *pThis,
6807         PRUnichar * name,
6808         PRUint32 connectionType,
6809         IStorageController * * controller
6810     );
6811 
6812     nsresult (*GetStorageControllerByName)(
6813         IMachine *pThis,
6814         PRUnichar * name,
6815         IStorageController * * storageController
6816     );
6817 
6818     nsresult (*GetStorageControllerByInstance)(
6819         IMachine *pThis,
6820         PRUint32 connectionType,
6821         PRUint32 instance,
6822         IStorageController * * storageController
6823     );
6824 
6825     nsresult (*RemoveStorageController)(
6826         IMachine *pThis,
6827         PRUnichar * name
6828     );
6829 
6830     nsresult (*SetStorageControllerBootable)(
6831         IMachine *pThis,
6832         PRUnichar * name,
6833         PRBool bootable
6834     );
6835 
6836     nsresult (*AddUSBController)(
6837         IMachine *pThis,
6838         PRUnichar * name,
6839         PRUint32 type,
6840         IUSBController * * controller
6841     );
6842 
6843     nsresult (*RemoveUSBController)(
6844         IMachine *pThis,
6845         PRUnichar * name
6846     );
6847 
6848     nsresult (*GetUSBControllerByName)(
6849         IMachine *pThis,
6850         PRUnichar * name,
6851         IUSBController * * controller
6852     );
6853 
6854     nsresult (*GetUSBControllerCountByType)(
6855         IMachine *pThis,
6856         PRUint32 type,
6857         PRUint32 * controllers
6858     );
6859 
6860     nsresult (*GetSerialPort)(
6861         IMachine *pThis,
6862         PRUint32 slot,
6863         ISerialPort * * port
6864     );
6865 
6866     nsresult (*GetParallelPort)(
6867         IMachine *pThis,
6868         PRUint32 slot,
6869         IParallelPort * * port
6870     );
6871 
6872     nsresult (*GetExtraDataKeys)(
6873         IMachine *pThis,
6874         PRUint32 *keysSize,
6875         PRUnichar *** keys
6876     );
6877 
6878     nsresult (*GetExtraData)(
6879         IMachine *pThis,
6880         PRUnichar * key,
6881         PRUnichar * * value
6882     );
6883 
6884     nsresult (*SetExtraData)(
6885         IMachine *pThis,
6886         PRUnichar * key,
6887         PRUnichar * value
6888     );
6889 
6890     nsresult (*GetCPUProperty)(
6891         IMachine *pThis,
6892         PRUint32 property,
6893         PRBool * value
6894     );
6895 
6896     nsresult (*SetCPUProperty)(
6897         IMachine *pThis,
6898         PRUint32 property,
6899         PRBool value
6900     );
6901 
6902     nsresult (*GetCPUIDLeafByOrdinal)(
6903         IMachine *pThis,
6904         PRUint32 ordinal,
6905         PRUint32 * idx,
6906         PRUint32 * idxSub,
6907         PRUint32 * valEax,
6908         PRUint32 * valEbx,
6909         PRUint32 * valEcx,
6910         PRUint32 * valEdx
6911     );
6912 
6913     nsresult (*GetCPUIDLeaf)(
6914         IMachine *pThis,
6915         PRUint32 idx,
6916         PRUint32 idxSub,
6917         PRUint32 * valEax,
6918         PRUint32 * valEbx,
6919         PRUint32 * valEcx,
6920         PRUint32 * valEdx
6921     );
6922 
6923     nsresult (*SetCPUIDLeaf)(
6924         IMachine *pThis,
6925         PRUint32 idx,
6926         PRUint32 idxSub,
6927         PRUint32 valEax,
6928         PRUint32 valEbx,
6929         PRUint32 valEcx,
6930         PRUint32 valEdx
6931     );
6932 
6933     nsresult (*RemoveCPUIDLeaf)(
6934         IMachine *pThis,
6935         PRUint32 idx,
6936         PRUint32 idxSub
6937     );
6938 
6939     nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
6940 
6941     nsresult (*GetHWVirtExProperty)(
6942         IMachine *pThis,
6943         PRUint32 property,
6944         PRBool * value
6945     );
6946 
6947     nsresult (*SetHWVirtExProperty)(
6948         IMachine *pThis,
6949         PRUint32 property,
6950         PRBool value
6951     );
6952 
6953     nsresult (*SetSettingsFilePath)(
6954         IMachine *pThis,
6955         PRUnichar * settingsFilePath,
6956         IProgress * * progress
6957     );
6958 
6959     nsresult (*SaveSettings)(IMachine *pThis );
6960 
6961     nsresult (*DiscardSettings)(IMachine *pThis );
6962 
6963     nsresult (*Unregister)(
6964         IMachine *pThis,
6965         PRUint32 cleanupMode,
6966         PRUint32 *mediaSize,
6967         IMedium *** media
6968     );
6969 
6970     nsresult (*DeleteConfig)(
6971         IMachine *pThis,
6972         PRUint32 mediaSize,
6973         IMedium ** media,
6974         IProgress * * progress
6975     );
6976 
6977     nsresult (*ExportTo)(
6978         IMachine *pThis,
6979         IAppliance * appliance,
6980         PRUnichar * location,
6981         IVirtualSystemDescription * * description
6982     );
6983 
6984     nsresult (*FindSnapshot)(
6985         IMachine *pThis,
6986         PRUnichar * nameOrId,
6987         ISnapshot * * snapshot
6988     );
6989 
6990     nsresult (*CreateSharedFolder)(
6991         IMachine *pThis,
6992         PRUnichar * name,
6993         PRUnichar * hostPath,
6994         PRBool writable,
6995         PRBool automount
6996     );
6997 
6998     nsresult (*RemoveSharedFolder)(
6999         IMachine *pThis,
7000         PRUnichar * name
7001     );
7002 
7003     nsresult (*CanShowConsoleWindow)(
7004         IMachine *pThis,
7005         PRBool * canShow
7006     );
7007 
7008     nsresult (*ShowConsoleWindow)(
7009         IMachine *pThis,
7010         PRInt64 * winId
7011     );
7012 
7013     nsresult (*GetGuestProperty)(
7014         IMachine *pThis,
7015         PRUnichar * name,
7016         PRUnichar * * value,
7017         PRInt64 * timestamp,
7018         PRUnichar * * flags
7019     );
7020 
7021     nsresult (*GetGuestPropertyValue)(
7022         IMachine *pThis,
7023         PRUnichar * property,
7024         PRUnichar * * value
7025     );
7026 
7027     nsresult (*GetGuestPropertyTimestamp)(
7028         IMachine *pThis,
7029         PRUnichar * property,
7030         PRInt64 * value
7031     );
7032 
7033     nsresult (*SetGuestProperty)(
7034         IMachine *pThis,
7035         PRUnichar * property,
7036         PRUnichar * value,
7037         PRUnichar * flags
7038     );
7039 
7040     nsresult (*SetGuestPropertyValue)(
7041         IMachine *pThis,
7042         PRUnichar * property,
7043         PRUnichar * value
7044     );
7045 
7046     nsresult (*DeleteGuestProperty)(
7047         IMachine *pThis,
7048         PRUnichar * name
7049     );
7050 
7051     nsresult (*EnumerateGuestProperties)(
7052         IMachine *pThis,
7053         PRUnichar * patterns,
7054         PRUint32 *namesSize,
7055         PRUnichar *** names,
7056         PRUint32 *valuesSize,
7057         PRUnichar *** values,
7058         PRUint32 *timestampsSize,
7059         PRInt64** timestamps,
7060         PRUint32 *flagsSize,
7061         PRUnichar *** flags
7062     );
7063 
7064     nsresult (*QuerySavedGuestScreenInfo)(
7065         IMachine *pThis,
7066         PRUint32 screenId,
7067         PRUint32 * originX,
7068         PRUint32 * originY,
7069         PRUint32 * width,
7070         PRUint32 * height,
7071         PRBool * enabled
7072     );
7073 
7074     nsresult (*ReadSavedThumbnailToArray)(
7075         IMachine *pThis,
7076         PRUint32 screenId,
7077         PRUint32 bitmapFormat,
7078         PRUint32 * width,
7079         PRUint32 * height,
7080         PRUint32 *dataSize,
7081         PRUint8** data
7082     );
7083 
7084     nsresult (*QuerySavedScreenshotInfo)(
7085         IMachine *pThis,
7086         PRUint32 screenId,
7087         PRUint32 * width,
7088         PRUint32 * height,
7089         PRUint32 *bitmapFormatsSize,
7090         PRUint32** bitmapFormats
7091     );
7092 
7093     nsresult (*ReadSavedScreenshotToArray)(
7094         IMachine *pThis,
7095         PRUint32 screenId,
7096         PRUint32 bitmapFormat,
7097         PRUint32 * width,
7098         PRUint32 * height,
7099         PRUint32 *dataSize,
7100         PRUint8** data
7101     );
7102 
7103     nsresult (*HotPlugCPU)(
7104         IMachine *pThis,
7105         PRUint32 cpu
7106     );
7107 
7108     nsresult (*HotUnplugCPU)(
7109         IMachine *pThis,
7110         PRUint32 cpu
7111     );
7112 
7113     nsresult (*GetCPUStatus)(
7114         IMachine *pThis,
7115         PRUint32 cpu,
7116         PRBool * attached
7117     );
7118 
7119     nsresult (*GetEffectiveParavirtProvider)(
7120         IMachine *pThis,
7121         PRUint32 * paravirtProvider
7122     );
7123 
7124     nsresult (*QueryLogFilename)(
7125         IMachine *pThis,
7126         PRUint32 idx,
7127         PRUnichar * * filename
7128     );
7129 
7130     nsresult (*ReadLog)(
7131         IMachine *pThis,
7132         PRUint32 idx,
7133         PRInt64 offset,
7134         PRInt64 size,
7135         PRUint32 *dataSize,
7136         PRUint8** data
7137     );
7138 
7139     nsresult (*CloneTo)(
7140         IMachine *pThis,
7141         IMachine * target,
7142         PRUint32 mode,
7143         PRUint32 optionsSize,
7144         PRUint32* options,
7145         IProgress * * progress
7146     );
7147 
7148     nsresult (*SaveState)(
7149         IMachine *pThis,
7150         IProgress * * progress
7151     );
7152 
7153     nsresult (*AdoptSavedState)(
7154         IMachine *pThis,
7155         PRUnichar * savedStateFile
7156     );
7157 
7158     nsresult (*DiscardSavedState)(
7159         IMachine *pThis,
7160         PRBool fRemoveFile
7161     );
7162 
7163     nsresult (*TakeSnapshot)(
7164         IMachine *pThis,
7165         PRUnichar * name,
7166         PRUnichar * description,
7167         PRBool pause,
7168         PRUnichar * * id,
7169         IProgress * * progress
7170     );
7171 
7172     nsresult (*DeleteSnapshot)(
7173         IMachine *pThis,
7174         PRUnichar * id,
7175         IProgress * * progress
7176     );
7177 
7178     nsresult (*DeleteSnapshotAndAllChildren)(
7179         IMachine *pThis,
7180         PRUnichar * id,
7181         IProgress * * progress
7182     );
7183 
7184     nsresult (*DeleteSnapshotRange)(
7185         IMachine *pThis,
7186         PRUnichar * startId,
7187         PRUnichar * endId,
7188         IProgress * * progress
7189     );
7190 
7191     nsresult (*RestoreSnapshot)(
7192         IMachine *pThis,
7193         ISnapshot * snapshot,
7194         IProgress * * progress
7195     );
7196 
7197     nsresult (*ApplyDefaults)(
7198         IMachine *pThis,
7199         PRUnichar * flags
7200     );
7201 
7202     nsresult (*InternalAndReservedMethod1IMachine)(IMachine *pThis);
7203 
7204     nsresult (*InternalAndReservedMethod2IMachine)(IMachine *pThis);
7205 
7206     nsresult (*InternalAndReservedMethod3IMachine)(IMachine *pThis);
7207 
7208     nsresult (*InternalAndReservedMethod4IMachine)(IMachine *pThis);
7209 
7210     nsresult (*InternalAndReservedMethod5IMachine)(IMachine *pThis);
7211 
7212     nsresult (*InternalAndReservedMethod6IMachine)(IMachine *pThis);
7213 
7214 };
7215 #   else /* VBOX_WITH_GLUE */
7216 struct IMachineVtbl
7217 {
7218     nsresult (*QueryInterface)(IMachine *pThis, const nsID *iid, void **resultp);
7219     nsrefcnt (*AddRef)(IMachine *pThis);
7220     nsrefcnt (*Release)(IMachine *pThis);
7221     nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
7222 
7223     nsresult (*GetIcon)(IMachine *pThis, PRUint32 *iconSize, PRUint8 **icon);
7224     nsresult (*SetIcon)(IMachine *pThis, PRUint32 iconSize, PRUint8 *icon);
7225 
7226     nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
7227 
7228     nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
7229 
7230     nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
7231     nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
7232 
7233     nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
7234     nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
7235 
7236     nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
7237 
7238     nsresult (*GetGroups)(IMachine *pThis, PRUint32 *groupsSize, PRUnichar * **groups);
7239     nsresult (*SetGroups)(IMachine *pThis, PRUint32 groupsSize, PRUnichar * *groups);
7240 
7241     nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
7242     nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
7243 
7244     nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *hardwareVersion);
7245     nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * hardwareVersion);
7246 
7247     nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
7248     nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
7249 
7250     nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
7251     nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
7252 
7253     nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
7254     nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
7255 
7256     nsresult (*GetCPUExecutionCap)(IMachine *pThis, PRUint32 *CPUExecutionCap);
7257     nsresult (*SetCPUExecutionCap)(IMachine *pThis, PRUint32 CPUExecutionCap);
7258 
7259     nsresult (*GetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 *CPUIDPortabilityLevel);
7260     nsresult (*SetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 CPUIDPortabilityLevel);
7261 
7262     nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
7263     nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
7264 
7265     nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
7266     nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
7267 
7268     nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *pageFusionEnabled);
7269     nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool pageFusionEnabled);
7270 
7271     nsresult (*GetGraphicsControllerType)(IMachine *pThis, PRUint32 *graphicsControllerType);
7272     nsresult (*SetGraphicsControllerType)(IMachine *pThis, PRUint32 graphicsControllerType);
7273 
7274     nsresult (*GetVRAMSize)(IMachine *pThis, PRUint32 *VRAMSize);
7275     nsresult (*SetVRAMSize)(IMachine *pThis, PRUint32 VRAMSize);
7276 
7277     nsresult (*GetAccelerate3DEnabled)(IMachine *pThis, PRBool *accelerate3DEnabled);
7278     nsresult (*SetAccelerate3DEnabled)(IMachine *pThis, PRBool accelerate3DEnabled);
7279 
7280     nsresult (*GetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool *accelerate2DVideoEnabled);
7281     nsresult (*SetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool accelerate2DVideoEnabled);
7282 
7283     nsresult (*GetMonitorCount)(IMachine *pThis, PRUint32 *monitorCount);
7284     nsresult (*SetMonitorCount)(IMachine *pThis, PRUint32 monitorCount);
7285 
7286     nsresult (*GetVideoCaptureEnabled)(IMachine *pThis, PRBool *videoCaptureEnabled);
7287     nsresult (*SetVideoCaptureEnabled)(IMachine *pThis, PRBool videoCaptureEnabled);
7288 
7289     nsresult (*GetVideoCaptureScreens)(IMachine *pThis, PRUint32 *videoCaptureScreensSize, PRBool **videoCaptureScreens);
7290     nsresult (*SetVideoCaptureScreens)(IMachine *pThis, PRUint32 videoCaptureScreensSize, PRBool *videoCaptureScreens);
7291 
7292     nsresult (*GetVideoCaptureFile)(IMachine *pThis, PRUnichar * *videoCaptureFile);
7293     nsresult (*SetVideoCaptureFile)(IMachine *pThis, PRUnichar * videoCaptureFile);
7294 
7295     nsresult (*GetVideoCaptureWidth)(IMachine *pThis, PRUint32 *videoCaptureWidth);
7296     nsresult (*SetVideoCaptureWidth)(IMachine *pThis, PRUint32 videoCaptureWidth);
7297 
7298     nsresult (*GetVideoCaptureHeight)(IMachine *pThis, PRUint32 *videoCaptureHeight);
7299     nsresult (*SetVideoCaptureHeight)(IMachine *pThis, PRUint32 videoCaptureHeight);
7300 
7301     nsresult (*GetVideoCaptureRate)(IMachine *pThis, PRUint32 *videoCaptureRate);
7302     nsresult (*SetVideoCaptureRate)(IMachine *pThis, PRUint32 videoCaptureRate);
7303 
7304     nsresult (*GetVideoCaptureFPS)(IMachine *pThis, PRUint32 *videoCaptureFPS);
7305     nsresult (*SetVideoCaptureFPS)(IMachine *pThis, PRUint32 videoCaptureFPS);
7306 
7307     nsresult (*GetVideoCaptureMaxTime)(IMachine *pThis, PRUint32 *videoCaptureMaxTime);
7308     nsresult (*SetVideoCaptureMaxTime)(IMachine *pThis, PRUint32 videoCaptureMaxTime);
7309 
7310     nsresult (*GetVideoCaptureMaxFileSize)(IMachine *pThis, PRUint32 *videoCaptureMaxFileSize);
7311     nsresult (*SetVideoCaptureMaxFileSize)(IMachine *pThis, PRUint32 videoCaptureMaxFileSize);
7312 
7313     nsresult (*GetVideoCaptureOptions)(IMachine *pThis, PRUnichar * *videoCaptureOptions);
7314     nsresult (*SetVideoCaptureOptions)(IMachine *pThis, PRUnichar * videoCaptureOptions);
7315 
7316     nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
7317 
7318     nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
7319     nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
7320 
7321     nsresult (*GetPointingHIDType)(IMachine *pThis, PRUint32 *pointingHIDType);
7322     nsresult (*SetPointingHIDType)(IMachine *pThis, PRUint32 pointingHIDType);
7323 
7324     nsresult (*GetKeyboardHIDType)(IMachine *pThis, PRUint32 *keyboardHIDType);
7325     nsresult (*SetKeyboardHIDType)(IMachine *pThis, PRUint32 keyboardHIDType);
7326 
7327     nsresult (*GetHPETEnabled)(IMachine *pThis, PRBool *HPETEnabled);
7328     nsresult (*SetHPETEnabled)(IMachine *pThis, PRBool HPETEnabled);
7329 
7330     nsresult (*GetChipsetType)(IMachine *pThis, PRUint32 *chipsetType);
7331     nsresult (*SetChipsetType)(IMachine *pThis, PRUint32 chipsetType);
7332 
7333     nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
7334     nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
7335 
7336     nsresult (*GetVRDEServer)(IMachine *pThis, IVRDEServer * *VRDEServer);
7337 
7338     nsresult (*GetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool *emulatedUSBCardReaderEnabled);
7339     nsresult (*SetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool emulatedUSBCardReaderEnabled);
7340 
7341     nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
7342 
7343     nsresult (*GetUSBControllers)(IMachine *pThis, PRUint32 *USBControllersSize, IUSBController * **USBControllers);
7344 
7345     nsresult (*GetUSBDeviceFilters)(IMachine *pThis, IUSBDeviceFilters * *USBDeviceFilters);
7346 
7347     nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
7348 
7349     nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
7350 
7351     nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
7352 
7353     nsresult (*GetSettingsAuxFilePath)(IMachine *pThis, PRUnichar * *settingsAuxFilePath);
7354 
7355     nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
7356 
7357     nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
7358 
7359     nsresult (*GetSessionName)(IMachine *pThis, PRUnichar * *sessionName);
7360 
7361     nsresult (*GetSessionPID)(IMachine *pThis, PRUint32 *sessionPID);
7362 
7363     nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
7364 
7365     nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
7366 
7367     nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
7368 
7369     nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
7370 
7371     nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
7372 
7373     nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
7374 
7375     nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
7376 
7377     nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
7378 
7379     nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
7380     nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
7381 
7382     nsresult (*GetDnDMode)(IMachine *pThis, PRUint32 *dnDMode);
7383     nsresult (*SetDnDMode)(IMachine *pThis, PRUint32 dnDMode);
7384 
7385     nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
7386     nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
7387 
7388     nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
7389     nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
7390 
7391     nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
7392     nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
7393 
7394     nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
7395     nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
7396 
7397     nsresult (*GetParavirtProvider)(IMachine *pThis, PRUint32 *paravirtProvider);
7398     nsresult (*SetParavirtProvider)(IMachine *pThis, PRUint32 paravirtProvider);
7399 
7400     nsresult (*GetFaultToleranceState)(IMachine *pThis, PRUint32 *faultToleranceState);
7401     nsresult (*SetFaultToleranceState)(IMachine *pThis, PRUint32 faultToleranceState);
7402 
7403     nsresult (*GetFaultTolerancePort)(IMachine *pThis, PRUint32 *faultTolerancePort);
7404     nsresult (*SetFaultTolerancePort)(IMachine *pThis, PRUint32 faultTolerancePort);
7405 
7406     nsresult (*GetFaultToleranceAddress)(IMachine *pThis, PRUnichar * *faultToleranceAddress);
7407     nsresult (*SetFaultToleranceAddress)(IMachine *pThis, PRUnichar * faultToleranceAddress);
7408 
7409     nsresult (*GetFaultTolerancePassword)(IMachine *pThis, PRUnichar * *faultTolerancePassword);
7410     nsresult (*SetFaultTolerancePassword)(IMachine *pThis, PRUnichar * faultTolerancePassword);
7411 
7412     nsresult (*GetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 *faultToleranceSyncInterval);
7413     nsresult (*SetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 faultToleranceSyncInterval);
7414 
7415     nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
7416     nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
7417 
7418     nsresult (*GetIOCacheEnabled)(IMachine *pThis, PRBool *IOCacheEnabled);
7419     nsresult (*SetIOCacheEnabled)(IMachine *pThis, PRBool IOCacheEnabled);
7420 
7421     nsresult (*GetIOCacheSize)(IMachine *pThis, PRUint32 *IOCacheSize);
7422     nsresult (*SetIOCacheSize)(IMachine *pThis, PRUint32 IOCacheSize);
7423 
7424     nsresult (*GetPCIDeviceAssignments)(IMachine *pThis, PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment * **PCIDeviceAssignments);
7425 
7426     nsresult (*GetBandwidthControl)(IMachine *pThis, IBandwidthControl * *bandwidthControl);
7427 
7428     nsresult (*GetTracingEnabled)(IMachine *pThis, PRBool *tracingEnabled);
7429     nsresult (*SetTracingEnabled)(IMachine *pThis, PRBool tracingEnabled);
7430 
7431     nsresult (*GetTracingConfig)(IMachine *pThis, PRUnichar * *tracingConfig);
7432     nsresult (*SetTracingConfig)(IMachine *pThis, PRUnichar * tracingConfig);
7433 
7434     nsresult (*GetAllowTracingToAccessVM)(IMachine *pThis, PRBool *allowTracingToAccessVM);
7435     nsresult (*SetAllowTracingToAccessVM)(IMachine *pThis, PRBool allowTracingToAccessVM);
7436 
7437     nsresult (*GetAutostartEnabled)(IMachine *pThis, PRBool *autostartEnabled);
7438     nsresult (*SetAutostartEnabled)(IMachine *pThis, PRBool autostartEnabled);
7439 
7440     nsresult (*GetAutostartDelay)(IMachine *pThis, PRUint32 *autostartDelay);
7441     nsresult (*SetAutostartDelay)(IMachine *pThis, PRUint32 autostartDelay);
7442 
7443     nsresult (*GetAutostopType)(IMachine *pThis, PRUint32 *autostopType);
7444     nsresult (*SetAutostopType)(IMachine *pThis, PRUint32 autostopType);
7445 
7446     nsresult (*GetDefaultFrontend)(IMachine *pThis, PRUnichar * *defaultFrontend);
7447     nsresult (*SetDefaultFrontend)(IMachine *pThis, PRUnichar * defaultFrontend);
7448 
7449     nsresult (*GetUSBProxyAvailable)(IMachine *pThis, PRBool *USBProxyAvailable);
7450 
7451     nsresult (*GetVMProcessPriority)(IMachine *pThis, PRUnichar * *VMProcessPriority);
7452     nsresult (*SetVMProcessPriority)(IMachine *pThis, PRUnichar * VMProcessPriority);
7453 
7454     nsresult (*GetParavirtDebug)(IMachine *pThis, PRUnichar * *paravirtDebug);
7455     nsresult (*SetParavirtDebug)(IMachine *pThis, PRUnichar * paravirtDebug);
7456 
7457     nsresult (*GetCPUProfile)(IMachine *pThis, PRUnichar * *CPUProfile);
7458     nsresult (*SetCPUProfile)(IMachine *pThis, PRUnichar * CPUProfile);
7459 
7460     nsresult (*GetInternalAndReservedAttribute1IMachine)(IMachine *pThis, PRUint32 *reserved);
7461 
7462     nsresult (*GetInternalAndReservedAttribute2IMachine)(IMachine *pThis, PRUint32 *reserved);
7463 
7464     nsresult (*GetInternalAndReservedAttribute3IMachine)(IMachine *pThis, PRUint32 *reserved);
7465 
7466     nsresult (*GetInternalAndReservedAttribute4IMachine)(IMachine *pThis, PRUint32 *reserved);
7467 
7468     nsresult (*GetInternalAndReservedAttribute5IMachine)(IMachine *pThis, PRUint32 *reserved);
7469 
7470     nsresult (*GetInternalAndReservedAttribute6IMachine)(IMachine *pThis, PRUint32 *reserved);
7471 
7472     nsresult (*GetInternalAndReservedAttribute7IMachine)(IMachine *pThis, PRUint32 *reserved);
7473 
7474     nsresult (*GetInternalAndReservedAttribute8IMachine)(IMachine *pThis, PRUint32 *reserved);
7475 
7476     nsresult (*GetInternalAndReservedAttribute9IMachine)(IMachine *pThis, PRUint32 *reserved);
7477 
7478     nsresult (*LockMachine)(
7479         IMachine *pThis,
7480         ISession * session,
7481         PRUint32 lockType
7482     );
7483 
7484     nsresult (*LaunchVMProcess)(
7485         IMachine *pThis,
7486         ISession * session,
7487         PRUnichar * name,
7488         PRUnichar * environment,
7489         IProgress * * progress
7490     );
7491 
7492     nsresult (*SetBootOrder)(
7493         IMachine *pThis,
7494         PRUint32 position,
7495         PRUint32 device
7496     );
7497 
7498     nsresult (*GetBootOrder)(
7499         IMachine *pThis,
7500         PRUint32 position,
7501         PRUint32 * device
7502     );
7503 
7504     nsresult (*AttachDevice)(
7505         IMachine *pThis,
7506         PRUnichar * name,
7507         PRInt32 controllerPort,
7508         PRInt32 device,
7509         PRUint32 type,
7510         IMedium * medium
7511     );
7512 
7513     nsresult (*AttachDeviceWithoutMedium)(
7514         IMachine *pThis,
7515         PRUnichar * name,
7516         PRInt32 controllerPort,
7517         PRInt32 device,
7518         PRUint32 type
7519     );
7520 
7521     nsresult (*DetachDevice)(
7522         IMachine *pThis,
7523         PRUnichar * name,
7524         PRInt32 controllerPort,
7525         PRInt32 device
7526     );
7527 
7528     nsresult (*PassthroughDevice)(
7529         IMachine *pThis,
7530         PRUnichar * name,
7531         PRInt32 controllerPort,
7532         PRInt32 device,
7533         PRBool passthrough
7534     );
7535 
7536     nsresult (*TemporaryEjectDevice)(
7537         IMachine *pThis,
7538         PRUnichar * name,
7539         PRInt32 controllerPort,
7540         PRInt32 device,
7541         PRBool temporaryEject
7542     );
7543 
7544     nsresult (*NonRotationalDevice)(
7545         IMachine *pThis,
7546         PRUnichar * name,
7547         PRInt32 controllerPort,
7548         PRInt32 device,
7549         PRBool nonRotational
7550     );
7551 
7552     nsresult (*SetAutoDiscardForDevice)(
7553         IMachine *pThis,
7554         PRUnichar * name,
7555         PRInt32 controllerPort,
7556         PRInt32 device,
7557         PRBool discard
7558     );
7559 
7560     nsresult (*SetHotPluggableForDevice)(
7561         IMachine *pThis,
7562         PRUnichar * name,
7563         PRInt32 controllerPort,
7564         PRInt32 device,
7565         PRBool hotPluggable
7566     );
7567 
7568     nsresult (*SetBandwidthGroupForDevice)(
7569         IMachine *pThis,
7570         PRUnichar * name,
7571         PRInt32 controllerPort,
7572         PRInt32 device,
7573         IBandwidthGroup * bandwidthGroup
7574     );
7575 
7576     nsresult (*SetNoBandwidthGroupForDevice)(
7577         IMachine *pThis,
7578         PRUnichar * name,
7579         PRInt32 controllerPort,
7580         PRInt32 device
7581     );
7582 
7583     nsresult (*UnmountMedium)(
7584         IMachine *pThis,
7585         PRUnichar * name,
7586         PRInt32 controllerPort,
7587         PRInt32 device,
7588         PRBool force
7589     );
7590 
7591     nsresult (*MountMedium)(
7592         IMachine *pThis,
7593         PRUnichar * name,
7594         PRInt32 controllerPort,
7595         PRInt32 device,
7596         IMedium * medium,
7597         PRBool force
7598     );
7599 
7600     nsresult (*GetMedium)(
7601         IMachine *pThis,
7602         PRUnichar * name,
7603         PRInt32 controllerPort,
7604         PRInt32 device,
7605         IMedium * * medium
7606     );
7607 
7608     nsresult (*GetMediumAttachmentsOfController)(
7609         IMachine *pThis,
7610         PRUnichar * name,
7611         PRUint32 *mediumAttachmentsSize,
7612         IMediumAttachment *** mediumAttachments
7613     );
7614 
7615     nsresult (*GetMediumAttachment)(
7616         IMachine *pThis,
7617         PRUnichar * name,
7618         PRInt32 controllerPort,
7619         PRInt32 device,
7620         IMediumAttachment * * attachment
7621     );
7622 
7623     nsresult (*AttachHostPCIDevice)(
7624         IMachine *pThis,
7625         PRInt32 hostAddress,
7626         PRInt32 desiredGuestAddress,
7627         PRBool tryToUnbind
7628     );
7629 
7630     nsresult (*DetachHostPCIDevice)(
7631         IMachine *pThis,
7632         PRInt32 hostAddress
7633     );
7634 
7635     nsresult (*GetNetworkAdapter)(
7636         IMachine *pThis,
7637         PRUint32 slot,
7638         INetworkAdapter * * adapter
7639     );
7640 
7641     nsresult (*AddStorageController)(
7642         IMachine *pThis,
7643         PRUnichar * name,
7644         PRUint32 connectionType,
7645         IStorageController * * controller
7646     );
7647 
7648     nsresult (*GetStorageControllerByName)(
7649         IMachine *pThis,
7650         PRUnichar * name,
7651         IStorageController * * storageController
7652     );
7653 
7654     nsresult (*GetStorageControllerByInstance)(
7655         IMachine *pThis,
7656         PRUint32 connectionType,
7657         PRUint32 instance,
7658         IStorageController * * storageController
7659     );
7660 
7661     nsresult (*RemoveStorageController)(
7662         IMachine *pThis,
7663         PRUnichar * name
7664     );
7665 
7666     nsresult (*SetStorageControllerBootable)(
7667         IMachine *pThis,
7668         PRUnichar * name,
7669         PRBool bootable
7670     );
7671 
7672     nsresult (*AddUSBController)(
7673         IMachine *pThis,
7674         PRUnichar * name,
7675         PRUint32 type,
7676         IUSBController * * controller
7677     );
7678 
7679     nsresult (*RemoveUSBController)(
7680         IMachine *pThis,
7681         PRUnichar * name
7682     );
7683 
7684     nsresult (*GetUSBControllerByName)(
7685         IMachine *pThis,
7686         PRUnichar * name,
7687         IUSBController * * controller
7688     );
7689 
7690     nsresult (*GetUSBControllerCountByType)(
7691         IMachine *pThis,
7692         PRUint32 type,
7693         PRUint32 * controllers
7694     );
7695 
7696     nsresult (*GetSerialPort)(
7697         IMachine *pThis,
7698         PRUint32 slot,
7699         ISerialPort * * port
7700     );
7701 
7702     nsresult (*GetParallelPort)(
7703         IMachine *pThis,
7704         PRUint32 slot,
7705         IParallelPort * * port
7706     );
7707 
7708     nsresult (*GetExtraDataKeys)(
7709         IMachine *pThis,
7710         PRUint32 *keysSize,
7711         PRUnichar *** keys
7712     );
7713 
7714     nsresult (*GetExtraData)(
7715         IMachine *pThis,
7716         PRUnichar * key,
7717         PRUnichar * * value
7718     );
7719 
7720     nsresult (*SetExtraData)(
7721         IMachine *pThis,
7722         PRUnichar * key,
7723         PRUnichar * value
7724     );
7725 
7726     nsresult (*GetCPUProperty)(
7727         IMachine *pThis,
7728         PRUint32 property,
7729         PRBool * value
7730     );
7731 
7732     nsresult (*SetCPUProperty)(
7733         IMachine *pThis,
7734         PRUint32 property,
7735         PRBool value
7736     );
7737 
7738     nsresult (*GetCPUIDLeafByOrdinal)(
7739         IMachine *pThis,
7740         PRUint32 ordinal,
7741         PRUint32 * idx,
7742         PRUint32 * idxSub,
7743         PRUint32 * valEax,
7744         PRUint32 * valEbx,
7745         PRUint32 * valEcx,
7746         PRUint32 * valEdx
7747     );
7748 
7749     nsresult (*GetCPUIDLeaf)(
7750         IMachine *pThis,
7751         PRUint32 idx,
7752         PRUint32 idxSub,
7753         PRUint32 * valEax,
7754         PRUint32 * valEbx,
7755         PRUint32 * valEcx,
7756         PRUint32 * valEdx
7757     );
7758 
7759     nsresult (*SetCPUIDLeaf)(
7760         IMachine *pThis,
7761         PRUint32 idx,
7762         PRUint32 idxSub,
7763         PRUint32 valEax,
7764         PRUint32 valEbx,
7765         PRUint32 valEcx,
7766         PRUint32 valEdx
7767     );
7768 
7769     nsresult (*RemoveCPUIDLeaf)(
7770         IMachine *pThis,
7771         PRUint32 idx,
7772         PRUint32 idxSub
7773     );
7774 
7775     nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
7776 
7777     nsresult (*GetHWVirtExProperty)(
7778         IMachine *pThis,
7779         PRUint32 property,
7780         PRBool * value
7781     );
7782 
7783     nsresult (*SetHWVirtExProperty)(
7784         IMachine *pThis,
7785         PRUint32 property,
7786         PRBool value
7787     );
7788 
7789     nsresult (*SetSettingsFilePath)(
7790         IMachine *pThis,
7791         PRUnichar * settingsFilePath,
7792         IProgress * * progress
7793     );
7794 
7795     nsresult (*SaveSettings)(IMachine *pThis );
7796 
7797     nsresult (*DiscardSettings)(IMachine *pThis );
7798 
7799     nsresult (*Unregister)(
7800         IMachine *pThis,
7801         PRUint32 cleanupMode,
7802         PRUint32 *mediaSize,
7803         IMedium *** media
7804     );
7805 
7806     nsresult (*DeleteConfig)(
7807         IMachine *pThis,
7808         PRUint32 mediaSize,
7809         IMedium ** media,
7810         IProgress * * progress
7811     );
7812 
7813     nsresult (*ExportTo)(
7814         IMachine *pThis,
7815         IAppliance * appliance,
7816         PRUnichar * location,
7817         IVirtualSystemDescription * * description
7818     );
7819 
7820     nsresult (*FindSnapshot)(
7821         IMachine *pThis,
7822         PRUnichar * nameOrId,
7823         ISnapshot * * snapshot
7824     );
7825 
7826     nsresult (*CreateSharedFolder)(
7827         IMachine *pThis,
7828         PRUnichar * name,
7829         PRUnichar * hostPath,
7830         PRBool writable,
7831         PRBool automount
7832     );
7833 
7834     nsresult (*RemoveSharedFolder)(
7835         IMachine *pThis,
7836         PRUnichar * name
7837     );
7838 
7839     nsresult (*CanShowConsoleWindow)(
7840         IMachine *pThis,
7841         PRBool * canShow
7842     );
7843 
7844     nsresult (*ShowConsoleWindow)(
7845         IMachine *pThis,
7846         PRInt64 * winId
7847     );
7848 
7849     nsresult (*GetGuestProperty)(
7850         IMachine *pThis,
7851         PRUnichar * name,
7852         PRUnichar * * value,
7853         PRInt64 * timestamp,
7854         PRUnichar * * flags
7855     );
7856 
7857     nsresult (*GetGuestPropertyValue)(
7858         IMachine *pThis,
7859         PRUnichar * property,
7860         PRUnichar * * value
7861     );
7862 
7863     nsresult (*GetGuestPropertyTimestamp)(
7864         IMachine *pThis,
7865         PRUnichar * property,
7866         PRInt64 * value
7867     );
7868 
7869     nsresult (*SetGuestProperty)(
7870         IMachine *pThis,
7871         PRUnichar * property,
7872         PRUnichar * value,
7873         PRUnichar * flags
7874     );
7875 
7876     nsresult (*SetGuestPropertyValue)(
7877         IMachine *pThis,
7878         PRUnichar * property,
7879         PRUnichar * value
7880     );
7881 
7882     nsresult (*DeleteGuestProperty)(
7883         IMachine *pThis,
7884         PRUnichar * name
7885     );
7886 
7887     nsresult (*EnumerateGuestProperties)(
7888         IMachine *pThis,
7889         PRUnichar * patterns,
7890         PRUint32 *namesSize,
7891         PRUnichar *** names,
7892         PRUint32 *valuesSize,
7893         PRUnichar *** values,
7894         PRUint32 *timestampsSize,
7895         PRInt64** timestamps,
7896         PRUint32 *flagsSize,
7897         PRUnichar *** flags
7898     );
7899 
7900     nsresult (*QuerySavedGuestScreenInfo)(
7901         IMachine *pThis,
7902         PRUint32 screenId,
7903         PRUint32 * originX,
7904         PRUint32 * originY,
7905         PRUint32 * width,
7906         PRUint32 * height,
7907         PRBool * enabled
7908     );
7909 
7910     nsresult (*ReadSavedThumbnailToArray)(
7911         IMachine *pThis,
7912         PRUint32 screenId,
7913         PRUint32 bitmapFormat,
7914         PRUint32 * width,
7915         PRUint32 * height,
7916         PRUint32 *dataSize,
7917         PRUint8** data
7918     );
7919 
7920     nsresult (*QuerySavedScreenshotInfo)(
7921         IMachine *pThis,
7922         PRUint32 screenId,
7923         PRUint32 * width,
7924         PRUint32 * height,
7925         PRUint32 *bitmapFormatsSize,
7926         PRUint32** bitmapFormats
7927     );
7928 
7929     nsresult (*ReadSavedScreenshotToArray)(
7930         IMachine *pThis,
7931         PRUint32 screenId,
7932         PRUint32 bitmapFormat,
7933         PRUint32 * width,
7934         PRUint32 * height,
7935         PRUint32 *dataSize,
7936         PRUint8** data
7937     );
7938 
7939     nsresult (*HotPlugCPU)(
7940         IMachine *pThis,
7941         PRUint32 cpu
7942     );
7943 
7944     nsresult (*HotUnplugCPU)(
7945         IMachine *pThis,
7946         PRUint32 cpu
7947     );
7948 
7949     nsresult (*GetCPUStatus)(
7950         IMachine *pThis,
7951         PRUint32 cpu,
7952         PRBool * attached
7953     );
7954 
7955     nsresult (*GetEffectiveParavirtProvider)(
7956         IMachine *pThis,
7957         PRUint32 * paravirtProvider
7958     );
7959 
7960     nsresult (*QueryLogFilename)(
7961         IMachine *pThis,
7962         PRUint32 idx,
7963         PRUnichar * * filename
7964     );
7965 
7966     nsresult (*ReadLog)(
7967         IMachine *pThis,
7968         PRUint32 idx,
7969         PRInt64 offset,
7970         PRInt64 size,
7971         PRUint32 *dataSize,
7972         PRUint8** data
7973     );
7974 
7975     nsresult (*CloneTo)(
7976         IMachine *pThis,
7977         IMachine * target,
7978         PRUint32 mode,
7979         PRUint32 optionsSize,
7980         PRUint32* options,
7981         IProgress * * progress
7982     );
7983 
7984     nsresult (*SaveState)(
7985         IMachine *pThis,
7986         IProgress * * progress
7987     );
7988 
7989     nsresult (*AdoptSavedState)(
7990         IMachine *pThis,
7991         PRUnichar * savedStateFile
7992     );
7993 
7994     nsresult (*DiscardSavedState)(
7995         IMachine *pThis,
7996         PRBool fRemoveFile
7997     );
7998 
7999     nsresult (*TakeSnapshot)(
8000         IMachine *pThis,
8001         PRUnichar * name,
8002         PRUnichar * description,
8003         PRBool pause,
8004         PRUnichar * * id,
8005         IProgress * * progress
8006     );
8007 
8008     nsresult (*DeleteSnapshot)(
8009         IMachine *pThis,
8010         PRUnichar * id,
8011         IProgress * * progress
8012     );
8013 
8014     nsresult (*DeleteSnapshotAndAllChildren)(
8015         IMachine *pThis,
8016         PRUnichar * id,
8017         IProgress * * progress
8018     );
8019 
8020     nsresult (*DeleteSnapshotRange)(
8021         IMachine *pThis,
8022         PRUnichar * startId,
8023         PRUnichar * endId,
8024         IProgress * * progress
8025     );
8026 
8027     nsresult (*RestoreSnapshot)(
8028         IMachine *pThis,
8029         ISnapshot * snapshot,
8030         IProgress * * progress
8031     );
8032 
8033     nsresult (*ApplyDefaults)(
8034         IMachine *pThis,
8035         PRUnichar * flags
8036     );
8037 
8038     nsresult (*InternalAndReservedMethod1IMachine)(IMachine *pThis);
8039 
8040     nsresult (*InternalAndReservedMethod2IMachine)(IMachine *pThis);
8041 
8042     nsresult (*InternalAndReservedMethod3IMachine)(IMachine *pThis);
8043 
8044     nsresult (*InternalAndReservedMethod4IMachine)(IMachine *pThis);
8045 
8046     nsresult (*InternalAndReservedMethod5IMachine)(IMachine *pThis);
8047 
8048     nsresult (*InternalAndReservedMethod6IMachine)(IMachine *pThis);
8049 
8050 };
8051 #    define IMachine_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8052 #    define IMachine_AddRef(p) ((p)->lpVtbl->AddRef(p))
8053 #    define IMachine_Release(p) ((p)->lpVtbl->Release(p))
8054 #    define IMachine_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
8055 #    define IMachine_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
8056 #    define IMachine_get_Icon(p, aIcon) ((p)->lpVtbl->GetIcon(p, aIcon))
8057 #    define IMachine_GetIcon(p, aIcon) ((p)->lpVtbl->GetIcon(p, aIcon))
8058 #    define IMachine_put_Icon(p, aIcon) ((p)->lpVtbl->SetIcon(p, aIcon))
8059 #    define IMachine_SetIcon(p, aIcon) ((p)->lpVtbl->SetIcon(p, aIcon))
8060 #    define IMachine_get_Accessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
8061 #    define IMachine_GetAccessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
8062 #    define IMachine_get_AccessError(p, aAccessError) ((p)->lpVtbl->GetAccessError(p, aAccessError))
8063 #    define IMachine_GetAccessError(p, aAccessError) ((p)->lpVtbl->GetAccessError(p, aAccessError))
8064 #    define IMachine_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
8065 #    define IMachine_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
8066 #    define IMachine_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
8067 #    define IMachine_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
8068 #    define IMachine_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
8069 #    define IMachine_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
8070 #    define IMachine_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
8071 #    define IMachine_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
8072 #    define IMachine_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
8073 #    define IMachine_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
8074 #    define IMachine_get_Groups(p, aGroups) ((p)->lpVtbl->GetGroups(p, aGroups))
8075 #    define IMachine_GetGroups(p, aGroups) ((p)->lpVtbl->GetGroups(p, aGroups))
8076 #    define IMachine_put_Groups(p, aGroups) ((p)->lpVtbl->SetGroups(p, aGroups))
8077 #    define IMachine_SetGroups(p, aGroups) ((p)->lpVtbl->SetGroups(p, aGroups))
8078 #    define IMachine_get_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
8079 #    define IMachine_GetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
8080 #    define IMachine_put_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->SetOSTypeId(p, aOSTypeId))
8081 #    define IMachine_SetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->SetOSTypeId(p, aOSTypeId))
8082 #    define IMachine_get_HardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->GetHardwareVersion(p, aHardwareVersion))
8083 #    define IMachine_GetHardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->GetHardwareVersion(p, aHardwareVersion))
8084 #    define IMachine_put_HardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->SetHardwareVersion(p, aHardwareVersion))
8085 #    define IMachine_SetHardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->SetHardwareVersion(p, aHardwareVersion))
8086 #    define IMachine_get_HardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->GetHardwareUUID(p, aHardwareUUID))
8087 #    define IMachine_GetHardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->GetHardwareUUID(p, aHardwareUUID))
8088 #    define IMachine_put_HardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->SetHardwareUUID(p, aHardwareUUID))
8089 #    define IMachine_SetHardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->SetHardwareUUID(p, aHardwareUUID))
8090 #    define IMachine_get_CPUCount(p, aCPUCount) ((p)->lpVtbl->GetCPUCount(p, aCPUCount))
8091 #    define IMachine_GetCPUCount(p, aCPUCount) ((p)->lpVtbl->GetCPUCount(p, aCPUCount))
8092 #    define IMachine_put_CPUCount(p, aCPUCount) ((p)->lpVtbl->SetCPUCount(p, aCPUCount))
8093 #    define IMachine_SetCPUCount(p, aCPUCount) ((p)->lpVtbl->SetCPUCount(p, aCPUCount))
8094 #    define IMachine_get_CPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8095 #    define IMachine_GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8096 #    define IMachine_put_CPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8097 #    define IMachine_SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
8098 #    define IMachine_get_CPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->GetCPUExecutionCap(p, aCPUExecutionCap))
8099 #    define IMachine_GetCPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->GetCPUExecutionCap(p, aCPUExecutionCap))
8100 #    define IMachine_put_CPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->SetCPUExecutionCap(p, aCPUExecutionCap))
8101 #    define IMachine_SetCPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->SetCPUExecutionCap(p, aCPUExecutionCap))
8102 #    define IMachine_get_CPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8103 #    define IMachine_GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8104 #    define IMachine_put_CPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8105 #    define IMachine_SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
8106 #    define IMachine_get_MemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
8107 #    define IMachine_GetMemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
8108 #    define IMachine_put_MemorySize(p, aMemorySize) ((p)->lpVtbl->SetMemorySize(p, aMemorySize))
8109 #    define IMachine_SetMemorySize(p, aMemorySize) ((p)->lpVtbl->SetMemorySize(p, aMemorySize))
8110 #    define IMachine_get_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
8111 #    define IMachine_GetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
8112 #    define IMachine_put_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
8113 #    define IMachine_SetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
8114 #    define IMachine_get_PageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->GetPageFusionEnabled(p, aPageFusionEnabled))
8115 #    define IMachine_GetPageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->GetPageFusionEnabled(p, aPageFusionEnabled))
8116 #    define IMachine_put_PageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->SetPageFusionEnabled(p, aPageFusionEnabled))
8117 #    define IMachine_SetPageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->SetPageFusionEnabled(p, aPageFusionEnabled))
8118 #    define IMachine_get_GraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->GetGraphicsControllerType(p, aGraphicsControllerType))
8119 #    define IMachine_GetGraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->GetGraphicsControllerType(p, aGraphicsControllerType))
8120 #    define IMachine_put_GraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->SetGraphicsControllerType(p, aGraphicsControllerType))
8121 #    define IMachine_SetGraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->SetGraphicsControllerType(p, aGraphicsControllerType))
8122 #    define IMachine_get_VRAMSize(p, aVRAMSize) ((p)->lpVtbl->GetVRAMSize(p, aVRAMSize))
8123 #    define IMachine_GetVRAMSize(p, aVRAMSize) ((p)->lpVtbl->GetVRAMSize(p, aVRAMSize))
8124 #    define IMachine_put_VRAMSize(p, aVRAMSize) ((p)->lpVtbl->SetVRAMSize(p, aVRAMSize))
8125 #    define IMachine_SetVRAMSize(p, aVRAMSize) ((p)->lpVtbl->SetVRAMSize(p, aVRAMSize))
8126 #    define IMachine_get_Accelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->GetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8127 #    define IMachine_GetAccelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->GetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8128 #    define IMachine_put_Accelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->SetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8129 #    define IMachine_SetAccelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->SetAccelerate3DEnabled(p, aAccelerate3DEnabled))
8130 #    define IMachine_get_Accelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8131 #    define IMachine_GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8132 #    define IMachine_put_Accelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8133 #    define IMachine_SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
8134 #    define IMachine_get_MonitorCount(p, aMonitorCount) ((p)->lpVtbl->GetMonitorCount(p, aMonitorCount))
8135 #    define IMachine_GetMonitorCount(p, aMonitorCount) ((p)->lpVtbl->GetMonitorCount(p, aMonitorCount))
8136 #    define IMachine_put_MonitorCount(p, aMonitorCount) ((p)->lpVtbl->SetMonitorCount(p, aMonitorCount))
8137 #    define IMachine_SetMonitorCount(p, aMonitorCount) ((p)->lpVtbl->SetMonitorCount(p, aMonitorCount))
8138 #    define IMachine_get_VideoCaptureEnabled(p, aVideoCaptureEnabled) ((p)->lpVtbl->GetVideoCaptureEnabled(p, aVideoCaptureEnabled))
8139 #    define IMachine_GetVideoCaptureEnabled(p, aVideoCaptureEnabled) ((p)->lpVtbl->GetVideoCaptureEnabled(p, aVideoCaptureEnabled))
8140 #    define IMachine_put_VideoCaptureEnabled(p, aVideoCaptureEnabled) ((p)->lpVtbl->SetVideoCaptureEnabled(p, aVideoCaptureEnabled))
8141 #    define IMachine_SetVideoCaptureEnabled(p, aVideoCaptureEnabled) ((p)->lpVtbl->SetVideoCaptureEnabled(p, aVideoCaptureEnabled))
8142 #    define IMachine_get_VideoCaptureScreens(p, aVideoCaptureScreens) ((p)->lpVtbl->GetVideoCaptureScreens(p, aVideoCaptureScreens))
8143 #    define IMachine_GetVideoCaptureScreens(p, aVideoCaptureScreens) ((p)->lpVtbl->GetVideoCaptureScreens(p, aVideoCaptureScreens))
8144 #    define IMachine_put_VideoCaptureScreens(p, aVideoCaptureScreens) ((p)->lpVtbl->SetVideoCaptureScreens(p, aVideoCaptureScreens))
8145 #    define IMachine_SetVideoCaptureScreens(p, aVideoCaptureScreens) ((p)->lpVtbl->SetVideoCaptureScreens(p, aVideoCaptureScreens))
8146 #    define IMachine_get_VideoCaptureFile(p, aVideoCaptureFile) ((p)->lpVtbl->GetVideoCaptureFile(p, aVideoCaptureFile))
8147 #    define IMachine_GetVideoCaptureFile(p, aVideoCaptureFile) ((p)->lpVtbl->GetVideoCaptureFile(p, aVideoCaptureFile))
8148 #    define IMachine_put_VideoCaptureFile(p, aVideoCaptureFile) ((p)->lpVtbl->SetVideoCaptureFile(p, aVideoCaptureFile))
8149 #    define IMachine_SetVideoCaptureFile(p, aVideoCaptureFile) ((p)->lpVtbl->SetVideoCaptureFile(p, aVideoCaptureFile))
8150 #    define IMachine_get_VideoCaptureWidth(p, aVideoCaptureWidth) ((p)->lpVtbl->GetVideoCaptureWidth(p, aVideoCaptureWidth))
8151 #    define IMachine_GetVideoCaptureWidth(p, aVideoCaptureWidth) ((p)->lpVtbl->GetVideoCaptureWidth(p, aVideoCaptureWidth))
8152 #    define IMachine_put_VideoCaptureWidth(p, aVideoCaptureWidth) ((p)->lpVtbl->SetVideoCaptureWidth(p, aVideoCaptureWidth))
8153 #    define IMachine_SetVideoCaptureWidth(p, aVideoCaptureWidth) ((p)->lpVtbl->SetVideoCaptureWidth(p, aVideoCaptureWidth))
8154 #    define IMachine_get_VideoCaptureHeight(p, aVideoCaptureHeight) ((p)->lpVtbl->GetVideoCaptureHeight(p, aVideoCaptureHeight))
8155 #    define IMachine_GetVideoCaptureHeight(p, aVideoCaptureHeight) ((p)->lpVtbl->GetVideoCaptureHeight(p, aVideoCaptureHeight))
8156 #    define IMachine_put_VideoCaptureHeight(p, aVideoCaptureHeight) ((p)->lpVtbl->SetVideoCaptureHeight(p, aVideoCaptureHeight))
8157 #    define IMachine_SetVideoCaptureHeight(p, aVideoCaptureHeight) ((p)->lpVtbl->SetVideoCaptureHeight(p, aVideoCaptureHeight))
8158 #    define IMachine_get_VideoCaptureRate(p, aVideoCaptureRate) ((p)->lpVtbl->GetVideoCaptureRate(p, aVideoCaptureRate))
8159 #    define IMachine_GetVideoCaptureRate(p, aVideoCaptureRate) ((p)->lpVtbl->GetVideoCaptureRate(p, aVideoCaptureRate))
8160 #    define IMachine_put_VideoCaptureRate(p, aVideoCaptureRate) ((p)->lpVtbl->SetVideoCaptureRate(p, aVideoCaptureRate))
8161 #    define IMachine_SetVideoCaptureRate(p, aVideoCaptureRate) ((p)->lpVtbl->SetVideoCaptureRate(p, aVideoCaptureRate))
8162 #    define IMachine_get_VideoCaptureFPS(p, aVideoCaptureFPS) ((p)->lpVtbl->GetVideoCaptureFPS(p, aVideoCaptureFPS))
8163 #    define IMachine_GetVideoCaptureFPS(p, aVideoCaptureFPS) ((p)->lpVtbl->GetVideoCaptureFPS(p, aVideoCaptureFPS))
8164 #    define IMachine_put_VideoCaptureFPS(p, aVideoCaptureFPS) ((p)->lpVtbl->SetVideoCaptureFPS(p, aVideoCaptureFPS))
8165 #    define IMachine_SetVideoCaptureFPS(p, aVideoCaptureFPS) ((p)->lpVtbl->SetVideoCaptureFPS(p, aVideoCaptureFPS))
8166 #    define IMachine_get_VideoCaptureMaxTime(p, aVideoCaptureMaxTime) ((p)->lpVtbl->GetVideoCaptureMaxTime(p, aVideoCaptureMaxTime))
8167 #    define IMachine_GetVideoCaptureMaxTime(p, aVideoCaptureMaxTime) ((p)->lpVtbl->GetVideoCaptureMaxTime(p, aVideoCaptureMaxTime))
8168 #    define IMachine_put_VideoCaptureMaxTime(p, aVideoCaptureMaxTime) ((p)->lpVtbl->SetVideoCaptureMaxTime(p, aVideoCaptureMaxTime))
8169 #    define IMachine_SetVideoCaptureMaxTime(p, aVideoCaptureMaxTime) ((p)->lpVtbl->SetVideoCaptureMaxTime(p, aVideoCaptureMaxTime))
8170 #    define IMachine_get_VideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize) ((p)->lpVtbl->GetVideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize))
8171 #    define IMachine_GetVideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize) ((p)->lpVtbl->GetVideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize))
8172 #    define IMachine_put_VideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize) ((p)->lpVtbl->SetVideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize))
8173 #    define IMachine_SetVideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize) ((p)->lpVtbl->SetVideoCaptureMaxFileSize(p, aVideoCaptureMaxFileSize))
8174 #    define IMachine_get_VideoCaptureOptions(p, aVideoCaptureOptions) ((p)->lpVtbl->GetVideoCaptureOptions(p, aVideoCaptureOptions))
8175 #    define IMachine_GetVideoCaptureOptions(p, aVideoCaptureOptions) ((p)->lpVtbl->GetVideoCaptureOptions(p, aVideoCaptureOptions))
8176 #    define IMachine_put_VideoCaptureOptions(p, aVideoCaptureOptions) ((p)->lpVtbl->SetVideoCaptureOptions(p, aVideoCaptureOptions))
8177 #    define IMachine_SetVideoCaptureOptions(p, aVideoCaptureOptions) ((p)->lpVtbl->SetVideoCaptureOptions(p, aVideoCaptureOptions))
8178 #    define IMachine_get_BIOSSettings(p, aBIOSSettings) ((p)->lpVtbl->GetBIOSSettings(p, aBIOSSettings))
8179 #    define IMachine_GetBIOSSettings(p, aBIOSSettings) ((p)->lpVtbl->GetBIOSSettings(p, aBIOSSettings))
8180 #    define IMachine_get_FirmwareType(p, aFirmwareType) ((p)->lpVtbl->GetFirmwareType(p, aFirmwareType))
8181 #    define IMachine_GetFirmwareType(p, aFirmwareType) ((p)->lpVtbl->GetFirmwareType(p, aFirmwareType))
8182 #    define IMachine_put_FirmwareType(p, aFirmwareType) ((p)->lpVtbl->SetFirmwareType(p, aFirmwareType))
8183 #    define IMachine_SetFirmwareType(p, aFirmwareType) ((p)->lpVtbl->SetFirmwareType(p, aFirmwareType))
8184 #    define IMachine_get_PointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->GetPointingHIDType(p, aPointingHIDType))
8185 #    define IMachine_GetPointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->GetPointingHIDType(p, aPointingHIDType))
8186 #    define IMachine_put_PointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->SetPointingHIDType(p, aPointingHIDType))
8187 #    define IMachine_SetPointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->SetPointingHIDType(p, aPointingHIDType))
8188 #    define IMachine_get_KeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->GetKeyboardHIDType(p, aKeyboardHIDType))
8189 #    define IMachine_GetKeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->GetKeyboardHIDType(p, aKeyboardHIDType))
8190 #    define IMachine_put_KeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->SetKeyboardHIDType(p, aKeyboardHIDType))
8191 #    define IMachine_SetKeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->SetKeyboardHIDType(p, aKeyboardHIDType))
8192 #    define IMachine_get_HPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->GetHPETEnabled(p, aHPETEnabled))
8193 #    define IMachine_GetHPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->GetHPETEnabled(p, aHPETEnabled))
8194 #    define IMachine_put_HPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->SetHPETEnabled(p, aHPETEnabled))
8195 #    define IMachine_SetHPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->SetHPETEnabled(p, aHPETEnabled))
8196 #    define IMachine_get_ChipsetType(p, aChipsetType) ((p)->lpVtbl->GetChipsetType(p, aChipsetType))
8197 #    define IMachine_GetChipsetType(p, aChipsetType) ((p)->lpVtbl->GetChipsetType(p, aChipsetType))
8198 #    define IMachine_put_ChipsetType(p, aChipsetType) ((p)->lpVtbl->SetChipsetType(p, aChipsetType))
8199 #    define IMachine_SetChipsetType(p, aChipsetType) ((p)->lpVtbl->SetChipsetType(p, aChipsetType))
8200 #    define IMachine_get_SnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->GetSnapshotFolder(p, aSnapshotFolder))
8201 #    define IMachine_GetSnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->GetSnapshotFolder(p, aSnapshotFolder))
8202 #    define IMachine_put_SnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->SetSnapshotFolder(p, aSnapshotFolder))
8203 #    define IMachine_SetSnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->SetSnapshotFolder(p, aSnapshotFolder))
8204 #    define IMachine_get_VRDEServer(p, aVRDEServer) ((p)->lpVtbl->GetVRDEServer(p, aVRDEServer))
8205 #    define IMachine_GetVRDEServer(p, aVRDEServer) ((p)->lpVtbl->GetVRDEServer(p, aVRDEServer))
8206 #    define IMachine_get_EmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8207 #    define IMachine_GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8208 #    define IMachine_put_EmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8209 #    define IMachine_SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
8210 #    define IMachine_get_MediumAttachments(p, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachments(p, aMediumAttachments))
8211 #    define IMachine_GetMediumAttachments(p, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachments(p, aMediumAttachments))
8212 #    define IMachine_get_USBControllers(p, aUSBControllers) ((p)->lpVtbl->GetUSBControllers(p, aUSBControllers))
8213 #    define IMachine_GetUSBControllers(p, aUSBControllers) ((p)->lpVtbl->GetUSBControllers(p, aUSBControllers))
8214 #    define IMachine_get_USBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
8215 #    define IMachine_GetUSBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
8216 #    define IMachine_get_AudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
8217 #    define IMachine_GetAudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
8218 #    define IMachine_get_StorageControllers(p, aStorageControllers) ((p)->lpVtbl->GetStorageControllers(p, aStorageControllers))
8219 #    define IMachine_GetStorageControllers(p, aStorageControllers) ((p)->lpVtbl->GetStorageControllers(p, aStorageControllers))
8220 #    define IMachine_get_SettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
8221 #    define IMachine_GetSettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
8222 #    define IMachine_get_SettingsAuxFilePath(p, aSettingsAuxFilePath) ((p)->lpVtbl->GetSettingsAuxFilePath(p, aSettingsAuxFilePath))
8223 #    define IMachine_GetSettingsAuxFilePath(p, aSettingsAuxFilePath) ((p)->lpVtbl->GetSettingsAuxFilePath(p, aSettingsAuxFilePath))
8224 #    define IMachine_get_SettingsModified(p, aSettingsModified) ((p)->lpVtbl->GetSettingsModified(p, aSettingsModified))
8225 #    define IMachine_GetSettingsModified(p, aSettingsModified) ((p)->lpVtbl->GetSettingsModified(p, aSettingsModified))
8226 #    define IMachine_get_SessionState(p, aSessionState) ((p)->lpVtbl->GetSessionState(p, aSessionState))
8227 #    define IMachine_GetSessionState(p, aSessionState) ((p)->lpVtbl->GetSessionState(p, aSessionState))
8228 #    define IMachine_get_SessionName(p, aSessionName) ((p)->lpVtbl->GetSessionName(p, aSessionName))
8229 #    define IMachine_GetSessionName(p, aSessionName) ((p)->lpVtbl->GetSessionName(p, aSessionName))
8230 #    define IMachine_get_SessionPID(p, aSessionPID) ((p)->lpVtbl->GetSessionPID(p, aSessionPID))
8231 #    define IMachine_GetSessionPID(p, aSessionPID) ((p)->lpVtbl->GetSessionPID(p, aSessionPID))
8232 #    define IMachine_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
8233 #    define IMachine_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
8234 #    define IMachine_get_LastStateChange(p, aLastStateChange) ((p)->lpVtbl->GetLastStateChange(p, aLastStateChange))
8235 #    define IMachine_GetLastStateChange(p, aLastStateChange) ((p)->lpVtbl->GetLastStateChange(p, aLastStateChange))
8236 #    define IMachine_get_StateFilePath(p, aStateFilePath) ((p)->lpVtbl->GetStateFilePath(p, aStateFilePath))
8237 #    define IMachine_GetStateFilePath(p, aStateFilePath) ((p)->lpVtbl->GetStateFilePath(p, aStateFilePath))
8238 #    define IMachine_get_LogFolder(p, aLogFolder) ((p)->lpVtbl->GetLogFolder(p, aLogFolder))
8239 #    define IMachine_GetLogFolder(p, aLogFolder) ((p)->lpVtbl->GetLogFolder(p, aLogFolder))
8240 #    define IMachine_get_CurrentSnapshot(p, aCurrentSnapshot) ((p)->lpVtbl->GetCurrentSnapshot(p, aCurrentSnapshot))
8241 #    define IMachine_GetCurrentSnapshot(p, aCurrentSnapshot) ((p)->lpVtbl->GetCurrentSnapshot(p, aCurrentSnapshot))
8242 #    define IMachine_get_SnapshotCount(p, aSnapshotCount) ((p)->lpVtbl->GetSnapshotCount(p, aSnapshotCount))
8243 #    define IMachine_GetSnapshotCount(p, aSnapshotCount) ((p)->lpVtbl->GetSnapshotCount(p, aSnapshotCount))
8244 #    define IMachine_get_CurrentStateModified(p, aCurrentStateModified) ((p)->lpVtbl->GetCurrentStateModified(p, aCurrentStateModified))
8245 #    define IMachine_GetCurrentStateModified(p, aCurrentStateModified) ((p)->lpVtbl->GetCurrentStateModified(p, aCurrentStateModified))
8246 #    define IMachine_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
8247 #    define IMachine_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
8248 #    define IMachine_get_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
8249 #    define IMachine_GetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
8250 #    define IMachine_put_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->SetClipboardMode(p, aClipboardMode))
8251 #    define IMachine_SetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->SetClipboardMode(p, aClipboardMode))
8252 #    define IMachine_get_DnDMode(p, aDnDMode) ((p)->lpVtbl->GetDnDMode(p, aDnDMode))
8253 #    define IMachine_GetDnDMode(p, aDnDMode) ((p)->lpVtbl->GetDnDMode(p, aDnDMode))
8254 #    define IMachine_put_DnDMode(p, aDnDMode) ((p)->lpVtbl->SetDnDMode(p, aDnDMode))
8255 #    define IMachine_SetDnDMode(p, aDnDMode) ((p)->lpVtbl->SetDnDMode(p, aDnDMode))
8256 #    define IMachine_get_TeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->GetTeleporterEnabled(p, aTeleporterEnabled))
8257 #    define IMachine_GetTeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->GetTeleporterEnabled(p, aTeleporterEnabled))
8258 #    define IMachine_put_TeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->SetTeleporterEnabled(p, aTeleporterEnabled))
8259 #    define IMachine_SetTeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->SetTeleporterEnabled(p, aTeleporterEnabled))
8260 #    define IMachine_get_TeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->GetTeleporterPort(p, aTeleporterPort))
8261 #    define IMachine_GetTeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->GetTeleporterPort(p, aTeleporterPort))
8262 #    define IMachine_put_TeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->SetTeleporterPort(p, aTeleporterPort))
8263 #    define IMachine_SetTeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->SetTeleporterPort(p, aTeleporterPort))
8264 #    define IMachine_get_TeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->GetTeleporterAddress(p, aTeleporterAddress))
8265 #    define IMachine_GetTeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->GetTeleporterAddress(p, aTeleporterAddress))
8266 #    define IMachine_put_TeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->SetTeleporterAddress(p, aTeleporterAddress))
8267 #    define IMachine_SetTeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->SetTeleporterAddress(p, aTeleporterAddress))
8268 #    define IMachine_get_TeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->GetTeleporterPassword(p, aTeleporterPassword))
8269 #    define IMachine_GetTeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->GetTeleporterPassword(p, aTeleporterPassword))
8270 #    define IMachine_put_TeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->SetTeleporterPassword(p, aTeleporterPassword))
8271 #    define IMachine_SetTeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->SetTeleporterPassword(p, aTeleporterPassword))
8272 #    define IMachine_get_ParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetParavirtProvider(p, aParavirtProvider))
8273 #    define IMachine_GetParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetParavirtProvider(p, aParavirtProvider))
8274 #    define IMachine_put_ParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->SetParavirtProvider(p, aParavirtProvider))
8275 #    define IMachine_SetParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->SetParavirtProvider(p, aParavirtProvider))
8276 #    define IMachine_get_FaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->GetFaultToleranceState(p, aFaultToleranceState))
8277 #    define IMachine_GetFaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->GetFaultToleranceState(p, aFaultToleranceState))
8278 #    define IMachine_put_FaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->SetFaultToleranceState(p, aFaultToleranceState))
8279 #    define IMachine_SetFaultToleranceState(p, aFaultToleranceState) ((p)->lpVtbl->SetFaultToleranceState(p, aFaultToleranceState))
8280 #    define IMachine_get_FaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->GetFaultTolerancePort(p, aFaultTolerancePort))
8281 #    define IMachine_GetFaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->GetFaultTolerancePort(p, aFaultTolerancePort))
8282 #    define IMachine_put_FaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->SetFaultTolerancePort(p, aFaultTolerancePort))
8283 #    define IMachine_SetFaultTolerancePort(p, aFaultTolerancePort) ((p)->lpVtbl->SetFaultTolerancePort(p, aFaultTolerancePort))
8284 #    define IMachine_get_FaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->GetFaultToleranceAddress(p, aFaultToleranceAddress))
8285 #    define IMachine_GetFaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->GetFaultToleranceAddress(p, aFaultToleranceAddress))
8286 #    define IMachine_put_FaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->SetFaultToleranceAddress(p, aFaultToleranceAddress))
8287 #    define IMachine_SetFaultToleranceAddress(p, aFaultToleranceAddress) ((p)->lpVtbl->SetFaultToleranceAddress(p, aFaultToleranceAddress))
8288 #    define IMachine_get_FaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->GetFaultTolerancePassword(p, aFaultTolerancePassword))
8289 #    define IMachine_GetFaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->GetFaultTolerancePassword(p, aFaultTolerancePassword))
8290 #    define IMachine_put_FaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->SetFaultTolerancePassword(p, aFaultTolerancePassword))
8291 #    define IMachine_SetFaultTolerancePassword(p, aFaultTolerancePassword) ((p)->lpVtbl->SetFaultTolerancePassword(p, aFaultTolerancePassword))
8292 #    define IMachine_get_FaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->GetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8293 #    define IMachine_GetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->GetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8294 #    define IMachine_put_FaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->SetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8295 #    define IMachine_SetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval) ((p)->lpVtbl->SetFaultToleranceSyncInterval(p, aFaultToleranceSyncInterval))
8296 #    define IMachine_get_RTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->GetRTCUseUTC(p, aRTCUseUTC))
8297 #    define IMachine_GetRTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->GetRTCUseUTC(p, aRTCUseUTC))
8298 #    define IMachine_put_RTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->SetRTCUseUTC(p, aRTCUseUTC))
8299 #    define IMachine_SetRTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->SetRTCUseUTC(p, aRTCUseUTC))
8300 #    define IMachine_get_IOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->GetIOCacheEnabled(p, aIOCacheEnabled))
8301 #    define IMachine_GetIOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->GetIOCacheEnabled(p, aIOCacheEnabled))
8302 #    define IMachine_put_IOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->SetIOCacheEnabled(p, aIOCacheEnabled))
8303 #    define IMachine_SetIOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->SetIOCacheEnabled(p, aIOCacheEnabled))
8304 #    define IMachine_get_IOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->GetIOCacheSize(p, aIOCacheSize))
8305 #    define IMachine_GetIOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->GetIOCacheSize(p, aIOCacheSize))
8306 #    define IMachine_put_IOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->SetIOCacheSize(p, aIOCacheSize))
8307 #    define IMachine_SetIOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->SetIOCacheSize(p, aIOCacheSize))
8308 #    define IMachine_get_PCIDeviceAssignments(p, aPCIDeviceAssignments) ((p)->lpVtbl->GetPCIDeviceAssignments(p, aPCIDeviceAssignments))
8309 #    define IMachine_GetPCIDeviceAssignments(p, aPCIDeviceAssignments) ((p)->lpVtbl->GetPCIDeviceAssignments(p, aPCIDeviceAssignments))
8310 #    define IMachine_get_BandwidthControl(p, aBandwidthControl) ((p)->lpVtbl->GetBandwidthControl(p, aBandwidthControl))
8311 #    define IMachine_GetBandwidthControl(p, aBandwidthControl) ((p)->lpVtbl->GetBandwidthControl(p, aBandwidthControl))
8312 #    define IMachine_get_TracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->GetTracingEnabled(p, aTracingEnabled))
8313 #    define IMachine_GetTracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->GetTracingEnabled(p, aTracingEnabled))
8314 #    define IMachine_put_TracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->SetTracingEnabled(p, aTracingEnabled))
8315 #    define IMachine_SetTracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->SetTracingEnabled(p, aTracingEnabled))
8316 #    define IMachine_get_TracingConfig(p, aTracingConfig) ((p)->lpVtbl->GetTracingConfig(p, aTracingConfig))
8317 #    define IMachine_GetTracingConfig(p, aTracingConfig) ((p)->lpVtbl->GetTracingConfig(p, aTracingConfig))
8318 #    define IMachine_put_TracingConfig(p, aTracingConfig) ((p)->lpVtbl->SetTracingConfig(p, aTracingConfig))
8319 #    define IMachine_SetTracingConfig(p, aTracingConfig) ((p)->lpVtbl->SetTracingConfig(p, aTracingConfig))
8320 #    define IMachine_get_AllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8321 #    define IMachine_GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8322 #    define IMachine_put_AllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8323 #    define IMachine_SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
8324 #    define IMachine_get_AutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->GetAutostartEnabled(p, aAutostartEnabled))
8325 #    define IMachine_GetAutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->GetAutostartEnabled(p, aAutostartEnabled))
8326 #    define IMachine_put_AutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->SetAutostartEnabled(p, aAutostartEnabled))
8327 #    define IMachine_SetAutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->SetAutostartEnabled(p, aAutostartEnabled))
8328 #    define IMachine_get_AutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->GetAutostartDelay(p, aAutostartDelay))
8329 #    define IMachine_GetAutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->GetAutostartDelay(p, aAutostartDelay))
8330 #    define IMachine_put_AutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->SetAutostartDelay(p, aAutostartDelay))
8331 #    define IMachine_SetAutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->SetAutostartDelay(p, aAutostartDelay))
8332 #    define IMachine_get_AutostopType(p, aAutostopType) ((p)->lpVtbl->GetAutostopType(p, aAutostopType))
8333 #    define IMachine_GetAutostopType(p, aAutostopType) ((p)->lpVtbl->GetAutostopType(p, aAutostopType))
8334 #    define IMachine_put_AutostopType(p, aAutostopType) ((p)->lpVtbl->SetAutostopType(p, aAutostopType))
8335 #    define IMachine_SetAutostopType(p, aAutostopType) ((p)->lpVtbl->SetAutostopType(p, aAutostopType))
8336 #    define IMachine_get_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
8337 #    define IMachine_GetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
8338 #    define IMachine_put_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
8339 #    define IMachine_SetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
8340 #    define IMachine_get_USBProxyAvailable(p, aUSBProxyAvailable) ((p)->lpVtbl->GetUSBProxyAvailable(p, aUSBProxyAvailable))
8341 #    define IMachine_GetUSBProxyAvailable(p, aUSBProxyAvailable) ((p)->lpVtbl->GetUSBProxyAvailable(p, aUSBProxyAvailable))
8342 #    define IMachine_get_VMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->GetVMProcessPriority(p, aVMProcessPriority))
8343 #    define IMachine_GetVMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->GetVMProcessPriority(p, aVMProcessPriority))
8344 #    define IMachine_put_VMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->SetVMProcessPriority(p, aVMProcessPriority))
8345 #    define IMachine_SetVMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->SetVMProcessPriority(p, aVMProcessPriority))
8346 #    define IMachine_get_ParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->GetParavirtDebug(p, aParavirtDebug))
8347 #    define IMachine_GetParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->GetParavirtDebug(p, aParavirtDebug))
8348 #    define IMachine_put_ParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->SetParavirtDebug(p, aParavirtDebug))
8349 #    define IMachine_SetParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->SetParavirtDebug(p, aParavirtDebug))
8350 #    define IMachine_get_CPUProfile(p, aCPUProfile) ((p)->lpVtbl->GetCPUProfile(p, aCPUProfile))
8351 #    define IMachine_GetCPUProfile(p, aCPUProfile) ((p)->lpVtbl->GetCPUProfile(p, aCPUProfile))
8352 #    define IMachine_put_CPUProfile(p, aCPUProfile) ((p)->lpVtbl->SetCPUProfile(p, aCPUProfile))
8353 #    define IMachine_SetCPUProfile(p, aCPUProfile) ((p)->lpVtbl->SetCPUProfile(p, aCPUProfile))
8354 #    define IMachine_LockMachine(p, aSession, aLockType) ((p)->lpVtbl->LockMachine(p, aSession, aLockType))
8355 #    define IMachine_LaunchVMProcess(p, aSession, aName, aEnvironment, aProgress) ((p)->lpVtbl->LaunchVMProcess(p, aSession, aName, aEnvironment, aProgress))
8356 #    define IMachine_SetBootOrder(p, aPosition, aDevice) ((p)->lpVtbl->SetBootOrder(p, aPosition, aDevice))
8357 #    define IMachine_GetBootOrder(p, aPosition, aDevice) ((p)->lpVtbl->GetBootOrder(p, aPosition, aDevice))
8358 #    define IMachine_AttachDevice(p, aName, aControllerPort, aDevice, aType, aMedium) ((p)->lpVtbl->AttachDevice(p, aName, aControllerPort, aDevice, aType, aMedium))
8359 #    define IMachine_AttachDeviceWithoutMedium(p, aName, aControllerPort, aDevice, aType) ((p)->lpVtbl->AttachDeviceWithoutMedium(p, aName, aControllerPort, aDevice, aType))
8360 #    define IMachine_DetachDevice(p, aName, aControllerPort, aDevice) ((p)->lpVtbl->DetachDevice(p, aName, aControllerPort, aDevice))
8361 #    define IMachine_PassthroughDevice(p, aName, aControllerPort, aDevice, aPassthrough) ((p)->lpVtbl->PassthroughDevice(p, aName, aControllerPort, aDevice, aPassthrough))
8362 #    define IMachine_TemporaryEjectDevice(p, aName, aControllerPort, aDevice, aTemporaryEject) ((p)->lpVtbl->TemporaryEjectDevice(p, aName, aControllerPort, aDevice, aTemporaryEject))
8363 #    define IMachine_NonRotationalDevice(p, aName, aControllerPort, aDevice, aNonRotational) ((p)->lpVtbl->NonRotationalDevice(p, aName, aControllerPort, aDevice, aNonRotational))
8364 #    define IMachine_SetAutoDiscardForDevice(p, aName, aControllerPort, aDevice, aDiscard) ((p)->lpVtbl->SetAutoDiscardForDevice(p, aName, aControllerPort, aDevice, aDiscard))
8365 #    define IMachine_SetHotPluggableForDevice(p, aName, aControllerPort, aDevice, aHotPluggable) ((p)->lpVtbl->SetHotPluggableForDevice(p, aName, aControllerPort, aDevice, aHotPluggable))
8366 #    define IMachine_SetBandwidthGroupForDevice(p, aName, aControllerPort, aDevice, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroupForDevice(p, aName, aControllerPort, aDevice, aBandwidthGroup))
8367 #    define IMachine_SetNoBandwidthGroupForDevice(p, aName, aControllerPort, aDevice) ((p)->lpVtbl->SetNoBandwidthGroupForDevice(p, aName, aControllerPort, aDevice))
8368 #    define IMachine_UnmountMedium(p, aName, aControllerPort, aDevice, aForce) ((p)->lpVtbl->UnmountMedium(p, aName, aControllerPort, aDevice, aForce))
8369 #    define IMachine_MountMedium(p, aName, aControllerPort, aDevice, aMedium, aForce) ((p)->lpVtbl->MountMedium(p, aName, aControllerPort, aDevice, aMedium, aForce))
8370 #    define IMachine_GetMedium(p, aName, aControllerPort, aDevice, aMedium) ((p)->lpVtbl->GetMedium(p, aName, aControllerPort, aDevice, aMedium))
8371 #    define IMachine_GetMediumAttachmentsOfController(p, aName, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachmentsOfController(p, aName, aMediumAttachments))
8372 #    define IMachine_GetMediumAttachment(p, aName, aControllerPort, aDevice, aAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aName, aControllerPort, aDevice, aAttachment))
8373 #    define IMachine_AttachHostPCIDevice(p, aHostAddress, aDesiredGuestAddress, aTryToUnbind) ((p)->lpVtbl->AttachHostPCIDevice(p, aHostAddress, aDesiredGuestAddress, aTryToUnbind))
8374 #    define IMachine_DetachHostPCIDevice(p, aHostAddress) ((p)->lpVtbl->DetachHostPCIDevice(p, aHostAddress))
8375 #    define IMachine_GetNetworkAdapter(p, aSlot, aAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aSlot, aAdapter))
8376 #    define IMachine_AddStorageController(p, aName, aConnectionType, aController) ((p)->lpVtbl->AddStorageController(p, aName, aConnectionType, aController))
8377 #    define IMachine_GetStorageControllerByName(p, aName, aStorageController) ((p)->lpVtbl->GetStorageControllerByName(p, aName, aStorageController))
8378 #    define IMachine_GetStorageControllerByInstance(p, aConnectionType, aInstance, aStorageController) ((p)->lpVtbl->GetStorageControllerByInstance(p, aConnectionType, aInstance, aStorageController))
8379 #    define IMachine_RemoveStorageController(p, aName) ((p)->lpVtbl->RemoveStorageController(p, aName))
8380 #    define IMachine_SetStorageControllerBootable(p, aName, aBootable) ((p)->lpVtbl->SetStorageControllerBootable(p, aName, aBootable))
8381 #    define IMachine_AddUSBController(p, aName, aType, aController) ((p)->lpVtbl->AddUSBController(p, aName, aType, aController))
8382 #    define IMachine_RemoveUSBController(p, aName) ((p)->lpVtbl->RemoveUSBController(p, aName))
8383 #    define IMachine_GetUSBControllerByName(p, aName, aController) ((p)->lpVtbl->GetUSBControllerByName(p, aName, aController))
8384 #    define IMachine_GetUSBControllerCountByType(p, aType, aControllers) ((p)->lpVtbl->GetUSBControllerCountByType(p, aType, aControllers))
8385 #    define IMachine_GetSerialPort(p, aSlot, aPort) ((p)->lpVtbl->GetSerialPort(p, aSlot, aPort))
8386 #    define IMachine_GetParallelPort(p, aSlot, aPort) ((p)->lpVtbl->GetParallelPort(p, aSlot, aPort))
8387 #    define IMachine_GetExtraDataKeys(p, aKeys) ((p)->lpVtbl->GetExtraDataKeys(p, aKeys))
8388 #    define IMachine_GetExtraData(p, aKey, aValue) ((p)->lpVtbl->GetExtraData(p, aKey, aValue))
8389 #    define IMachine_SetExtraData(p, aKey, aValue) ((p)->lpVtbl->SetExtraData(p, aKey, aValue))
8390 #    define IMachine_GetCPUProperty(p, aProperty, aValue) ((p)->lpVtbl->GetCPUProperty(p, aProperty, aValue))
8391 #    define IMachine_SetCPUProperty(p, aProperty, aValue) ((p)->lpVtbl->SetCPUProperty(p, aProperty, aValue))
8392 #    define IMachine_GetCPUIDLeafByOrdinal(p, aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetCPUIDLeafByOrdinal(p, aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
8393 #    define IMachine_GetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
8394 #    define IMachine_SetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->SetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
8395 #    define IMachine_RemoveCPUIDLeaf(p, aIdx, aIdxSub) ((p)->lpVtbl->RemoveCPUIDLeaf(p, aIdx, aIdxSub))
8396 #    define IMachine_RemoveAllCPUIDLeaves(p) ((p)->lpVtbl->RemoveAllCPUIDLeaves(p))
8397 #    define IMachine_GetHWVirtExProperty(p, aProperty, aValue) ((p)->lpVtbl->GetHWVirtExProperty(p, aProperty, aValue))
8398 #    define IMachine_SetHWVirtExProperty(p, aProperty, aValue) ((p)->lpVtbl->SetHWVirtExProperty(p, aProperty, aValue))
8399 #    define IMachine_SetSettingsFilePath(p, aSettingsFilePath, aProgress) ((p)->lpVtbl->SetSettingsFilePath(p, aSettingsFilePath, aProgress))
8400 #    define IMachine_SaveSettings(p) ((p)->lpVtbl->SaveSettings(p))
8401 #    define IMachine_DiscardSettings(p) ((p)->lpVtbl->DiscardSettings(p))
8402 #    define IMachine_Unregister(p, aCleanupMode, aMedia) ((p)->lpVtbl->Unregister(p, aCleanupMode, aMedia))
8403 #    define IMachine_DeleteConfig(p, aMedia, aProgress) ((p)->lpVtbl->DeleteConfig(p, aMedia, aProgress))
8404 #    define IMachine_ExportTo(p, aAppliance, aLocation, aDescription) ((p)->lpVtbl->ExportTo(p, aAppliance, aLocation, aDescription))
8405 #    define IMachine_FindSnapshot(p, aNameOrId, aSnapshot) ((p)->lpVtbl->FindSnapshot(p, aNameOrId, aSnapshot))
8406 #    define IMachine_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount))
8407 #    define IMachine_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
8408 #    define IMachine_CanShowConsoleWindow(p, aCanShow) ((p)->lpVtbl->CanShowConsoleWindow(p, aCanShow))
8409 #    define IMachine_ShowConsoleWindow(p, aWinId) ((p)->lpVtbl->ShowConsoleWindow(p, aWinId))
8410 #    define IMachine_GetGuestProperty(p, aName, aValue, aTimestamp, aFlags) ((p)->lpVtbl->GetGuestProperty(p, aName, aValue, aTimestamp, aFlags))
8411 #    define IMachine_GetGuestPropertyValue(p, aProperty, aValue) ((p)->lpVtbl->GetGuestPropertyValue(p, aProperty, aValue))
8412 #    define IMachine_GetGuestPropertyTimestamp(p, aProperty, aValue) ((p)->lpVtbl->GetGuestPropertyTimestamp(p, aProperty, aValue))
8413 #    define IMachine_SetGuestProperty(p, aProperty, aValue, aFlags) ((p)->lpVtbl->SetGuestProperty(p, aProperty, aValue, aFlags))
8414 #    define IMachine_SetGuestPropertyValue(p, aProperty, aValue) ((p)->lpVtbl->SetGuestPropertyValue(p, aProperty, aValue))
8415 #    define IMachine_DeleteGuestProperty(p, aName) ((p)->lpVtbl->DeleteGuestProperty(p, aName))
8416 #    define IMachine_EnumerateGuestProperties(p, aPatterns, aNames, aValues, aTimestamps, aFlags) ((p)->lpVtbl->EnumerateGuestProperties(p, aPatterns, aNames, aValues, aTimestamps, aFlags))
8417 #    define IMachine_QuerySavedGuestScreenInfo(p, aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled) ((p)->lpVtbl->QuerySavedGuestScreenInfo(p, aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled))
8418 #    define IMachine_ReadSavedThumbnailToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData) ((p)->lpVtbl->ReadSavedThumbnailToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData))
8419 #    define IMachine_QuerySavedScreenshotInfo(p, aScreenId, aWidth, aHeight, aBitmapFormats) ((p)->lpVtbl->QuerySavedScreenshotInfo(p, aScreenId, aWidth, aHeight, aBitmapFormats))
8420 #    define IMachine_ReadSavedScreenshotToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData) ((p)->lpVtbl->ReadSavedScreenshotToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData))
8421 #    define IMachine_HotPlugCPU(p, aCpu) ((p)->lpVtbl->HotPlugCPU(p, aCpu))
8422 #    define IMachine_HotUnplugCPU(p, aCpu) ((p)->lpVtbl->HotUnplugCPU(p, aCpu))
8423 #    define IMachine_GetCPUStatus(p, aCpu, aAttached) ((p)->lpVtbl->GetCPUStatus(p, aCpu, aAttached))
8424 #    define IMachine_GetEffectiveParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetEffectiveParavirtProvider(p, aParavirtProvider))
8425 #    define IMachine_QueryLogFilename(p, aIdx, aFilename) ((p)->lpVtbl->QueryLogFilename(p, aIdx, aFilename))
8426 #    define IMachine_ReadLog(p, aIdx, aOffset, aSize, aData) ((p)->lpVtbl->ReadLog(p, aIdx, aOffset, aSize, aData))
8427 #    define IMachine_CloneTo(p, aTarget, aMode, aOptions, aProgress) ((p)->lpVtbl->CloneTo(p, aTarget, aMode, aOptions, aProgress))
8428 #    define IMachine_SaveState(p, aProgress) ((p)->lpVtbl->SaveState(p, aProgress))
8429 #    define IMachine_AdoptSavedState(p, aSavedStateFile) ((p)->lpVtbl->AdoptSavedState(p, aSavedStateFile))
8430 #    define IMachine_DiscardSavedState(p, aFRemoveFile) ((p)->lpVtbl->DiscardSavedState(p, aFRemoveFile))
8431 #    define IMachine_TakeSnapshot(p, aName, aDescription, aPause, aId, aProgress) ((p)->lpVtbl->TakeSnapshot(p, aName, aDescription, aPause, aId, aProgress))
8432 #    define IMachine_DeleteSnapshot(p, aId, aProgress) ((p)->lpVtbl->DeleteSnapshot(p, aId, aProgress))
8433 #    define IMachine_DeleteSnapshotAndAllChildren(p, aId, aProgress) ((p)->lpVtbl->DeleteSnapshotAndAllChildren(p, aId, aProgress))
8434 #    define IMachine_DeleteSnapshotRange(p, aStartId, aEndId, aProgress) ((p)->lpVtbl->DeleteSnapshotRange(p, aStartId, aEndId, aProgress))
8435 #    define IMachine_RestoreSnapshot(p, aSnapshot, aProgress) ((p)->lpVtbl->RestoreSnapshot(p, aSnapshot, aProgress))
8436 #    define IMachine_ApplyDefaults(p, aFlags) ((p)->lpVtbl->ApplyDefaults(p, aFlags))
8437 #   endif /* VBOX_WITH_GLUE */
8438 
8439 interface IMachine
8440 {
8441 #   ifndef VBOX_WITH_GLUE
8442     struct IMachine_vtbl *vtbl;
8443 #   else /* VBOX_WITH_GLUE */
8444     CONST_VTBL struct IMachineVtbl *lpVtbl;
8445 #   endif /* VBOX_WITH_GLUE */
8446 };
8447 /* End of struct IMachine declaration */
8448 
8449 
8450 /* Start of struct IEmulatedUSB declaration */
8451 #   define IEMULATEDUSB_IID_STR "6e253ee8-477a-2497-6759-88b8292a5af0"
8452 #   define IEMULATEDUSB_IID { \
8453     0x6e253ee8, 0x477a, 0x2497, \
8454     { 0x67, 0x59, 0x88, 0xb8, 0x29, 0x2a, 0x5a, 0xf0 } \
8455 }
8456 /* COM compatibility */
8457 VBOX_EXTERN_CONST(nsIID, IID_IEmulatedUSB);
8458 #   ifndef VBOX_WITH_GLUE
8459 struct IEmulatedUSB_vtbl
8460 {
8461     struct nsISupports_vtbl nsisupports;
8462 
8463     nsresult (*GetWebcams)(IEmulatedUSB *pThis, PRUint32 *webcamsSize, PRUnichar * **webcams);
8464 
8465     nsresult (*GetInternalAndReservedAttribute1IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8466 
8467     nsresult (*GetInternalAndReservedAttribute2IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8468 
8469     nsresult (*GetInternalAndReservedAttribute3IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8470 
8471     nsresult (*GetInternalAndReservedAttribute4IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8472 
8473     nsresult (*WebcamAttach)(
8474         IEmulatedUSB *pThis,
8475         PRUnichar * path,
8476         PRUnichar * settings
8477     );
8478 
8479     nsresult (*WebcamDetach)(
8480         IEmulatedUSB *pThis,
8481         PRUnichar * path
8482     );
8483 
8484     nsresult (*InternalAndReservedMethod1IEmulatedUSB)(IEmulatedUSB *pThis);
8485 
8486     nsresult (*InternalAndReservedMethod2IEmulatedUSB)(IEmulatedUSB *pThis);
8487 
8488     nsresult (*InternalAndReservedMethod3IEmulatedUSB)(IEmulatedUSB *pThis);
8489 
8490     nsresult (*InternalAndReservedMethod4IEmulatedUSB)(IEmulatedUSB *pThis);
8491 
8492 };
8493 #   else /* VBOX_WITH_GLUE */
8494 struct IEmulatedUSBVtbl
8495 {
8496     nsresult (*QueryInterface)(IEmulatedUSB *pThis, const nsID *iid, void **resultp);
8497     nsrefcnt (*AddRef)(IEmulatedUSB *pThis);
8498     nsrefcnt (*Release)(IEmulatedUSB *pThis);
8499     nsresult (*GetWebcams)(IEmulatedUSB *pThis, PRUint32 *webcamsSize, PRUnichar * **webcams);
8500 
8501     nsresult (*GetInternalAndReservedAttribute1IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8502 
8503     nsresult (*GetInternalAndReservedAttribute2IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8504 
8505     nsresult (*GetInternalAndReservedAttribute3IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8506 
8507     nsresult (*GetInternalAndReservedAttribute4IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
8508 
8509     nsresult (*WebcamAttach)(
8510         IEmulatedUSB *pThis,
8511         PRUnichar * path,
8512         PRUnichar * settings
8513     );
8514 
8515     nsresult (*WebcamDetach)(
8516         IEmulatedUSB *pThis,
8517         PRUnichar * path
8518     );
8519 
8520     nsresult (*InternalAndReservedMethod1IEmulatedUSB)(IEmulatedUSB *pThis);
8521 
8522     nsresult (*InternalAndReservedMethod2IEmulatedUSB)(IEmulatedUSB *pThis);
8523 
8524     nsresult (*InternalAndReservedMethod3IEmulatedUSB)(IEmulatedUSB *pThis);
8525 
8526     nsresult (*InternalAndReservedMethod4IEmulatedUSB)(IEmulatedUSB *pThis);
8527 
8528 };
8529 #    define IEmulatedUSB_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8530 #    define IEmulatedUSB_AddRef(p) ((p)->lpVtbl->AddRef(p))
8531 #    define IEmulatedUSB_Release(p) ((p)->lpVtbl->Release(p))
8532 #    define IEmulatedUSB_get_Webcams(p, aWebcams) ((p)->lpVtbl->GetWebcams(p, aWebcams))
8533 #    define IEmulatedUSB_GetWebcams(p, aWebcams) ((p)->lpVtbl->GetWebcams(p, aWebcams))
8534 #    define IEmulatedUSB_WebcamAttach(p, aPath, aSettings) ((p)->lpVtbl->WebcamAttach(p, aPath, aSettings))
8535 #    define IEmulatedUSB_WebcamDetach(p, aPath) ((p)->lpVtbl->WebcamDetach(p, aPath))
8536 #   endif /* VBOX_WITH_GLUE */
8537 
8538 interface IEmulatedUSB
8539 {
8540 #   ifndef VBOX_WITH_GLUE
8541     struct IEmulatedUSB_vtbl *vtbl;
8542 #   else /* VBOX_WITH_GLUE */
8543     CONST_VTBL struct IEmulatedUSBVtbl *lpVtbl;
8544 #   endif /* VBOX_WITH_GLUE */
8545 };
8546 /* End of struct IEmulatedUSB declaration */
8547 
8548 
8549 /* Start of struct IVRDEServerInfo declaration */
8550 #   define IVRDESERVERINFO_IID_STR "c39ef4d6-7532-45e8-96da-eb5986ae76e4"
8551 #   define IVRDESERVERINFO_IID { \
8552     0xc39ef4d6, 0x7532, 0x45e8, \
8553     { 0x96, 0xda, 0xeb, 0x59, 0x86, 0xae, 0x76, 0xe4 } \
8554 }
8555 /* COM compatibility */
8556 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerInfo);
8557 #   ifndef VBOX_WITH_GLUE
8558 struct IVRDEServerInfo_vtbl
8559 {
8560     struct nsISupports_vtbl nsisupports;
8561 
8562     nsresult (*GetActive)(IVRDEServerInfo *pThis, PRBool *active);
8563 
8564     nsresult (*GetPort)(IVRDEServerInfo *pThis, PRInt32 *port);
8565 
8566     nsresult (*GetNumberOfClients)(IVRDEServerInfo *pThis, PRUint32 *numberOfClients);
8567 
8568     nsresult (*GetBeginTime)(IVRDEServerInfo *pThis, PRInt64 *beginTime);
8569 
8570     nsresult (*GetEndTime)(IVRDEServerInfo *pThis, PRInt64 *endTime);
8571 
8572     nsresult (*GetBytesSent)(IVRDEServerInfo *pThis, PRInt64 *bytesSent);
8573 
8574     nsresult (*GetBytesSentTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesSentTotal);
8575 
8576     nsresult (*GetBytesReceived)(IVRDEServerInfo *pThis, PRInt64 *bytesReceived);
8577 
8578     nsresult (*GetBytesReceivedTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesReceivedTotal);
8579 
8580     nsresult (*GetUser)(IVRDEServerInfo *pThis, PRUnichar * *user);
8581 
8582     nsresult (*GetDomain)(IVRDEServerInfo *pThis, PRUnichar * *domain);
8583 
8584     nsresult (*GetClientName)(IVRDEServerInfo *pThis, PRUnichar * *clientName);
8585 
8586     nsresult (*GetClientIP)(IVRDEServerInfo *pThis, PRUnichar * *clientIP);
8587 
8588     nsresult (*GetClientVersion)(IVRDEServerInfo *pThis, PRUint32 *clientVersion);
8589 
8590     nsresult (*GetEncryptionStyle)(IVRDEServerInfo *pThis, PRUint32 *encryptionStyle);
8591 
8592     nsresult (*GetInternalAndReservedAttribute1IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8593 
8594     nsresult (*GetInternalAndReservedAttribute2IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8595 
8596     nsresult (*GetInternalAndReservedAttribute3IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8597 
8598     nsresult (*GetInternalAndReservedAttribute4IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8599 
8600     nsresult (*GetInternalAndReservedAttribute5IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8601 
8602     nsresult (*GetInternalAndReservedAttribute6IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8603 
8604     nsresult (*GetInternalAndReservedAttribute7IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8605 
8606     nsresult (*GetInternalAndReservedAttribute8IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8607 
8608 };
8609 #   else /* VBOX_WITH_GLUE */
8610 struct IVRDEServerInfoVtbl
8611 {
8612     nsresult (*QueryInterface)(IVRDEServerInfo *pThis, const nsID *iid, void **resultp);
8613     nsrefcnt (*AddRef)(IVRDEServerInfo *pThis);
8614     nsrefcnt (*Release)(IVRDEServerInfo *pThis);
8615     nsresult (*GetActive)(IVRDEServerInfo *pThis, PRBool *active);
8616 
8617     nsresult (*GetPort)(IVRDEServerInfo *pThis, PRInt32 *port);
8618 
8619     nsresult (*GetNumberOfClients)(IVRDEServerInfo *pThis, PRUint32 *numberOfClients);
8620 
8621     nsresult (*GetBeginTime)(IVRDEServerInfo *pThis, PRInt64 *beginTime);
8622 
8623     nsresult (*GetEndTime)(IVRDEServerInfo *pThis, PRInt64 *endTime);
8624 
8625     nsresult (*GetBytesSent)(IVRDEServerInfo *pThis, PRInt64 *bytesSent);
8626 
8627     nsresult (*GetBytesSentTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesSentTotal);
8628 
8629     nsresult (*GetBytesReceived)(IVRDEServerInfo *pThis, PRInt64 *bytesReceived);
8630 
8631     nsresult (*GetBytesReceivedTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesReceivedTotal);
8632 
8633     nsresult (*GetUser)(IVRDEServerInfo *pThis, PRUnichar * *user);
8634 
8635     nsresult (*GetDomain)(IVRDEServerInfo *pThis, PRUnichar * *domain);
8636 
8637     nsresult (*GetClientName)(IVRDEServerInfo *pThis, PRUnichar * *clientName);
8638 
8639     nsresult (*GetClientIP)(IVRDEServerInfo *pThis, PRUnichar * *clientIP);
8640 
8641     nsresult (*GetClientVersion)(IVRDEServerInfo *pThis, PRUint32 *clientVersion);
8642 
8643     nsresult (*GetEncryptionStyle)(IVRDEServerInfo *pThis, PRUint32 *encryptionStyle);
8644 
8645     nsresult (*GetInternalAndReservedAttribute1IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8646 
8647     nsresult (*GetInternalAndReservedAttribute2IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8648 
8649     nsresult (*GetInternalAndReservedAttribute3IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8650 
8651     nsresult (*GetInternalAndReservedAttribute4IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8652 
8653     nsresult (*GetInternalAndReservedAttribute5IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8654 
8655     nsresult (*GetInternalAndReservedAttribute6IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8656 
8657     nsresult (*GetInternalAndReservedAttribute7IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8658 
8659     nsresult (*GetInternalAndReservedAttribute8IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
8660 
8661 };
8662 #    define IVRDEServerInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8663 #    define IVRDEServerInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
8664 #    define IVRDEServerInfo_Release(p) ((p)->lpVtbl->Release(p))
8665 #    define IVRDEServerInfo_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
8666 #    define IVRDEServerInfo_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
8667 #    define IVRDEServerInfo_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
8668 #    define IVRDEServerInfo_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
8669 #    define IVRDEServerInfo_get_NumberOfClients(p, aNumberOfClients) ((p)->lpVtbl->GetNumberOfClients(p, aNumberOfClients))
8670 #    define IVRDEServerInfo_GetNumberOfClients(p, aNumberOfClients) ((p)->lpVtbl->GetNumberOfClients(p, aNumberOfClients))
8671 #    define IVRDEServerInfo_get_BeginTime(p, aBeginTime) ((p)->lpVtbl->GetBeginTime(p, aBeginTime))
8672 #    define IVRDEServerInfo_GetBeginTime(p, aBeginTime) ((p)->lpVtbl->GetBeginTime(p, aBeginTime))
8673 #    define IVRDEServerInfo_get_EndTime(p, aEndTime) ((p)->lpVtbl->GetEndTime(p, aEndTime))
8674 #    define IVRDEServerInfo_GetEndTime(p, aEndTime) ((p)->lpVtbl->GetEndTime(p, aEndTime))
8675 #    define IVRDEServerInfo_get_BytesSent(p, aBytesSent) ((p)->lpVtbl->GetBytesSent(p, aBytesSent))
8676 #    define IVRDEServerInfo_GetBytesSent(p, aBytesSent) ((p)->lpVtbl->GetBytesSent(p, aBytesSent))
8677 #    define IVRDEServerInfo_get_BytesSentTotal(p, aBytesSentTotal) ((p)->lpVtbl->GetBytesSentTotal(p, aBytesSentTotal))
8678 #    define IVRDEServerInfo_GetBytesSentTotal(p, aBytesSentTotal) ((p)->lpVtbl->GetBytesSentTotal(p, aBytesSentTotal))
8679 #    define IVRDEServerInfo_get_BytesReceived(p, aBytesReceived) ((p)->lpVtbl->GetBytesReceived(p, aBytesReceived))
8680 #    define IVRDEServerInfo_GetBytesReceived(p, aBytesReceived) ((p)->lpVtbl->GetBytesReceived(p, aBytesReceived))
8681 #    define IVRDEServerInfo_get_BytesReceivedTotal(p, aBytesReceivedTotal) ((p)->lpVtbl->GetBytesReceivedTotal(p, aBytesReceivedTotal))
8682 #    define IVRDEServerInfo_GetBytesReceivedTotal(p, aBytesReceivedTotal) ((p)->lpVtbl->GetBytesReceivedTotal(p, aBytesReceivedTotal))
8683 #    define IVRDEServerInfo_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
8684 #    define IVRDEServerInfo_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
8685 #    define IVRDEServerInfo_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
8686 #    define IVRDEServerInfo_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
8687 #    define IVRDEServerInfo_get_ClientName(p, aClientName) ((p)->lpVtbl->GetClientName(p, aClientName))
8688 #    define IVRDEServerInfo_GetClientName(p, aClientName) ((p)->lpVtbl->GetClientName(p, aClientName))
8689 #    define IVRDEServerInfo_get_ClientIP(p, aClientIP) ((p)->lpVtbl->GetClientIP(p, aClientIP))
8690 #    define IVRDEServerInfo_GetClientIP(p, aClientIP) ((p)->lpVtbl->GetClientIP(p, aClientIP))
8691 #    define IVRDEServerInfo_get_ClientVersion(p, aClientVersion) ((p)->lpVtbl->GetClientVersion(p, aClientVersion))
8692 #    define IVRDEServerInfo_GetClientVersion(p, aClientVersion) ((p)->lpVtbl->GetClientVersion(p, aClientVersion))
8693 #    define IVRDEServerInfo_get_EncryptionStyle(p, aEncryptionStyle) ((p)->lpVtbl->GetEncryptionStyle(p, aEncryptionStyle))
8694 #    define IVRDEServerInfo_GetEncryptionStyle(p, aEncryptionStyle) ((p)->lpVtbl->GetEncryptionStyle(p, aEncryptionStyle))
8695 #   endif /* VBOX_WITH_GLUE */
8696 
8697 interface IVRDEServerInfo
8698 {
8699 #   ifndef VBOX_WITH_GLUE
8700     struct IVRDEServerInfo_vtbl *vtbl;
8701 #   else /* VBOX_WITH_GLUE */
8702     CONST_VTBL struct IVRDEServerInfoVtbl *lpVtbl;
8703 #   endif /* VBOX_WITH_GLUE */
8704 };
8705 /* End of struct IVRDEServerInfo declaration */
8706 
8707 
8708 /* Start of struct IConsole declaration */
8709 #   define ICONSOLE_IID_STR "872da645-4a9b-1727-bee2-5585105b9eed"
8710 #   define ICONSOLE_IID { \
8711     0x872da645, 0x4a9b, 0x1727, \
8712     { 0xbe, 0xe2, 0x55, 0x85, 0x10, 0x5b, 0x9e, 0xed } \
8713 }
8714 /* COM compatibility */
8715 VBOX_EXTERN_CONST(nsIID, IID_IConsole);
8716 #   ifndef VBOX_WITH_GLUE
8717 struct IConsole_vtbl
8718 {
8719     struct nsISupports_vtbl nsisupports;
8720 
8721     nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
8722 
8723     nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
8724 
8725     nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
8726 
8727     nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
8728 
8729     nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
8730 
8731     nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
8732 
8733     nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
8734 
8735     nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
8736 
8737     nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
8738 
8739     nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
8740 
8741     nsresult (*GetVRDEServerInfo)(IConsole *pThis, IVRDEServerInfo * *VRDEServerInfo);
8742 
8743     nsresult (*GetEventSource)(IConsole *pThis, IEventSource * *eventSource);
8744 
8745     nsresult (*GetAttachedPCIDevices)(IConsole *pThis, PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment * **attachedPCIDevices);
8746 
8747     nsresult (*GetUseHostClipboard)(IConsole *pThis, PRBool *useHostClipboard);
8748     nsresult (*SetUseHostClipboard)(IConsole *pThis, PRBool useHostClipboard);
8749 
8750     nsresult (*GetEmulatedUSB)(IConsole *pThis, IEmulatedUSB * *emulatedUSB);
8751 
8752     nsresult (*GetInternalAndReservedAttribute1IConsole)(IConsole *pThis, PRUint32 *reserved);
8753 
8754     nsresult (*GetInternalAndReservedAttribute2IConsole)(IConsole *pThis, PRUint32 *reserved);
8755 
8756     nsresult (*GetInternalAndReservedAttribute3IConsole)(IConsole *pThis, PRUint32 *reserved);
8757 
8758     nsresult (*GetInternalAndReservedAttribute4IConsole)(IConsole *pThis, PRUint32 *reserved);
8759 
8760     nsresult (*GetInternalAndReservedAttribute5IConsole)(IConsole *pThis, PRUint32 *reserved);
8761 
8762     nsresult (*GetInternalAndReservedAttribute6IConsole)(IConsole *pThis, PRUint32 *reserved);
8763 
8764     nsresult (*GetInternalAndReservedAttribute7IConsole)(IConsole *pThis, PRUint32 *reserved);
8765 
8766     nsresult (*GetInternalAndReservedAttribute8IConsole)(IConsole *pThis, PRUint32 *reserved);
8767 
8768     nsresult (*PowerUp)(
8769         IConsole *pThis,
8770         IProgress * * progress
8771     );
8772 
8773     nsresult (*PowerUpPaused)(
8774         IConsole *pThis,
8775         IProgress * * progress
8776     );
8777 
8778     nsresult (*PowerDown)(
8779         IConsole *pThis,
8780         IProgress * * progress
8781     );
8782 
8783     nsresult (*Reset)(IConsole *pThis );
8784 
8785     nsresult (*Pause)(IConsole *pThis );
8786 
8787     nsresult (*Resume)(IConsole *pThis );
8788 
8789     nsresult (*PowerButton)(IConsole *pThis );
8790 
8791     nsresult (*SleepButton)(IConsole *pThis );
8792 
8793     nsresult (*GetPowerButtonHandled)(
8794         IConsole *pThis,
8795         PRBool * handled
8796     );
8797 
8798     nsresult (*GetGuestEnteredACPIMode)(
8799         IConsole *pThis,
8800         PRBool * entered
8801     );
8802 
8803     nsresult (*GetDeviceActivity)(
8804         IConsole *pThis,
8805         PRUint32 typeSize,
8806         PRUint32* type,
8807         PRUint32 *activitySize,
8808         PRUint32** activity
8809     );
8810 
8811     nsresult (*AttachUSBDevice)(
8812         IConsole *pThis,
8813         PRUnichar * id,
8814         PRUnichar * captureFilename
8815     );
8816 
8817     nsresult (*DetachUSBDevice)(
8818         IConsole *pThis,
8819         PRUnichar * id,
8820         IUSBDevice * * device
8821     );
8822 
8823     nsresult (*FindUSBDeviceByAddress)(
8824         IConsole *pThis,
8825         PRUnichar * name,
8826         IUSBDevice * * device
8827     );
8828 
8829     nsresult (*FindUSBDeviceById)(
8830         IConsole *pThis,
8831         PRUnichar * id,
8832         IUSBDevice * * device
8833     );
8834 
8835     nsresult (*CreateSharedFolder)(
8836         IConsole *pThis,
8837         PRUnichar * name,
8838         PRUnichar * hostPath,
8839         PRBool writable,
8840         PRBool automount
8841     );
8842 
8843     nsresult (*RemoveSharedFolder)(
8844         IConsole *pThis,
8845         PRUnichar * name
8846     );
8847 
8848     nsresult (*Teleport)(
8849         IConsole *pThis,
8850         PRUnichar * hostname,
8851         PRUint32 tcpport,
8852         PRUnichar * password,
8853         PRUint32 maxDowntime,
8854         IProgress * * progress
8855     );
8856 
8857     nsresult (*AddDiskEncryptionPassword)(
8858         IConsole *pThis,
8859         PRUnichar * id,
8860         PRUnichar * password,
8861         PRBool clearOnSuspend
8862     );
8863 
8864     nsresult (*AddDiskEncryptionPasswords)(
8865         IConsole *pThis,
8866         PRUint32 idsSize,
8867         PRUnichar ** ids,
8868         PRUint32 passwordsSize,
8869         PRUnichar ** passwords,
8870         PRBool clearOnSuspend
8871     );
8872 
8873     nsresult (*RemoveDiskEncryptionPassword)(
8874         IConsole *pThis,
8875         PRUnichar * id
8876     );
8877 
8878     nsresult (*ClearAllDiskEncryptionPasswords)(IConsole *pThis );
8879 
8880     nsresult (*InternalAndReservedMethod1IConsole)(IConsole *pThis);
8881 
8882     nsresult (*InternalAndReservedMethod2IConsole)(IConsole *pThis);
8883 
8884     nsresult (*InternalAndReservedMethod3IConsole)(IConsole *pThis);
8885 
8886     nsresult (*InternalAndReservedMethod4IConsole)(IConsole *pThis);
8887 
8888     nsresult (*InternalAndReservedMethod5IConsole)(IConsole *pThis);
8889 
8890     nsresult (*InternalAndReservedMethod6IConsole)(IConsole *pThis);
8891 
8892     nsresult (*InternalAndReservedMethod7IConsole)(IConsole *pThis);
8893 
8894     nsresult (*InternalAndReservedMethod8IConsole)(IConsole *pThis);
8895 
8896 };
8897 #   else /* VBOX_WITH_GLUE */
8898 struct IConsoleVtbl
8899 {
8900     nsresult (*QueryInterface)(IConsole *pThis, const nsID *iid, void **resultp);
8901     nsrefcnt (*AddRef)(IConsole *pThis);
8902     nsrefcnt (*Release)(IConsole *pThis);
8903     nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
8904 
8905     nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
8906 
8907     nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
8908 
8909     nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
8910 
8911     nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
8912 
8913     nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
8914 
8915     nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
8916 
8917     nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
8918 
8919     nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
8920 
8921     nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
8922 
8923     nsresult (*GetVRDEServerInfo)(IConsole *pThis, IVRDEServerInfo * *VRDEServerInfo);
8924 
8925     nsresult (*GetEventSource)(IConsole *pThis, IEventSource * *eventSource);
8926 
8927     nsresult (*GetAttachedPCIDevices)(IConsole *pThis, PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment * **attachedPCIDevices);
8928 
8929     nsresult (*GetUseHostClipboard)(IConsole *pThis, PRBool *useHostClipboard);
8930     nsresult (*SetUseHostClipboard)(IConsole *pThis, PRBool useHostClipboard);
8931 
8932     nsresult (*GetEmulatedUSB)(IConsole *pThis, IEmulatedUSB * *emulatedUSB);
8933 
8934     nsresult (*GetInternalAndReservedAttribute1IConsole)(IConsole *pThis, PRUint32 *reserved);
8935 
8936     nsresult (*GetInternalAndReservedAttribute2IConsole)(IConsole *pThis, PRUint32 *reserved);
8937 
8938     nsresult (*GetInternalAndReservedAttribute3IConsole)(IConsole *pThis, PRUint32 *reserved);
8939 
8940     nsresult (*GetInternalAndReservedAttribute4IConsole)(IConsole *pThis, PRUint32 *reserved);
8941 
8942     nsresult (*GetInternalAndReservedAttribute5IConsole)(IConsole *pThis, PRUint32 *reserved);
8943 
8944     nsresult (*GetInternalAndReservedAttribute6IConsole)(IConsole *pThis, PRUint32 *reserved);
8945 
8946     nsresult (*GetInternalAndReservedAttribute7IConsole)(IConsole *pThis, PRUint32 *reserved);
8947 
8948     nsresult (*GetInternalAndReservedAttribute8IConsole)(IConsole *pThis, PRUint32 *reserved);
8949 
8950     nsresult (*PowerUp)(
8951         IConsole *pThis,
8952         IProgress * * progress
8953     );
8954 
8955     nsresult (*PowerUpPaused)(
8956         IConsole *pThis,
8957         IProgress * * progress
8958     );
8959 
8960     nsresult (*PowerDown)(
8961         IConsole *pThis,
8962         IProgress * * progress
8963     );
8964 
8965     nsresult (*Reset)(IConsole *pThis );
8966 
8967     nsresult (*Pause)(IConsole *pThis );
8968 
8969     nsresult (*Resume)(IConsole *pThis );
8970 
8971     nsresult (*PowerButton)(IConsole *pThis );
8972 
8973     nsresult (*SleepButton)(IConsole *pThis );
8974 
8975     nsresult (*GetPowerButtonHandled)(
8976         IConsole *pThis,
8977         PRBool * handled
8978     );
8979 
8980     nsresult (*GetGuestEnteredACPIMode)(
8981         IConsole *pThis,
8982         PRBool * entered
8983     );
8984 
8985     nsresult (*GetDeviceActivity)(
8986         IConsole *pThis,
8987         PRUint32 typeSize,
8988         PRUint32* type,
8989         PRUint32 *activitySize,
8990         PRUint32** activity
8991     );
8992 
8993     nsresult (*AttachUSBDevice)(
8994         IConsole *pThis,
8995         PRUnichar * id,
8996         PRUnichar * captureFilename
8997     );
8998 
8999     nsresult (*DetachUSBDevice)(
9000         IConsole *pThis,
9001         PRUnichar * id,
9002         IUSBDevice * * device
9003     );
9004 
9005     nsresult (*FindUSBDeviceByAddress)(
9006         IConsole *pThis,
9007         PRUnichar * name,
9008         IUSBDevice * * device
9009     );
9010 
9011     nsresult (*FindUSBDeviceById)(
9012         IConsole *pThis,
9013         PRUnichar * id,
9014         IUSBDevice * * device
9015     );
9016 
9017     nsresult (*CreateSharedFolder)(
9018         IConsole *pThis,
9019         PRUnichar * name,
9020         PRUnichar * hostPath,
9021         PRBool writable,
9022         PRBool automount
9023     );
9024 
9025     nsresult (*RemoveSharedFolder)(
9026         IConsole *pThis,
9027         PRUnichar * name
9028     );
9029 
9030     nsresult (*Teleport)(
9031         IConsole *pThis,
9032         PRUnichar * hostname,
9033         PRUint32 tcpport,
9034         PRUnichar * password,
9035         PRUint32 maxDowntime,
9036         IProgress * * progress
9037     );
9038 
9039     nsresult (*AddDiskEncryptionPassword)(
9040         IConsole *pThis,
9041         PRUnichar * id,
9042         PRUnichar * password,
9043         PRBool clearOnSuspend
9044     );
9045 
9046     nsresult (*AddDiskEncryptionPasswords)(
9047         IConsole *pThis,
9048         PRUint32 idsSize,
9049         PRUnichar ** ids,
9050         PRUint32 passwordsSize,
9051         PRUnichar ** passwords,
9052         PRBool clearOnSuspend
9053     );
9054 
9055     nsresult (*RemoveDiskEncryptionPassword)(
9056         IConsole *pThis,
9057         PRUnichar * id
9058     );
9059 
9060     nsresult (*ClearAllDiskEncryptionPasswords)(IConsole *pThis );
9061 
9062     nsresult (*InternalAndReservedMethod1IConsole)(IConsole *pThis);
9063 
9064     nsresult (*InternalAndReservedMethod2IConsole)(IConsole *pThis);
9065 
9066     nsresult (*InternalAndReservedMethod3IConsole)(IConsole *pThis);
9067 
9068     nsresult (*InternalAndReservedMethod4IConsole)(IConsole *pThis);
9069 
9070     nsresult (*InternalAndReservedMethod5IConsole)(IConsole *pThis);
9071 
9072     nsresult (*InternalAndReservedMethod6IConsole)(IConsole *pThis);
9073 
9074     nsresult (*InternalAndReservedMethod7IConsole)(IConsole *pThis);
9075 
9076     nsresult (*InternalAndReservedMethod8IConsole)(IConsole *pThis);
9077 
9078 };
9079 #    define IConsole_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9080 #    define IConsole_AddRef(p) ((p)->lpVtbl->AddRef(p))
9081 #    define IConsole_Release(p) ((p)->lpVtbl->Release(p))
9082 #    define IConsole_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
9083 #    define IConsole_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
9084 #    define IConsole_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
9085 #    define IConsole_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
9086 #    define IConsole_get_Guest(p, aGuest) ((p)->lpVtbl->GetGuest(p, aGuest))
9087 #    define IConsole_GetGuest(p, aGuest) ((p)->lpVtbl->GetGuest(p, aGuest))
9088 #    define IConsole_get_Keyboard(p, aKeyboard) ((p)->lpVtbl->GetKeyboard(p, aKeyboard))
9089 #    define IConsole_GetKeyboard(p, aKeyboard) ((p)->lpVtbl->GetKeyboard(p, aKeyboard))
9090 #    define IConsole_get_Mouse(p, aMouse) ((p)->lpVtbl->GetMouse(p, aMouse))
9091 #    define IConsole_GetMouse(p, aMouse) ((p)->lpVtbl->GetMouse(p, aMouse))
9092 #    define IConsole_get_Display(p, aDisplay) ((p)->lpVtbl->GetDisplay(p, aDisplay))
9093 #    define IConsole_GetDisplay(p, aDisplay) ((p)->lpVtbl->GetDisplay(p, aDisplay))
9094 #    define IConsole_get_Debugger(p, aDebugger) ((p)->lpVtbl->GetDebugger(p, aDebugger))
9095 #    define IConsole_GetDebugger(p, aDebugger) ((p)->lpVtbl->GetDebugger(p, aDebugger))
9096 #    define IConsole_get_USBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
9097 #    define IConsole_GetUSBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
9098 #    define IConsole_get_RemoteUSBDevices(p, aRemoteUSBDevices) ((p)->lpVtbl->GetRemoteUSBDevices(p, aRemoteUSBDevices))
9099 #    define IConsole_GetRemoteUSBDevices(p, aRemoteUSBDevices) ((p)->lpVtbl->GetRemoteUSBDevices(p, aRemoteUSBDevices))
9100 #    define IConsole_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
9101 #    define IConsole_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
9102 #    define IConsole_get_VRDEServerInfo(p, aVRDEServerInfo) ((p)->lpVtbl->GetVRDEServerInfo(p, aVRDEServerInfo))
9103 #    define IConsole_GetVRDEServerInfo(p, aVRDEServerInfo) ((p)->lpVtbl->GetVRDEServerInfo(p, aVRDEServerInfo))
9104 #    define IConsole_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
9105 #    define IConsole_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
9106 #    define IConsole_get_AttachedPCIDevices(p, aAttachedPCIDevices) ((p)->lpVtbl->GetAttachedPCIDevices(p, aAttachedPCIDevices))
9107 #    define IConsole_GetAttachedPCIDevices(p, aAttachedPCIDevices) ((p)->lpVtbl->GetAttachedPCIDevices(p, aAttachedPCIDevices))
9108 #    define IConsole_get_UseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->GetUseHostClipboard(p, aUseHostClipboard))
9109 #    define IConsole_GetUseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->GetUseHostClipboard(p, aUseHostClipboard))
9110 #    define IConsole_put_UseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->SetUseHostClipboard(p, aUseHostClipboard))
9111 #    define IConsole_SetUseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->SetUseHostClipboard(p, aUseHostClipboard))
9112 #    define IConsole_get_EmulatedUSB(p, aEmulatedUSB) ((p)->lpVtbl->GetEmulatedUSB(p, aEmulatedUSB))
9113 #    define IConsole_GetEmulatedUSB(p, aEmulatedUSB) ((p)->lpVtbl->GetEmulatedUSB(p, aEmulatedUSB))
9114 #    define IConsole_PowerUp(p, aProgress) ((p)->lpVtbl->PowerUp(p, aProgress))
9115 #    define IConsole_PowerUpPaused(p, aProgress) ((p)->lpVtbl->PowerUpPaused(p, aProgress))
9116 #    define IConsole_PowerDown(p, aProgress) ((p)->lpVtbl->PowerDown(p, aProgress))
9117 #    define IConsole_Reset(p) ((p)->lpVtbl->Reset(p))
9118 #    define IConsole_Pause(p) ((p)->lpVtbl->Pause(p))
9119 #    define IConsole_Resume(p) ((p)->lpVtbl->Resume(p))
9120 #    define IConsole_PowerButton(p) ((p)->lpVtbl->PowerButton(p))
9121 #    define IConsole_SleepButton(p) ((p)->lpVtbl->SleepButton(p))
9122 #    define IConsole_GetPowerButtonHandled(p, aHandled) ((p)->lpVtbl->GetPowerButtonHandled(p, aHandled))
9123 #    define IConsole_GetGuestEnteredACPIMode(p, aEntered) ((p)->lpVtbl->GetGuestEnteredACPIMode(p, aEntered))
9124 #    define IConsole_GetDeviceActivity(p, aType, aActivity) ((p)->lpVtbl->GetDeviceActivity(p, aType, aActivity))
9125 #    define IConsole_AttachUSBDevice(p, aId, aCaptureFilename) ((p)->lpVtbl->AttachUSBDevice(p, aId, aCaptureFilename))
9126 #    define IConsole_DetachUSBDevice(p, aId, aDevice) ((p)->lpVtbl->DetachUSBDevice(p, aId, aDevice))
9127 #    define IConsole_FindUSBDeviceByAddress(p, aName, aDevice) ((p)->lpVtbl->FindUSBDeviceByAddress(p, aName, aDevice))
9128 #    define IConsole_FindUSBDeviceById(p, aId, aDevice) ((p)->lpVtbl->FindUSBDeviceById(p, aId, aDevice))
9129 #    define IConsole_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount))
9130 #    define IConsole_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
9131 #    define IConsole_Teleport(p, aHostname, aTcpport, aPassword, aMaxDowntime, aProgress) ((p)->lpVtbl->Teleport(p, aHostname, aTcpport, aPassword, aMaxDowntime, aProgress))
9132 #    define IConsole_AddDiskEncryptionPassword(p, aId, aPassword, aClearOnSuspend) ((p)->lpVtbl->AddDiskEncryptionPassword(p, aId, aPassword, aClearOnSuspend))
9133 #    define IConsole_AddDiskEncryptionPasswords(p, aIds, aPasswords, aClearOnSuspend) ((p)->lpVtbl->AddDiskEncryptionPasswords(p, aIds, aPasswords, aClearOnSuspend))
9134 #    define IConsole_RemoveDiskEncryptionPassword(p, aId) ((p)->lpVtbl->RemoveDiskEncryptionPassword(p, aId))
9135 #    define IConsole_ClearAllDiskEncryptionPasswords(p) ((p)->lpVtbl->ClearAllDiskEncryptionPasswords(p))
9136 #   endif /* VBOX_WITH_GLUE */
9137 
9138 interface IConsole
9139 {
9140 #   ifndef VBOX_WITH_GLUE
9141     struct IConsole_vtbl *vtbl;
9142 #   else /* VBOX_WITH_GLUE */
9143     CONST_VTBL struct IConsoleVtbl *lpVtbl;
9144 #   endif /* VBOX_WITH_GLUE */
9145 };
9146 /* End of struct IConsole declaration */
9147 
9148 
9149 /* Start of struct IHostNetworkInterface declaration */
9150 #   define IHOSTNETWORKINTERFACE_IID_STR "455f8c45-44a0-a470-ba20-27890b96dba9"
9151 #   define IHOSTNETWORKINTERFACE_IID { \
9152     0x455f8c45, 0x44a0, 0xa470, \
9153     { 0xba, 0x20, 0x27, 0x89, 0x0b, 0x96, 0xdb, 0xa9 } \
9154 }
9155 /* COM compatibility */
9156 VBOX_EXTERN_CONST(nsIID, IID_IHostNetworkInterface);
9157 #   ifndef VBOX_WITH_GLUE
9158 struct IHostNetworkInterface_vtbl
9159 {
9160     struct nsISupports_vtbl nsisupports;
9161 
9162     nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
9163 
9164     nsresult (*GetShortName)(IHostNetworkInterface *pThis, PRUnichar * *shortName);
9165 
9166     nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
9167 
9168     nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
9169 
9170     nsresult (*GetDHCPEnabled)(IHostNetworkInterface *pThis, PRBool *DHCPEnabled);
9171 
9172     nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
9173 
9174     nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
9175 
9176     nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
9177 
9178     nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
9179 
9180     nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
9181 
9182     nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
9183 
9184     nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
9185 
9186     nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
9187 
9188     nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
9189 
9190     nsresult (*GetWireless)(IHostNetworkInterface *pThis, PRBool *wireless);
9191 
9192     nsresult (*GetInternalAndReservedAttribute1IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9193 
9194     nsresult (*GetInternalAndReservedAttribute2IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9195 
9196     nsresult (*GetInternalAndReservedAttribute3IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9197 
9198     nsresult (*GetInternalAndReservedAttribute4IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9199 
9200     nsresult (*EnableStaticIPConfig)(
9201         IHostNetworkInterface *pThis,
9202         PRUnichar * IPAddress,
9203         PRUnichar * networkMask
9204     );
9205 
9206     nsresult (*EnableStaticIPConfigV6)(
9207         IHostNetworkInterface *pThis,
9208         PRUnichar * IPV6Address,
9209         PRUint32 IPV6NetworkMaskPrefixLength
9210     );
9211 
9212     nsresult (*EnableDynamicIPConfig)(IHostNetworkInterface *pThis );
9213 
9214     nsresult (*DHCPRediscover)(IHostNetworkInterface *pThis );
9215 
9216     nsresult (*InternalAndReservedMethod1IHostNetworkInterface)(IHostNetworkInterface *pThis);
9217 
9218     nsresult (*InternalAndReservedMethod2IHostNetworkInterface)(IHostNetworkInterface *pThis);
9219 
9220 };
9221 #   else /* VBOX_WITH_GLUE */
9222 struct IHostNetworkInterfaceVtbl
9223 {
9224     nsresult (*QueryInterface)(IHostNetworkInterface *pThis, const nsID *iid, void **resultp);
9225     nsrefcnt (*AddRef)(IHostNetworkInterface *pThis);
9226     nsrefcnt (*Release)(IHostNetworkInterface *pThis);
9227     nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
9228 
9229     nsresult (*GetShortName)(IHostNetworkInterface *pThis, PRUnichar * *shortName);
9230 
9231     nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
9232 
9233     nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
9234 
9235     nsresult (*GetDHCPEnabled)(IHostNetworkInterface *pThis, PRBool *DHCPEnabled);
9236 
9237     nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
9238 
9239     nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
9240 
9241     nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
9242 
9243     nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
9244 
9245     nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
9246 
9247     nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
9248 
9249     nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
9250 
9251     nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
9252 
9253     nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
9254 
9255     nsresult (*GetWireless)(IHostNetworkInterface *pThis, PRBool *wireless);
9256 
9257     nsresult (*GetInternalAndReservedAttribute1IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9258 
9259     nsresult (*GetInternalAndReservedAttribute2IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9260 
9261     nsresult (*GetInternalAndReservedAttribute3IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9262 
9263     nsresult (*GetInternalAndReservedAttribute4IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
9264 
9265     nsresult (*EnableStaticIPConfig)(
9266         IHostNetworkInterface *pThis,
9267         PRUnichar * IPAddress,
9268         PRUnichar * networkMask
9269     );
9270 
9271     nsresult (*EnableStaticIPConfigV6)(
9272         IHostNetworkInterface *pThis,
9273         PRUnichar * IPV6Address,
9274         PRUint32 IPV6NetworkMaskPrefixLength
9275     );
9276 
9277     nsresult (*EnableDynamicIPConfig)(IHostNetworkInterface *pThis );
9278 
9279     nsresult (*DHCPRediscover)(IHostNetworkInterface *pThis );
9280 
9281     nsresult (*InternalAndReservedMethod1IHostNetworkInterface)(IHostNetworkInterface *pThis);
9282 
9283     nsresult (*InternalAndReservedMethod2IHostNetworkInterface)(IHostNetworkInterface *pThis);
9284 
9285 };
9286 #    define IHostNetworkInterface_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9287 #    define IHostNetworkInterface_AddRef(p) ((p)->lpVtbl->AddRef(p))
9288 #    define IHostNetworkInterface_Release(p) ((p)->lpVtbl->Release(p))
9289 #    define IHostNetworkInterface_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
9290 #    define IHostNetworkInterface_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
9291 #    define IHostNetworkInterface_get_ShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
9292 #    define IHostNetworkInterface_GetShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
9293 #    define IHostNetworkInterface_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
9294 #    define IHostNetworkInterface_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
9295 #    define IHostNetworkInterface_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
9296 #    define IHostNetworkInterface_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
9297 #    define IHostNetworkInterface_get_DHCPEnabled(p, aDHCPEnabled) ((p)->lpVtbl->GetDHCPEnabled(p, aDHCPEnabled))
9298 #    define IHostNetworkInterface_GetDHCPEnabled(p, aDHCPEnabled) ((p)->lpVtbl->GetDHCPEnabled(p, aDHCPEnabled))
9299 #    define IHostNetworkInterface_get_IPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
9300 #    define IHostNetworkInterface_GetIPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
9301 #    define IHostNetworkInterface_get_NetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
9302 #    define IHostNetworkInterface_GetNetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
9303 #    define IHostNetworkInterface_get_IPV6Supported(p, aIPV6Supported) ((p)->lpVtbl->GetIPV6Supported(p, aIPV6Supported))
9304 #    define IHostNetworkInterface_GetIPV6Supported(p, aIPV6Supported) ((p)->lpVtbl->GetIPV6Supported(p, aIPV6Supported))
9305 #    define IHostNetworkInterface_get_IPV6Address(p, aIPV6Address) ((p)->lpVtbl->GetIPV6Address(p, aIPV6Address))
9306 #    define IHostNetworkInterface_GetIPV6Address(p, aIPV6Address) ((p)->lpVtbl->GetIPV6Address(p, aIPV6Address))
9307 #    define IHostNetworkInterface_get_IPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength))
9308 #    define IHostNetworkInterface_GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength))
9309 #    define IHostNetworkInterface_get_HardwareAddress(p, aHardwareAddress) ((p)->lpVtbl->GetHardwareAddress(p, aHardwareAddress))
9310 #    define IHostNetworkInterface_GetHardwareAddress(p, aHardwareAddress) ((p)->lpVtbl->GetHardwareAddress(p, aHardwareAddress))
9311 #    define IHostNetworkInterface_get_MediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
9312 #    define IHostNetworkInterface_GetMediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
9313 #    define IHostNetworkInterface_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
9314 #    define IHostNetworkInterface_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
9315 #    define IHostNetworkInterface_get_InterfaceType(p, aInterfaceType) ((p)->lpVtbl->GetInterfaceType(p, aInterfaceType))
9316 #    define IHostNetworkInterface_GetInterfaceType(p, aInterfaceType) ((p)->lpVtbl->GetInterfaceType(p, aInterfaceType))
9317 #    define IHostNetworkInterface_get_Wireless(p, aWireless) ((p)->lpVtbl->GetWireless(p, aWireless))
9318 #    define IHostNetworkInterface_GetWireless(p, aWireless) ((p)->lpVtbl->GetWireless(p, aWireless))
9319 #    define IHostNetworkInterface_EnableStaticIPConfig(p, aIPAddress, aNetworkMask) ((p)->lpVtbl->EnableStaticIPConfig(p, aIPAddress, aNetworkMask))
9320 #    define IHostNetworkInterface_EnableStaticIPConfigV6(p, aIPV6Address, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->EnableStaticIPConfigV6(p, aIPV6Address, aIPV6NetworkMaskPrefixLength))
9321 #    define IHostNetworkInterface_EnableDynamicIPConfig(p) ((p)->lpVtbl->EnableDynamicIPConfig(p))
9322 #    define IHostNetworkInterface_DHCPRediscover(p) ((p)->lpVtbl->DHCPRediscover(p))
9323 #   endif /* VBOX_WITH_GLUE */
9324 
9325 interface IHostNetworkInterface
9326 {
9327 #   ifndef VBOX_WITH_GLUE
9328     struct IHostNetworkInterface_vtbl *vtbl;
9329 #   else /* VBOX_WITH_GLUE */
9330     CONST_VTBL struct IHostNetworkInterfaceVtbl *lpVtbl;
9331 #   endif /* VBOX_WITH_GLUE */
9332 };
9333 /* End of struct IHostNetworkInterface declaration */
9334 
9335 
9336 /* Start of struct IHostVideoInputDevice declaration */
9337 #   define IHOSTVIDEOINPUTDEVICE_IID_STR "e8c25d4d-ac97-4c16-b3e2-81bd8a57cc27"
9338 #   define IHOSTVIDEOINPUTDEVICE_IID { \
9339     0xe8c25d4d, 0xac97, 0x4c16, \
9340     { 0xb3, 0xe2, 0x81, 0xbd, 0x8a, 0x57, 0xcc, 0x27 } \
9341 }
9342 /* COM compatibility */
9343 VBOX_EXTERN_CONST(nsIID, IID_IHostVideoInputDevice);
9344 #   ifndef VBOX_WITH_GLUE
9345 struct IHostVideoInputDevice_vtbl
9346 {
9347     struct nsISupports_vtbl nsisupports;
9348 
9349     nsresult (*GetName)(IHostVideoInputDevice *pThis, PRUnichar * *name);
9350 
9351     nsresult (*GetPath)(IHostVideoInputDevice *pThis, PRUnichar * *path);
9352 
9353     nsresult (*GetAlias)(IHostVideoInputDevice *pThis, PRUnichar * *alias);
9354 
9355     nsresult (*GetInternalAndReservedAttribute1IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9356 
9357     nsresult (*GetInternalAndReservedAttribute2IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9358 
9359     nsresult (*GetInternalAndReservedAttribute3IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9360 
9361     nsresult (*GetInternalAndReservedAttribute4IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9362 
9363 };
9364 #   else /* VBOX_WITH_GLUE */
9365 struct IHostVideoInputDeviceVtbl
9366 {
9367     nsresult (*QueryInterface)(IHostVideoInputDevice *pThis, const nsID *iid, void **resultp);
9368     nsrefcnt (*AddRef)(IHostVideoInputDevice *pThis);
9369     nsrefcnt (*Release)(IHostVideoInputDevice *pThis);
9370     nsresult (*GetName)(IHostVideoInputDevice *pThis, PRUnichar * *name);
9371 
9372     nsresult (*GetPath)(IHostVideoInputDevice *pThis, PRUnichar * *path);
9373 
9374     nsresult (*GetAlias)(IHostVideoInputDevice *pThis, PRUnichar * *alias);
9375 
9376     nsresult (*GetInternalAndReservedAttribute1IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9377 
9378     nsresult (*GetInternalAndReservedAttribute2IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9379 
9380     nsresult (*GetInternalAndReservedAttribute3IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9381 
9382     nsresult (*GetInternalAndReservedAttribute4IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
9383 
9384 };
9385 #    define IHostVideoInputDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9386 #    define IHostVideoInputDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
9387 #    define IHostVideoInputDevice_Release(p) ((p)->lpVtbl->Release(p))
9388 #    define IHostVideoInputDevice_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
9389 #    define IHostVideoInputDevice_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
9390 #    define IHostVideoInputDevice_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
9391 #    define IHostVideoInputDevice_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
9392 #    define IHostVideoInputDevice_get_Alias(p, aAlias) ((p)->lpVtbl->GetAlias(p, aAlias))
9393 #    define IHostVideoInputDevice_GetAlias(p, aAlias) ((p)->lpVtbl->GetAlias(p, aAlias))
9394 #   endif /* VBOX_WITH_GLUE */
9395 
9396 interface IHostVideoInputDevice
9397 {
9398 #   ifndef VBOX_WITH_GLUE
9399     struct IHostVideoInputDevice_vtbl *vtbl;
9400 #   else /* VBOX_WITH_GLUE */
9401     CONST_VTBL struct IHostVideoInputDeviceVtbl *lpVtbl;
9402 #   endif /* VBOX_WITH_GLUE */
9403 };
9404 /* End of struct IHostVideoInputDevice declaration */
9405 
9406 
9407 /* Start of struct IHost declaration */
9408 #   define IHOST_IID_STR "afca788c-4477-787d-60b2-3fa70e56fbbc"
9409 #   define IHOST_IID { \
9410     0xafca788c, 0x4477, 0x787d, \
9411     { 0x60, 0xb2, 0x3f, 0xa7, 0x0e, 0x56, 0xfb, 0xbc } \
9412 }
9413 /* COM compatibility */
9414 VBOX_EXTERN_CONST(nsIID, IID_IHost);
9415 #   ifndef VBOX_WITH_GLUE
9416 struct IHost_vtbl
9417 {
9418     struct nsISupports_vtbl nsisupports;
9419 
9420     nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
9421 
9422     nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
9423 
9424     nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
9425 
9426     nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
9427 
9428     nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
9429 
9430     nsresult (*GetNameServers)(IHost *pThis, PRUint32 *nameServersSize, PRUnichar * **nameServers);
9431 
9432     nsresult (*GetDomainName)(IHost *pThis, PRUnichar * *domainName);
9433 
9434     nsresult (*GetSearchStrings)(IHost *pThis, PRUint32 *searchStringsSize, PRUnichar * **searchStrings);
9435 
9436     nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
9437 
9438     nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
9439 
9440     nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
9441 
9442     nsresult (*GetProcessorOnlineCoreCount)(IHost *pThis, PRUint32 *processorOnlineCoreCount);
9443 
9444     nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
9445 
9446     nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
9447 
9448     nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
9449 
9450     nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
9451 
9452     nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
9453 
9454     nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *acceleration3DAvailable);
9455 
9456     nsresult (*GetVideoInputDevices)(IHost *pThis, PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices);
9457 
9458     nsresult (*GetInternalAndReservedAttribute1IHost)(IHost *pThis, PRUint32 *reserved);
9459 
9460     nsresult (*GetInternalAndReservedAttribute2IHost)(IHost *pThis, PRUint32 *reserved);
9461 
9462     nsresult (*GetInternalAndReservedAttribute3IHost)(IHost *pThis, PRUint32 *reserved);
9463 
9464     nsresult (*GetInternalAndReservedAttribute4IHost)(IHost *pThis, PRUint32 *reserved);
9465 
9466     nsresult (*GetInternalAndReservedAttribute5IHost)(IHost *pThis, PRUint32 *reserved);
9467 
9468     nsresult (*GetInternalAndReservedAttribute6IHost)(IHost *pThis, PRUint32 *reserved);
9469 
9470     nsresult (*GetInternalAndReservedAttribute7IHost)(IHost *pThis, PRUint32 *reserved);
9471 
9472     nsresult (*GetInternalAndReservedAttribute8IHost)(IHost *pThis, PRUint32 *reserved);
9473 
9474     nsresult (*GetInternalAndReservedAttribute9IHost)(IHost *pThis, PRUint32 *reserved);
9475 
9476     nsresult (*GetInternalAndReservedAttribute10IHost)(IHost *pThis, PRUint32 *reserved);
9477 
9478     nsresult (*GetInternalAndReservedAttribute11IHost)(IHost *pThis, PRUint32 *reserved);
9479 
9480     nsresult (*GetInternalAndReservedAttribute12IHost)(IHost *pThis, PRUint32 *reserved);
9481 
9482     nsresult (*GetProcessorSpeed)(
9483         IHost *pThis,
9484         PRUint32 cpuId,
9485         PRUint32 * speed
9486     );
9487 
9488     nsresult (*GetProcessorFeature)(
9489         IHost *pThis,
9490         PRUint32 feature,
9491         PRBool * supported
9492     );
9493 
9494     nsresult (*GetProcessorDescription)(
9495         IHost *pThis,
9496         PRUint32 cpuId,
9497         PRUnichar * * description
9498     );
9499 
9500     nsresult (*GetProcessorCPUIDLeaf)(
9501         IHost *pThis,
9502         PRUint32 cpuId,
9503         PRUint32 leaf,
9504         PRUint32 subLeaf,
9505         PRUint32 * valEax,
9506         PRUint32 * valEbx,
9507         PRUint32 * valEcx,
9508         PRUint32 * valEdx
9509     );
9510 
9511     nsresult (*CreateHostOnlyNetworkInterface)(
9512         IHost *pThis,
9513         IHostNetworkInterface * * hostInterface,
9514         IProgress * * progress
9515     );
9516 
9517     nsresult (*RemoveHostOnlyNetworkInterface)(
9518         IHost *pThis,
9519         PRUnichar * id,
9520         IProgress * * progress
9521     );
9522 
9523     nsresult (*CreateUSBDeviceFilter)(
9524         IHost *pThis,
9525         PRUnichar * name,
9526         IHostUSBDeviceFilter * * filter
9527     );
9528 
9529     nsresult (*InsertUSBDeviceFilter)(
9530         IHost *pThis,
9531         PRUint32 position,
9532         IHostUSBDeviceFilter * filter
9533     );
9534 
9535     nsresult (*RemoveUSBDeviceFilter)(
9536         IHost *pThis,
9537         PRUint32 position
9538     );
9539 
9540     nsresult (*FindHostDVDDrive)(
9541         IHost *pThis,
9542         PRUnichar * name,
9543         IMedium * * drive
9544     );
9545 
9546     nsresult (*FindHostFloppyDrive)(
9547         IHost *pThis,
9548         PRUnichar * name,
9549         IMedium * * drive
9550     );
9551 
9552     nsresult (*FindHostNetworkInterfaceByName)(
9553         IHost *pThis,
9554         PRUnichar * name,
9555         IHostNetworkInterface * * networkInterface
9556     );
9557 
9558     nsresult (*FindHostNetworkInterfaceById)(
9559         IHost *pThis,
9560         PRUnichar * id,
9561         IHostNetworkInterface * * networkInterface
9562     );
9563 
9564     nsresult (*FindHostNetworkInterfacesOfType)(
9565         IHost *pThis,
9566         PRUint32 type,
9567         PRUint32 *networkInterfacesSize,
9568         IHostNetworkInterface *** networkInterfaces
9569     );
9570 
9571     nsresult (*FindUSBDeviceById)(
9572         IHost *pThis,
9573         PRUnichar * id,
9574         IHostUSBDevice * * device
9575     );
9576 
9577     nsresult (*FindUSBDeviceByAddress)(
9578         IHost *pThis,
9579         PRUnichar * name,
9580         IHostUSBDevice * * device
9581     );
9582 
9583     nsresult (*GenerateMACAddress)(
9584         IHost *pThis,
9585         PRUnichar * * address
9586     );
9587 
9588     nsresult (*AddUSBDeviceSource)(
9589         IHost *pThis,
9590         PRUnichar * backend,
9591         PRUnichar * id,
9592         PRUnichar * address,
9593         PRUint32 propertyNamesSize,
9594         PRUnichar ** propertyNames,
9595         PRUint32 propertyValuesSize,
9596         PRUnichar ** propertyValues
9597     );
9598 
9599     nsresult (*RemoveUSBDeviceSource)(
9600         IHost *pThis,
9601         PRUnichar * id
9602     );
9603 
9604 };
9605 #   else /* VBOX_WITH_GLUE */
9606 struct IHostVtbl
9607 {
9608     nsresult (*QueryInterface)(IHost *pThis, const nsID *iid, void **resultp);
9609     nsrefcnt (*AddRef)(IHost *pThis);
9610     nsrefcnt (*Release)(IHost *pThis);
9611     nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
9612 
9613     nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
9614 
9615     nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
9616 
9617     nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
9618 
9619     nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
9620 
9621     nsresult (*GetNameServers)(IHost *pThis, PRUint32 *nameServersSize, PRUnichar * **nameServers);
9622 
9623     nsresult (*GetDomainName)(IHost *pThis, PRUnichar * *domainName);
9624 
9625     nsresult (*GetSearchStrings)(IHost *pThis, PRUint32 *searchStringsSize, PRUnichar * **searchStrings);
9626 
9627     nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
9628 
9629     nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
9630 
9631     nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
9632 
9633     nsresult (*GetProcessorOnlineCoreCount)(IHost *pThis, PRUint32 *processorOnlineCoreCount);
9634 
9635     nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
9636 
9637     nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
9638 
9639     nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
9640 
9641     nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
9642 
9643     nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
9644 
9645     nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *acceleration3DAvailable);
9646 
9647     nsresult (*GetVideoInputDevices)(IHost *pThis, PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices);
9648 
9649     nsresult (*GetInternalAndReservedAttribute1IHost)(IHost *pThis, PRUint32 *reserved);
9650 
9651     nsresult (*GetInternalAndReservedAttribute2IHost)(IHost *pThis, PRUint32 *reserved);
9652 
9653     nsresult (*GetInternalAndReservedAttribute3IHost)(IHost *pThis, PRUint32 *reserved);
9654 
9655     nsresult (*GetInternalAndReservedAttribute4IHost)(IHost *pThis, PRUint32 *reserved);
9656 
9657     nsresult (*GetInternalAndReservedAttribute5IHost)(IHost *pThis, PRUint32 *reserved);
9658 
9659     nsresult (*GetInternalAndReservedAttribute6IHost)(IHost *pThis, PRUint32 *reserved);
9660 
9661     nsresult (*GetInternalAndReservedAttribute7IHost)(IHost *pThis, PRUint32 *reserved);
9662 
9663     nsresult (*GetInternalAndReservedAttribute8IHost)(IHost *pThis, PRUint32 *reserved);
9664 
9665     nsresult (*GetInternalAndReservedAttribute9IHost)(IHost *pThis, PRUint32 *reserved);
9666 
9667     nsresult (*GetInternalAndReservedAttribute10IHost)(IHost *pThis, PRUint32 *reserved);
9668 
9669     nsresult (*GetInternalAndReservedAttribute11IHost)(IHost *pThis, PRUint32 *reserved);
9670 
9671     nsresult (*GetInternalAndReservedAttribute12IHost)(IHost *pThis, PRUint32 *reserved);
9672 
9673     nsresult (*GetProcessorSpeed)(
9674         IHost *pThis,
9675         PRUint32 cpuId,
9676         PRUint32 * speed
9677     );
9678 
9679     nsresult (*GetProcessorFeature)(
9680         IHost *pThis,
9681         PRUint32 feature,
9682         PRBool * supported
9683     );
9684 
9685     nsresult (*GetProcessorDescription)(
9686         IHost *pThis,
9687         PRUint32 cpuId,
9688         PRUnichar * * description
9689     );
9690 
9691     nsresult (*GetProcessorCPUIDLeaf)(
9692         IHost *pThis,
9693         PRUint32 cpuId,
9694         PRUint32 leaf,
9695         PRUint32 subLeaf,
9696         PRUint32 * valEax,
9697         PRUint32 * valEbx,
9698         PRUint32 * valEcx,
9699         PRUint32 * valEdx
9700     );
9701 
9702     nsresult (*CreateHostOnlyNetworkInterface)(
9703         IHost *pThis,
9704         IHostNetworkInterface * * hostInterface,
9705         IProgress * * progress
9706     );
9707 
9708     nsresult (*RemoveHostOnlyNetworkInterface)(
9709         IHost *pThis,
9710         PRUnichar * id,
9711         IProgress * * progress
9712     );
9713 
9714     nsresult (*CreateUSBDeviceFilter)(
9715         IHost *pThis,
9716         PRUnichar * name,
9717         IHostUSBDeviceFilter * * filter
9718     );
9719 
9720     nsresult (*InsertUSBDeviceFilter)(
9721         IHost *pThis,
9722         PRUint32 position,
9723         IHostUSBDeviceFilter * filter
9724     );
9725 
9726     nsresult (*RemoveUSBDeviceFilter)(
9727         IHost *pThis,
9728         PRUint32 position
9729     );
9730 
9731     nsresult (*FindHostDVDDrive)(
9732         IHost *pThis,
9733         PRUnichar * name,
9734         IMedium * * drive
9735     );
9736 
9737     nsresult (*FindHostFloppyDrive)(
9738         IHost *pThis,
9739         PRUnichar * name,
9740         IMedium * * drive
9741     );
9742 
9743     nsresult (*FindHostNetworkInterfaceByName)(
9744         IHost *pThis,
9745         PRUnichar * name,
9746         IHostNetworkInterface * * networkInterface
9747     );
9748 
9749     nsresult (*FindHostNetworkInterfaceById)(
9750         IHost *pThis,
9751         PRUnichar * id,
9752         IHostNetworkInterface * * networkInterface
9753     );
9754 
9755     nsresult (*FindHostNetworkInterfacesOfType)(
9756         IHost *pThis,
9757         PRUint32 type,
9758         PRUint32 *networkInterfacesSize,
9759         IHostNetworkInterface *** networkInterfaces
9760     );
9761 
9762     nsresult (*FindUSBDeviceById)(
9763         IHost *pThis,
9764         PRUnichar * id,
9765         IHostUSBDevice * * device
9766     );
9767 
9768     nsresult (*FindUSBDeviceByAddress)(
9769         IHost *pThis,
9770         PRUnichar * name,
9771         IHostUSBDevice * * device
9772     );
9773 
9774     nsresult (*GenerateMACAddress)(
9775         IHost *pThis,
9776         PRUnichar * * address
9777     );
9778 
9779     nsresult (*AddUSBDeviceSource)(
9780         IHost *pThis,
9781         PRUnichar * backend,
9782         PRUnichar * id,
9783         PRUnichar * address,
9784         PRUint32 propertyNamesSize,
9785         PRUnichar ** propertyNames,
9786         PRUint32 propertyValuesSize,
9787         PRUnichar ** propertyValues
9788     );
9789 
9790     nsresult (*RemoveUSBDeviceSource)(
9791         IHost *pThis,
9792         PRUnichar * id
9793     );
9794 
9795 };
9796 #    define IHost_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
9797 #    define IHost_AddRef(p) ((p)->lpVtbl->AddRef(p))
9798 #    define IHost_Release(p) ((p)->lpVtbl->Release(p))
9799 #    define IHost_get_DVDDrives(p, aDVDDrives) ((p)->lpVtbl->GetDVDDrives(p, aDVDDrives))
9800 #    define IHost_GetDVDDrives(p, aDVDDrives) ((p)->lpVtbl->GetDVDDrives(p, aDVDDrives))
9801 #    define IHost_get_FloppyDrives(p, aFloppyDrives) ((p)->lpVtbl->GetFloppyDrives(p, aFloppyDrives))
9802 #    define IHost_GetFloppyDrives(p, aFloppyDrives) ((p)->lpVtbl->GetFloppyDrives(p, aFloppyDrives))
9803 #    define IHost_get_USBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
9804 #    define IHost_GetUSBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
9805 #    define IHost_get_USBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
9806 #    define IHost_GetUSBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
9807 #    define IHost_get_NetworkInterfaces(p, aNetworkInterfaces) ((p)->lpVtbl->GetNetworkInterfaces(p, aNetworkInterfaces))
9808 #    define IHost_GetNetworkInterfaces(p, aNetworkInterfaces) ((p)->lpVtbl->GetNetworkInterfaces(p, aNetworkInterfaces))
9809 #    define IHost_get_NameServers(p, aNameServers) ((p)->lpVtbl->GetNameServers(p, aNameServers))
9810 #    define IHost_GetNameServers(p, aNameServers) ((p)->lpVtbl->GetNameServers(p, aNameServers))
9811 #    define IHost_get_DomainName(p, aDomainName) ((p)->lpVtbl->GetDomainName(p, aDomainName))
9812 #    define IHost_GetDomainName(p, aDomainName) ((p)->lpVtbl->GetDomainName(p, aDomainName))
9813 #    define IHost_get_SearchStrings(p, aSearchStrings) ((p)->lpVtbl->GetSearchStrings(p, aSearchStrings))
9814 #    define IHost_GetSearchStrings(p, aSearchStrings) ((p)->lpVtbl->GetSearchStrings(p, aSearchStrings))
9815 #    define IHost_get_ProcessorCount(p, aProcessorCount) ((p)->lpVtbl->GetProcessorCount(p, aProcessorCount))
9816 #    define IHost_GetProcessorCount(p, aProcessorCount) ((p)->lpVtbl->GetProcessorCount(p, aProcessorCount))
9817 #    define IHost_get_ProcessorOnlineCount(p, aProcessorOnlineCount) ((p)->lpVtbl->GetProcessorOnlineCount(p, aProcessorOnlineCount))
9818 #    define IHost_GetProcessorOnlineCount(p, aProcessorOnlineCount) ((p)->lpVtbl->GetProcessorOnlineCount(p, aProcessorOnlineCount))
9819 #    define IHost_get_ProcessorCoreCount(p, aProcessorCoreCount) ((p)->lpVtbl->GetProcessorCoreCount(p, aProcessorCoreCount))
9820 #    define IHost_GetProcessorCoreCount(p, aProcessorCoreCount) ((p)->lpVtbl->GetProcessorCoreCount(p, aProcessorCoreCount))
9821 #    define IHost_get_ProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount) ((p)->lpVtbl->GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount))
9822 #    define IHost_GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount) ((p)->lpVtbl->GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount))
9823 #    define IHost_get_MemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
9824 #    define IHost_GetMemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
9825 #    define IHost_get_MemoryAvailable(p, aMemoryAvailable) ((p)->lpVtbl->GetMemoryAvailable(p, aMemoryAvailable))
9826 #    define IHost_GetMemoryAvailable(p, aMemoryAvailable) ((p)->lpVtbl->GetMemoryAvailable(p, aMemoryAvailable))
9827 #    define IHost_get_OperatingSystem(p, aOperatingSystem) ((p)->lpVtbl->GetOperatingSystem(p, aOperatingSystem))
9828 #    define IHost_GetOperatingSystem(p, aOperatingSystem) ((p)->lpVtbl->GetOperatingSystem(p, aOperatingSystem))
9829 #    define IHost_get_OSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
9830 #    define IHost_GetOSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
9831 #    define IHost_get_UTCTime(p, aUTCTime) ((p)->lpVtbl->GetUTCTime(p, aUTCTime))
9832 #    define IHost_GetUTCTime(p, aUTCTime) ((p)->lpVtbl->GetUTCTime(p, aUTCTime))
9833 #    define IHost_get_Acceleration3DAvailable(p, aAcceleration3DAvailable) ((p)->lpVtbl->GetAcceleration3DAvailable(p, aAcceleration3DAvailable))
9834 #    define IHost_GetAcceleration3DAvailable(p, aAcceleration3DAvailable) ((p)->lpVtbl->GetAcceleration3DAvailable(p, aAcceleration3DAvailable))
9835 #    define IHost_get_VideoInputDevices(p, aVideoInputDevices) ((p)->lpVtbl->GetVideoInputDevices(p, aVideoInputDevices))
9836 #    define IHost_GetVideoInputDevices(p, aVideoInputDevices) ((p)->lpVtbl->GetVideoInputDevices(p, aVideoInputDevices))
9837 #    define IHost_GetProcessorSpeed(p, aCpuId, aSpeed) ((p)->lpVtbl->GetProcessorSpeed(p, aCpuId, aSpeed))
9838 #    define IHost_GetProcessorFeature(p, aFeature, aSupported) ((p)->lpVtbl->GetProcessorFeature(p, aFeature, aSupported))
9839 #    define IHost_GetProcessorDescription(p, aCpuId, aDescription) ((p)->lpVtbl->GetProcessorDescription(p, aCpuId, aDescription))
9840 #    define IHost_GetProcessorCPUIDLeaf(p, aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetProcessorCPUIDLeaf(p, aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx))
9841 #    define IHost_CreateHostOnlyNetworkInterface(p, aHostInterface, aProgress) ((p)->lpVtbl->CreateHostOnlyNetworkInterface(p, aHostInterface, aProgress))
9842 #    define IHost_RemoveHostOnlyNetworkInterface(p, aId, aProgress) ((p)->lpVtbl->RemoveHostOnlyNetworkInterface(p, aId, aProgress))
9843 #    define IHost_CreateUSBDeviceFilter(p, aName, aFilter) ((p)->lpVtbl->CreateUSBDeviceFilter(p, aName, aFilter))
9844 #    define IHost_InsertUSBDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->InsertUSBDeviceFilter(p, aPosition, aFilter))
9845 #    define IHost_RemoveUSBDeviceFilter(p, aPosition) ((p)->lpVtbl->RemoveUSBDeviceFilter(p, aPosition))
9846 #    define IHost_FindHostDVDDrive(p, aName, aDrive) ((p)->lpVtbl->FindHostDVDDrive(p, aName, aDrive))
9847 #    define IHost_FindHostFloppyDrive(p, aName, aDrive) ((p)->lpVtbl->FindHostFloppyDrive(p, aName, aDrive))
9848 #    define IHost_FindHostNetworkInterfaceByName(p, aName, aNetworkInterface) ((p)->lpVtbl->FindHostNetworkInterfaceByName(p, aName, aNetworkInterface))
9849 #    define IHost_FindHostNetworkInterfaceById(p, aId, aNetworkInterface) ((p)->lpVtbl->FindHostNetworkInterfaceById(p, aId, aNetworkInterface))
9850 #    define IHost_FindHostNetworkInterfacesOfType(p, aType, aNetworkInterfaces) ((p)->lpVtbl->FindHostNetworkInterfacesOfType(p, aType, aNetworkInterfaces))
9851 #    define IHost_FindUSBDeviceById(p, aId, aDevice) ((p)->lpVtbl->FindUSBDeviceById(p, aId, aDevice))
9852 #    define IHost_FindUSBDeviceByAddress(p, aName, aDevice) ((p)->lpVtbl->FindUSBDeviceByAddress(p, aName, aDevice))
9853 #    define IHost_GenerateMACAddress(p, aAddress) ((p)->lpVtbl->GenerateMACAddress(p, aAddress))
9854 #    define IHost_AddUSBDeviceSource(p, aBackend, aId, aAddress, aPropertyNames, aPropertyValues) ((p)->lpVtbl->AddUSBDeviceSource(p, aBackend, aId, aAddress, aPropertyNames, aPropertyValues))
9855 #    define IHost_RemoveUSBDeviceSource(p, aId) ((p)->lpVtbl->RemoveUSBDeviceSource(p, aId))
9856 #   endif /* VBOX_WITH_GLUE */
9857 
9858 interface IHost
9859 {
9860 #   ifndef VBOX_WITH_GLUE
9861     struct IHost_vtbl *vtbl;
9862 #   else /* VBOX_WITH_GLUE */
9863     CONST_VTBL struct IHostVtbl *lpVtbl;
9864 #   endif /* VBOX_WITH_GLUE */
9865 };
9866 /* End of struct IHost declaration */
9867 
9868 
9869 /* Start of struct ISystemProperties declaration */
9870 #   define ISYSTEMPROPERTIES_IID_STR "0eb668d2-495e-5a36-8890-29999b5f030c"
9871 #   define ISYSTEMPROPERTIES_IID { \
9872     0x0eb668d2, 0x495e, 0x5a36, \
9873     { 0x88, 0x90, 0x29, 0x99, 0x9b, 0x5f, 0x03, 0x0c } \
9874 }
9875 /* COM compatibility */
9876 VBOX_EXTERN_CONST(nsIID, IID_ISystemProperties);
9877 #   ifndef VBOX_WITH_GLUE
9878 struct ISystemProperties_vtbl
9879 {
9880     struct nsISupports_vtbl nsisupports;
9881 
9882     nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
9883 
9884     nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
9885 
9886     nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
9887 
9888     nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
9889 
9890     nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
9891 
9892     nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
9893 
9894     nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
9895 
9896     nsresult (*GetInfoVDSize)(ISystemProperties *pThis, PRInt64 *infoVDSize);
9897 
9898     nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
9899 
9900     nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
9901 
9902     nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
9903 
9904     nsresult (*GetRawModeSupported)(ISystemProperties *pThis, PRBool *rawModeSupported);
9905 
9906     nsresult (*GetExclusiveHwVirt)(ISystemProperties *pThis, PRBool *exclusiveHwVirt);
9907     nsresult (*SetExclusiveHwVirt)(ISystemProperties *pThis, PRBool exclusiveHwVirt);
9908 
9909     nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
9910     nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
9911 
9912     nsresult (*GetLoggingLevel)(ISystemProperties *pThis, PRUnichar * *loggingLevel);
9913     nsresult (*SetLoggingLevel)(ISystemProperties *pThis, PRUnichar * loggingLevel);
9914 
9915     nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
9916 
9917     nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
9918     nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
9919 
9920     nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceWarning);
9921     nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 freeDiskSpaceWarning);
9922 
9923     nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
9924     nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
9925 
9926     nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceError);
9927     nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 freeDiskSpaceError);
9928 
9929     nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
9930     nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
9931 
9932     nsresult (*GetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * *VRDEAuthLibrary);
9933     nsresult (*SetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * VRDEAuthLibrary);
9934 
9935     nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
9936     nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
9937 
9938     nsresult (*GetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * *defaultVRDEExtPack);
9939     nsresult (*SetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * defaultVRDEExtPack);
9940 
9941     nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *logHistoryCount);
9942     nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 logHistoryCount);
9943 
9944     nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
9945 
9946     nsresult (*GetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * *autostartDatabasePath);
9947     nsresult (*SetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * autostartDatabasePath);
9948 
9949     nsresult (*GetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * *defaultAdditionsISO);
9950     nsresult (*SetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * defaultAdditionsISO);
9951 
9952     nsresult (*GetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * *defaultFrontend);
9953     nsresult (*SetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * defaultFrontend);
9954 
9955     nsresult (*GetScreenShotFormats)(ISystemProperties *pThis, PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats);
9956 
9957     nsresult (*GetInternalAndReservedAttribute1ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9958 
9959     nsresult (*GetInternalAndReservedAttribute2ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9960 
9961     nsresult (*GetInternalAndReservedAttribute3ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9962 
9963     nsresult (*GetInternalAndReservedAttribute4ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9964 
9965     nsresult (*GetInternalAndReservedAttribute5ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9966 
9967     nsresult (*GetInternalAndReservedAttribute6ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9968 
9969     nsresult (*GetInternalAndReservedAttribute7ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9970 
9971     nsresult (*GetInternalAndReservedAttribute8ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9972 
9973     nsresult (*GetInternalAndReservedAttribute9ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9974 
9975     nsresult (*GetInternalAndReservedAttribute10ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9976 
9977     nsresult (*GetInternalAndReservedAttribute11ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9978 
9979     nsresult (*GetInternalAndReservedAttribute12ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9980 
9981     nsresult (*GetInternalAndReservedAttribute13ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9982 
9983     nsresult (*GetInternalAndReservedAttribute14ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9984 
9985     nsresult (*GetInternalAndReservedAttribute15ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9986 
9987     nsresult (*GetInternalAndReservedAttribute16ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
9988 
9989     nsresult (*GetMaxNetworkAdapters)(
9990         ISystemProperties *pThis,
9991         PRUint32 chipset,
9992         PRUint32 * maxNetworkAdapters
9993     );
9994 
9995     nsresult (*GetMaxNetworkAdaptersOfType)(
9996         ISystemProperties *pThis,
9997         PRUint32 chipset,
9998         PRUint32 type,
9999         PRUint32 * maxNetworkAdapters
10000     );
10001 
10002     nsresult (*GetMaxDevicesPerPortForStorageBus)(
10003         ISystemProperties *pThis,
10004         PRUint32 bus,
10005         PRUint32 * maxDevicesPerPort
10006     );
10007 
10008     nsresult (*GetMinPortCountForStorageBus)(
10009         ISystemProperties *pThis,
10010         PRUint32 bus,
10011         PRUint32 * minPortCount
10012     );
10013 
10014     nsresult (*GetMaxPortCountForStorageBus)(
10015         ISystemProperties *pThis,
10016         PRUint32 bus,
10017         PRUint32 * maxPortCount
10018     );
10019 
10020     nsresult (*GetMaxInstancesOfStorageBus)(
10021         ISystemProperties *pThis,
10022         PRUint32 chipset,
10023         PRUint32 bus,
10024         PRUint32 * maxInstances
10025     );
10026 
10027     nsresult (*GetDeviceTypesForStorageBus)(
10028         ISystemProperties *pThis,
10029         PRUint32 bus,
10030         PRUint32 *deviceTypesSize,
10031         PRUint32** deviceTypes
10032     );
10033 
10034     nsresult (*GetDefaultIoCacheSettingForStorageController)(
10035         ISystemProperties *pThis,
10036         PRUint32 controllerType,
10037         PRBool * enabled
10038     );
10039 
10040     nsresult (*GetStorageControllerHotplugCapable)(
10041         ISystemProperties *pThis,
10042         PRUint32 controllerType,
10043         PRBool * hotplugCapable
10044     );
10045 
10046     nsresult (*GetMaxInstancesOfUSBControllerType)(
10047         ISystemProperties *pThis,
10048         PRUint32 chipset,
10049         PRUint32 type,
10050         PRUint32 * maxInstances
10051     );
10052 
10053     nsresult (*InternalAndReservedMethod1ISystemProperties)(ISystemProperties *pThis);
10054 
10055     nsresult (*InternalAndReservedMethod2ISystemProperties)(ISystemProperties *pThis);
10056 
10057     nsresult (*InternalAndReservedMethod3ISystemProperties)(ISystemProperties *pThis);
10058 
10059     nsresult (*InternalAndReservedMethod4ISystemProperties)(ISystemProperties *pThis);
10060 
10061 };
10062 #   else /* VBOX_WITH_GLUE */
10063 struct ISystemPropertiesVtbl
10064 {
10065     nsresult (*QueryInterface)(ISystemProperties *pThis, const nsID *iid, void **resultp);
10066     nsrefcnt (*AddRef)(ISystemProperties *pThis);
10067     nsrefcnt (*Release)(ISystemProperties *pThis);
10068     nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
10069 
10070     nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
10071 
10072     nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
10073 
10074     nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
10075 
10076     nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
10077 
10078     nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
10079 
10080     nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
10081 
10082     nsresult (*GetInfoVDSize)(ISystemProperties *pThis, PRInt64 *infoVDSize);
10083 
10084     nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
10085 
10086     nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
10087 
10088     nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
10089 
10090     nsresult (*GetRawModeSupported)(ISystemProperties *pThis, PRBool *rawModeSupported);
10091 
10092     nsresult (*GetExclusiveHwVirt)(ISystemProperties *pThis, PRBool *exclusiveHwVirt);
10093     nsresult (*SetExclusiveHwVirt)(ISystemProperties *pThis, PRBool exclusiveHwVirt);
10094 
10095     nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
10096     nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
10097 
10098     nsresult (*GetLoggingLevel)(ISystemProperties *pThis, PRUnichar * *loggingLevel);
10099     nsresult (*SetLoggingLevel)(ISystemProperties *pThis, PRUnichar * loggingLevel);
10100 
10101     nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
10102 
10103     nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
10104     nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
10105 
10106     nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceWarning);
10107     nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 freeDiskSpaceWarning);
10108 
10109     nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
10110     nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
10111 
10112     nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceError);
10113     nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 freeDiskSpaceError);
10114 
10115     nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
10116     nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
10117 
10118     nsresult (*GetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * *VRDEAuthLibrary);
10119     nsresult (*SetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * VRDEAuthLibrary);
10120 
10121     nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
10122     nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
10123 
10124     nsresult (*GetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * *defaultVRDEExtPack);
10125     nsresult (*SetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * defaultVRDEExtPack);
10126 
10127     nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *logHistoryCount);
10128     nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 logHistoryCount);
10129 
10130     nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
10131 
10132     nsresult (*GetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * *autostartDatabasePath);
10133     nsresult (*SetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * autostartDatabasePath);
10134 
10135     nsresult (*GetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * *defaultAdditionsISO);
10136     nsresult (*SetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * defaultAdditionsISO);
10137 
10138     nsresult (*GetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * *defaultFrontend);
10139     nsresult (*SetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * defaultFrontend);
10140 
10141     nsresult (*GetScreenShotFormats)(ISystemProperties *pThis, PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats);
10142 
10143     nsresult (*GetInternalAndReservedAttribute1ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10144 
10145     nsresult (*GetInternalAndReservedAttribute2ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10146 
10147     nsresult (*GetInternalAndReservedAttribute3ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10148 
10149     nsresult (*GetInternalAndReservedAttribute4ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10150 
10151     nsresult (*GetInternalAndReservedAttribute5ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10152 
10153     nsresult (*GetInternalAndReservedAttribute6ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10154 
10155     nsresult (*GetInternalAndReservedAttribute7ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10156 
10157     nsresult (*GetInternalAndReservedAttribute8ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10158 
10159     nsresult (*GetInternalAndReservedAttribute9ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10160 
10161     nsresult (*GetInternalAndReservedAttribute10ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10162 
10163     nsresult (*GetInternalAndReservedAttribute11ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10164 
10165     nsresult (*GetInternalAndReservedAttribute12ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10166 
10167     nsresult (*GetInternalAndReservedAttribute13ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10168 
10169     nsresult (*GetInternalAndReservedAttribute14ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10170 
10171     nsresult (*GetInternalAndReservedAttribute15ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10172 
10173     nsresult (*GetInternalAndReservedAttribute16ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
10174 
10175     nsresult (*GetMaxNetworkAdapters)(
10176         ISystemProperties *pThis,
10177         PRUint32 chipset,
10178         PRUint32 * maxNetworkAdapters
10179     );
10180 
10181     nsresult (*GetMaxNetworkAdaptersOfType)(
10182         ISystemProperties *pThis,
10183         PRUint32 chipset,
10184         PRUint32 type,
10185         PRUint32 * maxNetworkAdapters
10186     );
10187 
10188     nsresult (*GetMaxDevicesPerPortForStorageBus)(
10189         ISystemProperties *pThis,
10190         PRUint32 bus,
10191         PRUint32 * maxDevicesPerPort
10192     );
10193 
10194     nsresult (*GetMinPortCountForStorageBus)(
10195         ISystemProperties *pThis,
10196         PRUint32 bus,
10197         PRUint32 * minPortCount
10198     );
10199 
10200     nsresult (*GetMaxPortCountForStorageBus)(
10201         ISystemProperties *pThis,
10202         PRUint32 bus,
10203         PRUint32 * maxPortCount
10204     );
10205 
10206     nsresult (*GetMaxInstancesOfStorageBus)(
10207         ISystemProperties *pThis,
10208         PRUint32 chipset,
10209         PRUint32 bus,
10210         PRUint32 * maxInstances
10211     );
10212 
10213     nsresult (*GetDeviceTypesForStorageBus)(
10214         ISystemProperties *pThis,
10215         PRUint32 bus,
10216         PRUint32 *deviceTypesSize,
10217         PRUint32** deviceTypes
10218     );
10219 
10220     nsresult (*GetDefaultIoCacheSettingForStorageController)(
10221         ISystemProperties *pThis,
10222         PRUint32 controllerType,
10223         PRBool * enabled
10224     );
10225 
10226     nsresult (*GetStorageControllerHotplugCapable)(
10227         ISystemProperties *pThis,
10228         PRUint32 controllerType,
10229         PRBool * hotplugCapable
10230     );
10231 
10232     nsresult (*GetMaxInstancesOfUSBControllerType)(
10233         ISystemProperties *pThis,
10234         PRUint32 chipset,
10235         PRUint32 type,
10236         PRUint32 * maxInstances
10237     );
10238 
10239     nsresult (*InternalAndReservedMethod1ISystemProperties)(ISystemProperties *pThis);
10240 
10241     nsresult (*InternalAndReservedMethod2ISystemProperties)(ISystemProperties *pThis);
10242 
10243     nsresult (*InternalAndReservedMethod3ISystemProperties)(ISystemProperties *pThis);
10244 
10245     nsresult (*InternalAndReservedMethod4ISystemProperties)(ISystemProperties *pThis);
10246 
10247 };
10248 #    define ISystemProperties_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10249 #    define ISystemProperties_AddRef(p) ((p)->lpVtbl->AddRef(p))
10250 #    define ISystemProperties_Release(p) ((p)->lpVtbl->Release(p))
10251 #    define ISystemProperties_get_MinGuestRAM(p, aMinGuestRAM) ((p)->lpVtbl->GetMinGuestRAM(p, aMinGuestRAM))
10252 #    define ISystemProperties_GetMinGuestRAM(p, aMinGuestRAM) ((p)->lpVtbl->GetMinGuestRAM(p, aMinGuestRAM))
10253 #    define ISystemProperties_get_MaxGuestRAM(p, aMaxGuestRAM) ((p)->lpVtbl->GetMaxGuestRAM(p, aMaxGuestRAM))
10254 #    define ISystemProperties_GetMaxGuestRAM(p, aMaxGuestRAM) ((p)->lpVtbl->GetMaxGuestRAM(p, aMaxGuestRAM))
10255 #    define ISystemProperties_get_MinGuestVRAM(p, aMinGuestVRAM) ((p)->lpVtbl->GetMinGuestVRAM(p, aMinGuestVRAM))
10256 #    define ISystemProperties_GetMinGuestVRAM(p, aMinGuestVRAM) ((p)->lpVtbl->GetMinGuestVRAM(p, aMinGuestVRAM))
10257 #    define ISystemProperties_get_MaxGuestVRAM(p, aMaxGuestVRAM) ((p)->lpVtbl->GetMaxGuestVRAM(p, aMaxGuestVRAM))
10258 #    define ISystemProperties_GetMaxGuestVRAM(p, aMaxGuestVRAM) ((p)->lpVtbl->GetMaxGuestVRAM(p, aMaxGuestVRAM))
10259 #    define ISystemProperties_get_MinGuestCPUCount(p, aMinGuestCPUCount) ((p)->lpVtbl->GetMinGuestCPUCount(p, aMinGuestCPUCount))
10260 #    define ISystemProperties_GetMinGuestCPUCount(p, aMinGuestCPUCount) ((p)->lpVtbl->GetMinGuestCPUCount(p, aMinGuestCPUCount))
10261 #    define ISystemProperties_get_MaxGuestCPUCount(p, aMaxGuestCPUCount) ((p)->lpVtbl->GetMaxGuestCPUCount(p, aMaxGuestCPUCount))
10262 #    define ISystemProperties_GetMaxGuestCPUCount(p, aMaxGuestCPUCount) ((p)->lpVtbl->GetMaxGuestCPUCount(p, aMaxGuestCPUCount))
10263 #    define ISystemProperties_get_MaxGuestMonitors(p, aMaxGuestMonitors) ((p)->lpVtbl->GetMaxGuestMonitors(p, aMaxGuestMonitors))
10264 #    define ISystemProperties_GetMaxGuestMonitors(p, aMaxGuestMonitors) ((p)->lpVtbl->GetMaxGuestMonitors(p, aMaxGuestMonitors))
10265 #    define ISystemProperties_get_InfoVDSize(p, aInfoVDSize) ((p)->lpVtbl->GetInfoVDSize(p, aInfoVDSize))
10266 #    define ISystemProperties_GetInfoVDSize(p, aInfoVDSize) ((p)->lpVtbl->GetInfoVDSize(p, aInfoVDSize))
10267 #    define ISystemProperties_get_SerialPortCount(p, aSerialPortCount) ((p)->lpVtbl->GetSerialPortCount(p, aSerialPortCount))
10268 #    define ISystemProperties_GetSerialPortCount(p, aSerialPortCount) ((p)->lpVtbl->GetSerialPortCount(p, aSerialPortCount))
10269 #    define ISystemProperties_get_ParallelPortCount(p, aParallelPortCount) ((p)->lpVtbl->GetParallelPortCount(p, aParallelPortCount))
10270 #    define ISystemProperties_GetParallelPortCount(p, aParallelPortCount) ((p)->lpVtbl->GetParallelPortCount(p, aParallelPortCount))
10271 #    define ISystemProperties_get_MaxBootPosition(p, aMaxBootPosition) ((p)->lpVtbl->GetMaxBootPosition(p, aMaxBootPosition))
10272 #    define ISystemProperties_GetMaxBootPosition(p, aMaxBootPosition) ((p)->lpVtbl->GetMaxBootPosition(p, aMaxBootPosition))
10273 #    define ISystemProperties_get_RawModeSupported(p, aRawModeSupported) ((p)->lpVtbl->GetRawModeSupported(p, aRawModeSupported))
10274 #    define ISystemProperties_GetRawModeSupported(p, aRawModeSupported) ((p)->lpVtbl->GetRawModeSupported(p, aRawModeSupported))
10275 #    define ISystemProperties_get_ExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->GetExclusiveHwVirt(p, aExclusiveHwVirt))
10276 #    define ISystemProperties_GetExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->GetExclusiveHwVirt(p, aExclusiveHwVirt))
10277 #    define ISystemProperties_put_ExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->SetExclusiveHwVirt(p, aExclusiveHwVirt))
10278 #    define ISystemProperties_SetExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->SetExclusiveHwVirt(p, aExclusiveHwVirt))
10279 #    define ISystemProperties_get_DefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->GetDefaultMachineFolder(p, aDefaultMachineFolder))
10280 #    define ISystemProperties_GetDefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->GetDefaultMachineFolder(p, aDefaultMachineFolder))
10281 #    define ISystemProperties_put_DefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->SetDefaultMachineFolder(p, aDefaultMachineFolder))
10282 #    define ISystemProperties_SetDefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->SetDefaultMachineFolder(p, aDefaultMachineFolder))
10283 #    define ISystemProperties_get_LoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->GetLoggingLevel(p, aLoggingLevel))
10284 #    define ISystemProperties_GetLoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->GetLoggingLevel(p, aLoggingLevel))
10285 #    define ISystemProperties_put_LoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->SetLoggingLevel(p, aLoggingLevel))
10286 #    define ISystemProperties_SetLoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->SetLoggingLevel(p, aLoggingLevel))
10287 #    define ISystemProperties_get_MediumFormats(p, aMediumFormats) ((p)->lpVtbl->GetMediumFormats(p, aMediumFormats))
10288 #    define ISystemProperties_GetMediumFormats(p, aMediumFormats) ((p)->lpVtbl->GetMediumFormats(p, aMediumFormats))
10289 #    define ISystemProperties_get_DefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10290 #    define ISystemProperties_GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10291 #    define ISystemProperties_put_DefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10292 #    define ISystemProperties_SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
10293 #    define ISystemProperties_get_FreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10294 #    define ISystemProperties_GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10295 #    define ISystemProperties_put_FreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10296 #    define ISystemProperties_SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
10297 #    define ISystemProperties_get_FreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10298 #    define ISystemProperties_GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10299 #    define ISystemProperties_put_FreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10300 #    define ISystemProperties_SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
10301 #    define ISystemProperties_get_FreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->GetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10302 #    define ISystemProperties_GetFreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->GetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10303 #    define ISystemProperties_put_FreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->SetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10304 #    define ISystemProperties_SetFreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->SetFreeDiskSpaceError(p, aFreeDiskSpaceError))
10305 #    define ISystemProperties_get_FreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10306 #    define ISystemProperties_GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10307 #    define ISystemProperties_put_FreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10308 #    define ISystemProperties_SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
10309 #    define ISystemProperties_get_VRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->GetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10310 #    define ISystemProperties_GetVRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->GetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10311 #    define ISystemProperties_put_VRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->SetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10312 #    define ISystemProperties_SetVRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->SetVRDEAuthLibrary(p, aVRDEAuthLibrary))
10313 #    define ISystemProperties_get_WebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10314 #    define ISystemProperties_GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10315 #    define ISystemProperties_put_WebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10316 #    define ISystemProperties_SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
10317 #    define ISystemProperties_get_DefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10318 #    define ISystemProperties_GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10319 #    define ISystemProperties_put_DefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10320 #    define ISystemProperties_SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
10321 #    define ISystemProperties_get_LogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->GetLogHistoryCount(p, aLogHistoryCount))
10322 #    define ISystemProperties_GetLogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->GetLogHistoryCount(p, aLogHistoryCount))
10323 #    define ISystemProperties_put_LogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->SetLogHistoryCount(p, aLogHistoryCount))
10324 #    define ISystemProperties_SetLogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->SetLogHistoryCount(p, aLogHistoryCount))
10325 #    define ISystemProperties_get_DefaultAudioDriver(p, aDefaultAudioDriver) ((p)->lpVtbl->GetDefaultAudioDriver(p, aDefaultAudioDriver))
10326 #    define ISystemProperties_GetDefaultAudioDriver(p, aDefaultAudioDriver) ((p)->lpVtbl->GetDefaultAudioDriver(p, aDefaultAudioDriver))
10327 #    define ISystemProperties_get_AutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->GetAutostartDatabasePath(p, aAutostartDatabasePath))
10328 #    define ISystemProperties_GetAutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->GetAutostartDatabasePath(p, aAutostartDatabasePath))
10329 #    define ISystemProperties_put_AutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->SetAutostartDatabasePath(p, aAutostartDatabasePath))
10330 #    define ISystemProperties_SetAutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->SetAutostartDatabasePath(p, aAutostartDatabasePath))
10331 #    define ISystemProperties_get_DefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->GetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10332 #    define ISystemProperties_GetDefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->GetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10333 #    define ISystemProperties_put_DefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->SetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10334 #    define ISystemProperties_SetDefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->SetDefaultAdditionsISO(p, aDefaultAdditionsISO))
10335 #    define ISystemProperties_get_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
10336 #    define ISystemProperties_GetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
10337 #    define ISystemProperties_put_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
10338 #    define ISystemProperties_SetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
10339 #    define ISystemProperties_get_ScreenShotFormats(p, aScreenShotFormats) ((p)->lpVtbl->GetScreenShotFormats(p, aScreenShotFormats))
10340 #    define ISystemProperties_GetScreenShotFormats(p, aScreenShotFormats) ((p)->lpVtbl->GetScreenShotFormats(p, aScreenShotFormats))
10341 #    define ISystemProperties_GetMaxNetworkAdapters(p, aChipset, aMaxNetworkAdapters) ((p)->lpVtbl->GetMaxNetworkAdapters(p, aChipset, aMaxNetworkAdapters))
10342 #    define ISystemProperties_GetMaxNetworkAdaptersOfType(p, aChipset, aType, aMaxNetworkAdapters) ((p)->lpVtbl->GetMaxNetworkAdaptersOfType(p, aChipset, aType, aMaxNetworkAdapters))
10343 #    define ISystemProperties_GetMaxDevicesPerPortForStorageBus(p, aBus, aMaxDevicesPerPort) ((p)->lpVtbl->GetMaxDevicesPerPortForStorageBus(p, aBus, aMaxDevicesPerPort))
10344 #    define ISystemProperties_GetMinPortCountForStorageBus(p, aBus, aMinPortCount) ((p)->lpVtbl->GetMinPortCountForStorageBus(p, aBus, aMinPortCount))
10345 #    define ISystemProperties_GetMaxPortCountForStorageBus(p, aBus, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCountForStorageBus(p, aBus, aMaxPortCount))
10346 #    define ISystemProperties_GetMaxInstancesOfStorageBus(p, aChipset, aBus, aMaxInstances) ((p)->lpVtbl->GetMaxInstancesOfStorageBus(p, aChipset, aBus, aMaxInstances))
10347 #    define ISystemProperties_GetDeviceTypesForStorageBus(p, aBus, aDeviceTypes) ((p)->lpVtbl->GetDeviceTypesForStorageBus(p, aBus, aDeviceTypes))
10348 #    define ISystemProperties_GetDefaultIoCacheSettingForStorageController(p, aControllerType, aEnabled) ((p)->lpVtbl->GetDefaultIoCacheSettingForStorageController(p, aControllerType, aEnabled))
10349 #    define ISystemProperties_GetStorageControllerHotplugCapable(p, aControllerType, aHotplugCapable) ((p)->lpVtbl->GetStorageControllerHotplugCapable(p, aControllerType, aHotplugCapable))
10350 #    define ISystemProperties_GetMaxInstancesOfUSBControllerType(p, aChipset, aType, aMaxInstances) ((p)->lpVtbl->GetMaxInstancesOfUSBControllerType(p, aChipset, aType, aMaxInstances))
10351 #   endif /* VBOX_WITH_GLUE */
10352 
10353 interface ISystemProperties
10354 {
10355 #   ifndef VBOX_WITH_GLUE
10356     struct ISystemProperties_vtbl *vtbl;
10357 #   else /* VBOX_WITH_GLUE */
10358     CONST_VTBL struct ISystemPropertiesVtbl *lpVtbl;
10359 #   endif /* VBOX_WITH_GLUE */
10360 };
10361 /* End of struct ISystemProperties declaration */
10362 
10363 
10364 /* Start of struct IGuestOSType declaration */
10365 #   define IGUESTOSTYPE_IID_STR "b1336a0a-2546-4d99-8cff-8efb130cfa9d"
10366 #   define IGUESTOSTYPE_IID { \
10367     0xb1336a0a, 0x2546, 0x4d99, \
10368     { 0x8c, 0xff, 0x8e, 0xfb, 0x13, 0x0c, 0xfa, 0x9d } \
10369 }
10370 /* COM compatibility */
10371 VBOX_EXTERN_CONST(nsIID, IID_IGuestOSType);
10372 #   ifndef VBOX_WITH_GLUE
10373 struct IGuestOSType_vtbl
10374 {
10375     struct nsISupports_vtbl nsisupports;
10376 
10377     nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
10378 
10379     nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
10380 
10381     nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
10382 
10383     nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
10384 
10385     nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
10386 
10387     nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
10388 
10389     nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
10390 
10391     nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
10392 
10393     nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
10394 
10395     nsresult (*GetRecommended2DVideoAcceleration)(IGuestOSType *pThis, PRBool *recommended2DVideoAcceleration);
10396 
10397     nsresult (*GetRecommended3DAcceleration)(IGuestOSType *pThis, PRBool *recommended3DAcceleration);
10398 
10399     nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRInt64 *recommendedHDD);
10400 
10401     nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
10402 
10403     nsresult (*GetRecommendedPAE)(IGuestOSType *pThis, PRBool *recommendedPAE);
10404 
10405     nsresult (*GetRecommendedDVDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageController);
10406 
10407     nsresult (*GetRecommendedDVDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageBus);
10408 
10409     nsresult (*GetRecommendedHDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageController);
10410 
10411     nsresult (*GetRecommendedHDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageBus);
10412 
10413     nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
10414 
10415     nsresult (*GetRecommendedUSBHID)(IGuestOSType *pThis, PRBool *recommendedUSBHID);
10416 
10417     nsresult (*GetRecommendedHPET)(IGuestOSType *pThis, PRBool *recommendedHPET);
10418 
10419     nsresult (*GetRecommendedUSBTablet)(IGuestOSType *pThis, PRBool *recommendedUSBTablet);
10420 
10421     nsresult (*GetRecommendedRTCUseUTC)(IGuestOSType *pThis, PRBool *recommendedRTCUseUTC);
10422 
10423     nsresult (*GetRecommendedChipset)(IGuestOSType *pThis, PRUint32 *recommendedChipset);
10424 
10425     nsresult (*GetRecommendedAudioController)(IGuestOSType *pThis, PRUint32 *recommendedAudioController);
10426 
10427     nsresult (*GetRecommendedAudioCodec)(IGuestOSType *pThis, PRUint32 *recommendedAudioCodec);
10428 
10429     nsresult (*GetRecommendedFloppy)(IGuestOSType *pThis, PRBool *recommendedFloppy);
10430 
10431     nsresult (*GetRecommendedUSB)(IGuestOSType *pThis, PRBool *recommendedUSB);
10432 
10433     nsresult (*GetRecommendedUSB3)(IGuestOSType *pThis, PRBool *recommendedUSB3);
10434 
10435     nsresult (*GetRecommendedTFReset)(IGuestOSType *pThis, PRBool *recommendedTFReset);
10436 
10437     nsresult (*GetRecommendedX2APIC)(IGuestOSType *pThis, PRBool *recommendedX2APIC);
10438 
10439     nsresult (*GetInternalAndReservedAttribute1IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10440 
10441     nsresult (*GetInternalAndReservedAttribute2IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10442 
10443     nsresult (*GetInternalAndReservedAttribute3IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10444 
10445     nsresult (*GetInternalAndReservedAttribute4IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10446 
10447     nsresult (*GetInternalAndReservedAttribute5IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10448 
10449     nsresult (*GetInternalAndReservedAttribute6IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10450 
10451     nsresult (*GetInternalAndReservedAttribute7IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10452 
10453     nsresult (*GetInternalAndReservedAttribute8IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10454 
10455     nsresult (*GetInternalAndReservedAttribute9IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10456 
10457     nsresult (*GetInternalAndReservedAttribute10IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10458 
10459     nsresult (*GetInternalAndReservedAttribute11IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10460 
10461     nsresult (*GetInternalAndReservedAttribute12IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10462 
10463     nsresult (*GetInternalAndReservedAttribute13IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10464 
10465     nsresult (*GetInternalAndReservedAttribute14IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10466 
10467     nsresult (*GetInternalAndReservedAttribute15IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10468 
10469 };
10470 #   else /* VBOX_WITH_GLUE */
10471 struct IGuestOSTypeVtbl
10472 {
10473     nsresult (*QueryInterface)(IGuestOSType *pThis, const nsID *iid, void **resultp);
10474     nsrefcnt (*AddRef)(IGuestOSType *pThis);
10475     nsrefcnt (*Release)(IGuestOSType *pThis);
10476     nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
10477 
10478     nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
10479 
10480     nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
10481 
10482     nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
10483 
10484     nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
10485 
10486     nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
10487 
10488     nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
10489 
10490     nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
10491 
10492     nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
10493 
10494     nsresult (*GetRecommended2DVideoAcceleration)(IGuestOSType *pThis, PRBool *recommended2DVideoAcceleration);
10495 
10496     nsresult (*GetRecommended3DAcceleration)(IGuestOSType *pThis, PRBool *recommended3DAcceleration);
10497 
10498     nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRInt64 *recommendedHDD);
10499 
10500     nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
10501 
10502     nsresult (*GetRecommendedPAE)(IGuestOSType *pThis, PRBool *recommendedPAE);
10503 
10504     nsresult (*GetRecommendedDVDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageController);
10505 
10506     nsresult (*GetRecommendedDVDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageBus);
10507 
10508     nsresult (*GetRecommendedHDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageController);
10509 
10510     nsresult (*GetRecommendedHDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageBus);
10511 
10512     nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
10513 
10514     nsresult (*GetRecommendedUSBHID)(IGuestOSType *pThis, PRBool *recommendedUSBHID);
10515 
10516     nsresult (*GetRecommendedHPET)(IGuestOSType *pThis, PRBool *recommendedHPET);
10517 
10518     nsresult (*GetRecommendedUSBTablet)(IGuestOSType *pThis, PRBool *recommendedUSBTablet);
10519 
10520     nsresult (*GetRecommendedRTCUseUTC)(IGuestOSType *pThis, PRBool *recommendedRTCUseUTC);
10521 
10522     nsresult (*GetRecommendedChipset)(IGuestOSType *pThis, PRUint32 *recommendedChipset);
10523 
10524     nsresult (*GetRecommendedAudioController)(IGuestOSType *pThis, PRUint32 *recommendedAudioController);
10525 
10526     nsresult (*GetRecommendedAudioCodec)(IGuestOSType *pThis, PRUint32 *recommendedAudioCodec);
10527 
10528     nsresult (*GetRecommendedFloppy)(IGuestOSType *pThis, PRBool *recommendedFloppy);
10529 
10530     nsresult (*GetRecommendedUSB)(IGuestOSType *pThis, PRBool *recommendedUSB);
10531 
10532     nsresult (*GetRecommendedUSB3)(IGuestOSType *pThis, PRBool *recommendedUSB3);
10533 
10534     nsresult (*GetRecommendedTFReset)(IGuestOSType *pThis, PRBool *recommendedTFReset);
10535 
10536     nsresult (*GetRecommendedX2APIC)(IGuestOSType *pThis, PRBool *recommendedX2APIC);
10537 
10538     nsresult (*GetInternalAndReservedAttribute1IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10539 
10540     nsresult (*GetInternalAndReservedAttribute2IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10541 
10542     nsresult (*GetInternalAndReservedAttribute3IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10543 
10544     nsresult (*GetInternalAndReservedAttribute4IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10545 
10546     nsresult (*GetInternalAndReservedAttribute5IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10547 
10548     nsresult (*GetInternalAndReservedAttribute6IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10549 
10550     nsresult (*GetInternalAndReservedAttribute7IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10551 
10552     nsresult (*GetInternalAndReservedAttribute8IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10553 
10554     nsresult (*GetInternalAndReservedAttribute9IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10555 
10556     nsresult (*GetInternalAndReservedAttribute10IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10557 
10558     nsresult (*GetInternalAndReservedAttribute11IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10559 
10560     nsresult (*GetInternalAndReservedAttribute12IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10561 
10562     nsresult (*GetInternalAndReservedAttribute13IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10563 
10564     nsresult (*GetInternalAndReservedAttribute14IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10565 
10566     nsresult (*GetInternalAndReservedAttribute15IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
10567 
10568 };
10569 #    define IGuestOSType_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10570 #    define IGuestOSType_AddRef(p) ((p)->lpVtbl->AddRef(p))
10571 #    define IGuestOSType_Release(p) ((p)->lpVtbl->Release(p))
10572 #    define IGuestOSType_get_FamilyId(p, aFamilyId) ((p)->lpVtbl->GetFamilyId(p, aFamilyId))
10573 #    define IGuestOSType_GetFamilyId(p, aFamilyId) ((p)->lpVtbl->GetFamilyId(p, aFamilyId))
10574 #    define IGuestOSType_get_FamilyDescription(p, aFamilyDescription) ((p)->lpVtbl->GetFamilyDescription(p, aFamilyDescription))
10575 #    define IGuestOSType_GetFamilyDescription(p, aFamilyDescription) ((p)->lpVtbl->GetFamilyDescription(p, aFamilyDescription))
10576 #    define IGuestOSType_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
10577 #    define IGuestOSType_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
10578 #    define IGuestOSType_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
10579 #    define IGuestOSType_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
10580 #    define IGuestOSType_get_Is64Bit(p, aIs64Bit) ((p)->lpVtbl->GetIs64Bit(p, aIs64Bit))
10581 #    define IGuestOSType_GetIs64Bit(p, aIs64Bit) ((p)->lpVtbl->GetIs64Bit(p, aIs64Bit))
10582 #    define IGuestOSType_get_RecommendedIOAPIC(p, aRecommendedIOAPIC) ((p)->lpVtbl->GetRecommendedIOAPIC(p, aRecommendedIOAPIC))
10583 #    define IGuestOSType_GetRecommendedIOAPIC(p, aRecommendedIOAPIC) ((p)->lpVtbl->GetRecommendedIOAPIC(p, aRecommendedIOAPIC))
10584 #    define IGuestOSType_get_RecommendedVirtEx(p, aRecommendedVirtEx) ((p)->lpVtbl->GetRecommendedVirtEx(p, aRecommendedVirtEx))
10585 #    define IGuestOSType_GetRecommendedVirtEx(p, aRecommendedVirtEx) ((p)->lpVtbl->GetRecommendedVirtEx(p, aRecommendedVirtEx))
10586 #    define IGuestOSType_get_RecommendedRAM(p, aRecommendedRAM) ((p)->lpVtbl->GetRecommendedRAM(p, aRecommendedRAM))
10587 #    define IGuestOSType_GetRecommendedRAM(p, aRecommendedRAM) ((p)->lpVtbl->GetRecommendedRAM(p, aRecommendedRAM))
10588 #    define IGuestOSType_get_RecommendedVRAM(p, aRecommendedVRAM) ((p)->lpVtbl->GetRecommendedVRAM(p, aRecommendedVRAM))
10589 #    define IGuestOSType_GetRecommendedVRAM(p, aRecommendedVRAM) ((p)->lpVtbl->GetRecommendedVRAM(p, aRecommendedVRAM))
10590 #    define IGuestOSType_get_Recommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration) ((p)->lpVtbl->GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration))
10591 #    define IGuestOSType_GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration) ((p)->lpVtbl->GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration))
10592 #    define IGuestOSType_get_Recommended3DAcceleration(p, aRecommended3DAcceleration) ((p)->lpVtbl->GetRecommended3DAcceleration(p, aRecommended3DAcceleration))
10593 #    define IGuestOSType_GetRecommended3DAcceleration(p, aRecommended3DAcceleration) ((p)->lpVtbl->GetRecommended3DAcceleration(p, aRecommended3DAcceleration))
10594 #    define IGuestOSType_get_RecommendedHDD(p, aRecommendedHDD) ((p)->lpVtbl->GetRecommendedHDD(p, aRecommendedHDD))
10595 #    define IGuestOSType_GetRecommendedHDD(p, aRecommendedHDD) ((p)->lpVtbl->GetRecommendedHDD(p, aRecommendedHDD))
10596 #    define IGuestOSType_get_AdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
10597 #    define IGuestOSType_GetAdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
10598 #    define IGuestOSType_get_RecommendedPAE(p, aRecommendedPAE) ((p)->lpVtbl->GetRecommendedPAE(p, aRecommendedPAE))
10599 #    define IGuestOSType_GetRecommendedPAE(p, aRecommendedPAE) ((p)->lpVtbl->GetRecommendedPAE(p, aRecommendedPAE))
10600 #    define IGuestOSType_get_RecommendedDVDStorageController(p, aRecommendedDVDStorageController) ((p)->lpVtbl->GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController))
10601 #    define IGuestOSType_GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController) ((p)->lpVtbl->GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController))
10602 #    define IGuestOSType_get_RecommendedDVDStorageBus(p, aRecommendedDVDStorageBus) ((p)->lpVtbl->GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus))
10603 #    define IGuestOSType_GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus) ((p)->lpVtbl->GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus))
10604 #    define IGuestOSType_get_RecommendedHDStorageController(p, aRecommendedHDStorageController) ((p)->lpVtbl->GetRecommendedHDStorageController(p, aRecommendedHDStorageController))
10605 #    define IGuestOSType_GetRecommendedHDStorageController(p, aRecommendedHDStorageController) ((p)->lpVtbl->GetRecommendedHDStorageController(p, aRecommendedHDStorageController))
10606 #    define IGuestOSType_get_RecommendedHDStorageBus(p, aRecommendedHDStorageBus) ((p)->lpVtbl->GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus))
10607 #    define IGuestOSType_GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus) ((p)->lpVtbl->GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus))
10608 #    define IGuestOSType_get_RecommendedFirmware(p, aRecommendedFirmware) ((p)->lpVtbl->GetRecommendedFirmware(p, aRecommendedFirmware))
10609 #    define IGuestOSType_GetRecommendedFirmware(p, aRecommendedFirmware) ((p)->lpVtbl->GetRecommendedFirmware(p, aRecommendedFirmware))
10610 #    define IGuestOSType_get_RecommendedUSBHID(p, aRecommendedUSBHID) ((p)->lpVtbl->GetRecommendedUSBHID(p, aRecommendedUSBHID))
10611 #    define IGuestOSType_GetRecommendedUSBHID(p, aRecommendedUSBHID) ((p)->lpVtbl->GetRecommendedUSBHID(p, aRecommendedUSBHID))
10612 #    define IGuestOSType_get_RecommendedHPET(p, aRecommendedHPET) ((p)->lpVtbl->GetRecommendedHPET(p, aRecommendedHPET))
10613 #    define IGuestOSType_GetRecommendedHPET(p, aRecommendedHPET) ((p)->lpVtbl->GetRecommendedHPET(p, aRecommendedHPET))
10614 #    define IGuestOSType_get_RecommendedUSBTablet(p, aRecommendedUSBTablet) ((p)->lpVtbl->GetRecommendedUSBTablet(p, aRecommendedUSBTablet))
10615 #    define IGuestOSType_GetRecommendedUSBTablet(p, aRecommendedUSBTablet) ((p)->lpVtbl->GetRecommendedUSBTablet(p, aRecommendedUSBTablet))
10616 #    define IGuestOSType_get_RecommendedRTCUseUTC(p, aRecommendedRTCUseUTC) ((p)->lpVtbl->GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC))
10617 #    define IGuestOSType_GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC) ((p)->lpVtbl->GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC))
10618 #    define IGuestOSType_get_RecommendedChipset(p, aRecommendedChipset) ((p)->lpVtbl->GetRecommendedChipset(p, aRecommendedChipset))
10619 #    define IGuestOSType_GetRecommendedChipset(p, aRecommendedChipset) ((p)->lpVtbl->GetRecommendedChipset(p, aRecommendedChipset))
10620 #    define IGuestOSType_get_RecommendedAudioController(p, aRecommendedAudioController) ((p)->lpVtbl->GetRecommendedAudioController(p, aRecommendedAudioController))
10621 #    define IGuestOSType_GetRecommendedAudioController(p, aRecommendedAudioController) ((p)->lpVtbl->GetRecommendedAudioController(p, aRecommendedAudioController))
10622 #    define IGuestOSType_get_RecommendedAudioCodec(p, aRecommendedAudioCodec) ((p)->lpVtbl->GetRecommendedAudioCodec(p, aRecommendedAudioCodec))
10623 #    define IGuestOSType_GetRecommendedAudioCodec(p, aRecommendedAudioCodec) ((p)->lpVtbl->GetRecommendedAudioCodec(p, aRecommendedAudioCodec))
10624 #    define IGuestOSType_get_RecommendedFloppy(p, aRecommendedFloppy) ((p)->lpVtbl->GetRecommendedFloppy(p, aRecommendedFloppy))
10625 #    define IGuestOSType_GetRecommendedFloppy(p, aRecommendedFloppy) ((p)->lpVtbl->GetRecommendedFloppy(p, aRecommendedFloppy))
10626 #    define IGuestOSType_get_RecommendedUSB(p, aRecommendedUSB) ((p)->lpVtbl->GetRecommendedUSB(p, aRecommendedUSB))
10627 #    define IGuestOSType_GetRecommendedUSB(p, aRecommendedUSB) ((p)->lpVtbl->GetRecommendedUSB(p, aRecommendedUSB))
10628 #    define IGuestOSType_get_RecommendedUSB3(p, aRecommendedUSB3) ((p)->lpVtbl->GetRecommendedUSB3(p, aRecommendedUSB3))
10629 #    define IGuestOSType_GetRecommendedUSB3(p, aRecommendedUSB3) ((p)->lpVtbl->GetRecommendedUSB3(p, aRecommendedUSB3))
10630 #    define IGuestOSType_get_RecommendedTFReset(p, aRecommendedTFReset) ((p)->lpVtbl->GetRecommendedTFReset(p, aRecommendedTFReset))
10631 #    define IGuestOSType_GetRecommendedTFReset(p, aRecommendedTFReset) ((p)->lpVtbl->GetRecommendedTFReset(p, aRecommendedTFReset))
10632 #    define IGuestOSType_get_RecommendedX2APIC(p, aRecommendedX2APIC) ((p)->lpVtbl->GetRecommendedX2APIC(p, aRecommendedX2APIC))
10633 #    define IGuestOSType_GetRecommendedX2APIC(p, aRecommendedX2APIC) ((p)->lpVtbl->GetRecommendedX2APIC(p, aRecommendedX2APIC))
10634 #   endif /* VBOX_WITH_GLUE */
10635 
10636 interface IGuestOSType
10637 {
10638 #   ifndef VBOX_WITH_GLUE
10639     struct IGuestOSType_vtbl *vtbl;
10640 #   else /* VBOX_WITH_GLUE */
10641     CONST_VTBL struct IGuestOSTypeVtbl *lpVtbl;
10642 #   endif /* VBOX_WITH_GLUE */
10643 };
10644 /* End of struct IGuestOSType declaration */
10645 
10646 
10647 /* Start of struct IAdditionsFacility declaration */
10648 #   define IADDITIONSFACILITY_IID_STR "f2f7fae4-4a06-81fc-a916-78b2da1fa0e5"
10649 #   define IADDITIONSFACILITY_IID { \
10650     0xf2f7fae4, 0x4a06, 0x81fc, \
10651     { 0xa9, 0x16, 0x78, 0xb2, 0xda, 0x1f, 0xa0, 0xe5 } \
10652 }
10653 /* COM compatibility */
10654 VBOX_EXTERN_CONST(nsIID, IID_IAdditionsFacility);
10655 #   ifndef VBOX_WITH_GLUE
10656 struct IAdditionsFacility_vtbl
10657 {
10658     struct nsISupports_vtbl nsisupports;
10659 
10660     nsresult (*GetClassType)(IAdditionsFacility *pThis, PRUint32 *classType);
10661 
10662     nsresult (*GetLastUpdated)(IAdditionsFacility *pThis, PRInt64 *lastUpdated);
10663 
10664     nsresult (*GetName)(IAdditionsFacility *pThis, PRUnichar * *name);
10665 
10666     nsresult (*GetStatus)(IAdditionsFacility *pThis, PRUint32 *status);
10667 
10668     nsresult (*GetType)(IAdditionsFacility *pThis, PRUint32 *type);
10669 
10670     nsresult (*GetInternalAndReservedAttribute1IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
10671 
10672     nsresult (*GetInternalAndReservedAttribute2IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
10673 
10674 };
10675 #   else /* VBOX_WITH_GLUE */
10676 struct IAdditionsFacilityVtbl
10677 {
10678     nsresult (*QueryInterface)(IAdditionsFacility *pThis, const nsID *iid, void **resultp);
10679     nsrefcnt (*AddRef)(IAdditionsFacility *pThis);
10680     nsrefcnt (*Release)(IAdditionsFacility *pThis);
10681     nsresult (*GetClassType)(IAdditionsFacility *pThis, PRUint32 *classType);
10682 
10683     nsresult (*GetLastUpdated)(IAdditionsFacility *pThis, PRInt64 *lastUpdated);
10684 
10685     nsresult (*GetName)(IAdditionsFacility *pThis, PRUnichar * *name);
10686 
10687     nsresult (*GetStatus)(IAdditionsFacility *pThis, PRUint32 *status);
10688 
10689     nsresult (*GetType)(IAdditionsFacility *pThis, PRUint32 *type);
10690 
10691     nsresult (*GetInternalAndReservedAttribute1IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
10692 
10693     nsresult (*GetInternalAndReservedAttribute2IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
10694 
10695 };
10696 #    define IAdditionsFacility_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10697 #    define IAdditionsFacility_AddRef(p) ((p)->lpVtbl->AddRef(p))
10698 #    define IAdditionsFacility_Release(p) ((p)->lpVtbl->Release(p))
10699 #    define IAdditionsFacility_get_ClassType(p, aClassType) ((p)->lpVtbl->GetClassType(p, aClassType))
10700 #    define IAdditionsFacility_GetClassType(p, aClassType) ((p)->lpVtbl->GetClassType(p, aClassType))
10701 #    define IAdditionsFacility_get_LastUpdated(p, aLastUpdated) ((p)->lpVtbl->GetLastUpdated(p, aLastUpdated))
10702 #    define IAdditionsFacility_GetLastUpdated(p, aLastUpdated) ((p)->lpVtbl->GetLastUpdated(p, aLastUpdated))
10703 #    define IAdditionsFacility_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
10704 #    define IAdditionsFacility_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
10705 #    define IAdditionsFacility_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
10706 #    define IAdditionsFacility_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
10707 #    define IAdditionsFacility_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
10708 #    define IAdditionsFacility_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
10709 #   endif /* VBOX_WITH_GLUE */
10710 
10711 interface IAdditionsFacility
10712 {
10713 #   ifndef VBOX_WITH_GLUE
10714     struct IAdditionsFacility_vtbl *vtbl;
10715 #   else /* VBOX_WITH_GLUE */
10716     CONST_VTBL struct IAdditionsFacilityVtbl *lpVtbl;
10717 #   endif /* VBOX_WITH_GLUE */
10718 };
10719 /* End of struct IAdditionsFacility declaration */
10720 
10721 
10722 /* Start of struct IDnDBase declaration */
10723 #   define IDNDBASE_IID_STR "4132147b-42f8-cd96-7570-6a8800e3342c"
10724 #   define IDNDBASE_IID { \
10725     0x4132147b, 0x42f8, 0xcd96, \
10726     { 0x75, 0x70, 0x6a, 0x88, 0x00, 0xe3, 0x34, 0x2c } \
10727 }
10728 /* COM compatibility */
10729 VBOX_EXTERN_CONST(nsIID, IID_IDnDBase);
10730 #   ifndef VBOX_WITH_GLUE
10731 struct IDnDBase_vtbl
10732 {
10733     struct nsISupports_vtbl nsisupports;
10734 
10735     nsresult (*GetFormats)(IDnDBase *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
10736 
10737     nsresult (*GetProtocolVersion)(IDnDBase *pThis, PRUint32 *protocolVersion);
10738 
10739     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
10740 
10741     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
10742 
10743     nsresult (*IsFormatSupported)(
10744         IDnDBase *pThis,
10745         PRUnichar * format,
10746         PRBool * supported
10747     );
10748 
10749     nsresult (*AddFormats)(
10750         IDnDBase *pThis,
10751         PRUint32 formatsSize,
10752         PRUnichar ** formats
10753     );
10754 
10755     nsresult (*RemoveFormats)(
10756         IDnDBase *pThis,
10757         PRUint32 formatsSize,
10758         PRUnichar ** formats
10759     );
10760 
10761     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDBase *pThis);
10762 
10763 };
10764 #   else /* VBOX_WITH_GLUE */
10765 struct IDnDBaseVtbl
10766 {
10767     nsresult (*QueryInterface)(IDnDBase *pThis, const nsID *iid, void **resultp);
10768     nsrefcnt (*AddRef)(IDnDBase *pThis);
10769     nsrefcnt (*Release)(IDnDBase *pThis);
10770     nsresult (*GetFormats)(IDnDBase *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
10771 
10772     nsresult (*GetProtocolVersion)(IDnDBase *pThis, PRUint32 *protocolVersion);
10773 
10774     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
10775 
10776     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
10777 
10778     nsresult (*IsFormatSupported)(
10779         IDnDBase *pThis,
10780         PRUnichar * format,
10781         PRBool * supported
10782     );
10783 
10784     nsresult (*AddFormats)(
10785         IDnDBase *pThis,
10786         PRUint32 formatsSize,
10787         PRUnichar ** formats
10788     );
10789 
10790     nsresult (*RemoveFormats)(
10791         IDnDBase *pThis,
10792         PRUint32 formatsSize,
10793         PRUnichar ** formats
10794     );
10795 
10796     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDBase *pThis);
10797 
10798 };
10799 #    define IDnDBase_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10800 #    define IDnDBase_AddRef(p) ((p)->lpVtbl->AddRef(p))
10801 #    define IDnDBase_Release(p) ((p)->lpVtbl->Release(p))
10802 #    define IDnDBase_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
10803 #    define IDnDBase_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
10804 #    define IDnDBase_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
10805 #    define IDnDBase_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
10806 #    define IDnDBase_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
10807 #    define IDnDBase_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
10808 #    define IDnDBase_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
10809 #   endif /* VBOX_WITH_GLUE */
10810 
10811 interface IDnDBase
10812 {
10813 #   ifndef VBOX_WITH_GLUE
10814     struct IDnDBase_vtbl *vtbl;
10815 #   else /* VBOX_WITH_GLUE */
10816     CONST_VTBL struct IDnDBaseVtbl *lpVtbl;
10817 #   endif /* VBOX_WITH_GLUE */
10818 };
10819 /* End of struct IDnDBase declaration */
10820 
10821 
10822 /* Start of struct IDnDSource declaration */
10823 #   define IDNDSOURCE_IID_STR "d23a9ca3-42da-c94b-8aec-21968e08355d"
10824 #   define IDNDSOURCE_IID { \
10825     0xd23a9ca3, 0x42da, 0xc94b, \
10826     { 0x8a, 0xec, 0x21, 0x96, 0x8e, 0x08, 0x35, 0x5d } \
10827 }
10828 /* COM compatibility */
10829 VBOX_EXTERN_CONST(nsIID, IID_IDnDSource);
10830 #   ifndef VBOX_WITH_GLUE
10831 struct IDnDSource_vtbl
10832 {
10833     struct IDnDBase_vtbl idndbase;
10834 
10835     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
10836 
10837     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
10838 
10839     nsresult (*DragIsPending)(
10840         IDnDSource *pThis,
10841         PRUint32 screenId,
10842         PRUint32 *formatsSize,
10843         PRUnichar *** formats,
10844         PRUint32 *allowedActionsSize,
10845         PRUint32** allowedActions,
10846         PRUint32 * defaultAction
10847     );
10848 
10849     nsresult (*Drop)(
10850         IDnDSource *pThis,
10851         PRUnichar * format,
10852         PRUint32 action,
10853         IProgress * * progress
10854     );
10855 
10856     nsresult (*ReceiveData)(
10857         IDnDSource *pThis,
10858         PRUint32 *dataSize,
10859         PRUint8** data
10860     );
10861 
10862     nsresult (*InternalAndReservedMethod1IDnDSource)(IDnDSource *pThis);
10863 
10864 };
10865 #   else /* VBOX_WITH_GLUE */
10866 struct IDnDSourceVtbl
10867 {
10868     nsresult (*QueryInterface)(IDnDSource *pThis, const nsID *iid, void **resultp);
10869     nsrefcnt (*AddRef)(IDnDSource *pThis);
10870     nsrefcnt (*Release)(IDnDSource *pThis);
10871     nsresult (*GetFormats)(IDnDSource *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
10872 
10873     nsresult (*GetProtocolVersion)(IDnDSource *pThis, PRUint32 *protocolVersion);
10874 
10875     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDSource *pThis, PRUint32 *reserved);
10876 
10877     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDSource *pThis, PRUint32 *reserved);
10878 
10879     nsresult (*IsFormatSupported)(
10880         IDnDSource *pThis,
10881         PRUnichar * format,
10882         PRBool * supported
10883     );
10884 
10885     nsresult (*AddFormats)(
10886         IDnDSource *pThis,
10887         PRUint32 formatsSize,
10888         PRUnichar ** formats
10889     );
10890 
10891     nsresult (*RemoveFormats)(
10892         IDnDSource *pThis,
10893         PRUint32 formatsSize,
10894         PRUnichar ** formats
10895     );
10896 
10897     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDSource *pThis);
10898 
10899     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
10900 
10901     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
10902 
10903     nsresult (*DragIsPending)(
10904         IDnDSource *pThis,
10905         PRUint32 screenId,
10906         PRUint32 *formatsSize,
10907         PRUnichar *** formats,
10908         PRUint32 *allowedActionsSize,
10909         PRUint32** allowedActions,
10910         PRUint32 * defaultAction
10911     );
10912 
10913     nsresult (*Drop)(
10914         IDnDSource *pThis,
10915         PRUnichar * format,
10916         PRUint32 action,
10917         IProgress * * progress
10918     );
10919 
10920     nsresult (*ReceiveData)(
10921         IDnDSource *pThis,
10922         PRUint32 *dataSize,
10923         PRUint8** data
10924     );
10925 
10926     nsresult (*InternalAndReservedMethod1IDnDSource)(IDnDSource *pThis);
10927 
10928 };
10929 #    define IDnDSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10930 #    define IDnDSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
10931 #    define IDnDSource_Release(p) ((p)->lpVtbl->Release(p))
10932 #    define IDnDSource_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
10933 #    define IDnDSource_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
10934 #    define IDnDSource_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
10935 #    define IDnDSource_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
10936 #    define IDnDSource_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
10937 #    define IDnDSource_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
10938 #    define IDnDSource_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
10939 #    define IDnDSource_DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction) ((p)->lpVtbl->DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction))
10940 #    define IDnDSource_Drop(p, aFormat, aAction, aProgress) ((p)->lpVtbl->Drop(p, aFormat, aAction, aProgress))
10941 #    define IDnDSource_ReceiveData(p, aData) ((p)->lpVtbl->ReceiveData(p, aData))
10942 #   endif /* VBOX_WITH_GLUE */
10943 
10944 interface IDnDSource
10945 {
10946 #   ifndef VBOX_WITH_GLUE
10947     struct IDnDSource_vtbl *vtbl;
10948 #   else /* VBOX_WITH_GLUE */
10949     CONST_VTBL struct IDnDSourceVtbl *lpVtbl;
10950 #   endif /* VBOX_WITH_GLUE */
10951 };
10952 /* End of struct IDnDSource declaration */
10953 
10954 
10955 /* Start of struct IGuestDnDSource declaration */
10956 #   define IGUESTDNDSOURCE_IID_STR "dedfb5d9-4c1b-edf7-fdf3-c1be6827dc28"
10957 #   define IGUESTDNDSOURCE_IID { \
10958     0xdedfb5d9, 0x4c1b, 0xedf7, \
10959     { 0xfd, 0xf3, 0xc1, 0xbe, 0x68, 0x27, 0xdc, 0x28 } \
10960 }
10961 /* COM compatibility */
10962 VBOX_EXTERN_CONST(nsIID, IID_IGuestDnDSource);
10963 #   ifndef VBOX_WITH_GLUE
10964 struct IGuestDnDSource_vtbl
10965 {
10966     struct IDnDSource_vtbl idndsource;
10967 
10968     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDSource *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
10969 
10970 };
10971 #   else /* VBOX_WITH_GLUE */
10972 struct IGuestDnDSourceVtbl
10973 {
10974     nsresult (*QueryInterface)(IGuestDnDSource *pThis, const nsID *iid, void **resultp);
10975     nsrefcnt (*AddRef)(IGuestDnDSource *pThis);
10976     nsrefcnt (*Release)(IGuestDnDSource *pThis);
10977     nsresult (*GetFormats)(IGuestDnDSource *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
10978 
10979     nsresult (*GetProtocolVersion)(IGuestDnDSource *pThis, PRUint32 *protocolVersion);
10980 
10981     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IGuestDnDSource *pThis, PRUint32 *reserved);
10982 
10983     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IGuestDnDSource *pThis, PRUint32 *reserved);
10984 
10985     nsresult (*IsFormatSupported)(
10986         IGuestDnDSource *pThis,
10987         PRUnichar * format,
10988         PRBool * supported
10989     );
10990 
10991     nsresult (*AddFormats)(
10992         IGuestDnDSource *pThis,
10993         PRUint32 formatsSize,
10994         PRUnichar ** formats
10995     );
10996 
10997     nsresult (*RemoveFormats)(
10998         IGuestDnDSource *pThis,
10999         PRUint32 formatsSize,
11000         PRUnichar ** formats
11001     );
11002 
11003     nsresult (*InternalAndReservedMethod1IDnDBase)(IGuestDnDSource *pThis);
11004 
11005     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IGuestDnDSource *pThis, PRUint32 *reserved);
11006 
11007     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IGuestDnDSource *pThis, PRUint32 *reserved);
11008 
11009     nsresult (*DragIsPending)(
11010         IGuestDnDSource *pThis,
11011         PRUint32 screenId,
11012         PRUint32 *formatsSize,
11013         PRUnichar *** formats,
11014         PRUint32 *allowedActionsSize,
11015         PRUint32** allowedActions,
11016         PRUint32 * defaultAction
11017     );
11018 
11019     nsresult (*Drop)(
11020         IGuestDnDSource *pThis,
11021         PRUnichar * format,
11022         PRUint32 action,
11023         IProgress * * progress
11024     );
11025 
11026     nsresult (*ReceiveData)(
11027         IGuestDnDSource *pThis,
11028         PRUint32 *dataSize,
11029         PRUint8** data
11030     );
11031 
11032     nsresult (*InternalAndReservedMethod1IDnDSource)(IGuestDnDSource *pThis);
11033 
11034     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDSource *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
11035 
11036 };
11037 #    define IGuestDnDSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11038 #    define IGuestDnDSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
11039 #    define IGuestDnDSource_Release(p) ((p)->lpVtbl->Release(p))
11040 #    define IGuestDnDSource_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11041 #    define IGuestDnDSource_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11042 #    define IGuestDnDSource_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11043 #    define IGuestDnDSource_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11044 #    define IGuestDnDSource_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11045 #    define IGuestDnDSource_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11046 #    define IGuestDnDSource_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11047 #    define IGuestDnDSource_DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction) ((p)->lpVtbl->DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction))
11048 #    define IGuestDnDSource_Drop(p, aFormat, aAction, aProgress) ((p)->lpVtbl->Drop(p, aFormat, aAction, aProgress))
11049 #    define IGuestDnDSource_ReceiveData(p, aData) ((p)->lpVtbl->ReceiveData(p, aData))
11050 #    define IGuestDnDSource_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11051 #    define IGuestDnDSource_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11052 #   endif /* VBOX_WITH_GLUE */
11053 
11054 interface IGuestDnDSource
11055 {
11056 #   ifndef VBOX_WITH_GLUE
11057     struct IGuestDnDSource_vtbl *vtbl;
11058 #   else /* VBOX_WITH_GLUE */
11059     CONST_VTBL struct IGuestDnDSourceVtbl *lpVtbl;
11060 #   endif /* VBOX_WITH_GLUE */
11061 };
11062 /* End of struct IGuestDnDSource declaration */
11063 
11064 
11065 /* Start of struct IDnDTarget declaration */
11066 #   define IDNDTARGET_IID_STR "ff5befc3-4ba3-7903-2aa4-43988ba11554"
11067 #   define IDNDTARGET_IID { \
11068     0xff5befc3, 0x4ba3, 0x7903, \
11069     { 0x2a, 0xa4, 0x43, 0x98, 0x8b, 0xa1, 0x15, 0x54 } \
11070 }
11071 /* COM compatibility */
11072 VBOX_EXTERN_CONST(nsIID, IID_IDnDTarget);
11073 #   ifndef VBOX_WITH_GLUE
11074 struct IDnDTarget_vtbl
11075 {
11076     struct IDnDBase_vtbl idndbase;
11077 
11078     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11079 
11080     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11081 
11082     nsresult (*Enter)(
11083         IDnDTarget *pThis,
11084         PRUint32 screenId,
11085         PRUint32 y,
11086         PRUint32 x,
11087         PRUint32 defaultAction,
11088         PRUint32 allowedActionsSize,
11089         PRUint32* allowedActions,
11090         PRUint32 formatsSize,
11091         PRUnichar ** formats,
11092         PRUint32 * resultAction
11093     );
11094 
11095     nsresult (*Move)(
11096         IDnDTarget *pThis,
11097         PRUint32 screenId,
11098         PRUint32 x,
11099         PRUint32 y,
11100         PRUint32 defaultAction,
11101         PRUint32 allowedActionsSize,
11102         PRUint32* allowedActions,
11103         PRUint32 formatsSize,
11104         PRUnichar ** formats,
11105         PRUint32 * resultAction
11106     );
11107 
11108     nsresult (*Leave)(
11109         IDnDTarget *pThis,
11110         PRUint32 screenId
11111     );
11112 
11113     nsresult (*Drop)(
11114         IDnDTarget *pThis,
11115         PRUint32 screenId,
11116         PRUint32 x,
11117         PRUint32 y,
11118         PRUint32 defaultAction,
11119         PRUint32 allowedActionsSize,
11120         PRUint32* allowedActions,
11121         PRUint32 formatsSize,
11122         PRUnichar ** formats,
11123         PRUnichar * * format,
11124         PRUint32 * resultAction
11125     );
11126 
11127     nsresult (*SendData)(
11128         IDnDTarget *pThis,
11129         PRUint32 screenId,
11130         PRUnichar * format,
11131         PRUint32 dataSize,
11132         PRUint8* data,
11133         IProgress * * progress
11134     );
11135 
11136     nsresult (*Cancel)(
11137         IDnDTarget *pThis,
11138         PRBool * veto
11139     );
11140 
11141     nsresult (*InternalAndReservedMethod1IDnDTarget)(IDnDTarget *pThis);
11142 
11143 };
11144 #   else /* VBOX_WITH_GLUE */
11145 struct IDnDTargetVtbl
11146 {
11147     nsresult (*QueryInterface)(IDnDTarget *pThis, const nsID *iid, void **resultp);
11148     nsrefcnt (*AddRef)(IDnDTarget *pThis);
11149     nsrefcnt (*Release)(IDnDTarget *pThis);
11150     nsresult (*GetFormats)(IDnDTarget *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11151 
11152     nsresult (*GetProtocolVersion)(IDnDTarget *pThis, PRUint32 *protocolVersion);
11153 
11154     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDTarget *pThis, PRUint32 *reserved);
11155 
11156     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDTarget *pThis, PRUint32 *reserved);
11157 
11158     nsresult (*IsFormatSupported)(
11159         IDnDTarget *pThis,
11160         PRUnichar * format,
11161         PRBool * supported
11162     );
11163 
11164     nsresult (*AddFormats)(
11165         IDnDTarget *pThis,
11166         PRUint32 formatsSize,
11167         PRUnichar ** formats
11168     );
11169 
11170     nsresult (*RemoveFormats)(
11171         IDnDTarget *pThis,
11172         PRUint32 formatsSize,
11173         PRUnichar ** formats
11174     );
11175 
11176     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDTarget *pThis);
11177 
11178     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11179 
11180     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
11181 
11182     nsresult (*Enter)(
11183         IDnDTarget *pThis,
11184         PRUint32 screenId,
11185         PRUint32 y,
11186         PRUint32 x,
11187         PRUint32 defaultAction,
11188         PRUint32 allowedActionsSize,
11189         PRUint32* allowedActions,
11190         PRUint32 formatsSize,
11191         PRUnichar ** formats,
11192         PRUint32 * resultAction
11193     );
11194 
11195     nsresult (*Move)(
11196         IDnDTarget *pThis,
11197         PRUint32 screenId,
11198         PRUint32 x,
11199         PRUint32 y,
11200         PRUint32 defaultAction,
11201         PRUint32 allowedActionsSize,
11202         PRUint32* allowedActions,
11203         PRUint32 formatsSize,
11204         PRUnichar ** formats,
11205         PRUint32 * resultAction
11206     );
11207 
11208     nsresult (*Leave)(
11209         IDnDTarget *pThis,
11210         PRUint32 screenId
11211     );
11212 
11213     nsresult (*Drop)(
11214         IDnDTarget *pThis,
11215         PRUint32 screenId,
11216         PRUint32 x,
11217         PRUint32 y,
11218         PRUint32 defaultAction,
11219         PRUint32 allowedActionsSize,
11220         PRUint32* allowedActions,
11221         PRUint32 formatsSize,
11222         PRUnichar ** formats,
11223         PRUnichar * * format,
11224         PRUint32 * resultAction
11225     );
11226 
11227     nsresult (*SendData)(
11228         IDnDTarget *pThis,
11229         PRUint32 screenId,
11230         PRUnichar * format,
11231         PRUint32 dataSize,
11232         PRUint8* data,
11233         IProgress * * progress
11234     );
11235 
11236     nsresult (*Cancel)(
11237         IDnDTarget *pThis,
11238         PRBool * veto
11239     );
11240 
11241     nsresult (*InternalAndReservedMethod1IDnDTarget)(IDnDTarget *pThis);
11242 
11243 };
11244 #    define IDnDTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11245 #    define IDnDTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
11246 #    define IDnDTarget_Release(p) ((p)->lpVtbl->Release(p))
11247 #    define IDnDTarget_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11248 #    define IDnDTarget_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11249 #    define IDnDTarget_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11250 #    define IDnDTarget_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11251 #    define IDnDTarget_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11252 #    define IDnDTarget_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11253 #    define IDnDTarget_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11254 #    define IDnDTarget_Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11255 #    define IDnDTarget_Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11256 #    define IDnDTarget_Leave(p, aScreenId) ((p)->lpVtbl->Leave(p, aScreenId))
11257 #    define IDnDTarget_Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction) ((p)->lpVtbl->Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction))
11258 #    define IDnDTarget_SendData(p, aScreenId, aFormat, aData, aProgress) ((p)->lpVtbl->SendData(p, aScreenId, aFormat, aData, aProgress))
11259 #    define IDnDTarget_Cancel(p, aVeto) ((p)->lpVtbl->Cancel(p, aVeto))
11260 #   endif /* VBOX_WITH_GLUE */
11261 
11262 interface IDnDTarget
11263 {
11264 #   ifndef VBOX_WITH_GLUE
11265     struct IDnDTarget_vtbl *vtbl;
11266 #   else /* VBOX_WITH_GLUE */
11267     CONST_VTBL struct IDnDTargetVtbl *lpVtbl;
11268 #   endif /* VBOX_WITH_GLUE */
11269 };
11270 /* End of struct IDnDTarget declaration */
11271 
11272 
11273 /* Start of struct IGuestDnDTarget declaration */
11274 #   define IGUESTDNDTARGET_IID_STR "50ce4b51-0ff7-46b7-a138-3c6e5ac946b4"
11275 #   define IGUESTDNDTARGET_IID { \
11276     0x50ce4b51, 0x0ff7, 0x46b7, \
11277     { 0xa1, 0x38, 0x3c, 0x6e, 0x5a, 0xc9, 0x46, 0xb4 } \
11278 }
11279 /* COM compatibility */
11280 VBOX_EXTERN_CONST(nsIID, IID_IGuestDnDTarget);
11281 #   ifndef VBOX_WITH_GLUE
11282 struct IGuestDnDTarget_vtbl
11283 {
11284     struct IDnDTarget_vtbl idndtarget;
11285 
11286     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDTarget *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
11287 
11288 };
11289 #   else /* VBOX_WITH_GLUE */
11290 struct IGuestDnDTargetVtbl
11291 {
11292     nsresult (*QueryInterface)(IGuestDnDTarget *pThis, const nsID *iid, void **resultp);
11293     nsrefcnt (*AddRef)(IGuestDnDTarget *pThis);
11294     nsrefcnt (*Release)(IGuestDnDTarget *pThis);
11295     nsresult (*GetFormats)(IGuestDnDTarget *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
11296 
11297     nsresult (*GetProtocolVersion)(IGuestDnDTarget *pThis, PRUint32 *protocolVersion);
11298 
11299     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11300 
11301     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11302 
11303     nsresult (*IsFormatSupported)(
11304         IGuestDnDTarget *pThis,
11305         PRUnichar * format,
11306         PRBool * supported
11307     );
11308 
11309     nsresult (*AddFormats)(
11310         IGuestDnDTarget *pThis,
11311         PRUint32 formatsSize,
11312         PRUnichar ** formats
11313     );
11314 
11315     nsresult (*RemoveFormats)(
11316         IGuestDnDTarget *pThis,
11317         PRUint32 formatsSize,
11318         PRUnichar ** formats
11319     );
11320 
11321     nsresult (*InternalAndReservedMethod1IDnDBase)(IGuestDnDTarget *pThis);
11322 
11323     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11324 
11325     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IGuestDnDTarget *pThis, PRUint32 *reserved);
11326 
11327     nsresult (*Enter)(
11328         IGuestDnDTarget *pThis,
11329         PRUint32 screenId,
11330         PRUint32 y,
11331         PRUint32 x,
11332         PRUint32 defaultAction,
11333         PRUint32 allowedActionsSize,
11334         PRUint32* allowedActions,
11335         PRUint32 formatsSize,
11336         PRUnichar ** formats,
11337         PRUint32 * resultAction
11338     );
11339 
11340     nsresult (*Move)(
11341         IGuestDnDTarget *pThis,
11342         PRUint32 screenId,
11343         PRUint32 x,
11344         PRUint32 y,
11345         PRUint32 defaultAction,
11346         PRUint32 allowedActionsSize,
11347         PRUint32* allowedActions,
11348         PRUint32 formatsSize,
11349         PRUnichar ** formats,
11350         PRUint32 * resultAction
11351     );
11352 
11353     nsresult (*Leave)(
11354         IGuestDnDTarget *pThis,
11355         PRUint32 screenId
11356     );
11357 
11358     nsresult (*Drop)(
11359         IGuestDnDTarget *pThis,
11360         PRUint32 screenId,
11361         PRUint32 x,
11362         PRUint32 y,
11363         PRUint32 defaultAction,
11364         PRUint32 allowedActionsSize,
11365         PRUint32* allowedActions,
11366         PRUint32 formatsSize,
11367         PRUnichar ** formats,
11368         PRUnichar * * format,
11369         PRUint32 * resultAction
11370     );
11371 
11372     nsresult (*SendData)(
11373         IGuestDnDTarget *pThis,
11374         PRUint32 screenId,
11375         PRUnichar * format,
11376         PRUint32 dataSize,
11377         PRUint8* data,
11378         IProgress * * progress
11379     );
11380 
11381     nsresult (*Cancel)(
11382         IGuestDnDTarget *pThis,
11383         PRBool * veto
11384     );
11385 
11386     nsresult (*InternalAndReservedMethod1IDnDTarget)(IGuestDnDTarget *pThis);
11387 
11388     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDTarget *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
11389 
11390 };
11391 #    define IGuestDnDTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11392 #    define IGuestDnDTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
11393 #    define IGuestDnDTarget_Release(p) ((p)->lpVtbl->Release(p))
11394 #    define IGuestDnDTarget_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11395 #    define IGuestDnDTarget_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
11396 #    define IGuestDnDTarget_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11397 #    define IGuestDnDTarget_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
11398 #    define IGuestDnDTarget_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
11399 #    define IGuestDnDTarget_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
11400 #    define IGuestDnDTarget_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
11401 #    define IGuestDnDTarget_Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11402 #    define IGuestDnDTarget_Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction))
11403 #    define IGuestDnDTarget_Leave(p, aScreenId) ((p)->lpVtbl->Leave(p, aScreenId))
11404 #    define IGuestDnDTarget_Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction) ((p)->lpVtbl->Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction))
11405 #    define IGuestDnDTarget_SendData(p, aScreenId, aFormat, aData, aProgress) ((p)->lpVtbl->SendData(p, aScreenId, aFormat, aData, aProgress))
11406 #    define IGuestDnDTarget_Cancel(p, aVeto) ((p)->lpVtbl->Cancel(p, aVeto))
11407 #    define IGuestDnDTarget_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11408 #    define IGuestDnDTarget_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
11409 #   endif /* VBOX_WITH_GLUE */
11410 
11411 interface IGuestDnDTarget
11412 {
11413 #   ifndef VBOX_WITH_GLUE
11414     struct IGuestDnDTarget_vtbl *vtbl;
11415 #   else /* VBOX_WITH_GLUE */
11416     CONST_VTBL struct IGuestDnDTargetVtbl *lpVtbl;
11417 #   endif /* VBOX_WITH_GLUE */
11418 };
11419 /* End of struct IGuestDnDTarget declaration */
11420 
11421 
11422 /* Start of struct IGuestSession declaration */
11423 #   define IGUESTSESSION_IID_STR "486fd828-4c6b-239b-a846-c4bb69e41038"
11424 #   define IGUESTSESSION_IID { \
11425     0x486fd828, 0x4c6b, 0x239b, \
11426     { 0xa8, 0x46, 0xc4, 0xbb, 0x69, 0xe4, 0x10, 0x38 } \
11427 }
11428 /* COM compatibility */
11429 VBOX_EXTERN_CONST(nsIID, IID_IGuestSession);
11430 #   ifndef VBOX_WITH_GLUE
11431 struct IGuestSession_vtbl
11432 {
11433     struct nsISupports_vtbl nsisupports;
11434 
11435     nsresult (*GetUser)(IGuestSession *pThis, PRUnichar * *user);
11436 
11437     nsresult (*GetDomain)(IGuestSession *pThis, PRUnichar * *domain);
11438 
11439     nsresult (*GetName)(IGuestSession *pThis, PRUnichar * *name);
11440 
11441     nsresult (*GetId)(IGuestSession *pThis, PRUint32 *id);
11442 
11443     nsresult (*GetTimeout)(IGuestSession *pThis, PRUint32 *timeout);
11444     nsresult (*SetTimeout)(IGuestSession *pThis, PRUint32 timeout);
11445 
11446     nsresult (*GetProtocolVersion)(IGuestSession *pThis, PRUint32 *protocolVersion);
11447 
11448     nsresult (*GetStatus)(IGuestSession *pThis, PRUint32 *status);
11449 
11450     nsresult (*GetEnvironmentChanges)(IGuestSession *pThis, PRUint32 *environmentChangesSize, PRUnichar * **environmentChanges);
11451     nsresult (*SetEnvironmentChanges)(IGuestSession *pThis, PRUint32 environmentChangesSize, PRUnichar * *environmentChanges);
11452 
11453     nsresult (*GetEnvironmentBase)(IGuestSession *pThis, PRUint32 *environmentBaseSize, PRUnichar * **environmentBase);
11454 
11455     nsresult (*GetProcesses)(IGuestSession *pThis, PRUint32 *processesSize, IGuestProcess * **processes);
11456 
11457     nsresult (*GetPathStyle)(IGuestSession *pThis, PRUint32 *pathStyle);
11458 
11459     nsresult (*GetCurrentDirectory)(IGuestSession *pThis, PRUnichar * *currentDirectory);
11460     nsresult (*SetCurrentDirectory)(IGuestSession *pThis, PRUnichar * currentDirectory);
11461 
11462     nsresult (*GetDirectories)(IGuestSession *pThis, PRUint32 *directoriesSize, IGuestDirectory * **directories);
11463 
11464     nsresult (*GetFiles)(IGuestSession *pThis, PRUint32 *filesSize, IGuestFile * **files);
11465 
11466     nsresult (*GetEventSource)(IGuestSession *pThis, IEventSource * *eventSource);
11467 
11468     nsresult (*GetInternalAndReservedAttribute1IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11469 
11470     nsresult (*GetInternalAndReservedAttribute2IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11471 
11472     nsresult (*GetInternalAndReservedAttribute3IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11473 
11474     nsresult (*GetInternalAndReservedAttribute4IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11475 
11476     nsresult (*GetInternalAndReservedAttribute5IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11477 
11478     nsresult (*GetInternalAndReservedAttribute6IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11479 
11480     nsresult (*GetInternalAndReservedAttribute7IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11481 
11482     nsresult (*GetInternalAndReservedAttribute8IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11483 
11484     nsresult (*Close)(IGuestSession *pThis );
11485 
11486     nsresult (*DirectoryCopy)(
11487         IGuestSession *pThis,
11488         PRUnichar * source,
11489         PRUnichar * destination,
11490         PRUint32 flagsSize,
11491         PRUint32* flags,
11492         IProgress * * progress
11493     );
11494 
11495     nsresult (*DirectoryCopyFromGuest)(
11496         IGuestSession *pThis,
11497         PRUnichar * source,
11498         PRUnichar * destination,
11499         PRUint32 flagsSize,
11500         PRUint32* flags,
11501         IProgress * * progress
11502     );
11503 
11504     nsresult (*DirectoryCopyToGuest)(
11505         IGuestSession *pThis,
11506         PRUnichar * source,
11507         PRUnichar * destination,
11508         PRUint32 flagsSize,
11509         PRUint32* flags,
11510         IProgress * * progress
11511     );
11512 
11513     nsresult (*DirectoryCreate)(
11514         IGuestSession *pThis,
11515         PRUnichar * path,
11516         PRUint32 mode,
11517         PRUint32 flagsSize,
11518         PRUint32* flags
11519     );
11520 
11521     nsresult (*DirectoryCreateTemp)(
11522         IGuestSession *pThis,
11523         PRUnichar * templateName,
11524         PRUint32 mode,
11525         PRUnichar * path,
11526         PRBool secure,
11527         PRUnichar * * directory
11528     );
11529 
11530     nsresult (*DirectoryExists)(
11531         IGuestSession *pThis,
11532         PRUnichar * path,
11533         PRBool followSymlinks,
11534         PRBool * exists
11535     );
11536 
11537     nsresult (*DirectoryOpen)(
11538         IGuestSession *pThis,
11539         PRUnichar * path,
11540         PRUnichar * filter,
11541         PRUint32 flagsSize,
11542         PRUint32* flags,
11543         IGuestDirectory * * directory
11544     );
11545 
11546     nsresult (*DirectoryRemove)(
11547         IGuestSession *pThis,
11548         PRUnichar * path
11549     );
11550 
11551     nsresult (*DirectoryRemoveRecursive)(
11552         IGuestSession *pThis,
11553         PRUnichar * path,
11554         PRUint32 flagsSize,
11555         PRUint32* flags,
11556         IProgress * * progress
11557     );
11558 
11559     nsresult (*EnvironmentScheduleSet)(
11560         IGuestSession *pThis,
11561         PRUnichar * name,
11562         PRUnichar * value
11563     );
11564 
11565     nsresult (*EnvironmentScheduleUnset)(
11566         IGuestSession *pThis,
11567         PRUnichar * name
11568     );
11569 
11570     nsresult (*EnvironmentGetBaseVariable)(
11571         IGuestSession *pThis,
11572         PRUnichar * name,
11573         PRUnichar * * value
11574     );
11575 
11576     nsresult (*EnvironmentDoesBaseVariableExist)(
11577         IGuestSession *pThis,
11578         PRUnichar * name,
11579         PRBool * exists
11580     );
11581 
11582     nsresult (*FileCopy)(
11583         IGuestSession *pThis,
11584         PRUnichar * source,
11585         PRUnichar * destination,
11586         PRUint32 flagsSize,
11587         PRUint32* flags,
11588         IProgress * * progress
11589     );
11590 
11591     nsresult (*FileCopyFromGuest)(
11592         IGuestSession *pThis,
11593         PRUnichar * source,
11594         PRUnichar * destination,
11595         PRUint32 flagsSize,
11596         PRUint32* flags,
11597         IProgress * * progress
11598     );
11599 
11600     nsresult (*FileCopyToGuest)(
11601         IGuestSession *pThis,
11602         PRUnichar * source,
11603         PRUnichar * destination,
11604         PRUint32 flagsSize,
11605         PRUint32* flags,
11606         IProgress * * progress
11607     );
11608 
11609     nsresult (*FileCreateTemp)(
11610         IGuestSession *pThis,
11611         PRUnichar * templateName,
11612         PRUint32 mode,
11613         PRUnichar * path,
11614         PRBool secure,
11615         IGuestFile * * file
11616     );
11617 
11618     nsresult (*FileExists)(
11619         IGuestSession *pThis,
11620         PRUnichar * path,
11621         PRBool followSymlinks,
11622         PRBool * exists
11623     );
11624 
11625     nsresult (*FileOpen)(
11626         IGuestSession *pThis,
11627         PRUnichar * path,
11628         PRUint32 accessMode,
11629         PRUint32 openAction,
11630         PRUint32 creationMode,
11631         IGuestFile * * file
11632     );
11633 
11634     nsresult (*FileOpenEx)(
11635         IGuestSession *pThis,
11636         PRUnichar * path,
11637         PRUint32 accessMode,
11638         PRUint32 openAction,
11639         PRUint32 sharingMode,
11640         PRUint32 creationMode,
11641         PRUint32 flagsSize,
11642         PRUint32* flags,
11643         IGuestFile * * file
11644     );
11645 
11646     nsresult (*FileQuerySize)(
11647         IGuestSession *pThis,
11648         PRUnichar * path,
11649         PRBool followSymlinks,
11650         PRInt64 * size
11651     );
11652 
11653     nsresult (*FsObjExists)(
11654         IGuestSession *pThis,
11655         PRUnichar * path,
11656         PRBool followSymlinks,
11657         PRBool * exists
11658     );
11659 
11660     nsresult (*FsObjQueryInfo)(
11661         IGuestSession *pThis,
11662         PRUnichar * path,
11663         PRBool followSymlinks,
11664         IGuestFsObjInfo * * info
11665     );
11666 
11667     nsresult (*FsObjRemove)(
11668         IGuestSession *pThis,
11669         PRUnichar * path
11670     );
11671 
11672     nsresult (*FsObjRename)(
11673         IGuestSession *pThis,
11674         PRUnichar * oldPath,
11675         PRUnichar * newPath,
11676         PRUint32 flagsSize,
11677         PRUint32* flags
11678     );
11679 
11680     nsresult (*FsObjMove)(
11681         IGuestSession *pThis,
11682         PRUnichar * source,
11683         PRUnichar * destination,
11684         PRUint32 flagsSize,
11685         PRUint32* flags,
11686         IProgress * * progress
11687     );
11688 
11689     nsresult (*FsObjSetACL)(
11690         IGuestSession *pThis,
11691         PRUnichar * path,
11692         PRBool followSymlinks,
11693         PRUnichar * acl,
11694         PRUint32 mode
11695     );
11696 
11697     nsresult (*ProcessCreate)(
11698         IGuestSession *pThis,
11699         PRUnichar * executable,
11700         PRUint32 argumentsSize,
11701         PRUnichar ** arguments,
11702         PRUint32 environmentChangesSize,
11703         PRUnichar ** environmentChanges,
11704         PRUint32 flagsSize,
11705         PRUint32* flags,
11706         PRUint32 timeoutMS,
11707         IGuestProcess * * guestProcess
11708     );
11709 
11710     nsresult (*ProcessCreateEx)(
11711         IGuestSession *pThis,
11712         PRUnichar * executable,
11713         PRUint32 argumentsSize,
11714         PRUnichar ** arguments,
11715         PRUint32 environmentChangesSize,
11716         PRUnichar ** environmentChanges,
11717         PRUint32 flagsSize,
11718         PRUint32* flags,
11719         PRUint32 timeoutMS,
11720         PRUint32 priority,
11721         PRUint32 affinitySize,
11722         PRInt32* affinity,
11723         IGuestProcess * * guestProcess
11724     );
11725 
11726     nsresult (*ProcessGet)(
11727         IGuestSession *pThis,
11728         PRUint32 pid,
11729         IGuestProcess * * guestProcess
11730     );
11731 
11732     nsresult (*SymlinkCreate)(
11733         IGuestSession *pThis,
11734         PRUnichar * symlink,
11735         PRUnichar * target,
11736         PRUint32 type
11737     );
11738 
11739     nsresult (*SymlinkExists)(
11740         IGuestSession *pThis,
11741         PRUnichar * symlink,
11742         PRBool * exists
11743     );
11744 
11745     nsresult (*SymlinkRead)(
11746         IGuestSession *pThis,
11747         PRUnichar * symlink,
11748         PRUint32 flagsSize,
11749         PRUint32* flags,
11750         PRUnichar * * target
11751     );
11752 
11753     nsresult (*WaitFor)(
11754         IGuestSession *pThis,
11755         PRUint32 waitFor,
11756         PRUint32 timeoutMS,
11757         PRUint32 * reason
11758     );
11759 
11760     nsresult (*WaitForArray)(
11761         IGuestSession *pThis,
11762         PRUint32 waitForSize,
11763         PRUint32* waitFor,
11764         PRUint32 timeoutMS,
11765         PRUint32 * reason
11766     );
11767 
11768     nsresult (*InternalAndReservedMethod1IGuestSession)(IGuestSession *pThis);
11769 
11770     nsresult (*InternalAndReservedMethod2IGuestSession)(IGuestSession *pThis);
11771 
11772     nsresult (*InternalAndReservedMethod3IGuestSession)(IGuestSession *pThis);
11773 
11774     nsresult (*InternalAndReservedMethod4IGuestSession)(IGuestSession *pThis);
11775 
11776     nsresult (*InternalAndReservedMethod5IGuestSession)(IGuestSession *pThis);
11777 
11778     nsresult (*InternalAndReservedMethod6IGuestSession)(IGuestSession *pThis);
11779 
11780     nsresult (*InternalAndReservedMethod7IGuestSession)(IGuestSession *pThis);
11781 
11782     nsresult (*InternalAndReservedMethod8IGuestSession)(IGuestSession *pThis);
11783 
11784 };
11785 #   else /* VBOX_WITH_GLUE */
11786 struct IGuestSessionVtbl
11787 {
11788     nsresult (*QueryInterface)(IGuestSession *pThis, const nsID *iid, void **resultp);
11789     nsrefcnt (*AddRef)(IGuestSession *pThis);
11790     nsrefcnt (*Release)(IGuestSession *pThis);
11791     nsresult (*GetUser)(IGuestSession *pThis, PRUnichar * *user);
11792 
11793     nsresult (*GetDomain)(IGuestSession *pThis, PRUnichar * *domain);
11794 
11795     nsresult (*GetName)(IGuestSession *pThis, PRUnichar * *name);
11796 
11797     nsresult (*GetId)(IGuestSession *pThis, PRUint32 *id);
11798 
11799     nsresult (*GetTimeout)(IGuestSession *pThis, PRUint32 *timeout);
11800     nsresult (*SetTimeout)(IGuestSession *pThis, PRUint32 timeout);
11801 
11802     nsresult (*GetProtocolVersion)(IGuestSession *pThis, PRUint32 *protocolVersion);
11803 
11804     nsresult (*GetStatus)(IGuestSession *pThis, PRUint32 *status);
11805 
11806     nsresult (*GetEnvironmentChanges)(IGuestSession *pThis, PRUint32 *environmentChangesSize, PRUnichar * **environmentChanges);
11807     nsresult (*SetEnvironmentChanges)(IGuestSession *pThis, PRUint32 environmentChangesSize, PRUnichar * *environmentChanges);
11808 
11809     nsresult (*GetEnvironmentBase)(IGuestSession *pThis, PRUint32 *environmentBaseSize, PRUnichar * **environmentBase);
11810 
11811     nsresult (*GetProcesses)(IGuestSession *pThis, PRUint32 *processesSize, IGuestProcess * **processes);
11812 
11813     nsresult (*GetPathStyle)(IGuestSession *pThis, PRUint32 *pathStyle);
11814 
11815     nsresult (*GetCurrentDirectory)(IGuestSession *pThis, PRUnichar * *currentDirectory);
11816     nsresult (*SetCurrentDirectory)(IGuestSession *pThis, PRUnichar * currentDirectory);
11817 
11818     nsresult (*GetDirectories)(IGuestSession *pThis, PRUint32 *directoriesSize, IGuestDirectory * **directories);
11819 
11820     nsresult (*GetFiles)(IGuestSession *pThis, PRUint32 *filesSize, IGuestFile * **files);
11821 
11822     nsresult (*GetEventSource)(IGuestSession *pThis, IEventSource * *eventSource);
11823 
11824     nsresult (*GetInternalAndReservedAttribute1IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11825 
11826     nsresult (*GetInternalAndReservedAttribute2IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11827 
11828     nsresult (*GetInternalAndReservedAttribute3IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11829 
11830     nsresult (*GetInternalAndReservedAttribute4IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11831 
11832     nsresult (*GetInternalAndReservedAttribute5IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11833 
11834     nsresult (*GetInternalAndReservedAttribute6IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11835 
11836     nsresult (*GetInternalAndReservedAttribute7IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11837 
11838     nsresult (*GetInternalAndReservedAttribute8IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
11839 
11840     nsresult (*Close)(IGuestSession *pThis );
11841 
11842     nsresult (*DirectoryCopy)(
11843         IGuestSession *pThis,
11844         PRUnichar * source,
11845         PRUnichar * destination,
11846         PRUint32 flagsSize,
11847         PRUint32* flags,
11848         IProgress * * progress
11849     );
11850 
11851     nsresult (*DirectoryCopyFromGuest)(
11852         IGuestSession *pThis,
11853         PRUnichar * source,
11854         PRUnichar * destination,
11855         PRUint32 flagsSize,
11856         PRUint32* flags,
11857         IProgress * * progress
11858     );
11859 
11860     nsresult (*DirectoryCopyToGuest)(
11861         IGuestSession *pThis,
11862         PRUnichar * source,
11863         PRUnichar * destination,
11864         PRUint32 flagsSize,
11865         PRUint32* flags,
11866         IProgress * * progress
11867     );
11868 
11869     nsresult (*DirectoryCreate)(
11870         IGuestSession *pThis,
11871         PRUnichar * path,
11872         PRUint32 mode,
11873         PRUint32 flagsSize,
11874         PRUint32* flags
11875     );
11876 
11877     nsresult (*DirectoryCreateTemp)(
11878         IGuestSession *pThis,
11879         PRUnichar * templateName,
11880         PRUint32 mode,
11881         PRUnichar * path,
11882         PRBool secure,
11883         PRUnichar * * directory
11884     );
11885 
11886     nsresult (*DirectoryExists)(
11887         IGuestSession *pThis,
11888         PRUnichar * path,
11889         PRBool followSymlinks,
11890         PRBool * exists
11891     );
11892 
11893     nsresult (*DirectoryOpen)(
11894         IGuestSession *pThis,
11895         PRUnichar * path,
11896         PRUnichar * filter,
11897         PRUint32 flagsSize,
11898         PRUint32* flags,
11899         IGuestDirectory * * directory
11900     );
11901 
11902     nsresult (*DirectoryRemove)(
11903         IGuestSession *pThis,
11904         PRUnichar * path
11905     );
11906 
11907     nsresult (*DirectoryRemoveRecursive)(
11908         IGuestSession *pThis,
11909         PRUnichar * path,
11910         PRUint32 flagsSize,
11911         PRUint32* flags,
11912         IProgress * * progress
11913     );
11914 
11915     nsresult (*EnvironmentScheduleSet)(
11916         IGuestSession *pThis,
11917         PRUnichar * name,
11918         PRUnichar * value
11919     );
11920 
11921     nsresult (*EnvironmentScheduleUnset)(
11922         IGuestSession *pThis,
11923         PRUnichar * name
11924     );
11925 
11926     nsresult (*EnvironmentGetBaseVariable)(
11927         IGuestSession *pThis,
11928         PRUnichar * name,
11929         PRUnichar * * value
11930     );
11931 
11932     nsresult (*EnvironmentDoesBaseVariableExist)(
11933         IGuestSession *pThis,
11934         PRUnichar * name,
11935         PRBool * exists
11936     );
11937 
11938     nsresult (*FileCopy)(
11939         IGuestSession *pThis,
11940         PRUnichar * source,
11941         PRUnichar * destination,
11942         PRUint32 flagsSize,
11943         PRUint32* flags,
11944         IProgress * * progress
11945     );
11946 
11947     nsresult (*FileCopyFromGuest)(
11948         IGuestSession *pThis,
11949         PRUnichar * source,
11950         PRUnichar * destination,
11951         PRUint32 flagsSize,
11952         PRUint32* flags,
11953         IProgress * * progress
11954     );
11955 
11956     nsresult (*FileCopyToGuest)(
11957         IGuestSession *pThis,
11958         PRUnichar * source,
11959         PRUnichar * destination,
11960         PRUint32 flagsSize,
11961         PRUint32* flags,
11962         IProgress * * progress
11963     );
11964 
11965     nsresult (*FileCreateTemp)(
11966         IGuestSession *pThis,
11967         PRUnichar * templateName,
11968         PRUint32 mode,
11969         PRUnichar * path,
11970         PRBool secure,
11971         IGuestFile * * file
11972     );
11973 
11974     nsresult (*FileExists)(
11975         IGuestSession *pThis,
11976         PRUnichar * path,
11977         PRBool followSymlinks,
11978         PRBool * exists
11979     );
11980 
11981     nsresult (*FileOpen)(
11982         IGuestSession *pThis,
11983         PRUnichar * path,
11984         PRUint32 accessMode,
11985         PRUint32 openAction,
11986         PRUint32 creationMode,
11987         IGuestFile * * file
11988     );
11989 
11990     nsresult (*FileOpenEx)(
11991         IGuestSession *pThis,
11992         PRUnichar * path,
11993         PRUint32 accessMode,
11994         PRUint32 openAction,
11995         PRUint32 sharingMode,
11996         PRUint32 creationMode,
11997         PRUint32 flagsSize,
11998         PRUint32* flags,
11999         IGuestFile * * file
12000     );
12001 
12002     nsresult (*FileQuerySize)(
12003         IGuestSession *pThis,
12004         PRUnichar * path,
12005         PRBool followSymlinks,
12006         PRInt64 * size
12007     );
12008 
12009     nsresult (*FsObjExists)(
12010         IGuestSession *pThis,
12011         PRUnichar * path,
12012         PRBool followSymlinks,
12013         PRBool * exists
12014     );
12015 
12016     nsresult (*FsObjQueryInfo)(
12017         IGuestSession *pThis,
12018         PRUnichar * path,
12019         PRBool followSymlinks,
12020         IGuestFsObjInfo * * info
12021     );
12022 
12023     nsresult (*FsObjRemove)(
12024         IGuestSession *pThis,
12025         PRUnichar * path
12026     );
12027 
12028     nsresult (*FsObjRename)(
12029         IGuestSession *pThis,
12030         PRUnichar * oldPath,
12031         PRUnichar * newPath,
12032         PRUint32 flagsSize,
12033         PRUint32* flags
12034     );
12035 
12036     nsresult (*FsObjMove)(
12037         IGuestSession *pThis,
12038         PRUnichar * source,
12039         PRUnichar * destination,
12040         PRUint32 flagsSize,
12041         PRUint32* flags,
12042         IProgress * * progress
12043     );
12044 
12045     nsresult (*FsObjSetACL)(
12046         IGuestSession *pThis,
12047         PRUnichar * path,
12048         PRBool followSymlinks,
12049         PRUnichar * acl,
12050         PRUint32 mode
12051     );
12052 
12053     nsresult (*ProcessCreate)(
12054         IGuestSession *pThis,
12055         PRUnichar * executable,
12056         PRUint32 argumentsSize,
12057         PRUnichar ** arguments,
12058         PRUint32 environmentChangesSize,
12059         PRUnichar ** environmentChanges,
12060         PRUint32 flagsSize,
12061         PRUint32* flags,
12062         PRUint32 timeoutMS,
12063         IGuestProcess * * guestProcess
12064     );
12065 
12066     nsresult (*ProcessCreateEx)(
12067         IGuestSession *pThis,
12068         PRUnichar * executable,
12069         PRUint32 argumentsSize,
12070         PRUnichar ** arguments,
12071         PRUint32 environmentChangesSize,
12072         PRUnichar ** environmentChanges,
12073         PRUint32 flagsSize,
12074         PRUint32* flags,
12075         PRUint32 timeoutMS,
12076         PRUint32 priority,
12077         PRUint32 affinitySize,
12078         PRInt32* affinity,
12079         IGuestProcess * * guestProcess
12080     );
12081 
12082     nsresult (*ProcessGet)(
12083         IGuestSession *pThis,
12084         PRUint32 pid,
12085         IGuestProcess * * guestProcess
12086     );
12087 
12088     nsresult (*SymlinkCreate)(
12089         IGuestSession *pThis,
12090         PRUnichar * symlink,
12091         PRUnichar * target,
12092         PRUint32 type
12093     );
12094 
12095     nsresult (*SymlinkExists)(
12096         IGuestSession *pThis,
12097         PRUnichar * symlink,
12098         PRBool * exists
12099     );
12100 
12101     nsresult (*SymlinkRead)(
12102         IGuestSession *pThis,
12103         PRUnichar * symlink,
12104         PRUint32 flagsSize,
12105         PRUint32* flags,
12106         PRUnichar * * target
12107     );
12108 
12109     nsresult (*WaitFor)(
12110         IGuestSession *pThis,
12111         PRUint32 waitFor,
12112         PRUint32 timeoutMS,
12113         PRUint32 * reason
12114     );
12115 
12116     nsresult (*WaitForArray)(
12117         IGuestSession *pThis,
12118         PRUint32 waitForSize,
12119         PRUint32* waitFor,
12120         PRUint32 timeoutMS,
12121         PRUint32 * reason
12122     );
12123 
12124     nsresult (*InternalAndReservedMethod1IGuestSession)(IGuestSession *pThis);
12125 
12126     nsresult (*InternalAndReservedMethod2IGuestSession)(IGuestSession *pThis);
12127 
12128     nsresult (*InternalAndReservedMethod3IGuestSession)(IGuestSession *pThis);
12129 
12130     nsresult (*InternalAndReservedMethod4IGuestSession)(IGuestSession *pThis);
12131 
12132     nsresult (*InternalAndReservedMethod5IGuestSession)(IGuestSession *pThis);
12133 
12134     nsresult (*InternalAndReservedMethod6IGuestSession)(IGuestSession *pThis);
12135 
12136     nsresult (*InternalAndReservedMethod7IGuestSession)(IGuestSession *pThis);
12137 
12138     nsresult (*InternalAndReservedMethod8IGuestSession)(IGuestSession *pThis);
12139 
12140 };
12141 #    define IGuestSession_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12142 #    define IGuestSession_AddRef(p) ((p)->lpVtbl->AddRef(p))
12143 #    define IGuestSession_Release(p) ((p)->lpVtbl->Release(p))
12144 #    define IGuestSession_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
12145 #    define IGuestSession_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
12146 #    define IGuestSession_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
12147 #    define IGuestSession_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
12148 #    define IGuestSession_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
12149 #    define IGuestSession_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
12150 #    define IGuestSession_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
12151 #    define IGuestSession_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
12152 #    define IGuestSession_get_Timeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
12153 #    define IGuestSession_GetTimeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
12154 #    define IGuestSession_put_Timeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
12155 #    define IGuestSession_SetTimeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
12156 #    define IGuestSession_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
12157 #    define IGuestSession_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
12158 #    define IGuestSession_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12159 #    define IGuestSession_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12160 #    define IGuestSession_get_EnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->GetEnvironmentChanges(p, aEnvironmentChanges))
12161 #    define IGuestSession_GetEnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->GetEnvironmentChanges(p, aEnvironmentChanges))
12162 #    define IGuestSession_put_EnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->SetEnvironmentChanges(p, aEnvironmentChanges))
12163 #    define IGuestSession_SetEnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->SetEnvironmentChanges(p, aEnvironmentChanges))
12164 #    define IGuestSession_get_EnvironmentBase(p, aEnvironmentBase) ((p)->lpVtbl->GetEnvironmentBase(p, aEnvironmentBase))
12165 #    define IGuestSession_GetEnvironmentBase(p, aEnvironmentBase) ((p)->lpVtbl->GetEnvironmentBase(p, aEnvironmentBase))
12166 #    define IGuestSession_get_Processes(p, aProcesses) ((p)->lpVtbl->GetProcesses(p, aProcesses))
12167 #    define IGuestSession_GetProcesses(p, aProcesses) ((p)->lpVtbl->GetProcesses(p, aProcesses))
12168 #    define IGuestSession_get_PathStyle(p, aPathStyle) ((p)->lpVtbl->GetPathStyle(p, aPathStyle))
12169 #    define IGuestSession_GetPathStyle(p, aPathStyle) ((p)->lpVtbl->GetPathStyle(p, aPathStyle))
12170 #    define IGuestSession_get_CurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->GetCurrentDirectory(p, aCurrentDirectory))
12171 #    define IGuestSession_GetCurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->GetCurrentDirectory(p, aCurrentDirectory))
12172 #    define IGuestSession_put_CurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->SetCurrentDirectory(p, aCurrentDirectory))
12173 #    define IGuestSession_SetCurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->SetCurrentDirectory(p, aCurrentDirectory))
12174 #    define IGuestSession_get_Directories(p, aDirectories) ((p)->lpVtbl->GetDirectories(p, aDirectories))
12175 #    define IGuestSession_GetDirectories(p, aDirectories) ((p)->lpVtbl->GetDirectories(p, aDirectories))
12176 #    define IGuestSession_get_Files(p, aFiles) ((p)->lpVtbl->GetFiles(p, aFiles))
12177 #    define IGuestSession_GetFiles(p, aFiles) ((p)->lpVtbl->GetFiles(p, aFiles))
12178 #    define IGuestSession_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12179 #    define IGuestSession_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12180 #    define IGuestSession_Close(p) ((p)->lpVtbl->Close(p))
12181 #    define IGuestSession_DirectoryCopy(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopy(p, aSource, aDestination, aFlags, aProgress))
12182 #    define IGuestSession_DirectoryCopyFromGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopyFromGuest(p, aSource, aDestination, aFlags, aProgress))
12183 #    define IGuestSession_DirectoryCopyToGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopyToGuest(p, aSource, aDestination, aFlags, aProgress))
12184 #    define IGuestSession_DirectoryCreate(p, aPath, aMode, aFlags) ((p)->lpVtbl->DirectoryCreate(p, aPath, aMode, aFlags))
12185 #    define IGuestSession_DirectoryCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aDirectory) ((p)->lpVtbl->DirectoryCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aDirectory))
12186 #    define IGuestSession_DirectoryExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->DirectoryExists(p, aPath, aFollowSymlinks, aExists))
12187 #    define IGuestSession_DirectoryOpen(p, aPath, aFilter, aFlags, aDirectory) ((p)->lpVtbl->DirectoryOpen(p, aPath, aFilter, aFlags, aDirectory))
12188 #    define IGuestSession_DirectoryRemove(p, aPath) ((p)->lpVtbl->DirectoryRemove(p, aPath))
12189 #    define IGuestSession_DirectoryRemoveRecursive(p, aPath, aFlags, aProgress) ((p)->lpVtbl->DirectoryRemoveRecursive(p, aPath, aFlags, aProgress))
12190 #    define IGuestSession_EnvironmentScheduleSet(p, aName, aValue) ((p)->lpVtbl->EnvironmentScheduleSet(p, aName, aValue))
12191 #    define IGuestSession_EnvironmentScheduleUnset(p, aName) ((p)->lpVtbl->EnvironmentScheduleUnset(p, aName))
12192 #    define IGuestSession_EnvironmentGetBaseVariable(p, aName, aValue) ((p)->lpVtbl->EnvironmentGetBaseVariable(p, aName, aValue))
12193 #    define IGuestSession_EnvironmentDoesBaseVariableExist(p, aName, aExists) ((p)->lpVtbl->EnvironmentDoesBaseVariableExist(p, aName, aExists))
12194 #    define IGuestSession_FileCopy(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopy(p, aSource, aDestination, aFlags, aProgress))
12195 #    define IGuestSession_FileCopyFromGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopyFromGuest(p, aSource, aDestination, aFlags, aProgress))
12196 #    define IGuestSession_FileCopyToGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopyToGuest(p, aSource, aDestination, aFlags, aProgress))
12197 #    define IGuestSession_FileCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aFile) ((p)->lpVtbl->FileCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aFile))
12198 #    define IGuestSession_FileExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->FileExists(p, aPath, aFollowSymlinks, aExists))
12199 #    define IGuestSession_FileOpen(p, aPath, aAccessMode, aOpenAction, aCreationMode, aFile) ((p)->lpVtbl->FileOpen(p, aPath, aAccessMode, aOpenAction, aCreationMode, aFile))
12200 #    define IGuestSession_FileOpenEx(p, aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlags, aFile) ((p)->lpVtbl->FileOpenEx(p, aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlags, aFile))
12201 #    define IGuestSession_FileQuerySize(p, aPath, aFollowSymlinks, aSize) ((p)->lpVtbl->FileQuerySize(p, aPath, aFollowSymlinks, aSize))
12202 #    define IGuestSession_FsObjExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->FsObjExists(p, aPath, aFollowSymlinks, aExists))
12203 #    define IGuestSession_FsObjQueryInfo(p, aPath, aFollowSymlinks, aInfo) ((p)->lpVtbl->FsObjQueryInfo(p, aPath, aFollowSymlinks, aInfo))
12204 #    define IGuestSession_FsObjRemove(p, aPath) ((p)->lpVtbl->FsObjRemove(p, aPath))
12205 #    define IGuestSession_FsObjRename(p, aOldPath, aNewPath, aFlags) ((p)->lpVtbl->FsObjRename(p, aOldPath, aNewPath, aFlags))
12206 #    define IGuestSession_FsObjMove(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FsObjMove(p, aSource, aDestination, aFlags, aProgress))
12207 #    define IGuestSession_FsObjSetACL(p, aPath, aFollowSymlinks, aAcl, aMode) ((p)->lpVtbl->FsObjSetACL(p, aPath, aFollowSymlinks, aAcl, aMode))
12208 #    define IGuestSession_ProcessCreate(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aGuestProcess) ((p)->lpVtbl->ProcessCreate(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aGuestProcess))
12209 #    define IGuestSession_ProcessCreateEx(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aPriority, aAffinity, aGuestProcess) ((p)->lpVtbl->ProcessCreateEx(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aPriority, aAffinity, aGuestProcess))
12210 #    define IGuestSession_ProcessGet(p, aPid, aGuestProcess) ((p)->lpVtbl->ProcessGet(p, aPid, aGuestProcess))
12211 #    define IGuestSession_SymlinkCreate(p, aSymlink, aTarget, aType) ((p)->lpVtbl->SymlinkCreate(p, aSymlink, aTarget, aType))
12212 #    define IGuestSession_SymlinkExists(p, aSymlink, aExists) ((p)->lpVtbl->SymlinkExists(p, aSymlink, aExists))
12213 #    define IGuestSession_SymlinkRead(p, aSymlink, aFlags, aTarget) ((p)->lpVtbl->SymlinkRead(p, aSymlink, aFlags, aTarget))
12214 #    define IGuestSession_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
12215 #    define IGuestSession_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
12216 #   endif /* VBOX_WITH_GLUE */
12217 
12218 interface IGuestSession
12219 {
12220 #   ifndef VBOX_WITH_GLUE
12221     struct IGuestSession_vtbl *vtbl;
12222 #   else /* VBOX_WITH_GLUE */
12223     CONST_VTBL struct IGuestSessionVtbl *lpVtbl;
12224 #   endif /* VBOX_WITH_GLUE */
12225 };
12226 /* End of struct IGuestSession declaration */
12227 
12228 
12229 /* Start of struct IProcess declaration */
12230 #   define IPROCESS_IID_STR "2e20707d-4325-9a83-83cf-3faf5b97457c"
12231 #   define IPROCESS_IID { \
12232     0x2e20707d, 0x4325, 0x9a83, \
12233     { 0x83, 0xcf, 0x3f, 0xaf, 0x5b, 0x97, 0x45, 0x7c } \
12234 }
12235 /* COM compatibility */
12236 VBOX_EXTERN_CONST(nsIID, IID_IProcess);
12237 #   ifndef VBOX_WITH_GLUE
12238 struct IProcess_vtbl
12239 {
12240     struct nsISupports_vtbl nsisupports;
12241 
12242     nsresult (*GetArguments)(IProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
12243 
12244     nsresult (*GetEnvironment)(IProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
12245 
12246     nsresult (*GetEventSource)(IProcess *pThis, IEventSource * *eventSource);
12247 
12248     nsresult (*GetExecutablePath)(IProcess *pThis, PRUnichar * *executablePath);
12249 
12250     nsresult (*GetExitCode)(IProcess *pThis, PRInt32 *exitCode);
12251 
12252     nsresult (*GetName)(IProcess *pThis, PRUnichar * *name);
12253 
12254     nsresult (*GetPID)(IProcess *pThis, PRUint32 *PID);
12255 
12256     nsresult (*GetStatus)(IProcess *pThis, PRUint32 *status);
12257 
12258     nsresult (*GetInternalAndReservedAttribute1IProcess)(IProcess *pThis, PRUint32 *reserved);
12259 
12260     nsresult (*GetInternalAndReservedAttribute2IProcess)(IProcess *pThis, PRUint32 *reserved);
12261 
12262     nsresult (*GetInternalAndReservedAttribute3IProcess)(IProcess *pThis, PRUint32 *reserved);
12263 
12264     nsresult (*GetInternalAndReservedAttribute4IProcess)(IProcess *pThis, PRUint32 *reserved);
12265 
12266     nsresult (*WaitFor)(
12267         IProcess *pThis,
12268         PRUint32 waitFor,
12269         PRUint32 timeoutMS,
12270         PRUint32 * reason
12271     );
12272 
12273     nsresult (*WaitForArray)(
12274         IProcess *pThis,
12275         PRUint32 waitForSize,
12276         PRUint32* waitFor,
12277         PRUint32 timeoutMS,
12278         PRUint32 * reason
12279     );
12280 
12281     nsresult (*Read)(
12282         IProcess *pThis,
12283         PRUint32 handle,
12284         PRUint32 toRead,
12285         PRUint32 timeoutMS,
12286         PRUint32 *dataSize,
12287         PRUint8** data
12288     );
12289 
12290     nsresult (*Write)(
12291         IProcess *pThis,
12292         PRUint32 handle,
12293         PRUint32 flags,
12294         PRUint32 dataSize,
12295         PRUint8* data,
12296         PRUint32 timeoutMS,
12297         PRUint32 * written
12298     );
12299 
12300     nsresult (*WriteArray)(
12301         IProcess *pThis,
12302         PRUint32 handle,
12303         PRUint32 flagsSize,
12304         PRUint32* flags,
12305         PRUint32 dataSize,
12306         PRUint8* data,
12307         PRUint32 timeoutMS,
12308         PRUint32 * written
12309     );
12310 
12311     nsresult (*Terminate)(IProcess *pThis );
12312 
12313     nsresult (*InternalAndReservedMethod1IProcess)(IProcess *pThis);
12314 
12315 };
12316 #   else /* VBOX_WITH_GLUE */
12317 struct IProcessVtbl
12318 {
12319     nsresult (*QueryInterface)(IProcess *pThis, const nsID *iid, void **resultp);
12320     nsrefcnt (*AddRef)(IProcess *pThis);
12321     nsrefcnt (*Release)(IProcess *pThis);
12322     nsresult (*GetArguments)(IProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
12323 
12324     nsresult (*GetEnvironment)(IProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
12325 
12326     nsresult (*GetEventSource)(IProcess *pThis, IEventSource * *eventSource);
12327 
12328     nsresult (*GetExecutablePath)(IProcess *pThis, PRUnichar * *executablePath);
12329 
12330     nsresult (*GetExitCode)(IProcess *pThis, PRInt32 *exitCode);
12331 
12332     nsresult (*GetName)(IProcess *pThis, PRUnichar * *name);
12333 
12334     nsresult (*GetPID)(IProcess *pThis, PRUint32 *PID);
12335 
12336     nsresult (*GetStatus)(IProcess *pThis, PRUint32 *status);
12337 
12338     nsresult (*GetInternalAndReservedAttribute1IProcess)(IProcess *pThis, PRUint32 *reserved);
12339 
12340     nsresult (*GetInternalAndReservedAttribute2IProcess)(IProcess *pThis, PRUint32 *reserved);
12341 
12342     nsresult (*GetInternalAndReservedAttribute3IProcess)(IProcess *pThis, PRUint32 *reserved);
12343 
12344     nsresult (*GetInternalAndReservedAttribute4IProcess)(IProcess *pThis, PRUint32 *reserved);
12345 
12346     nsresult (*WaitFor)(
12347         IProcess *pThis,
12348         PRUint32 waitFor,
12349         PRUint32 timeoutMS,
12350         PRUint32 * reason
12351     );
12352 
12353     nsresult (*WaitForArray)(
12354         IProcess *pThis,
12355         PRUint32 waitForSize,
12356         PRUint32* waitFor,
12357         PRUint32 timeoutMS,
12358         PRUint32 * reason
12359     );
12360 
12361     nsresult (*Read)(
12362         IProcess *pThis,
12363         PRUint32 handle,
12364         PRUint32 toRead,
12365         PRUint32 timeoutMS,
12366         PRUint32 *dataSize,
12367         PRUint8** data
12368     );
12369 
12370     nsresult (*Write)(
12371         IProcess *pThis,
12372         PRUint32 handle,
12373         PRUint32 flags,
12374         PRUint32 dataSize,
12375         PRUint8* data,
12376         PRUint32 timeoutMS,
12377         PRUint32 * written
12378     );
12379 
12380     nsresult (*WriteArray)(
12381         IProcess *pThis,
12382         PRUint32 handle,
12383         PRUint32 flagsSize,
12384         PRUint32* flags,
12385         PRUint32 dataSize,
12386         PRUint8* data,
12387         PRUint32 timeoutMS,
12388         PRUint32 * written
12389     );
12390 
12391     nsresult (*Terminate)(IProcess *pThis );
12392 
12393     nsresult (*InternalAndReservedMethod1IProcess)(IProcess *pThis);
12394 
12395 };
12396 #    define IProcess_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12397 #    define IProcess_AddRef(p) ((p)->lpVtbl->AddRef(p))
12398 #    define IProcess_Release(p) ((p)->lpVtbl->Release(p))
12399 #    define IProcess_get_Arguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
12400 #    define IProcess_GetArguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
12401 #    define IProcess_get_Environment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
12402 #    define IProcess_GetEnvironment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
12403 #    define IProcess_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12404 #    define IProcess_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12405 #    define IProcess_get_ExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
12406 #    define IProcess_GetExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
12407 #    define IProcess_get_ExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
12408 #    define IProcess_GetExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
12409 #    define IProcess_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
12410 #    define IProcess_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
12411 #    define IProcess_get_PID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
12412 #    define IProcess_GetPID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
12413 #    define IProcess_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12414 #    define IProcess_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12415 #    define IProcess_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
12416 #    define IProcess_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
12417 #    define IProcess_Read(p, aHandle, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aHandle, aToRead, aTimeoutMS, aData))
12418 #    define IProcess_Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
12419 #    define IProcess_WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
12420 #    define IProcess_Terminate(p) ((p)->lpVtbl->Terminate(p))
12421 #   endif /* VBOX_WITH_GLUE */
12422 
12423 interface IProcess
12424 {
12425 #   ifndef VBOX_WITH_GLUE
12426     struct IProcess_vtbl *vtbl;
12427 #   else /* VBOX_WITH_GLUE */
12428     CONST_VTBL struct IProcessVtbl *lpVtbl;
12429 #   endif /* VBOX_WITH_GLUE */
12430 };
12431 /* End of struct IProcess declaration */
12432 
12433 
12434 /* Start of struct IGuestProcess declaration */
12435 #   define IGUESTPROCESS_IID_STR "35cf4b3f-4453-4f3e-c9b8-5686939c80b6"
12436 #   define IGUESTPROCESS_IID { \
12437     0x35cf4b3f, 0x4453, 0x4f3e, \
12438     { 0xc9, 0xb8, 0x56, 0x86, 0x93, 0x9c, 0x80, 0xb6 } \
12439 }
12440 /* COM compatibility */
12441 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcess);
12442 #   ifndef VBOX_WITH_GLUE
12443 struct IGuestProcess_vtbl
12444 {
12445     struct IProcess_vtbl iprocess;
12446 
12447     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestProcess *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
12448 
12449 };
12450 #   else /* VBOX_WITH_GLUE */
12451 struct IGuestProcessVtbl
12452 {
12453     nsresult (*QueryInterface)(IGuestProcess *pThis, const nsID *iid, void **resultp);
12454     nsrefcnt (*AddRef)(IGuestProcess *pThis);
12455     nsrefcnt (*Release)(IGuestProcess *pThis);
12456     nsresult (*GetArguments)(IGuestProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
12457 
12458     nsresult (*GetEnvironment)(IGuestProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
12459 
12460     nsresult (*GetEventSource)(IGuestProcess *pThis, IEventSource * *eventSource);
12461 
12462     nsresult (*GetExecutablePath)(IGuestProcess *pThis, PRUnichar * *executablePath);
12463 
12464     nsresult (*GetExitCode)(IGuestProcess *pThis, PRInt32 *exitCode);
12465 
12466     nsresult (*GetName)(IGuestProcess *pThis, PRUnichar * *name);
12467 
12468     nsresult (*GetPID)(IGuestProcess *pThis, PRUint32 *PID);
12469 
12470     nsresult (*GetStatus)(IGuestProcess *pThis, PRUint32 *status);
12471 
12472     nsresult (*GetInternalAndReservedAttribute1IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
12473 
12474     nsresult (*GetInternalAndReservedAttribute2IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
12475 
12476     nsresult (*GetInternalAndReservedAttribute3IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
12477 
12478     nsresult (*GetInternalAndReservedAttribute4IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
12479 
12480     nsresult (*WaitFor)(
12481         IGuestProcess *pThis,
12482         PRUint32 waitFor,
12483         PRUint32 timeoutMS,
12484         PRUint32 * reason
12485     );
12486 
12487     nsresult (*WaitForArray)(
12488         IGuestProcess *pThis,
12489         PRUint32 waitForSize,
12490         PRUint32* waitFor,
12491         PRUint32 timeoutMS,
12492         PRUint32 * reason
12493     );
12494 
12495     nsresult (*Read)(
12496         IGuestProcess *pThis,
12497         PRUint32 handle,
12498         PRUint32 toRead,
12499         PRUint32 timeoutMS,
12500         PRUint32 *dataSize,
12501         PRUint8** data
12502     );
12503 
12504     nsresult (*Write)(
12505         IGuestProcess *pThis,
12506         PRUint32 handle,
12507         PRUint32 flags,
12508         PRUint32 dataSize,
12509         PRUint8* data,
12510         PRUint32 timeoutMS,
12511         PRUint32 * written
12512     );
12513 
12514     nsresult (*WriteArray)(
12515         IGuestProcess *pThis,
12516         PRUint32 handle,
12517         PRUint32 flagsSize,
12518         PRUint32* flags,
12519         PRUint32 dataSize,
12520         PRUint8* data,
12521         PRUint32 timeoutMS,
12522         PRUint32 * written
12523     );
12524 
12525     nsresult (*Terminate)(IGuestProcess *pThis );
12526 
12527     nsresult (*InternalAndReservedMethod1IProcess)(IGuestProcess *pThis);
12528 
12529     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestProcess *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
12530 
12531 };
12532 #    define IGuestProcess_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12533 #    define IGuestProcess_AddRef(p) ((p)->lpVtbl->AddRef(p))
12534 #    define IGuestProcess_Release(p) ((p)->lpVtbl->Release(p))
12535 #    define IGuestProcess_get_Arguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
12536 #    define IGuestProcess_GetArguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
12537 #    define IGuestProcess_get_Environment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
12538 #    define IGuestProcess_GetEnvironment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
12539 #    define IGuestProcess_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12540 #    define IGuestProcess_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12541 #    define IGuestProcess_get_ExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
12542 #    define IGuestProcess_GetExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
12543 #    define IGuestProcess_get_ExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
12544 #    define IGuestProcess_GetExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
12545 #    define IGuestProcess_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
12546 #    define IGuestProcess_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
12547 #    define IGuestProcess_get_PID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
12548 #    define IGuestProcess_GetPID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
12549 #    define IGuestProcess_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12550 #    define IGuestProcess_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12551 #    define IGuestProcess_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
12552 #    define IGuestProcess_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
12553 #    define IGuestProcess_Read(p, aHandle, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aHandle, aToRead, aTimeoutMS, aData))
12554 #    define IGuestProcess_Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
12555 #    define IGuestProcess_WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
12556 #    define IGuestProcess_Terminate(p) ((p)->lpVtbl->Terminate(p))
12557 #    define IGuestProcess_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
12558 #    define IGuestProcess_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
12559 #   endif /* VBOX_WITH_GLUE */
12560 
12561 interface IGuestProcess
12562 {
12563 #   ifndef VBOX_WITH_GLUE
12564     struct IGuestProcess_vtbl *vtbl;
12565 #   else /* VBOX_WITH_GLUE */
12566     CONST_VTBL struct IGuestProcessVtbl *lpVtbl;
12567 #   endif /* VBOX_WITH_GLUE */
12568 };
12569 /* End of struct IGuestProcess declaration */
12570 
12571 
12572 /* Start of struct IDirectory declaration */
12573 #   define IDIRECTORY_IID_STR "f73650f4-4506-50ca-045a-23a0e32ea508"
12574 #   define IDIRECTORY_IID { \
12575     0xf73650f4, 0x4506, 0x50ca, \
12576     { 0x04, 0x5a, 0x23, 0xa0, 0xe3, 0x2e, 0xa5, 0x08 } \
12577 }
12578 /* COM compatibility */
12579 VBOX_EXTERN_CONST(nsIID, IID_IDirectory);
12580 #   ifndef VBOX_WITH_GLUE
12581 struct IDirectory_vtbl
12582 {
12583     struct nsISupports_vtbl nsisupports;
12584 
12585     nsresult (*GetDirectoryName)(IDirectory *pThis, PRUnichar * *directoryName);
12586 
12587     nsresult (*GetFilter)(IDirectory *pThis, PRUnichar * *filter);
12588 
12589     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12590 
12591     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12592 
12593     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12594 
12595     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12596 
12597     nsresult (*Close)(IDirectory *pThis );
12598 
12599     nsresult (*Read)(
12600         IDirectory *pThis,
12601         IFsObjInfo * * objInfo
12602     );
12603 
12604     nsresult (*InternalAndReservedMethod1IDirectory)(IDirectory *pThis);
12605 
12606     nsresult (*InternalAndReservedMethod2IDirectory)(IDirectory *pThis);
12607 
12608 };
12609 #   else /* VBOX_WITH_GLUE */
12610 struct IDirectoryVtbl
12611 {
12612     nsresult (*QueryInterface)(IDirectory *pThis, const nsID *iid, void **resultp);
12613     nsrefcnt (*AddRef)(IDirectory *pThis);
12614     nsrefcnt (*Release)(IDirectory *pThis);
12615     nsresult (*GetDirectoryName)(IDirectory *pThis, PRUnichar * *directoryName);
12616 
12617     nsresult (*GetFilter)(IDirectory *pThis, PRUnichar * *filter);
12618 
12619     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12620 
12621     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12622 
12623     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12624 
12625     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IDirectory *pThis, PRUint32 *reserved);
12626 
12627     nsresult (*Close)(IDirectory *pThis );
12628 
12629     nsresult (*Read)(
12630         IDirectory *pThis,
12631         IFsObjInfo * * objInfo
12632     );
12633 
12634     nsresult (*InternalAndReservedMethod1IDirectory)(IDirectory *pThis);
12635 
12636     nsresult (*InternalAndReservedMethod2IDirectory)(IDirectory *pThis);
12637 
12638 };
12639 #    define IDirectory_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12640 #    define IDirectory_AddRef(p) ((p)->lpVtbl->AddRef(p))
12641 #    define IDirectory_Release(p) ((p)->lpVtbl->Release(p))
12642 #    define IDirectory_get_DirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
12643 #    define IDirectory_GetDirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
12644 #    define IDirectory_get_Filter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
12645 #    define IDirectory_GetFilter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
12646 #    define IDirectory_Close(p) ((p)->lpVtbl->Close(p))
12647 #    define IDirectory_Read(p, aObjInfo) ((p)->lpVtbl->Read(p, aObjInfo))
12648 #   endif /* VBOX_WITH_GLUE */
12649 
12650 interface IDirectory
12651 {
12652 #   ifndef VBOX_WITH_GLUE
12653     struct IDirectory_vtbl *vtbl;
12654 #   else /* VBOX_WITH_GLUE */
12655     CONST_VTBL struct IDirectoryVtbl *lpVtbl;
12656 #   endif /* VBOX_WITH_GLUE */
12657 };
12658 /* End of struct IDirectory declaration */
12659 
12660 
12661 /* Start of struct IGuestDirectory declaration */
12662 #   define IGUESTDIRECTORY_IID_STR "cc830458-4974-a19c-4dc6-cc98c2269626"
12663 #   define IGUESTDIRECTORY_IID { \
12664     0xcc830458, 0x4974, 0xa19c, \
12665     { 0x4d, 0xc6, 0xcc, 0x98, 0xc2, 0x26, 0x96, 0x26 } \
12666 }
12667 /* COM compatibility */
12668 VBOX_EXTERN_CONST(nsIID, IID_IGuestDirectory);
12669 #   ifndef VBOX_WITH_GLUE
12670 struct IGuestDirectory_vtbl
12671 {
12672     struct IDirectory_vtbl idirectory;
12673 
12674     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDirectory *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
12675 
12676 };
12677 #   else /* VBOX_WITH_GLUE */
12678 struct IGuestDirectoryVtbl
12679 {
12680     nsresult (*QueryInterface)(IGuestDirectory *pThis, const nsID *iid, void **resultp);
12681     nsrefcnt (*AddRef)(IGuestDirectory *pThis);
12682     nsrefcnt (*Release)(IGuestDirectory *pThis);
12683     nsresult (*GetDirectoryName)(IGuestDirectory *pThis, PRUnichar * *directoryName);
12684 
12685     nsresult (*GetFilter)(IGuestDirectory *pThis, PRUnichar * *filter);
12686 
12687     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
12688 
12689     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
12690 
12691     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
12692 
12693     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
12694 
12695     nsresult (*Close)(IGuestDirectory *pThis );
12696 
12697     nsresult (*Read)(
12698         IGuestDirectory *pThis,
12699         IFsObjInfo * * objInfo
12700     );
12701 
12702     nsresult (*InternalAndReservedMethod1IDirectory)(IGuestDirectory *pThis);
12703 
12704     nsresult (*InternalAndReservedMethod2IDirectory)(IGuestDirectory *pThis);
12705 
12706     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDirectory *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
12707 
12708 };
12709 #    define IGuestDirectory_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12710 #    define IGuestDirectory_AddRef(p) ((p)->lpVtbl->AddRef(p))
12711 #    define IGuestDirectory_Release(p) ((p)->lpVtbl->Release(p))
12712 #    define IGuestDirectory_get_DirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
12713 #    define IGuestDirectory_GetDirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
12714 #    define IGuestDirectory_get_Filter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
12715 #    define IGuestDirectory_GetFilter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
12716 #    define IGuestDirectory_Close(p) ((p)->lpVtbl->Close(p))
12717 #    define IGuestDirectory_Read(p, aObjInfo) ((p)->lpVtbl->Read(p, aObjInfo))
12718 #    define IGuestDirectory_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
12719 #    define IGuestDirectory_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
12720 #   endif /* VBOX_WITH_GLUE */
12721 
12722 interface IGuestDirectory
12723 {
12724 #   ifndef VBOX_WITH_GLUE
12725     struct IGuestDirectory_vtbl *vtbl;
12726 #   else /* VBOX_WITH_GLUE */
12727     CONST_VTBL struct IGuestDirectoryVtbl *lpVtbl;
12728 #   endif /* VBOX_WITH_GLUE */
12729 };
12730 /* End of struct IGuestDirectory declaration */
12731 
12732 
12733 /* Start of struct IFile declaration */
12734 #   define IFILE_IID_STR "14c66b23-404c-f24a-3cc1-ee9501d44f2a"
12735 #   define IFILE_IID { \
12736     0x14c66b23, 0x404c, 0xf24a, \
12737     { 0x3c, 0xc1, 0xee, 0x95, 0x01, 0xd4, 0x4f, 0x2a } \
12738 }
12739 /* COM compatibility */
12740 VBOX_EXTERN_CONST(nsIID, IID_IFile);
12741 #   ifndef VBOX_WITH_GLUE
12742 struct IFile_vtbl
12743 {
12744     struct nsISupports_vtbl nsisupports;
12745 
12746     nsresult (*GetEventSource)(IFile *pThis, IEventSource * *eventSource);
12747 
12748     nsresult (*GetId)(IFile *pThis, PRUint32 *id);
12749 
12750     nsresult (*GetInitialSize)(IFile *pThis, PRInt64 *initialSize);
12751 
12752     nsresult (*GetOffset)(IFile *pThis, PRInt64 *offset);
12753 
12754     nsresult (*GetStatus)(IFile *pThis, PRUint32 *status);
12755 
12756     nsresult (*GetFileName)(IFile *pThis, PRUnichar * *fileName);
12757 
12758     nsresult (*GetCreationMode)(IFile *pThis, PRUint32 *creationMode);
12759 
12760     nsresult (*GetOpenAction)(IFile *pThis, PRUint32 *openAction);
12761 
12762     nsresult (*GetAccessMode)(IFile *pThis, PRUint32 *accessMode);
12763 
12764     nsresult (*GetInternalAndReservedAttribute1IFile)(IFile *pThis, PRUint32 *reserved);
12765 
12766     nsresult (*GetInternalAndReservedAttribute2IFile)(IFile *pThis, PRUint32 *reserved);
12767 
12768     nsresult (*GetInternalAndReservedAttribute3IFile)(IFile *pThis, PRUint32 *reserved);
12769 
12770     nsresult (*GetInternalAndReservedAttribute4IFile)(IFile *pThis, PRUint32 *reserved);
12771 
12772     nsresult (*Close)(IFile *pThis );
12773 
12774     nsresult (*QueryInfo)(
12775         IFile *pThis,
12776         IFsObjInfo * * objInfo
12777     );
12778 
12779     nsresult (*QuerySize)(
12780         IFile *pThis,
12781         PRInt64 * size
12782     );
12783 
12784     nsresult (*Read)(
12785         IFile *pThis,
12786         PRUint32 toRead,
12787         PRUint32 timeoutMS,
12788         PRUint32 *dataSize,
12789         PRUint8** data
12790     );
12791 
12792     nsresult (*ReadAt)(
12793         IFile *pThis,
12794         PRInt64 offset,
12795         PRUint32 toRead,
12796         PRUint32 timeoutMS,
12797         PRUint32 *dataSize,
12798         PRUint8** data
12799     );
12800 
12801     nsresult (*Seek)(
12802         IFile *pThis,
12803         PRInt64 offset,
12804         PRUint32 whence,
12805         PRInt64 * newOffset
12806     );
12807 
12808     nsresult (*SetACL)(
12809         IFile *pThis,
12810         PRUnichar * acl,
12811         PRUint32 mode
12812     );
12813 
12814     nsresult (*SetSize)(
12815         IFile *pThis,
12816         PRInt64 size
12817     );
12818 
12819     nsresult (*Write)(
12820         IFile *pThis,
12821         PRUint32 dataSize,
12822         PRUint8* data,
12823         PRUint32 timeoutMS,
12824         PRUint32 * written
12825     );
12826 
12827     nsresult (*WriteAt)(
12828         IFile *pThis,
12829         PRInt64 offset,
12830         PRUint32 dataSize,
12831         PRUint8* data,
12832         PRUint32 timeoutMS,
12833         PRUint32 * written
12834     );
12835 
12836     nsresult (*InternalAndReservedMethod1IFile)(IFile *pThis);
12837 
12838     nsresult (*InternalAndReservedMethod2IFile)(IFile *pThis);
12839 
12840     nsresult (*InternalAndReservedMethod3IFile)(IFile *pThis);
12841 
12842     nsresult (*InternalAndReservedMethod4IFile)(IFile *pThis);
12843 
12844 };
12845 #   else /* VBOX_WITH_GLUE */
12846 struct IFileVtbl
12847 {
12848     nsresult (*QueryInterface)(IFile *pThis, const nsID *iid, void **resultp);
12849     nsrefcnt (*AddRef)(IFile *pThis);
12850     nsrefcnt (*Release)(IFile *pThis);
12851     nsresult (*GetEventSource)(IFile *pThis, IEventSource * *eventSource);
12852 
12853     nsresult (*GetId)(IFile *pThis, PRUint32 *id);
12854 
12855     nsresult (*GetInitialSize)(IFile *pThis, PRInt64 *initialSize);
12856 
12857     nsresult (*GetOffset)(IFile *pThis, PRInt64 *offset);
12858 
12859     nsresult (*GetStatus)(IFile *pThis, PRUint32 *status);
12860 
12861     nsresult (*GetFileName)(IFile *pThis, PRUnichar * *fileName);
12862 
12863     nsresult (*GetCreationMode)(IFile *pThis, PRUint32 *creationMode);
12864 
12865     nsresult (*GetOpenAction)(IFile *pThis, PRUint32 *openAction);
12866 
12867     nsresult (*GetAccessMode)(IFile *pThis, PRUint32 *accessMode);
12868 
12869     nsresult (*GetInternalAndReservedAttribute1IFile)(IFile *pThis, PRUint32 *reserved);
12870 
12871     nsresult (*GetInternalAndReservedAttribute2IFile)(IFile *pThis, PRUint32 *reserved);
12872 
12873     nsresult (*GetInternalAndReservedAttribute3IFile)(IFile *pThis, PRUint32 *reserved);
12874 
12875     nsresult (*GetInternalAndReservedAttribute4IFile)(IFile *pThis, PRUint32 *reserved);
12876 
12877     nsresult (*Close)(IFile *pThis );
12878 
12879     nsresult (*QueryInfo)(
12880         IFile *pThis,
12881         IFsObjInfo * * objInfo
12882     );
12883 
12884     nsresult (*QuerySize)(
12885         IFile *pThis,
12886         PRInt64 * size
12887     );
12888 
12889     nsresult (*Read)(
12890         IFile *pThis,
12891         PRUint32 toRead,
12892         PRUint32 timeoutMS,
12893         PRUint32 *dataSize,
12894         PRUint8** data
12895     );
12896 
12897     nsresult (*ReadAt)(
12898         IFile *pThis,
12899         PRInt64 offset,
12900         PRUint32 toRead,
12901         PRUint32 timeoutMS,
12902         PRUint32 *dataSize,
12903         PRUint8** data
12904     );
12905 
12906     nsresult (*Seek)(
12907         IFile *pThis,
12908         PRInt64 offset,
12909         PRUint32 whence,
12910         PRInt64 * newOffset
12911     );
12912 
12913     nsresult (*SetACL)(
12914         IFile *pThis,
12915         PRUnichar * acl,
12916         PRUint32 mode
12917     );
12918 
12919     nsresult (*SetSize)(
12920         IFile *pThis,
12921         PRInt64 size
12922     );
12923 
12924     nsresult (*Write)(
12925         IFile *pThis,
12926         PRUint32 dataSize,
12927         PRUint8* data,
12928         PRUint32 timeoutMS,
12929         PRUint32 * written
12930     );
12931 
12932     nsresult (*WriteAt)(
12933         IFile *pThis,
12934         PRInt64 offset,
12935         PRUint32 dataSize,
12936         PRUint8* data,
12937         PRUint32 timeoutMS,
12938         PRUint32 * written
12939     );
12940 
12941     nsresult (*InternalAndReservedMethod1IFile)(IFile *pThis);
12942 
12943     nsresult (*InternalAndReservedMethod2IFile)(IFile *pThis);
12944 
12945     nsresult (*InternalAndReservedMethod3IFile)(IFile *pThis);
12946 
12947     nsresult (*InternalAndReservedMethod4IFile)(IFile *pThis);
12948 
12949 };
12950 #    define IFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12951 #    define IFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
12952 #    define IFile_Release(p) ((p)->lpVtbl->Release(p))
12953 #    define IFile_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12954 #    define IFile_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
12955 #    define IFile_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
12956 #    define IFile_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
12957 #    define IFile_get_InitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
12958 #    define IFile_GetInitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
12959 #    define IFile_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
12960 #    define IFile_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
12961 #    define IFile_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12962 #    define IFile_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
12963 #    define IFile_get_FileName(p, aFileName) ((p)->lpVtbl->GetFileName(p, aFileName))
12964 #    define IFile_GetFileName(p, aFileName) ((p)->lpVtbl->GetFileName(p, aFileName))
12965 #    define IFile_get_CreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
12966 #    define IFile_GetCreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
12967 #    define IFile_get_OpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
12968 #    define IFile_GetOpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
12969 #    define IFile_get_AccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
12970 #    define IFile_GetAccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
12971 #    define IFile_Close(p) ((p)->lpVtbl->Close(p))
12972 #    define IFile_QueryInfo(p, aObjInfo) ((p)->lpVtbl->QueryInfo(p, aObjInfo))
12973 #    define IFile_QuerySize(p, aSize) ((p)->lpVtbl->QuerySize(p, aSize))
12974 #    define IFile_Read(p, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aToRead, aTimeoutMS, aData))
12975 #    define IFile_ReadAt(p, aOffset, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->ReadAt(p, aOffset, aToRead, aTimeoutMS, aData))
12976 #    define IFile_Seek(p, aOffset, aWhence, aNewOffset) ((p)->lpVtbl->Seek(p, aOffset, aWhence, aNewOffset))
12977 #    define IFile_SetACL(p, aAcl, aMode) ((p)->lpVtbl->SetACL(p, aAcl, aMode))
12978 #    define IFile_SetSize(p, aSize) ((p)->lpVtbl->SetSize(p, aSize))
12979 #    define IFile_Write(p, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aData, aTimeoutMS, aWritten))
12980 #    define IFile_WriteAt(p, aOffset, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteAt(p, aOffset, aData, aTimeoutMS, aWritten))
12981 #   endif /* VBOX_WITH_GLUE */
12982 
12983 interface IFile
12984 {
12985 #   ifndef VBOX_WITH_GLUE
12986     struct IFile_vtbl *vtbl;
12987 #   else /* VBOX_WITH_GLUE */
12988     CONST_VTBL struct IFileVtbl *lpVtbl;
12989 #   endif /* VBOX_WITH_GLUE */
12990 };
12991 /* End of struct IFile declaration */
12992 
12993 
12994 /* Start of struct IGuestFile declaration */
12995 #   define IGUESTFILE_IID_STR "92f21dc0-44de-1653-b717-2ebf0ca9b664"
12996 #   define IGUESTFILE_IID { \
12997     0x92f21dc0, 0x44de, 0x1653, \
12998     { 0xb7, 0x17, 0x2e, 0xbf, 0x0c, 0xa9, 0xb6, 0x64 } \
12999 }
13000 /* COM compatibility */
13001 VBOX_EXTERN_CONST(nsIID, IID_IGuestFile);
13002 #   ifndef VBOX_WITH_GLUE
13003 struct IGuestFile_vtbl
13004 {
13005     struct IFile_vtbl ifile;
13006 
13007     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFile *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13008 
13009 };
13010 #   else /* VBOX_WITH_GLUE */
13011 struct IGuestFileVtbl
13012 {
13013     nsresult (*QueryInterface)(IGuestFile *pThis, const nsID *iid, void **resultp);
13014     nsrefcnt (*AddRef)(IGuestFile *pThis);
13015     nsrefcnt (*Release)(IGuestFile *pThis);
13016     nsresult (*GetEventSource)(IGuestFile *pThis, IEventSource * *eventSource);
13017 
13018     nsresult (*GetId)(IGuestFile *pThis, PRUint32 *id);
13019 
13020     nsresult (*GetInitialSize)(IGuestFile *pThis, PRInt64 *initialSize);
13021 
13022     nsresult (*GetOffset)(IGuestFile *pThis, PRInt64 *offset);
13023 
13024     nsresult (*GetStatus)(IGuestFile *pThis, PRUint32 *status);
13025 
13026     nsresult (*GetFileName)(IGuestFile *pThis, PRUnichar * *fileName);
13027 
13028     nsresult (*GetCreationMode)(IGuestFile *pThis, PRUint32 *creationMode);
13029 
13030     nsresult (*GetOpenAction)(IGuestFile *pThis, PRUint32 *openAction);
13031 
13032     nsresult (*GetAccessMode)(IGuestFile *pThis, PRUint32 *accessMode);
13033 
13034     nsresult (*GetInternalAndReservedAttribute1IFile)(IGuestFile *pThis, PRUint32 *reserved);
13035 
13036     nsresult (*GetInternalAndReservedAttribute2IFile)(IGuestFile *pThis, PRUint32 *reserved);
13037 
13038     nsresult (*GetInternalAndReservedAttribute3IFile)(IGuestFile *pThis, PRUint32 *reserved);
13039 
13040     nsresult (*GetInternalAndReservedAttribute4IFile)(IGuestFile *pThis, PRUint32 *reserved);
13041 
13042     nsresult (*Close)(IGuestFile *pThis );
13043 
13044     nsresult (*QueryInfo)(
13045         IGuestFile *pThis,
13046         IFsObjInfo * * objInfo
13047     );
13048 
13049     nsresult (*QuerySize)(
13050         IGuestFile *pThis,
13051         PRInt64 * size
13052     );
13053 
13054     nsresult (*Read)(
13055         IGuestFile *pThis,
13056         PRUint32 toRead,
13057         PRUint32 timeoutMS,
13058         PRUint32 *dataSize,
13059         PRUint8** data
13060     );
13061 
13062     nsresult (*ReadAt)(
13063         IGuestFile *pThis,
13064         PRInt64 offset,
13065         PRUint32 toRead,
13066         PRUint32 timeoutMS,
13067         PRUint32 *dataSize,
13068         PRUint8** data
13069     );
13070 
13071     nsresult (*Seek)(
13072         IGuestFile *pThis,
13073         PRInt64 offset,
13074         PRUint32 whence,
13075         PRInt64 * newOffset
13076     );
13077 
13078     nsresult (*SetACL)(
13079         IGuestFile *pThis,
13080         PRUnichar * acl,
13081         PRUint32 mode
13082     );
13083 
13084     nsresult (*SetSize)(
13085         IGuestFile *pThis,
13086         PRInt64 size
13087     );
13088 
13089     nsresult (*Write)(
13090         IGuestFile *pThis,
13091         PRUint32 dataSize,
13092         PRUint8* data,
13093         PRUint32 timeoutMS,
13094         PRUint32 * written
13095     );
13096 
13097     nsresult (*WriteAt)(
13098         IGuestFile *pThis,
13099         PRInt64 offset,
13100         PRUint32 dataSize,
13101         PRUint8* data,
13102         PRUint32 timeoutMS,
13103         PRUint32 * written
13104     );
13105 
13106     nsresult (*InternalAndReservedMethod1IFile)(IGuestFile *pThis);
13107 
13108     nsresult (*InternalAndReservedMethod2IFile)(IGuestFile *pThis);
13109 
13110     nsresult (*InternalAndReservedMethod3IFile)(IGuestFile *pThis);
13111 
13112     nsresult (*InternalAndReservedMethod4IFile)(IGuestFile *pThis);
13113 
13114     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFile *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13115 
13116 };
13117 #    define IGuestFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13118 #    define IGuestFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
13119 #    define IGuestFile_Release(p) ((p)->lpVtbl->Release(p))
13120 #    define IGuestFile_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13121 #    define IGuestFile_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13122 #    define IGuestFile_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
13123 #    define IGuestFile_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
13124 #    define IGuestFile_get_InitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
13125 #    define IGuestFile_GetInitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
13126 #    define IGuestFile_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
13127 #    define IGuestFile_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
13128 #    define IGuestFile_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13129 #    define IGuestFile_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13130 #    define IGuestFile_get_FileName(p, aFileName) ((p)->lpVtbl->GetFileName(p, aFileName))
13131 #    define IGuestFile_GetFileName(p, aFileName) ((p)->lpVtbl->GetFileName(p, aFileName))
13132 #    define IGuestFile_get_CreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
13133 #    define IGuestFile_GetCreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
13134 #    define IGuestFile_get_OpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
13135 #    define IGuestFile_GetOpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
13136 #    define IGuestFile_get_AccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
13137 #    define IGuestFile_GetAccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
13138 #    define IGuestFile_Close(p) ((p)->lpVtbl->Close(p))
13139 #    define IGuestFile_QueryInfo(p, aObjInfo) ((p)->lpVtbl->QueryInfo(p, aObjInfo))
13140 #    define IGuestFile_QuerySize(p, aSize) ((p)->lpVtbl->QuerySize(p, aSize))
13141 #    define IGuestFile_Read(p, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aToRead, aTimeoutMS, aData))
13142 #    define IGuestFile_ReadAt(p, aOffset, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->ReadAt(p, aOffset, aToRead, aTimeoutMS, aData))
13143 #    define IGuestFile_Seek(p, aOffset, aWhence, aNewOffset) ((p)->lpVtbl->Seek(p, aOffset, aWhence, aNewOffset))
13144 #    define IGuestFile_SetACL(p, aAcl, aMode) ((p)->lpVtbl->SetACL(p, aAcl, aMode))
13145 #    define IGuestFile_SetSize(p, aSize) ((p)->lpVtbl->SetSize(p, aSize))
13146 #    define IGuestFile_Write(p, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aData, aTimeoutMS, aWritten))
13147 #    define IGuestFile_WriteAt(p, aOffset, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteAt(p, aOffset, aData, aTimeoutMS, aWritten))
13148 #    define IGuestFile_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13149 #    define IGuestFile_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13150 #   endif /* VBOX_WITH_GLUE */
13151 
13152 interface IGuestFile
13153 {
13154 #   ifndef VBOX_WITH_GLUE
13155     struct IGuestFile_vtbl *vtbl;
13156 #   else /* VBOX_WITH_GLUE */
13157     CONST_VTBL struct IGuestFileVtbl *lpVtbl;
13158 #   endif /* VBOX_WITH_GLUE */
13159 };
13160 /* End of struct IGuestFile declaration */
13161 
13162 
13163 /* Start of struct IFsObjInfo declaration */
13164 #   define IFSOBJINFO_IID_STR "d344626e-4b0a-10bc-9c2b-68973052de16"
13165 #   define IFSOBJINFO_IID { \
13166     0xd344626e, 0x4b0a, 0x10bc, \
13167     { 0x9c, 0x2b, 0x68, 0x97, 0x30, 0x52, 0xde, 0x16 } \
13168 }
13169 /* COM compatibility */
13170 VBOX_EXTERN_CONST(nsIID, IID_IFsObjInfo);
13171 #   ifndef VBOX_WITH_GLUE
13172 struct IFsObjInfo_vtbl
13173 {
13174     struct nsISupports_vtbl nsisupports;
13175 
13176     nsresult (*GetAccessTime)(IFsObjInfo *pThis, PRInt64 *accessTime);
13177 
13178     nsresult (*GetAllocatedSize)(IFsObjInfo *pThis, PRInt64 *allocatedSize);
13179 
13180     nsresult (*GetBirthTime)(IFsObjInfo *pThis, PRInt64 *birthTime);
13181 
13182     nsresult (*GetChangeTime)(IFsObjInfo *pThis, PRInt64 *changeTime);
13183 
13184     nsresult (*GetDeviceNumber)(IFsObjInfo *pThis, PRUint32 *deviceNumber);
13185 
13186     nsresult (*GetFileAttributes)(IFsObjInfo *pThis, PRUnichar * *fileAttributes);
13187 
13188     nsresult (*GetGenerationId)(IFsObjInfo *pThis, PRUint32 *generationId);
13189 
13190     nsresult (*GetGID)(IFsObjInfo *pThis, PRUint32 *GID);
13191 
13192     nsresult (*GetGroupName)(IFsObjInfo *pThis, PRUnichar * *groupName);
13193 
13194     nsresult (*GetHardLinks)(IFsObjInfo *pThis, PRUint32 *hardLinks);
13195 
13196     nsresult (*GetModificationTime)(IFsObjInfo *pThis, PRInt64 *modificationTime);
13197 
13198     nsresult (*GetName)(IFsObjInfo *pThis, PRUnichar * *name);
13199 
13200     nsresult (*GetNodeId)(IFsObjInfo *pThis, PRInt64 *nodeId);
13201 
13202     nsresult (*GetNodeIdDevice)(IFsObjInfo *pThis, PRUint32 *nodeIdDevice);
13203 
13204     nsresult (*GetObjectSize)(IFsObjInfo *pThis, PRInt64 *objectSize);
13205 
13206     nsresult (*GetType)(IFsObjInfo *pThis, PRUint32 *type);
13207 
13208     nsresult (*GetUID)(IFsObjInfo *pThis, PRUint32 *UID);
13209 
13210     nsresult (*GetUserFlags)(IFsObjInfo *pThis, PRUint32 *userFlags);
13211 
13212     nsresult (*GetUserName)(IFsObjInfo *pThis, PRUnichar * *userName);
13213 
13214     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13215 
13216     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13217 
13218     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13219 
13220     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13221 
13222 };
13223 #   else /* VBOX_WITH_GLUE */
13224 struct IFsObjInfoVtbl
13225 {
13226     nsresult (*QueryInterface)(IFsObjInfo *pThis, const nsID *iid, void **resultp);
13227     nsrefcnt (*AddRef)(IFsObjInfo *pThis);
13228     nsrefcnt (*Release)(IFsObjInfo *pThis);
13229     nsresult (*GetAccessTime)(IFsObjInfo *pThis, PRInt64 *accessTime);
13230 
13231     nsresult (*GetAllocatedSize)(IFsObjInfo *pThis, PRInt64 *allocatedSize);
13232 
13233     nsresult (*GetBirthTime)(IFsObjInfo *pThis, PRInt64 *birthTime);
13234 
13235     nsresult (*GetChangeTime)(IFsObjInfo *pThis, PRInt64 *changeTime);
13236 
13237     nsresult (*GetDeviceNumber)(IFsObjInfo *pThis, PRUint32 *deviceNumber);
13238 
13239     nsresult (*GetFileAttributes)(IFsObjInfo *pThis, PRUnichar * *fileAttributes);
13240 
13241     nsresult (*GetGenerationId)(IFsObjInfo *pThis, PRUint32 *generationId);
13242 
13243     nsresult (*GetGID)(IFsObjInfo *pThis, PRUint32 *GID);
13244 
13245     nsresult (*GetGroupName)(IFsObjInfo *pThis, PRUnichar * *groupName);
13246 
13247     nsresult (*GetHardLinks)(IFsObjInfo *pThis, PRUint32 *hardLinks);
13248 
13249     nsresult (*GetModificationTime)(IFsObjInfo *pThis, PRInt64 *modificationTime);
13250 
13251     nsresult (*GetName)(IFsObjInfo *pThis, PRUnichar * *name);
13252 
13253     nsresult (*GetNodeId)(IFsObjInfo *pThis, PRInt64 *nodeId);
13254 
13255     nsresult (*GetNodeIdDevice)(IFsObjInfo *pThis, PRUint32 *nodeIdDevice);
13256 
13257     nsresult (*GetObjectSize)(IFsObjInfo *pThis, PRInt64 *objectSize);
13258 
13259     nsresult (*GetType)(IFsObjInfo *pThis, PRUint32 *type);
13260 
13261     nsresult (*GetUID)(IFsObjInfo *pThis, PRUint32 *UID);
13262 
13263     nsresult (*GetUserFlags)(IFsObjInfo *pThis, PRUint32 *userFlags);
13264 
13265     nsresult (*GetUserName)(IFsObjInfo *pThis, PRUnichar * *userName);
13266 
13267     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13268 
13269     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13270 
13271     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13272 
13273     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
13274 
13275 };
13276 #    define IFsObjInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13277 #    define IFsObjInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
13278 #    define IFsObjInfo_Release(p) ((p)->lpVtbl->Release(p))
13279 #    define IFsObjInfo_get_AccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
13280 #    define IFsObjInfo_GetAccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
13281 #    define IFsObjInfo_get_AllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
13282 #    define IFsObjInfo_GetAllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
13283 #    define IFsObjInfo_get_BirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
13284 #    define IFsObjInfo_GetBirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
13285 #    define IFsObjInfo_get_ChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
13286 #    define IFsObjInfo_GetChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
13287 #    define IFsObjInfo_get_DeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
13288 #    define IFsObjInfo_GetDeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
13289 #    define IFsObjInfo_get_FileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
13290 #    define IFsObjInfo_GetFileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
13291 #    define IFsObjInfo_get_GenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
13292 #    define IFsObjInfo_GetGenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
13293 #    define IFsObjInfo_get_GID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
13294 #    define IFsObjInfo_GetGID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
13295 #    define IFsObjInfo_get_GroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
13296 #    define IFsObjInfo_GetGroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
13297 #    define IFsObjInfo_get_HardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
13298 #    define IFsObjInfo_GetHardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
13299 #    define IFsObjInfo_get_ModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
13300 #    define IFsObjInfo_GetModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
13301 #    define IFsObjInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
13302 #    define IFsObjInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
13303 #    define IFsObjInfo_get_NodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
13304 #    define IFsObjInfo_GetNodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
13305 #    define IFsObjInfo_get_NodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
13306 #    define IFsObjInfo_GetNodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
13307 #    define IFsObjInfo_get_ObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
13308 #    define IFsObjInfo_GetObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
13309 #    define IFsObjInfo_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
13310 #    define IFsObjInfo_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
13311 #    define IFsObjInfo_get_UID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
13312 #    define IFsObjInfo_GetUID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
13313 #    define IFsObjInfo_get_UserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
13314 #    define IFsObjInfo_GetUserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
13315 #    define IFsObjInfo_get_UserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
13316 #    define IFsObjInfo_GetUserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
13317 #   endif /* VBOX_WITH_GLUE */
13318 
13319 interface IFsObjInfo
13320 {
13321 #   ifndef VBOX_WITH_GLUE
13322     struct IFsObjInfo_vtbl *vtbl;
13323 #   else /* VBOX_WITH_GLUE */
13324     CONST_VTBL struct IFsObjInfoVtbl *lpVtbl;
13325 #   endif /* VBOX_WITH_GLUE */
13326 };
13327 /* End of struct IFsObjInfo declaration */
13328 
13329 
13330 /* Start of struct IGuestFsObjInfo declaration */
13331 #   define IGUESTFSOBJINFO_IID_STR "6620db85-44e0-ca69-e9e0-d4907ceccbe5"
13332 #   define IGUESTFSOBJINFO_IID { \
13333     0x6620db85, 0x44e0, 0xca69, \
13334     { 0xe9, 0xe0, 0xd4, 0x90, 0x7c, 0xec, 0xcb, 0xe5 } \
13335 }
13336 /* COM compatibility */
13337 VBOX_EXTERN_CONST(nsIID, IID_IGuestFsObjInfo);
13338 #   ifndef VBOX_WITH_GLUE
13339 struct IGuestFsObjInfo_vtbl
13340 {
13341     struct IFsObjInfo_vtbl ifsobjinfo;
13342 
13343     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFsObjInfo *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13344 
13345 };
13346 #   else /* VBOX_WITH_GLUE */
13347 struct IGuestFsObjInfoVtbl
13348 {
13349     nsresult (*QueryInterface)(IGuestFsObjInfo *pThis, const nsID *iid, void **resultp);
13350     nsrefcnt (*AddRef)(IGuestFsObjInfo *pThis);
13351     nsrefcnt (*Release)(IGuestFsObjInfo *pThis);
13352     nsresult (*GetAccessTime)(IGuestFsObjInfo *pThis, PRInt64 *accessTime);
13353 
13354     nsresult (*GetAllocatedSize)(IGuestFsObjInfo *pThis, PRInt64 *allocatedSize);
13355 
13356     nsresult (*GetBirthTime)(IGuestFsObjInfo *pThis, PRInt64 *birthTime);
13357 
13358     nsresult (*GetChangeTime)(IGuestFsObjInfo *pThis, PRInt64 *changeTime);
13359 
13360     nsresult (*GetDeviceNumber)(IGuestFsObjInfo *pThis, PRUint32 *deviceNumber);
13361 
13362     nsresult (*GetFileAttributes)(IGuestFsObjInfo *pThis, PRUnichar * *fileAttributes);
13363 
13364     nsresult (*GetGenerationId)(IGuestFsObjInfo *pThis, PRUint32 *generationId);
13365 
13366     nsresult (*GetGID)(IGuestFsObjInfo *pThis, PRUint32 *GID);
13367 
13368     nsresult (*GetGroupName)(IGuestFsObjInfo *pThis, PRUnichar * *groupName);
13369 
13370     nsresult (*GetHardLinks)(IGuestFsObjInfo *pThis, PRUint32 *hardLinks);
13371 
13372     nsresult (*GetModificationTime)(IGuestFsObjInfo *pThis, PRInt64 *modificationTime);
13373 
13374     nsresult (*GetName)(IGuestFsObjInfo *pThis, PRUnichar * *name);
13375 
13376     nsresult (*GetNodeId)(IGuestFsObjInfo *pThis, PRInt64 *nodeId);
13377 
13378     nsresult (*GetNodeIdDevice)(IGuestFsObjInfo *pThis, PRUint32 *nodeIdDevice);
13379 
13380     nsresult (*GetObjectSize)(IGuestFsObjInfo *pThis, PRInt64 *objectSize);
13381 
13382     nsresult (*GetType)(IGuestFsObjInfo *pThis, PRUint32 *type);
13383 
13384     nsresult (*GetUID)(IGuestFsObjInfo *pThis, PRUint32 *UID);
13385 
13386     nsresult (*GetUserFlags)(IGuestFsObjInfo *pThis, PRUint32 *userFlags);
13387 
13388     nsresult (*GetUserName)(IGuestFsObjInfo *pThis, PRUnichar * *userName);
13389 
13390     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
13391 
13392     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
13393 
13394     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
13395 
13396     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
13397 
13398     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFsObjInfo *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13399 
13400 };
13401 #    define IGuestFsObjInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13402 #    define IGuestFsObjInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
13403 #    define IGuestFsObjInfo_Release(p) ((p)->lpVtbl->Release(p))
13404 #    define IGuestFsObjInfo_get_AccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
13405 #    define IGuestFsObjInfo_GetAccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
13406 #    define IGuestFsObjInfo_get_AllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
13407 #    define IGuestFsObjInfo_GetAllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
13408 #    define IGuestFsObjInfo_get_BirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
13409 #    define IGuestFsObjInfo_GetBirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
13410 #    define IGuestFsObjInfo_get_ChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
13411 #    define IGuestFsObjInfo_GetChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
13412 #    define IGuestFsObjInfo_get_DeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
13413 #    define IGuestFsObjInfo_GetDeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
13414 #    define IGuestFsObjInfo_get_FileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
13415 #    define IGuestFsObjInfo_GetFileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
13416 #    define IGuestFsObjInfo_get_GenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
13417 #    define IGuestFsObjInfo_GetGenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
13418 #    define IGuestFsObjInfo_get_GID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
13419 #    define IGuestFsObjInfo_GetGID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
13420 #    define IGuestFsObjInfo_get_GroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
13421 #    define IGuestFsObjInfo_GetGroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
13422 #    define IGuestFsObjInfo_get_HardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
13423 #    define IGuestFsObjInfo_GetHardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
13424 #    define IGuestFsObjInfo_get_ModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
13425 #    define IGuestFsObjInfo_GetModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
13426 #    define IGuestFsObjInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
13427 #    define IGuestFsObjInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
13428 #    define IGuestFsObjInfo_get_NodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
13429 #    define IGuestFsObjInfo_GetNodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
13430 #    define IGuestFsObjInfo_get_NodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
13431 #    define IGuestFsObjInfo_GetNodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
13432 #    define IGuestFsObjInfo_get_ObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
13433 #    define IGuestFsObjInfo_GetObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
13434 #    define IGuestFsObjInfo_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
13435 #    define IGuestFsObjInfo_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
13436 #    define IGuestFsObjInfo_get_UID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
13437 #    define IGuestFsObjInfo_GetUID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
13438 #    define IGuestFsObjInfo_get_UserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
13439 #    define IGuestFsObjInfo_GetUserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
13440 #    define IGuestFsObjInfo_get_UserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
13441 #    define IGuestFsObjInfo_GetUserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
13442 #    define IGuestFsObjInfo_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13443 #    define IGuestFsObjInfo_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13444 #   endif /* VBOX_WITH_GLUE */
13445 
13446 interface IGuestFsObjInfo
13447 {
13448 #   ifndef VBOX_WITH_GLUE
13449     struct IGuestFsObjInfo_vtbl *vtbl;
13450 #   else /* VBOX_WITH_GLUE */
13451     CONST_VTBL struct IGuestFsObjInfoVtbl *lpVtbl;
13452 #   endif /* VBOX_WITH_GLUE */
13453 };
13454 /* End of struct IGuestFsObjInfo declaration */
13455 
13456 
13457 /* Start of struct IGuest declaration */
13458 #   define IGUEST_IID_STR "13a11514-402e-022e-6180-c3944de3f9c8"
13459 #   define IGUEST_IID { \
13460     0x13a11514, 0x402e, 0x022e, \
13461     { 0x61, 0x80, 0xc3, 0x94, 0x4d, 0xe3, 0xf9, 0xc8 } \
13462 }
13463 /* COM compatibility */
13464 VBOX_EXTERN_CONST(nsIID, IID_IGuest);
13465 #   ifndef VBOX_WITH_GLUE
13466 struct IGuest_vtbl
13467 {
13468     struct nsISupports_vtbl nsisupports;
13469 
13470     nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
13471 
13472     nsresult (*GetAdditionsRunLevel)(IGuest *pThis, PRUint32 *additionsRunLevel);
13473 
13474     nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
13475 
13476     nsresult (*GetAdditionsRevision)(IGuest *pThis, PRUint32 *additionsRevision);
13477 
13478     nsresult (*GetDnDSource)(IGuest *pThis, IGuestDnDSource * *dnDSource);
13479 
13480     nsresult (*GetDnDTarget)(IGuest *pThis, IGuestDnDTarget * *dnDTarget);
13481 
13482     nsresult (*GetEventSource)(IGuest *pThis, IEventSource * *eventSource);
13483 
13484     nsresult (*GetFacilities)(IGuest *pThis, PRUint32 *facilitiesSize, IAdditionsFacility * **facilities);
13485 
13486     nsresult (*GetSessions)(IGuest *pThis, PRUint32 *sessionsSize, IGuestSession * **sessions);
13487 
13488     nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
13489     nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
13490 
13491     nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
13492     nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
13493 
13494     nsresult (*GetInternalAndReservedAttribute1IGuest)(IGuest *pThis, PRUint32 *reserved);
13495 
13496     nsresult (*GetInternalAndReservedAttribute2IGuest)(IGuest *pThis, PRUint32 *reserved);
13497 
13498     nsresult (*GetInternalAndReservedAttribute3IGuest)(IGuest *pThis, PRUint32 *reserved);
13499 
13500     nsresult (*GetInternalAndReservedAttribute4IGuest)(IGuest *pThis, PRUint32 *reserved);
13501 
13502     nsresult (*GetInternalAndReservedAttribute5IGuest)(IGuest *pThis, PRUint32 *reserved);
13503 
13504     nsresult (*GetInternalAndReservedAttribute6IGuest)(IGuest *pThis, PRUint32 *reserved);
13505 
13506     nsresult (*GetInternalAndReservedAttribute7IGuest)(IGuest *pThis, PRUint32 *reserved);
13507 
13508     nsresult (*GetInternalAndReservedAttribute8IGuest)(IGuest *pThis, PRUint32 *reserved);
13509 
13510     nsresult (*GetInternalAndReservedAttribute9IGuest)(IGuest *pThis, PRUint32 *reserved);
13511 
13512     nsresult (*GetInternalAndReservedAttribute10IGuest)(IGuest *pThis, PRUint32 *reserved);
13513 
13514     nsresult (*GetInternalAndReservedAttribute11IGuest)(IGuest *pThis, PRUint32 *reserved);
13515 
13516     nsresult (*GetInternalAndReservedAttribute12IGuest)(IGuest *pThis, PRUint32 *reserved);
13517 
13518     nsresult (*GetInternalAndReservedAttribute13IGuest)(IGuest *pThis, PRUint32 *reserved);
13519 
13520     nsresult (*GetInternalAndReservedAttribute14IGuest)(IGuest *pThis, PRUint32 *reserved);
13521 
13522     nsresult (*GetInternalAndReservedAttribute15IGuest)(IGuest *pThis, PRUint32 *reserved);
13523 
13524     nsresult (*GetInternalAndReservedAttribute16IGuest)(IGuest *pThis, PRUint32 *reserved);
13525 
13526     nsresult (*InternalGetStatistics)(
13527         IGuest *pThis,
13528         PRUint32 * cpuUser,
13529         PRUint32 * cpuKernel,
13530         PRUint32 * cpuIdle,
13531         PRUint32 * memTotal,
13532         PRUint32 * memFree,
13533         PRUint32 * memBalloon,
13534         PRUint32 * memShared,
13535         PRUint32 * memCache,
13536         PRUint32 * pagedTotal,
13537         PRUint32 * memAllocTotal,
13538         PRUint32 * memFreeTotal,
13539         PRUint32 * memBalloonTotal,
13540         PRUint32 * memSharedTotal
13541     );
13542 
13543     nsresult (*GetFacilityStatus)(
13544         IGuest *pThis,
13545         PRUint32 facility,
13546         PRInt64 * timestamp,
13547         PRUint32 * status
13548     );
13549 
13550     nsresult (*GetAdditionsStatus)(
13551         IGuest *pThis,
13552         PRUint32 level,
13553         PRBool * active
13554     );
13555 
13556     nsresult (*SetCredentials)(
13557         IGuest *pThis,
13558         PRUnichar * userName,
13559         PRUnichar * password,
13560         PRUnichar * domain,
13561         PRBool allowInteractiveLogon
13562     );
13563 
13564     nsresult (*CreateSession)(
13565         IGuest *pThis,
13566         PRUnichar * user,
13567         PRUnichar * password,
13568         PRUnichar * domain,
13569         PRUnichar * sessionName,
13570         IGuestSession * * guestSession
13571     );
13572 
13573     nsresult (*FindSession)(
13574         IGuest *pThis,
13575         PRUnichar * sessionName,
13576         PRUint32 *sessionsSize,
13577         IGuestSession *** sessions
13578     );
13579 
13580     nsresult (*UpdateGuestAdditions)(
13581         IGuest *pThis,
13582         PRUnichar * source,
13583         PRUint32 argumentsSize,
13584         PRUnichar ** arguments,
13585         PRUint32 flagsSize,
13586         PRUint32* flags,
13587         IProgress * * progress
13588     );
13589 
13590     nsresult (*InternalAndReservedMethod1IGuest)(IGuest *pThis);
13591 
13592     nsresult (*InternalAndReservedMethod2IGuest)(IGuest *pThis);
13593 
13594     nsresult (*InternalAndReservedMethod3IGuest)(IGuest *pThis);
13595 
13596     nsresult (*InternalAndReservedMethod4IGuest)(IGuest *pThis);
13597 
13598     nsresult (*InternalAndReservedMethod5IGuest)(IGuest *pThis);
13599 
13600     nsresult (*InternalAndReservedMethod6IGuest)(IGuest *pThis);
13601 
13602     nsresult (*InternalAndReservedMethod7IGuest)(IGuest *pThis);
13603 
13604     nsresult (*InternalAndReservedMethod8IGuest)(IGuest *pThis);
13605 
13606 };
13607 #   else /* VBOX_WITH_GLUE */
13608 struct IGuestVtbl
13609 {
13610     nsresult (*QueryInterface)(IGuest *pThis, const nsID *iid, void **resultp);
13611     nsrefcnt (*AddRef)(IGuest *pThis);
13612     nsrefcnt (*Release)(IGuest *pThis);
13613     nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
13614 
13615     nsresult (*GetAdditionsRunLevel)(IGuest *pThis, PRUint32 *additionsRunLevel);
13616 
13617     nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
13618 
13619     nsresult (*GetAdditionsRevision)(IGuest *pThis, PRUint32 *additionsRevision);
13620 
13621     nsresult (*GetDnDSource)(IGuest *pThis, IGuestDnDSource * *dnDSource);
13622 
13623     nsresult (*GetDnDTarget)(IGuest *pThis, IGuestDnDTarget * *dnDTarget);
13624 
13625     nsresult (*GetEventSource)(IGuest *pThis, IEventSource * *eventSource);
13626 
13627     nsresult (*GetFacilities)(IGuest *pThis, PRUint32 *facilitiesSize, IAdditionsFacility * **facilities);
13628 
13629     nsresult (*GetSessions)(IGuest *pThis, PRUint32 *sessionsSize, IGuestSession * **sessions);
13630 
13631     nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
13632     nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
13633 
13634     nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
13635     nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
13636 
13637     nsresult (*GetInternalAndReservedAttribute1IGuest)(IGuest *pThis, PRUint32 *reserved);
13638 
13639     nsresult (*GetInternalAndReservedAttribute2IGuest)(IGuest *pThis, PRUint32 *reserved);
13640 
13641     nsresult (*GetInternalAndReservedAttribute3IGuest)(IGuest *pThis, PRUint32 *reserved);
13642 
13643     nsresult (*GetInternalAndReservedAttribute4IGuest)(IGuest *pThis, PRUint32 *reserved);
13644 
13645     nsresult (*GetInternalAndReservedAttribute5IGuest)(IGuest *pThis, PRUint32 *reserved);
13646 
13647     nsresult (*GetInternalAndReservedAttribute6IGuest)(IGuest *pThis, PRUint32 *reserved);
13648 
13649     nsresult (*GetInternalAndReservedAttribute7IGuest)(IGuest *pThis, PRUint32 *reserved);
13650 
13651     nsresult (*GetInternalAndReservedAttribute8IGuest)(IGuest *pThis, PRUint32 *reserved);
13652 
13653     nsresult (*GetInternalAndReservedAttribute9IGuest)(IGuest *pThis, PRUint32 *reserved);
13654 
13655     nsresult (*GetInternalAndReservedAttribute10IGuest)(IGuest *pThis, PRUint32 *reserved);
13656 
13657     nsresult (*GetInternalAndReservedAttribute11IGuest)(IGuest *pThis, PRUint32 *reserved);
13658 
13659     nsresult (*GetInternalAndReservedAttribute12IGuest)(IGuest *pThis, PRUint32 *reserved);
13660 
13661     nsresult (*GetInternalAndReservedAttribute13IGuest)(IGuest *pThis, PRUint32 *reserved);
13662 
13663     nsresult (*GetInternalAndReservedAttribute14IGuest)(IGuest *pThis, PRUint32 *reserved);
13664 
13665     nsresult (*GetInternalAndReservedAttribute15IGuest)(IGuest *pThis, PRUint32 *reserved);
13666 
13667     nsresult (*GetInternalAndReservedAttribute16IGuest)(IGuest *pThis, PRUint32 *reserved);
13668 
13669     nsresult (*InternalGetStatistics)(
13670         IGuest *pThis,
13671         PRUint32 * cpuUser,
13672         PRUint32 * cpuKernel,
13673         PRUint32 * cpuIdle,
13674         PRUint32 * memTotal,
13675         PRUint32 * memFree,
13676         PRUint32 * memBalloon,
13677         PRUint32 * memShared,
13678         PRUint32 * memCache,
13679         PRUint32 * pagedTotal,
13680         PRUint32 * memAllocTotal,
13681         PRUint32 * memFreeTotal,
13682         PRUint32 * memBalloonTotal,
13683         PRUint32 * memSharedTotal
13684     );
13685 
13686     nsresult (*GetFacilityStatus)(
13687         IGuest *pThis,
13688         PRUint32 facility,
13689         PRInt64 * timestamp,
13690         PRUint32 * status
13691     );
13692 
13693     nsresult (*GetAdditionsStatus)(
13694         IGuest *pThis,
13695         PRUint32 level,
13696         PRBool * active
13697     );
13698 
13699     nsresult (*SetCredentials)(
13700         IGuest *pThis,
13701         PRUnichar * userName,
13702         PRUnichar * password,
13703         PRUnichar * domain,
13704         PRBool allowInteractiveLogon
13705     );
13706 
13707     nsresult (*CreateSession)(
13708         IGuest *pThis,
13709         PRUnichar * user,
13710         PRUnichar * password,
13711         PRUnichar * domain,
13712         PRUnichar * sessionName,
13713         IGuestSession * * guestSession
13714     );
13715 
13716     nsresult (*FindSession)(
13717         IGuest *pThis,
13718         PRUnichar * sessionName,
13719         PRUint32 *sessionsSize,
13720         IGuestSession *** sessions
13721     );
13722 
13723     nsresult (*UpdateGuestAdditions)(
13724         IGuest *pThis,
13725         PRUnichar * source,
13726         PRUint32 argumentsSize,
13727         PRUnichar ** arguments,
13728         PRUint32 flagsSize,
13729         PRUint32* flags,
13730         IProgress * * progress
13731     );
13732 
13733     nsresult (*InternalAndReservedMethod1IGuest)(IGuest *pThis);
13734 
13735     nsresult (*InternalAndReservedMethod2IGuest)(IGuest *pThis);
13736 
13737     nsresult (*InternalAndReservedMethod3IGuest)(IGuest *pThis);
13738 
13739     nsresult (*InternalAndReservedMethod4IGuest)(IGuest *pThis);
13740 
13741     nsresult (*InternalAndReservedMethod5IGuest)(IGuest *pThis);
13742 
13743     nsresult (*InternalAndReservedMethod6IGuest)(IGuest *pThis);
13744 
13745     nsresult (*InternalAndReservedMethod7IGuest)(IGuest *pThis);
13746 
13747     nsresult (*InternalAndReservedMethod8IGuest)(IGuest *pThis);
13748 
13749 };
13750 #    define IGuest_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13751 #    define IGuest_AddRef(p) ((p)->lpVtbl->AddRef(p))
13752 #    define IGuest_Release(p) ((p)->lpVtbl->Release(p))
13753 #    define IGuest_get_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
13754 #    define IGuest_GetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
13755 #    define IGuest_get_AdditionsRunLevel(p, aAdditionsRunLevel) ((p)->lpVtbl->GetAdditionsRunLevel(p, aAdditionsRunLevel))
13756 #    define IGuest_GetAdditionsRunLevel(p, aAdditionsRunLevel) ((p)->lpVtbl->GetAdditionsRunLevel(p, aAdditionsRunLevel))
13757 #    define IGuest_get_AdditionsVersion(p, aAdditionsVersion) ((p)->lpVtbl->GetAdditionsVersion(p, aAdditionsVersion))
13758 #    define IGuest_GetAdditionsVersion(p, aAdditionsVersion) ((p)->lpVtbl->GetAdditionsVersion(p, aAdditionsVersion))
13759 #    define IGuest_get_AdditionsRevision(p, aAdditionsRevision) ((p)->lpVtbl->GetAdditionsRevision(p, aAdditionsRevision))
13760 #    define IGuest_GetAdditionsRevision(p, aAdditionsRevision) ((p)->lpVtbl->GetAdditionsRevision(p, aAdditionsRevision))
13761 #    define IGuest_get_DnDSource(p, aDnDSource) ((p)->lpVtbl->GetDnDSource(p, aDnDSource))
13762 #    define IGuest_GetDnDSource(p, aDnDSource) ((p)->lpVtbl->GetDnDSource(p, aDnDSource))
13763 #    define IGuest_get_DnDTarget(p, aDnDTarget) ((p)->lpVtbl->GetDnDTarget(p, aDnDTarget))
13764 #    define IGuest_GetDnDTarget(p, aDnDTarget) ((p)->lpVtbl->GetDnDTarget(p, aDnDTarget))
13765 #    define IGuest_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13766 #    define IGuest_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13767 #    define IGuest_get_Facilities(p, aFacilities) ((p)->lpVtbl->GetFacilities(p, aFacilities))
13768 #    define IGuest_GetFacilities(p, aFacilities) ((p)->lpVtbl->GetFacilities(p, aFacilities))
13769 #    define IGuest_get_Sessions(p, aSessions) ((p)->lpVtbl->GetSessions(p, aSessions))
13770 #    define IGuest_GetSessions(p, aSessions) ((p)->lpVtbl->GetSessions(p, aSessions))
13771 #    define IGuest_get_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
13772 #    define IGuest_GetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
13773 #    define IGuest_put_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
13774 #    define IGuest_SetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
13775 #    define IGuest_get_StatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
13776 #    define IGuest_GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
13777 #    define IGuest_put_StatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
13778 #    define IGuest_SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
13779 #    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))
13780 #    define IGuest_GetFacilityStatus(p, aFacility, aTimestamp, aStatus) ((p)->lpVtbl->GetFacilityStatus(p, aFacility, aTimestamp, aStatus))
13781 #    define IGuest_GetAdditionsStatus(p, aLevel, aActive) ((p)->lpVtbl->GetAdditionsStatus(p, aLevel, aActive))
13782 #    define IGuest_SetCredentials(p, aUserName, aPassword, aDomain, aAllowInteractiveLogon) ((p)->lpVtbl->SetCredentials(p, aUserName, aPassword, aDomain, aAllowInteractiveLogon))
13783 #    define IGuest_CreateSession(p, aUser, aPassword, aDomain, aSessionName, aGuestSession) ((p)->lpVtbl->CreateSession(p, aUser, aPassword, aDomain, aSessionName, aGuestSession))
13784 #    define IGuest_FindSession(p, aSessionName, aSessions) ((p)->lpVtbl->FindSession(p, aSessionName, aSessions))
13785 #    define IGuest_UpdateGuestAdditions(p, aSource, aArguments, aFlags, aProgress) ((p)->lpVtbl->UpdateGuestAdditions(p, aSource, aArguments, aFlags, aProgress))
13786 #   endif /* VBOX_WITH_GLUE */
13787 
13788 interface IGuest
13789 {
13790 #   ifndef VBOX_WITH_GLUE
13791     struct IGuest_vtbl *vtbl;
13792 #   else /* VBOX_WITH_GLUE */
13793     CONST_VTBL struct IGuestVtbl *lpVtbl;
13794 #   endif /* VBOX_WITH_GLUE */
13795 };
13796 /* End of struct IGuest declaration */
13797 
13798 
13799 /* Start of struct IProgress declaration */
13800 #   define IPROGRESS_IID_STR "e0026dc0-0c55-47b1-aa64-d340a396b418"
13801 #   define IPROGRESS_IID { \
13802     0xe0026dc0, 0x0c55, 0x47b1, \
13803     { 0xaa, 0x64, 0xd3, 0x40, 0xa3, 0x96, 0xb4, 0x18 } \
13804 }
13805 /* COM compatibility */
13806 VBOX_EXTERN_CONST(nsIID, IID_IProgress);
13807 #   ifndef VBOX_WITH_GLUE
13808 struct IProgress_vtbl
13809 {
13810     struct nsISupports_vtbl nsisupports;
13811 
13812     nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
13813 
13814     nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
13815 
13816     nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
13817 
13818     nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
13819 
13820     nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
13821 
13822     nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
13823 
13824     nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
13825 
13826     nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
13827 
13828     nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
13829 
13830     nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
13831 
13832     nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
13833 
13834     nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
13835 
13836     nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
13837 
13838     nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
13839 
13840     nsresult (*GetOperationWeight)(IProgress *pThis, PRUint32 *operationWeight);
13841 
13842     nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
13843     nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
13844 
13845     nsresult (*GetEventSource)(IProgress *pThis, IEventSource * *eventSource);
13846 
13847     nsresult (*GetInternalAndReservedAttribute1IProgress)(IProgress *pThis, PRUint32 *reserved);
13848 
13849     nsresult (*GetInternalAndReservedAttribute2IProgress)(IProgress *pThis, PRUint32 *reserved);
13850 
13851     nsresult (*SetCurrentOperationProgress)(
13852         IProgress *pThis,
13853         PRUint32 percent
13854     );
13855 
13856     nsresult (*SetNextOperation)(
13857         IProgress *pThis,
13858         PRUnichar * nextOperationDescription,
13859         PRUint32 nextOperationsWeight
13860     );
13861 
13862     nsresult (*WaitForCompletion)(
13863         IProgress *pThis,
13864         PRInt32 timeout
13865     );
13866 
13867     nsresult (*WaitForOperationCompletion)(
13868         IProgress *pThis,
13869         PRUint32 operation,
13870         PRInt32 timeout
13871     );
13872 
13873     nsresult (*WaitForAsyncProgressCompletion)(
13874         IProgress *pThis,
13875         IProgress * pProgressAsync
13876     );
13877 
13878     nsresult (*Cancel)(IProgress *pThis );
13879 
13880     nsresult (*InternalAndReservedMethod1IProgress)(IProgress *pThis);
13881 
13882 };
13883 #   else /* VBOX_WITH_GLUE */
13884 struct IProgressVtbl
13885 {
13886     nsresult (*QueryInterface)(IProgress *pThis, const nsID *iid, void **resultp);
13887     nsrefcnt (*AddRef)(IProgress *pThis);
13888     nsrefcnt (*Release)(IProgress *pThis);
13889     nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
13890 
13891     nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
13892 
13893     nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
13894 
13895     nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
13896 
13897     nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
13898 
13899     nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
13900 
13901     nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
13902 
13903     nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
13904 
13905     nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
13906 
13907     nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
13908 
13909     nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
13910 
13911     nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
13912 
13913     nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
13914 
13915     nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
13916 
13917     nsresult (*GetOperationWeight)(IProgress *pThis, PRUint32 *operationWeight);
13918 
13919     nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
13920     nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
13921 
13922     nsresult (*GetEventSource)(IProgress *pThis, IEventSource * *eventSource);
13923 
13924     nsresult (*GetInternalAndReservedAttribute1IProgress)(IProgress *pThis, PRUint32 *reserved);
13925 
13926     nsresult (*GetInternalAndReservedAttribute2IProgress)(IProgress *pThis, PRUint32 *reserved);
13927 
13928     nsresult (*SetCurrentOperationProgress)(
13929         IProgress *pThis,
13930         PRUint32 percent
13931     );
13932 
13933     nsresult (*SetNextOperation)(
13934         IProgress *pThis,
13935         PRUnichar * nextOperationDescription,
13936         PRUint32 nextOperationsWeight
13937     );
13938 
13939     nsresult (*WaitForCompletion)(
13940         IProgress *pThis,
13941         PRInt32 timeout
13942     );
13943 
13944     nsresult (*WaitForOperationCompletion)(
13945         IProgress *pThis,
13946         PRUint32 operation,
13947         PRInt32 timeout
13948     );
13949 
13950     nsresult (*WaitForAsyncProgressCompletion)(
13951         IProgress *pThis,
13952         IProgress * pProgressAsync
13953     );
13954 
13955     nsresult (*Cancel)(IProgress *pThis );
13956 
13957     nsresult (*InternalAndReservedMethod1IProgress)(IProgress *pThis);
13958 
13959 };
13960 #    define IProgress_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13961 #    define IProgress_AddRef(p) ((p)->lpVtbl->AddRef(p))
13962 #    define IProgress_Release(p) ((p)->lpVtbl->Release(p))
13963 #    define IProgress_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
13964 #    define IProgress_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
13965 #    define IProgress_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
13966 #    define IProgress_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
13967 #    define IProgress_get_Initiator(p, aInitiator) ((p)->lpVtbl->GetInitiator(p, aInitiator))
13968 #    define IProgress_GetInitiator(p, aInitiator) ((p)->lpVtbl->GetInitiator(p, aInitiator))
13969 #    define IProgress_get_Cancelable(p, aCancelable) ((p)->lpVtbl->GetCancelable(p, aCancelable))
13970 #    define IProgress_GetCancelable(p, aCancelable) ((p)->lpVtbl->GetCancelable(p, aCancelable))
13971 #    define IProgress_get_Percent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
13972 #    define IProgress_GetPercent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
13973 #    define IProgress_get_TimeRemaining(p, aTimeRemaining) ((p)->lpVtbl->GetTimeRemaining(p, aTimeRemaining))
13974 #    define IProgress_GetTimeRemaining(p, aTimeRemaining) ((p)->lpVtbl->GetTimeRemaining(p, aTimeRemaining))
13975 #    define IProgress_get_Completed(p, aCompleted) ((p)->lpVtbl->GetCompleted(p, aCompleted))
13976 #    define IProgress_GetCompleted(p, aCompleted) ((p)->lpVtbl->GetCompleted(p, aCompleted))
13977 #    define IProgress_get_Canceled(p, aCanceled) ((p)->lpVtbl->GetCanceled(p, aCanceled))
13978 #    define IProgress_GetCanceled(p, aCanceled) ((p)->lpVtbl->GetCanceled(p, aCanceled))
13979 #    define IProgress_get_ResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
13980 #    define IProgress_GetResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
13981 #    define IProgress_get_ErrorInfo(p, aErrorInfo) ((p)->lpVtbl->GetErrorInfo(p, aErrorInfo))
13982 #    define IProgress_GetErrorInfo(p, aErrorInfo) ((p)->lpVtbl->GetErrorInfo(p, aErrorInfo))
13983 #    define IProgress_get_OperationCount(p, aOperationCount) ((p)->lpVtbl->GetOperationCount(p, aOperationCount))
13984 #    define IProgress_GetOperationCount(p, aOperationCount) ((p)->lpVtbl->GetOperationCount(p, aOperationCount))
13985 #    define IProgress_get_Operation(p, aOperation) ((p)->lpVtbl->GetOperation(p, aOperation))
13986 #    define IProgress_GetOperation(p, aOperation) ((p)->lpVtbl->GetOperation(p, aOperation))
13987 #    define IProgress_get_OperationDescription(p, aOperationDescription) ((p)->lpVtbl->GetOperationDescription(p, aOperationDescription))
13988 #    define IProgress_GetOperationDescription(p, aOperationDescription) ((p)->lpVtbl->GetOperationDescription(p, aOperationDescription))
13989 #    define IProgress_get_OperationPercent(p, aOperationPercent) ((p)->lpVtbl->GetOperationPercent(p, aOperationPercent))
13990 #    define IProgress_GetOperationPercent(p, aOperationPercent) ((p)->lpVtbl->GetOperationPercent(p, aOperationPercent))
13991 #    define IProgress_get_OperationWeight(p, aOperationWeight) ((p)->lpVtbl->GetOperationWeight(p, aOperationWeight))
13992 #    define IProgress_GetOperationWeight(p, aOperationWeight) ((p)->lpVtbl->GetOperationWeight(p, aOperationWeight))
13993 #    define IProgress_get_Timeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
13994 #    define IProgress_GetTimeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
13995 #    define IProgress_put_Timeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
13996 #    define IProgress_SetTimeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
13997 #    define IProgress_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13998 #    define IProgress_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
13999 #    define IProgress_SetCurrentOperationProgress(p, aPercent) ((p)->lpVtbl->SetCurrentOperationProgress(p, aPercent))
14000 #    define IProgress_SetNextOperation(p, aNextOperationDescription, aNextOperationsWeight) ((p)->lpVtbl->SetNextOperation(p, aNextOperationDescription, aNextOperationsWeight))
14001 #    define IProgress_WaitForCompletion(p, aTimeout) ((p)->lpVtbl->WaitForCompletion(p, aTimeout))
14002 #    define IProgress_WaitForOperationCompletion(p, aOperation, aTimeout) ((p)->lpVtbl->WaitForOperationCompletion(p, aOperation, aTimeout))
14003 #    define IProgress_WaitForAsyncProgressCompletion(p, aPProgressAsync) ((p)->lpVtbl->WaitForAsyncProgressCompletion(p, aPProgressAsync))
14004 #    define IProgress_Cancel(p) ((p)->lpVtbl->Cancel(p))
14005 #   endif /* VBOX_WITH_GLUE */
14006 
14007 interface IProgress
14008 {
14009 #   ifndef VBOX_WITH_GLUE
14010     struct IProgress_vtbl *vtbl;
14011 #   else /* VBOX_WITH_GLUE */
14012     CONST_VTBL struct IProgressVtbl *lpVtbl;
14013 #   endif /* VBOX_WITH_GLUE */
14014 };
14015 /* End of struct IProgress declaration */
14016 
14017 
14018 /* Start of struct ISnapshot declaration */
14019 #   define ISNAPSHOT_IID_STR "5732f030-4194-ec8b-c761-e1a99327e9f0"
14020 #   define ISNAPSHOT_IID { \
14021     0x5732f030, 0x4194, 0xec8b, \
14022     { 0xc7, 0x61, 0xe1, 0xa9, 0x93, 0x27, 0xe9, 0xf0 } \
14023 }
14024 /* COM compatibility */
14025 VBOX_EXTERN_CONST(nsIID, IID_ISnapshot);
14026 #   ifndef VBOX_WITH_GLUE
14027 struct ISnapshot_vtbl
14028 {
14029     struct nsISupports_vtbl nsisupports;
14030 
14031     nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
14032 
14033     nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
14034     nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
14035 
14036     nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
14037     nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
14038 
14039     nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
14040 
14041     nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
14042 
14043     nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
14044 
14045     nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
14046 
14047     nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
14048 
14049     nsresult (*GetInternalAndReservedAttribute1ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14050 
14051     nsresult (*GetInternalAndReservedAttribute2ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14052 
14053     nsresult (*GetChildrenCount)(
14054         ISnapshot *pThis,
14055         PRUint32 * childrenCount
14056     );
14057 
14058     nsresult (*InternalAndReservedMethod1ISnapshot)(ISnapshot *pThis);
14059 
14060 };
14061 #   else /* VBOX_WITH_GLUE */
14062 struct ISnapshotVtbl
14063 {
14064     nsresult (*QueryInterface)(ISnapshot *pThis, const nsID *iid, void **resultp);
14065     nsrefcnt (*AddRef)(ISnapshot *pThis);
14066     nsrefcnt (*Release)(ISnapshot *pThis);
14067     nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
14068 
14069     nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
14070     nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
14071 
14072     nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
14073     nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
14074 
14075     nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
14076 
14077     nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
14078 
14079     nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
14080 
14081     nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
14082 
14083     nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
14084 
14085     nsresult (*GetInternalAndReservedAttribute1ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14086 
14087     nsresult (*GetInternalAndReservedAttribute2ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
14088 
14089     nsresult (*GetChildrenCount)(
14090         ISnapshot *pThis,
14091         PRUint32 * childrenCount
14092     );
14093 
14094     nsresult (*InternalAndReservedMethod1ISnapshot)(ISnapshot *pThis);
14095 
14096 };
14097 #    define ISnapshot_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14098 #    define ISnapshot_AddRef(p) ((p)->lpVtbl->AddRef(p))
14099 #    define ISnapshot_Release(p) ((p)->lpVtbl->Release(p))
14100 #    define ISnapshot_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
14101 #    define ISnapshot_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
14102 #    define ISnapshot_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14103 #    define ISnapshot_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14104 #    define ISnapshot_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
14105 #    define ISnapshot_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
14106 #    define ISnapshot_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
14107 #    define ISnapshot_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
14108 #    define ISnapshot_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
14109 #    define ISnapshot_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
14110 #    define ISnapshot_get_TimeStamp(p, aTimeStamp) ((p)->lpVtbl->GetTimeStamp(p, aTimeStamp))
14111 #    define ISnapshot_GetTimeStamp(p, aTimeStamp) ((p)->lpVtbl->GetTimeStamp(p, aTimeStamp))
14112 #    define ISnapshot_get_Online(p, aOnline) ((p)->lpVtbl->GetOnline(p, aOnline))
14113 #    define ISnapshot_GetOnline(p, aOnline) ((p)->lpVtbl->GetOnline(p, aOnline))
14114 #    define ISnapshot_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
14115 #    define ISnapshot_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
14116 #    define ISnapshot_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
14117 #    define ISnapshot_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
14118 #    define ISnapshot_get_Children(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
14119 #    define ISnapshot_GetChildren(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
14120 #    define ISnapshot_GetChildrenCount(p, aChildrenCount) ((p)->lpVtbl->GetChildrenCount(p, aChildrenCount))
14121 #   endif /* VBOX_WITH_GLUE */
14122 
14123 interface ISnapshot
14124 {
14125 #   ifndef VBOX_WITH_GLUE
14126     struct ISnapshot_vtbl *vtbl;
14127 #   else /* VBOX_WITH_GLUE */
14128     CONST_VTBL struct ISnapshotVtbl *lpVtbl;
14129 #   endif /* VBOX_WITH_GLUE */
14130 };
14131 /* End of struct ISnapshot declaration */
14132 
14133 
14134 /* Start of struct IMediumAttachment declaration */
14135 #   define IMEDIUMATTACHMENT_IID_STR "3785b3f7-7b5f-4000-8842-ad0cc6ab30b7"
14136 #   define IMEDIUMATTACHMENT_IID { \
14137     0x3785b3f7, 0x7b5f, 0x4000, \
14138     { 0x88, 0x42, 0xad, 0x0c, 0xc6, 0xab, 0x30, 0xb7 } \
14139 }
14140 /* COM compatibility */
14141 VBOX_EXTERN_CONST(nsIID, IID_IMediumAttachment);
14142 #   ifndef VBOX_WITH_GLUE
14143 struct IMediumAttachment_vtbl
14144 {
14145     struct nsISupports_vtbl nsisupports;
14146 
14147     nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
14148 
14149     nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
14150 
14151     nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
14152 
14153     nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
14154 
14155     nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
14156 
14157     nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
14158 
14159     nsresult (*GetTemporaryEject)(IMediumAttachment *pThis, PRBool *temporaryEject);
14160 
14161     nsresult (*GetIsEjected)(IMediumAttachment *pThis, PRBool *isEjected);
14162 
14163     nsresult (*GetNonRotational)(IMediumAttachment *pThis, PRBool *nonRotational);
14164 
14165     nsresult (*GetDiscard)(IMediumAttachment *pThis, PRBool *discard);
14166 
14167     nsresult (*GetHotPluggable)(IMediumAttachment *pThis, PRBool *hotPluggable);
14168 
14169     nsresult (*GetBandwidthGroup)(IMediumAttachment *pThis, IBandwidthGroup * *bandwidthGroup);
14170 
14171     nsresult (*GetInternalAndReservedAttribute1IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14172 
14173     nsresult (*GetInternalAndReservedAttribute2IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14174 
14175     nsresult (*GetInternalAndReservedAttribute3IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14176 
14177     nsresult (*GetInternalAndReservedAttribute4IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14178 
14179 };
14180 #   else /* VBOX_WITH_GLUE */
14181 struct IMediumAttachmentVtbl
14182 {
14183     nsresult (*QueryInterface)(IMediumAttachment *pThis, const nsID *iid, void **resultp);
14184     nsrefcnt (*AddRef)(IMediumAttachment *pThis);
14185     nsrefcnt (*Release)(IMediumAttachment *pThis);
14186     nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
14187 
14188     nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
14189 
14190     nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
14191 
14192     nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
14193 
14194     nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
14195 
14196     nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
14197 
14198     nsresult (*GetTemporaryEject)(IMediumAttachment *pThis, PRBool *temporaryEject);
14199 
14200     nsresult (*GetIsEjected)(IMediumAttachment *pThis, PRBool *isEjected);
14201 
14202     nsresult (*GetNonRotational)(IMediumAttachment *pThis, PRBool *nonRotational);
14203 
14204     nsresult (*GetDiscard)(IMediumAttachment *pThis, PRBool *discard);
14205 
14206     nsresult (*GetHotPluggable)(IMediumAttachment *pThis, PRBool *hotPluggable);
14207 
14208     nsresult (*GetBandwidthGroup)(IMediumAttachment *pThis, IBandwidthGroup * *bandwidthGroup);
14209 
14210     nsresult (*GetInternalAndReservedAttribute1IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14211 
14212     nsresult (*GetInternalAndReservedAttribute2IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14213 
14214     nsresult (*GetInternalAndReservedAttribute3IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14215 
14216     nsresult (*GetInternalAndReservedAttribute4IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
14217 
14218 };
14219 #    define IMediumAttachment_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14220 #    define IMediumAttachment_AddRef(p) ((p)->lpVtbl->AddRef(p))
14221 #    define IMediumAttachment_Release(p) ((p)->lpVtbl->Release(p))
14222 #    define IMediumAttachment_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
14223 #    define IMediumAttachment_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
14224 #    define IMediumAttachment_get_Controller(p, aController) ((p)->lpVtbl->GetController(p, aController))
14225 #    define IMediumAttachment_GetController(p, aController) ((p)->lpVtbl->GetController(p, aController))
14226 #    define IMediumAttachment_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
14227 #    define IMediumAttachment_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
14228 #    define IMediumAttachment_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
14229 #    define IMediumAttachment_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
14230 #    define IMediumAttachment_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
14231 #    define IMediumAttachment_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
14232 #    define IMediumAttachment_get_Passthrough(p, aPassthrough) ((p)->lpVtbl->GetPassthrough(p, aPassthrough))
14233 #    define IMediumAttachment_GetPassthrough(p, aPassthrough) ((p)->lpVtbl->GetPassthrough(p, aPassthrough))
14234 #    define IMediumAttachment_get_TemporaryEject(p, aTemporaryEject) ((p)->lpVtbl->GetTemporaryEject(p, aTemporaryEject))
14235 #    define IMediumAttachment_GetTemporaryEject(p, aTemporaryEject) ((p)->lpVtbl->GetTemporaryEject(p, aTemporaryEject))
14236 #    define IMediumAttachment_get_IsEjected(p, aIsEjected) ((p)->lpVtbl->GetIsEjected(p, aIsEjected))
14237 #    define IMediumAttachment_GetIsEjected(p, aIsEjected) ((p)->lpVtbl->GetIsEjected(p, aIsEjected))
14238 #    define IMediumAttachment_get_NonRotational(p, aNonRotational) ((p)->lpVtbl->GetNonRotational(p, aNonRotational))
14239 #    define IMediumAttachment_GetNonRotational(p, aNonRotational) ((p)->lpVtbl->GetNonRotational(p, aNonRotational))
14240 #    define IMediumAttachment_get_Discard(p, aDiscard) ((p)->lpVtbl->GetDiscard(p, aDiscard))
14241 #    define IMediumAttachment_GetDiscard(p, aDiscard) ((p)->lpVtbl->GetDiscard(p, aDiscard))
14242 #    define IMediumAttachment_get_HotPluggable(p, aHotPluggable) ((p)->lpVtbl->GetHotPluggable(p, aHotPluggable))
14243 #    define IMediumAttachment_GetHotPluggable(p, aHotPluggable) ((p)->lpVtbl->GetHotPluggable(p, aHotPluggable))
14244 #    define IMediumAttachment_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
14245 #    define IMediumAttachment_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
14246 #   endif /* VBOX_WITH_GLUE */
14247 
14248 interface IMediumAttachment
14249 {
14250 #   ifndef VBOX_WITH_GLUE
14251     struct IMediumAttachment_vtbl *vtbl;
14252 #   else /* VBOX_WITH_GLUE */
14253     CONST_VTBL struct IMediumAttachmentVtbl *lpVtbl;
14254 #   endif /* VBOX_WITH_GLUE */
14255 };
14256 /* End of struct IMediumAttachment declaration */
14257 
14258 
14259 /* Start of struct IMedium declaration */
14260 #   define IMEDIUM_IID_STR "4afe423b-43e0-e9d0-82e8-ceb307940dda"
14261 #   define IMEDIUM_IID { \
14262     0x4afe423b, 0x43e0, 0xe9d0, \
14263     { 0x82, 0xe8, 0xce, 0xb3, 0x07, 0x94, 0x0d, 0xda } \
14264 }
14265 /* COM compatibility */
14266 VBOX_EXTERN_CONST(nsIID, IID_IMedium);
14267 #   ifndef VBOX_WITH_GLUE
14268 struct IMedium_vtbl
14269 {
14270     struct nsISupports_vtbl nsisupports;
14271 
14272     nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
14273 
14274     nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
14275     nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
14276 
14277     nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
14278 
14279     nsresult (*GetVariant)(IMedium *pThis, PRUint32 *variantSize, PRUint32 **variant);
14280 
14281     nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
14282 
14283     nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
14284 
14285     nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
14286 
14287     nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
14288 
14289     nsresult (*GetSize)(IMedium *pThis, PRInt64 *size);
14290 
14291     nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
14292 
14293     nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
14294 
14295     nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
14296     nsresult (*SetType)(IMedium *pThis, PRUint32 type);
14297 
14298     nsresult (*GetAllowedTypes)(IMedium *pThis, PRUint32 *allowedTypesSize, PRUint32 **allowedTypes);
14299 
14300     nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
14301 
14302     nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
14303 
14304     nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
14305 
14306     nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
14307 
14308     nsresult (*GetLogicalSize)(IMedium *pThis, PRInt64 *logicalSize);
14309 
14310     nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
14311     nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
14312 
14313     nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
14314 
14315     nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
14316 
14317     nsresult (*GetInternalAndReservedAttribute1IMedium)(IMedium *pThis, PRUint32 *reserved);
14318 
14319     nsresult (*GetInternalAndReservedAttribute2IMedium)(IMedium *pThis, PRUint32 *reserved);
14320 
14321     nsresult (*GetInternalAndReservedAttribute3IMedium)(IMedium *pThis, PRUint32 *reserved);
14322 
14323     nsresult (*GetInternalAndReservedAttribute4IMedium)(IMedium *pThis, PRUint32 *reserved);
14324 
14325     nsresult (*GetInternalAndReservedAttribute5IMedium)(IMedium *pThis, PRUint32 *reserved);
14326 
14327     nsresult (*GetInternalAndReservedAttribute6IMedium)(IMedium *pThis, PRUint32 *reserved);
14328 
14329     nsresult (*GetInternalAndReservedAttribute7IMedium)(IMedium *pThis, PRUint32 *reserved);
14330 
14331     nsresult (*GetInternalAndReservedAttribute8IMedium)(IMedium *pThis, PRUint32 *reserved);
14332 
14333     nsresult (*SetIds)(
14334         IMedium *pThis,
14335         PRBool setImageId,
14336         PRUnichar * imageId,
14337         PRBool setParentId,
14338         PRUnichar * parentId
14339     );
14340 
14341     nsresult (*RefreshState)(
14342         IMedium *pThis,
14343         PRUint32 * state
14344     );
14345 
14346     nsresult (*GetSnapshotIds)(
14347         IMedium *pThis,
14348         PRUnichar * machineId,
14349         PRUint32 *snapshotIdsSize,
14350         PRUnichar *** snapshotIds
14351     );
14352 
14353     nsresult (*LockRead)(
14354         IMedium *pThis,
14355         IToken * * token
14356     );
14357 
14358     nsresult (*LockWrite)(
14359         IMedium *pThis,
14360         IToken * * token
14361     );
14362 
14363     nsresult (*Close)(IMedium *pThis );
14364 
14365     nsresult (*GetProperty)(
14366         IMedium *pThis,
14367         PRUnichar * name,
14368         PRUnichar * * value
14369     );
14370 
14371     nsresult (*SetProperty)(
14372         IMedium *pThis,
14373         PRUnichar * name,
14374         PRUnichar * value
14375     );
14376 
14377     nsresult (*GetProperties)(
14378         IMedium *pThis,
14379         PRUnichar * names,
14380         PRUint32 *returnNamesSize,
14381         PRUnichar *** returnNames,
14382         PRUint32 *returnValuesSize,
14383         PRUnichar *** returnValues
14384     );
14385 
14386     nsresult (*SetProperties)(
14387         IMedium *pThis,
14388         PRUint32 namesSize,
14389         PRUnichar ** names,
14390         PRUint32 valuesSize,
14391         PRUnichar ** values
14392     );
14393 
14394     nsresult (*CreateBaseStorage)(
14395         IMedium *pThis,
14396         PRInt64 logicalSize,
14397         PRUint32 variantSize,
14398         PRUint32* variant,
14399         IProgress * * progress
14400     );
14401 
14402     nsresult (*DeleteStorage)(
14403         IMedium *pThis,
14404         IProgress * * progress
14405     );
14406 
14407     nsresult (*CreateDiffStorage)(
14408         IMedium *pThis,
14409         IMedium * target,
14410         PRUint32 variantSize,
14411         PRUint32* variant,
14412         IProgress * * progress
14413     );
14414 
14415     nsresult (*MergeTo)(
14416         IMedium *pThis,
14417         IMedium * target,
14418         IProgress * * progress
14419     );
14420 
14421     nsresult (*CloneTo)(
14422         IMedium *pThis,
14423         IMedium * target,
14424         PRUint32 variantSize,
14425         PRUint32* variant,
14426         IMedium * parent,
14427         IProgress * * progress
14428     );
14429 
14430     nsresult (*CloneToBase)(
14431         IMedium *pThis,
14432         IMedium * target,
14433         PRUint32 variantSize,
14434         PRUint32* variant,
14435         IProgress * * progress
14436     );
14437 
14438     nsresult (*SetLocation)(
14439         IMedium *pThis,
14440         PRUnichar * location,
14441         IProgress * * progress
14442     );
14443 
14444     nsresult (*Compact)(
14445         IMedium *pThis,
14446         IProgress * * progress
14447     );
14448 
14449     nsresult (*Resize)(
14450         IMedium *pThis,
14451         PRInt64 logicalSize,
14452         IProgress * * progress
14453     );
14454 
14455     nsresult (*Reset)(
14456         IMedium *pThis,
14457         IProgress * * progress
14458     );
14459 
14460     nsresult (*ChangeEncryption)(
14461         IMedium *pThis,
14462         PRUnichar * currentPassword,
14463         PRUnichar * cipher,
14464         PRUnichar * newPassword,
14465         PRUnichar * newPasswordId,
14466         IProgress * * progress
14467     );
14468 
14469     nsresult (*GetEncryptionSettings)(
14470         IMedium *pThis,
14471         PRUnichar * * cipher,
14472         PRUnichar * * passwordId
14473     );
14474 
14475     nsresult (*CheckEncryptionPassword)(
14476         IMedium *pThis,
14477         PRUnichar * password
14478     );
14479 
14480     nsresult (*InternalAndReservedMethod1IMedium)(IMedium *pThis);
14481 
14482     nsresult (*InternalAndReservedMethod2IMedium)(IMedium *pThis);
14483 
14484     nsresult (*InternalAndReservedMethod3IMedium)(IMedium *pThis);
14485 
14486     nsresult (*InternalAndReservedMethod4IMedium)(IMedium *pThis);
14487 
14488 };
14489 #   else /* VBOX_WITH_GLUE */
14490 struct IMediumVtbl
14491 {
14492     nsresult (*QueryInterface)(IMedium *pThis, const nsID *iid, void **resultp);
14493     nsrefcnt (*AddRef)(IMedium *pThis);
14494     nsrefcnt (*Release)(IMedium *pThis);
14495     nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
14496 
14497     nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
14498     nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
14499 
14500     nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
14501 
14502     nsresult (*GetVariant)(IMedium *pThis, PRUint32 *variantSize, PRUint32 **variant);
14503 
14504     nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
14505 
14506     nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
14507 
14508     nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
14509 
14510     nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
14511 
14512     nsresult (*GetSize)(IMedium *pThis, PRInt64 *size);
14513 
14514     nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
14515 
14516     nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
14517 
14518     nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
14519     nsresult (*SetType)(IMedium *pThis, PRUint32 type);
14520 
14521     nsresult (*GetAllowedTypes)(IMedium *pThis, PRUint32 *allowedTypesSize, PRUint32 **allowedTypes);
14522 
14523     nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
14524 
14525     nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
14526 
14527     nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
14528 
14529     nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
14530 
14531     nsresult (*GetLogicalSize)(IMedium *pThis, PRInt64 *logicalSize);
14532 
14533     nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
14534     nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
14535 
14536     nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
14537 
14538     nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
14539 
14540     nsresult (*GetInternalAndReservedAttribute1IMedium)(IMedium *pThis, PRUint32 *reserved);
14541 
14542     nsresult (*GetInternalAndReservedAttribute2IMedium)(IMedium *pThis, PRUint32 *reserved);
14543 
14544     nsresult (*GetInternalAndReservedAttribute3IMedium)(IMedium *pThis, PRUint32 *reserved);
14545 
14546     nsresult (*GetInternalAndReservedAttribute4IMedium)(IMedium *pThis, PRUint32 *reserved);
14547 
14548     nsresult (*GetInternalAndReservedAttribute5IMedium)(IMedium *pThis, PRUint32 *reserved);
14549 
14550     nsresult (*GetInternalAndReservedAttribute6IMedium)(IMedium *pThis, PRUint32 *reserved);
14551 
14552     nsresult (*GetInternalAndReservedAttribute7IMedium)(IMedium *pThis, PRUint32 *reserved);
14553 
14554     nsresult (*GetInternalAndReservedAttribute8IMedium)(IMedium *pThis, PRUint32 *reserved);
14555 
14556     nsresult (*SetIds)(
14557         IMedium *pThis,
14558         PRBool setImageId,
14559         PRUnichar * imageId,
14560         PRBool setParentId,
14561         PRUnichar * parentId
14562     );
14563 
14564     nsresult (*RefreshState)(
14565         IMedium *pThis,
14566         PRUint32 * state
14567     );
14568 
14569     nsresult (*GetSnapshotIds)(
14570         IMedium *pThis,
14571         PRUnichar * machineId,
14572         PRUint32 *snapshotIdsSize,
14573         PRUnichar *** snapshotIds
14574     );
14575 
14576     nsresult (*LockRead)(
14577         IMedium *pThis,
14578         IToken * * token
14579     );
14580 
14581     nsresult (*LockWrite)(
14582         IMedium *pThis,
14583         IToken * * token
14584     );
14585 
14586     nsresult (*Close)(IMedium *pThis );
14587 
14588     nsresult (*GetProperty)(
14589         IMedium *pThis,
14590         PRUnichar * name,
14591         PRUnichar * * value
14592     );
14593 
14594     nsresult (*SetProperty)(
14595         IMedium *pThis,
14596         PRUnichar * name,
14597         PRUnichar * value
14598     );
14599 
14600     nsresult (*GetProperties)(
14601         IMedium *pThis,
14602         PRUnichar * names,
14603         PRUint32 *returnNamesSize,
14604         PRUnichar *** returnNames,
14605         PRUint32 *returnValuesSize,
14606         PRUnichar *** returnValues
14607     );
14608 
14609     nsresult (*SetProperties)(
14610         IMedium *pThis,
14611         PRUint32 namesSize,
14612         PRUnichar ** names,
14613         PRUint32 valuesSize,
14614         PRUnichar ** values
14615     );
14616 
14617     nsresult (*CreateBaseStorage)(
14618         IMedium *pThis,
14619         PRInt64 logicalSize,
14620         PRUint32 variantSize,
14621         PRUint32* variant,
14622         IProgress * * progress
14623     );
14624 
14625     nsresult (*DeleteStorage)(
14626         IMedium *pThis,
14627         IProgress * * progress
14628     );
14629 
14630     nsresult (*CreateDiffStorage)(
14631         IMedium *pThis,
14632         IMedium * target,
14633         PRUint32 variantSize,
14634         PRUint32* variant,
14635         IProgress * * progress
14636     );
14637 
14638     nsresult (*MergeTo)(
14639         IMedium *pThis,
14640         IMedium * target,
14641         IProgress * * progress
14642     );
14643 
14644     nsresult (*CloneTo)(
14645         IMedium *pThis,
14646         IMedium * target,
14647         PRUint32 variantSize,
14648         PRUint32* variant,
14649         IMedium * parent,
14650         IProgress * * progress
14651     );
14652 
14653     nsresult (*CloneToBase)(
14654         IMedium *pThis,
14655         IMedium * target,
14656         PRUint32 variantSize,
14657         PRUint32* variant,
14658         IProgress * * progress
14659     );
14660 
14661     nsresult (*SetLocation)(
14662         IMedium *pThis,
14663         PRUnichar * location,
14664         IProgress * * progress
14665     );
14666 
14667     nsresult (*Compact)(
14668         IMedium *pThis,
14669         IProgress * * progress
14670     );
14671 
14672     nsresult (*Resize)(
14673         IMedium *pThis,
14674         PRInt64 logicalSize,
14675         IProgress * * progress
14676     );
14677 
14678     nsresult (*Reset)(
14679         IMedium *pThis,
14680         IProgress * * progress
14681     );
14682 
14683     nsresult (*ChangeEncryption)(
14684         IMedium *pThis,
14685         PRUnichar * currentPassword,
14686         PRUnichar * cipher,
14687         PRUnichar * newPassword,
14688         PRUnichar * newPasswordId,
14689         IProgress * * progress
14690     );
14691 
14692     nsresult (*GetEncryptionSettings)(
14693         IMedium *pThis,
14694         PRUnichar * * cipher,
14695         PRUnichar * * passwordId
14696     );
14697 
14698     nsresult (*CheckEncryptionPassword)(
14699         IMedium *pThis,
14700         PRUnichar * password
14701     );
14702 
14703     nsresult (*InternalAndReservedMethod1IMedium)(IMedium *pThis);
14704 
14705     nsresult (*InternalAndReservedMethod2IMedium)(IMedium *pThis);
14706 
14707     nsresult (*InternalAndReservedMethod3IMedium)(IMedium *pThis);
14708 
14709     nsresult (*InternalAndReservedMethod4IMedium)(IMedium *pThis);
14710 
14711 };
14712 #    define IMedium_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14713 #    define IMedium_AddRef(p) ((p)->lpVtbl->AddRef(p))
14714 #    define IMedium_Release(p) ((p)->lpVtbl->Release(p))
14715 #    define IMedium_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
14716 #    define IMedium_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
14717 #    define IMedium_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
14718 #    define IMedium_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
14719 #    define IMedium_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
14720 #    define IMedium_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
14721 #    define IMedium_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
14722 #    define IMedium_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
14723 #    define IMedium_get_Variant(p, aVariant) ((p)->lpVtbl->GetVariant(p, aVariant))
14724 #    define IMedium_GetVariant(p, aVariant) ((p)->lpVtbl->GetVariant(p, aVariant))
14725 #    define IMedium_get_Location(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
14726 #    define IMedium_GetLocation(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
14727 #    define IMedium_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14728 #    define IMedium_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14729 #    define IMedium_get_DeviceType(p, aDeviceType) ((p)->lpVtbl->GetDeviceType(p, aDeviceType))
14730 #    define IMedium_GetDeviceType(p, aDeviceType) ((p)->lpVtbl->GetDeviceType(p, aDeviceType))
14731 #    define IMedium_get_HostDrive(p, aHostDrive) ((p)->lpVtbl->GetHostDrive(p, aHostDrive))
14732 #    define IMedium_GetHostDrive(p, aHostDrive) ((p)->lpVtbl->GetHostDrive(p, aHostDrive))
14733 #    define IMedium_get_Size(p, aSize) ((p)->lpVtbl->GetSize(p, aSize))
14734 #    define IMedium_GetSize(p, aSize) ((p)->lpVtbl->GetSize(p, aSize))
14735 #    define IMedium_get_Format(p, aFormat) ((p)->lpVtbl->GetFormat(p, aFormat))
14736 #    define IMedium_GetFormat(p, aFormat) ((p)->lpVtbl->GetFormat(p, aFormat))
14737 #    define IMedium_get_MediumFormat(p, aMediumFormat) ((p)->lpVtbl->GetMediumFormat(p, aMediumFormat))
14738 #    define IMedium_GetMediumFormat(p, aMediumFormat) ((p)->lpVtbl->GetMediumFormat(p, aMediumFormat))
14739 #    define IMedium_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
14740 #    define IMedium_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
14741 #    define IMedium_put_Type(p, aType) ((p)->lpVtbl->SetType(p, aType))
14742 #    define IMedium_SetType(p, aType) ((p)->lpVtbl->SetType(p, aType))
14743 #    define IMedium_get_AllowedTypes(p, aAllowedTypes) ((p)->lpVtbl->GetAllowedTypes(p, aAllowedTypes))
14744 #    define IMedium_GetAllowedTypes(p, aAllowedTypes) ((p)->lpVtbl->GetAllowedTypes(p, aAllowedTypes))
14745 #    define IMedium_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
14746 #    define IMedium_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
14747 #    define IMedium_get_Children(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
14748 #    define IMedium_GetChildren(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
14749 #    define IMedium_get_Base(p, aBase) ((p)->lpVtbl->GetBase(p, aBase))
14750 #    define IMedium_GetBase(p, aBase) ((p)->lpVtbl->GetBase(p, aBase))
14751 #    define IMedium_get_ReadOnly(p, aReadOnly) ((p)->lpVtbl->GetReadOnly(p, aReadOnly))
14752 #    define IMedium_GetReadOnly(p, aReadOnly) ((p)->lpVtbl->GetReadOnly(p, aReadOnly))
14753 #    define IMedium_get_LogicalSize(p, aLogicalSize) ((p)->lpVtbl->GetLogicalSize(p, aLogicalSize))
14754 #    define IMedium_GetLogicalSize(p, aLogicalSize) ((p)->lpVtbl->GetLogicalSize(p, aLogicalSize))
14755 #    define IMedium_get_AutoReset(p, aAutoReset) ((p)->lpVtbl->GetAutoReset(p, aAutoReset))
14756 #    define IMedium_GetAutoReset(p, aAutoReset) ((p)->lpVtbl->GetAutoReset(p, aAutoReset))
14757 #    define IMedium_put_AutoReset(p, aAutoReset) ((p)->lpVtbl->SetAutoReset(p, aAutoReset))
14758 #    define IMedium_SetAutoReset(p, aAutoReset) ((p)->lpVtbl->SetAutoReset(p, aAutoReset))
14759 #    define IMedium_get_LastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
14760 #    define IMedium_GetLastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
14761 #    define IMedium_get_MachineIds(p, aMachineIds) ((p)->lpVtbl->GetMachineIds(p, aMachineIds))
14762 #    define IMedium_GetMachineIds(p, aMachineIds) ((p)->lpVtbl->GetMachineIds(p, aMachineIds))
14763 #    define IMedium_SetIds(p, aSetImageId, aImageId, aSetParentId, aParentId) ((p)->lpVtbl->SetIds(p, aSetImageId, aImageId, aSetParentId, aParentId))
14764 #    define IMedium_RefreshState(p, aState) ((p)->lpVtbl->RefreshState(p, aState))
14765 #    define IMedium_GetSnapshotIds(p, aMachineId, aSnapshotIds) ((p)->lpVtbl->GetSnapshotIds(p, aMachineId, aSnapshotIds))
14766 #    define IMedium_LockRead(p, aToken) ((p)->lpVtbl->LockRead(p, aToken))
14767 #    define IMedium_LockWrite(p, aToken) ((p)->lpVtbl->LockWrite(p, aToken))
14768 #    define IMedium_Close(p) ((p)->lpVtbl->Close(p))
14769 #    define IMedium_GetProperty(p, aName, aValue) ((p)->lpVtbl->GetProperty(p, aName, aValue))
14770 #    define IMedium_SetProperty(p, aName, aValue) ((p)->lpVtbl->SetProperty(p, aName, aValue))
14771 #    define IMedium_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
14772 #    define IMedium_SetProperties(p, aNames, aValues) ((p)->lpVtbl->SetProperties(p, aNames, aValues))
14773 #    define IMedium_CreateBaseStorage(p, aLogicalSize, aVariant, aProgress) ((p)->lpVtbl->CreateBaseStorage(p, aLogicalSize, aVariant, aProgress))
14774 #    define IMedium_DeleteStorage(p, aProgress) ((p)->lpVtbl->DeleteStorage(p, aProgress))
14775 #    define IMedium_CreateDiffStorage(p, aTarget, aVariant, aProgress) ((p)->lpVtbl->CreateDiffStorage(p, aTarget, aVariant, aProgress))
14776 #    define IMedium_MergeTo(p, aTarget, aProgress) ((p)->lpVtbl->MergeTo(p, aTarget, aProgress))
14777 #    define IMedium_CloneTo(p, aTarget, aVariant, aParent, aProgress) ((p)->lpVtbl->CloneTo(p, aTarget, aVariant, aParent, aProgress))
14778 #    define IMedium_CloneToBase(p, aTarget, aVariant, aProgress) ((p)->lpVtbl->CloneToBase(p, aTarget, aVariant, aProgress))
14779 #    define IMedium_SetLocation(p, aLocation, aProgress) ((p)->lpVtbl->SetLocation(p, aLocation, aProgress))
14780 #    define IMedium_Compact(p, aProgress) ((p)->lpVtbl->Compact(p, aProgress))
14781 #    define IMedium_Resize(p, aLogicalSize, aProgress) ((p)->lpVtbl->Resize(p, aLogicalSize, aProgress))
14782 #    define IMedium_Reset(p, aProgress) ((p)->lpVtbl->Reset(p, aProgress))
14783 #    define IMedium_ChangeEncryption(p, aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aProgress) ((p)->lpVtbl->ChangeEncryption(p, aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aProgress))
14784 #    define IMedium_GetEncryptionSettings(p, aCipher, aPasswordId) ((p)->lpVtbl->GetEncryptionSettings(p, aCipher, aPasswordId))
14785 #    define IMedium_CheckEncryptionPassword(p, aPassword) ((p)->lpVtbl->CheckEncryptionPassword(p, aPassword))
14786 #   endif /* VBOX_WITH_GLUE */
14787 
14788 interface IMedium
14789 {
14790 #   ifndef VBOX_WITH_GLUE
14791     struct IMedium_vtbl *vtbl;
14792 #   else /* VBOX_WITH_GLUE */
14793     CONST_VTBL struct IMediumVtbl *lpVtbl;
14794 #   endif /* VBOX_WITH_GLUE */
14795 };
14796 /* End of struct IMedium declaration */
14797 
14798 
14799 /* Start of struct IMediumFormat declaration */
14800 #   define IMEDIUMFORMAT_IID_STR "10f337fb-422e-e57e-661b-0998ac309175"
14801 #   define IMEDIUMFORMAT_IID { \
14802     0x10f337fb, 0x422e, 0xe57e, \
14803     { 0x66, 0x1b, 0x09, 0x98, 0xac, 0x30, 0x91, 0x75 } \
14804 }
14805 /* COM compatibility */
14806 VBOX_EXTERN_CONST(nsIID, IID_IMediumFormat);
14807 #   ifndef VBOX_WITH_GLUE
14808 struct IMediumFormat_vtbl
14809 {
14810     struct nsISupports_vtbl nsisupports;
14811 
14812     nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
14813 
14814     nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
14815 
14816     nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
14817 
14818     nsresult (*GetInternalAndReservedAttribute1IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
14819 
14820     nsresult (*GetInternalAndReservedAttribute2IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
14821 
14822     nsresult (*DescribeFileExtensions)(
14823         IMediumFormat *pThis,
14824         PRUint32 *extensionsSize,
14825         PRUnichar *** extensions,
14826         PRUint32 *typesSize,
14827         PRUint32** types
14828     );
14829 
14830     nsresult (*DescribeProperties)(
14831         IMediumFormat *pThis,
14832         PRUint32 *namesSize,
14833         PRUnichar *** names,
14834         PRUint32 *descriptionsSize,
14835         PRUnichar *** descriptions,
14836         PRUint32 *typesSize,
14837         PRUint32** types,
14838         PRUint32 *flagsSize,
14839         PRUint32** flags,
14840         PRUint32 *defaultsSize,
14841         PRUnichar *** defaults
14842     );
14843 
14844     nsresult (*InternalAndReservedMethod1IMediumFormat)(IMediumFormat *pThis);
14845 
14846 };
14847 #   else /* VBOX_WITH_GLUE */
14848 struct IMediumFormatVtbl
14849 {
14850     nsresult (*QueryInterface)(IMediumFormat *pThis, const nsID *iid, void **resultp);
14851     nsrefcnt (*AddRef)(IMediumFormat *pThis);
14852     nsrefcnt (*Release)(IMediumFormat *pThis);
14853     nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
14854 
14855     nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
14856 
14857     nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
14858 
14859     nsresult (*GetInternalAndReservedAttribute1IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
14860 
14861     nsresult (*GetInternalAndReservedAttribute2IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
14862 
14863     nsresult (*DescribeFileExtensions)(
14864         IMediumFormat *pThis,
14865         PRUint32 *extensionsSize,
14866         PRUnichar *** extensions,
14867         PRUint32 *typesSize,
14868         PRUint32** types
14869     );
14870 
14871     nsresult (*DescribeProperties)(
14872         IMediumFormat *pThis,
14873         PRUint32 *namesSize,
14874         PRUnichar *** names,
14875         PRUint32 *descriptionsSize,
14876         PRUnichar *** descriptions,
14877         PRUint32 *typesSize,
14878         PRUint32** types,
14879         PRUint32 *flagsSize,
14880         PRUint32** flags,
14881         PRUint32 *defaultsSize,
14882         PRUnichar *** defaults
14883     );
14884 
14885     nsresult (*InternalAndReservedMethod1IMediumFormat)(IMediumFormat *pThis);
14886 
14887 };
14888 #    define IMediumFormat_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14889 #    define IMediumFormat_AddRef(p) ((p)->lpVtbl->AddRef(p))
14890 #    define IMediumFormat_Release(p) ((p)->lpVtbl->Release(p))
14891 #    define IMediumFormat_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
14892 #    define IMediumFormat_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
14893 #    define IMediumFormat_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14894 #    define IMediumFormat_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14895 #    define IMediumFormat_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
14896 #    define IMediumFormat_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
14897 #    define IMediumFormat_DescribeFileExtensions(p, aExtensions, aTypes) ((p)->lpVtbl->DescribeFileExtensions(p, aExtensions, aTypes))
14898 #    define IMediumFormat_DescribeProperties(p, aNames, aDescriptions, aTypes, aFlags, aDefaults) ((p)->lpVtbl->DescribeProperties(p, aNames, aDescriptions, aTypes, aFlags, aDefaults))
14899 #   endif /* VBOX_WITH_GLUE */
14900 
14901 interface IMediumFormat
14902 {
14903 #   ifndef VBOX_WITH_GLUE
14904     struct IMediumFormat_vtbl *vtbl;
14905 #   else /* VBOX_WITH_GLUE */
14906     CONST_VTBL struct IMediumFormatVtbl *lpVtbl;
14907 #   endif /* VBOX_WITH_GLUE */
14908 };
14909 /* End of struct IMediumFormat declaration */
14910 
14911 
14912 /* Start of struct IToken declaration */
14913 #   define ITOKEN_IID_STR "20479eaf-d8ed-44cf-85ac-c83a26c95a4d"
14914 #   define ITOKEN_IID { \
14915     0x20479eaf, 0xd8ed, 0x44cf, \
14916     { 0x85, 0xac, 0xc8, 0x3a, 0x26, 0xc9, 0x5a, 0x4d } \
14917 }
14918 /* COM compatibility */
14919 VBOX_EXTERN_CONST(nsIID, IID_IToken);
14920 #   ifndef VBOX_WITH_GLUE
14921 struct IToken_vtbl
14922 {
14923     struct nsISupports_vtbl nsisupports;
14924 
14925     nsresult (*GetInternalAndReservedAttribute1IToken)(IToken *pThis, PRUint32 *reserved);
14926 
14927     nsresult (*GetInternalAndReservedAttribute2IToken)(IToken *pThis, PRUint32 *reserved);
14928 
14929     nsresult (*Abandon)(IToken *pThis );
14930 
14931     nsresult (*Dummy)(IToken *pThis );
14932 
14933     nsresult (*InternalAndReservedMethod1IToken)(IToken *pThis);
14934 
14935 };
14936 #   else /* VBOX_WITH_GLUE */
14937 struct ITokenVtbl
14938 {
14939     nsresult (*QueryInterface)(IToken *pThis, const nsID *iid, void **resultp);
14940     nsrefcnt (*AddRef)(IToken *pThis);
14941     nsrefcnt (*Release)(IToken *pThis);
14942     nsresult (*GetInternalAndReservedAttribute1IToken)(IToken *pThis, PRUint32 *reserved);
14943 
14944     nsresult (*GetInternalAndReservedAttribute2IToken)(IToken *pThis, PRUint32 *reserved);
14945 
14946     nsresult (*Abandon)(IToken *pThis );
14947 
14948     nsresult (*Dummy)(IToken *pThis );
14949 
14950     nsresult (*InternalAndReservedMethod1IToken)(IToken *pThis);
14951 
14952 };
14953 #    define IToken_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14954 #    define IToken_AddRef(p) ((p)->lpVtbl->AddRef(p))
14955 #    define IToken_Release(p) ((p)->lpVtbl->Release(p))
14956 #    define IToken_Abandon(p) ((p)->lpVtbl->Abandon(p))
14957 #    define IToken_Dummy(p) ((p)->lpVtbl->Dummy(p))
14958 #   endif /* VBOX_WITH_GLUE */
14959 
14960 interface IToken
14961 {
14962 #   ifndef VBOX_WITH_GLUE
14963     struct IToken_vtbl *vtbl;
14964 #   else /* VBOX_WITH_GLUE */
14965     CONST_VTBL struct ITokenVtbl *lpVtbl;
14966 #   endif /* VBOX_WITH_GLUE */
14967 };
14968 /* End of struct IToken declaration */
14969 
14970 
14971 /* Start of struct IKeyboard declaration */
14972 #   define IKEYBOARD_IID_STR "da91d4c9-4c02-fdb1-c5ac-d89e22e81302"
14973 #   define IKEYBOARD_IID { \
14974     0xda91d4c9, 0x4c02, 0xfdb1, \
14975     { 0xc5, 0xac, 0xd8, 0x9e, 0x22, 0xe8, 0x13, 0x02 } \
14976 }
14977 /* COM compatibility */
14978 VBOX_EXTERN_CONST(nsIID, IID_IKeyboard);
14979 #   ifndef VBOX_WITH_GLUE
14980 struct IKeyboard_vtbl
14981 {
14982     struct nsISupports_vtbl nsisupports;
14983 
14984     nsresult (*GetKeyboardLEDs)(IKeyboard *pThis, PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs);
14985 
14986     nsresult (*GetEventSource)(IKeyboard *pThis, IEventSource * *eventSource);
14987 
14988     nsresult (*GetInternalAndReservedAttribute1IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
14989 
14990     nsresult (*GetInternalAndReservedAttribute2IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
14991 
14992     nsresult (*PutScancode)(
14993         IKeyboard *pThis,
14994         PRInt32 scancode
14995     );
14996 
14997     nsresult (*PutScancodes)(
14998         IKeyboard *pThis,
14999         PRUint32 scancodesSize,
15000         PRInt32* scancodes,
15001         PRUint32 * codesStored
15002     );
15003 
15004     nsresult (*PutCAD)(IKeyboard *pThis );
15005 
15006     nsresult (*ReleaseKeys)(IKeyboard *pThis );
15007 
15008     nsresult (*InternalAndReservedMethod1IKeyboard)(IKeyboard *pThis);
15009 
15010 };
15011 #   else /* VBOX_WITH_GLUE */
15012 struct IKeyboardVtbl
15013 {
15014     nsresult (*QueryInterface)(IKeyboard *pThis, const nsID *iid, void **resultp);
15015     nsrefcnt (*AddRef)(IKeyboard *pThis);
15016     nsrefcnt (*Release)(IKeyboard *pThis);
15017     nsresult (*GetKeyboardLEDs)(IKeyboard *pThis, PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs);
15018 
15019     nsresult (*GetEventSource)(IKeyboard *pThis, IEventSource * *eventSource);
15020 
15021     nsresult (*GetInternalAndReservedAttribute1IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
15022 
15023     nsresult (*GetInternalAndReservedAttribute2IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
15024 
15025     nsresult (*PutScancode)(
15026         IKeyboard *pThis,
15027         PRInt32 scancode
15028     );
15029 
15030     nsresult (*PutScancodes)(
15031         IKeyboard *pThis,
15032         PRUint32 scancodesSize,
15033         PRInt32* scancodes,
15034         PRUint32 * codesStored
15035     );
15036 
15037     nsresult (*PutCAD)(IKeyboard *pThis );
15038 
15039     nsresult (*ReleaseKeys)(IKeyboard *pThis );
15040 
15041     nsresult (*InternalAndReservedMethod1IKeyboard)(IKeyboard *pThis);
15042 
15043 };
15044 #    define IKeyboard_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15045 #    define IKeyboard_AddRef(p) ((p)->lpVtbl->AddRef(p))
15046 #    define IKeyboard_Release(p) ((p)->lpVtbl->Release(p))
15047 #    define IKeyboard_get_KeyboardLEDs(p, aKeyboardLEDs) ((p)->lpVtbl->GetKeyboardLEDs(p, aKeyboardLEDs))
15048 #    define IKeyboard_GetKeyboardLEDs(p, aKeyboardLEDs) ((p)->lpVtbl->GetKeyboardLEDs(p, aKeyboardLEDs))
15049 #    define IKeyboard_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15050 #    define IKeyboard_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15051 #    define IKeyboard_PutScancode(p, aScancode) ((p)->lpVtbl->PutScancode(p, aScancode))
15052 #    define IKeyboard_PutScancodes(p, aScancodes, aCodesStored) ((p)->lpVtbl->PutScancodes(p, aScancodes, aCodesStored))
15053 #    define IKeyboard_PutCAD(p) ((p)->lpVtbl->PutCAD(p))
15054 #    define IKeyboard_ReleaseKeys(p) ((p)->lpVtbl->ReleaseKeys(p))
15055 #   endif /* VBOX_WITH_GLUE */
15056 
15057 interface IKeyboard
15058 {
15059 #   ifndef VBOX_WITH_GLUE
15060     struct IKeyboard_vtbl *vtbl;
15061 #   else /* VBOX_WITH_GLUE */
15062     CONST_VTBL struct IKeyboardVtbl *lpVtbl;
15063 #   endif /* VBOX_WITH_GLUE */
15064 };
15065 /* End of struct IKeyboard declaration */
15066 
15067 
15068 /* Start of struct IMousePointerShape declaration */
15069 #   define IMOUSEPOINTERSHAPE_IID_STR "e04e5545-4a0f-f9d2-5bef-f9b25b6557ed"
15070 #   define IMOUSEPOINTERSHAPE_IID { \
15071     0xe04e5545, 0x4a0f, 0xf9d2, \
15072     { 0x5b, 0xef, 0xf9, 0xb2, 0x5b, 0x65, 0x57, 0xed } \
15073 }
15074 /* COM compatibility */
15075 VBOX_EXTERN_CONST(nsIID, IID_IMousePointerShape);
15076 #   ifndef VBOX_WITH_GLUE
15077 struct IMousePointerShape_vtbl
15078 {
15079     struct nsISupports_vtbl nsisupports;
15080 
15081     nsresult (*GetVisible)(IMousePointerShape *pThis, PRBool *visible);
15082 
15083     nsresult (*GetAlpha)(IMousePointerShape *pThis, PRBool *alpha);
15084 
15085     nsresult (*GetHotX)(IMousePointerShape *pThis, PRUint32 *hotX);
15086 
15087     nsresult (*GetHotY)(IMousePointerShape *pThis, PRUint32 *hotY);
15088 
15089     nsresult (*GetWidth)(IMousePointerShape *pThis, PRUint32 *width);
15090 
15091     nsresult (*GetHeight)(IMousePointerShape *pThis, PRUint32 *height);
15092 
15093     nsresult (*GetShape)(IMousePointerShape *pThis, PRUint32 *shapeSize, PRUint8 **shape);
15094 
15095     nsresult (*GetInternalAndReservedAttribute1IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
15096 
15097     nsresult (*GetInternalAndReservedAttribute2IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
15098 
15099 };
15100 #   else /* VBOX_WITH_GLUE */
15101 struct IMousePointerShapeVtbl
15102 {
15103     nsresult (*QueryInterface)(IMousePointerShape *pThis, const nsID *iid, void **resultp);
15104     nsrefcnt (*AddRef)(IMousePointerShape *pThis);
15105     nsrefcnt (*Release)(IMousePointerShape *pThis);
15106     nsresult (*GetVisible)(IMousePointerShape *pThis, PRBool *visible);
15107 
15108     nsresult (*GetAlpha)(IMousePointerShape *pThis, PRBool *alpha);
15109 
15110     nsresult (*GetHotX)(IMousePointerShape *pThis, PRUint32 *hotX);
15111 
15112     nsresult (*GetHotY)(IMousePointerShape *pThis, PRUint32 *hotY);
15113 
15114     nsresult (*GetWidth)(IMousePointerShape *pThis, PRUint32 *width);
15115 
15116     nsresult (*GetHeight)(IMousePointerShape *pThis, PRUint32 *height);
15117 
15118     nsresult (*GetShape)(IMousePointerShape *pThis, PRUint32 *shapeSize, PRUint8 **shape);
15119 
15120     nsresult (*GetInternalAndReservedAttribute1IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
15121 
15122     nsresult (*GetInternalAndReservedAttribute2IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
15123 
15124 };
15125 #    define IMousePointerShape_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15126 #    define IMousePointerShape_AddRef(p) ((p)->lpVtbl->AddRef(p))
15127 #    define IMousePointerShape_Release(p) ((p)->lpVtbl->Release(p))
15128 #    define IMousePointerShape_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
15129 #    define IMousePointerShape_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
15130 #    define IMousePointerShape_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
15131 #    define IMousePointerShape_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
15132 #    define IMousePointerShape_get_HotX(p, aHotX) ((p)->lpVtbl->GetHotX(p, aHotX))
15133 #    define IMousePointerShape_GetHotX(p, aHotX) ((p)->lpVtbl->GetHotX(p, aHotX))
15134 #    define IMousePointerShape_get_HotY(p, aHotY) ((p)->lpVtbl->GetHotY(p, aHotY))
15135 #    define IMousePointerShape_GetHotY(p, aHotY) ((p)->lpVtbl->GetHotY(p, aHotY))
15136 #    define IMousePointerShape_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15137 #    define IMousePointerShape_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15138 #    define IMousePointerShape_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15139 #    define IMousePointerShape_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15140 #    define IMousePointerShape_get_Shape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
15141 #    define IMousePointerShape_GetShape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
15142 #   endif /* VBOX_WITH_GLUE */
15143 
15144 interface IMousePointerShape
15145 {
15146 #   ifndef VBOX_WITH_GLUE
15147     struct IMousePointerShape_vtbl *vtbl;
15148 #   else /* VBOX_WITH_GLUE */
15149     CONST_VTBL struct IMousePointerShapeVtbl *lpVtbl;
15150 #   endif /* VBOX_WITH_GLUE */
15151 };
15152 /* End of struct IMousePointerShape declaration */
15153 
15154 
15155 /* Start of struct IMouse declaration */
15156 #   define IMOUSE_IID_STR "ee35adb0-4748-3e12-e7fd-5aad957bba0f"
15157 #   define IMOUSE_IID { \
15158     0xee35adb0, 0x4748, 0x3e12, \
15159     { 0xe7, 0xfd, 0x5a, 0xad, 0x95, 0x7b, 0xba, 0x0f } \
15160 }
15161 /* COM compatibility */
15162 VBOX_EXTERN_CONST(nsIID, IID_IMouse);
15163 #   ifndef VBOX_WITH_GLUE
15164 struct IMouse_vtbl
15165 {
15166     struct nsISupports_vtbl nsisupports;
15167 
15168     nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
15169 
15170     nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
15171 
15172     nsresult (*GetMultiTouchSupported)(IMouse *pThis, PRBool *multiTouchSupported);
15173 
15174     nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
15175 
15176     nsresult (*GetPointerShape)(IMouse *pThis, IMousePointerShape * *pointerShape);
15177 
15178     nsresult (*GetEventSource)(IMouse *pThis, IEventSource * *eventSource);
15179 
15180     nsresult (*GetInternalAndReservedAttribute1IMouse)(IMouse *pThis, PRUint32 *reserved);
15181 
15182     nsresult (*GetInternalAndReservedAttribute2IMouse)(IMouse *pThis, PRUint32 *reserved);
15183 
15184     nsresult (*PutMouseEvent)(
15185         IMouse *pThis,
15186         PRInt32 dx,
15187         PRInt32 dy,
15188         PRInt32 dz,
15189         PRInt32 dw,
15190         PRInt32 buttonState
15191     );
15192 
15193     nsresult (*PutMouseEventAbsolute)(
15194         IMouse *pThis,
15195         PRInt32 x,
15196         PRInt32 y,
15197         PRInt32 dz,
15198         PRInt32 dw,
15199         PRInt32 buttonState
15200     );
15201 
15202     nsresult (*PutEventMultiTouch)(
15203         IMouse *pThis,
15204         PRInt32 count,
15205         PRUint32 contactsSize,
15206         PRInt64* contacts,
15207         PRUint32 scanTime
15208     );
15209 
15210     nsresult (*PutEventMultiTouchString)(
15211         IMouse *pThis,
15212         PRInt32 count,
15213         PRUnichar * contacts,
15214         PRUint32 scanTime
15215     );
15216 
15217     nsresult (*InternalAndReservedMethod1IMouse)(IMouse *pThis);
15218 
15219 };
15220 #   else /* VBOX_WITH_GLUE */
15221 struct IMouseVtbl
15222 {
15223     nsresult (*QueryInterface)(IMouse *pThis, const nsID *iid, void **resultp);
15224     nsrefcnt (*AddRef)(IMouse *pThis);
15225     nsrefcnt (*Release)(IMouse *pThis);
15226     nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
15227 
15228     nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
15229 
15230     nsresult (*GetMultiTouchSupported)(IMouse *pThis, PRBool *multiTouchSupported);
15231 
15232     nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
15233 
15234     nsresult (*GetPointerShape)(IMouse *pThis, IMousePointerShape * *pointerShape);
15235 
15236     nsresult (*GetEventSource)(IMouse *pThis, IEventSource * *eventSource);
15237 
15238     nsresult (*GetInternalAndReservedAttribute1IMouse)(IMouse *pThis, PRUint32 *reserved);
15239 
15240     nsresult (*GetInternalAndReservedAttribute2IMouse)(IMouse *pThis, PRUint32 *reserved);
15241 
15242     nsresult (*PutMouseEvent)(
15243         IMouse *pThis,
15244         PRInt32 dx,
15245         PRInt32 dy,
15246         PRInt32 dz,
15247         PRInt32 dw,
15248         PRInt32 buttonState
15249     );
15250 
15251     nsresult (*PutMouseEventAbsolute)(
15252         IMouse *pThis,
15253         PRInt32 x,
15254         PRInt32 y,
15255         PRInt32 dz,
15256         PRInt32 dw,
15257         PRInt32 buttonState
15258     );
15259 
15260     nsresult (*PutEventMultiTouch)(
15261         IMouse *pThis,
15262         PRInt32 count,
15263         PRUint32 contactsSize,
15264         PRInt64* contacts,
15265         PRUint32 scanTime
15266     );
15267 
15268     nsresult (*PutEventMultiTouchString)(
15269         IMouse *pThis,
15270         PRInt32 count,
15271         PRUnichar * contacts,
15272         PRUint32 scanTime
15273     );
15274 
15275     nsresult (*InternalAndReservedMethod1IMouse)(IMouse *pThis);
15276 
15277 };
15278 #    define IMouse_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15279 #    define IMouse_AddRef(p) ((p)->lpVtbl->AddRef(p))
15280 #    define IMouse_Release(p) ((p)->lpVtbl->Release(p))
15281 #    define IMouse_get_AbsoluteSupported(p, aAbsoluteSupported) ((p)->lpVtbl->GetAbsoluteSupported(p, aAbsoluteSupported))
15282 #    define IMouse_GetAbsoluteSupported(p, aAbsoluteSupported) ((p)->lpVtbl->GetAbsoluteSupported(p, aAbsoluteSupported))
15283 #    define IMouse_get_RelativeSupported(p, aRelativeSupported) ((p)->lpVtbl->GetRelativeSupported(p, aRelativeSupported))
15284 #    define IMouse_GetRelativeSupported(p, aRelativeSupported) ((p)->lpVtbl->GetRelativeSupported(p, aRelativeSupported))
15285 #    define IMouse_get_MultiTouchSupported(p, aMultiTouchSupported) ((p)->lpVtbl->GetMultiTouchSupported(p, aMultiTouchSupported))
15286 #    define IMouse_GetMultiTouchSupported(p, aMultiTouchSupported) ((p)->lpVtbl->GetMultiTouchSupported(p, aMultiTouchSupported))
15287 #    define IMouse_get_NeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
15288 #    define IMouse_GetNeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
15289 #    define IMouse_get_PointerShape(p, aPointerShape) ((p)->lpVtbl->GetPointerShape(p, aPointerShape))
15290 #    define IMouse_GetPointerShape(p, aPointerShape) ((p)->lpVtbl->GetPointerShape(p, aPointerShape))
15291 #    define IMouse_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15292 #    define IMouse_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15293 #    define IMouse_PutMouseEvent(p, aDx, aDy, aDz, aDw, aButtonState) ((p)->lpVtbl->PutMouseEvent(p, aDx, aDy, aDz, aDw, aButtonState))
15294 #    define IMouse_PutMouseEventAbsolute(p, aX, aY, aDz, aDw, aButtonState) ((p)->lpVtbl->PutMouseEventAbsolute(p, aX, aY, aDz, aDw, aButtonState))
15295 #    define IMouse_PutEventMultiTouch(p, aCount, aContacts, aScanTime) ((p)->lpVtbl->PutEventMultiTouch(p, aCount, aContacts, aScanTime))
15296 #    define IMouse_PutEventMultiTouchString(p, aCount, aContacts, aScanTime) ((p)->lpVtbl->PutEventMultiTouchString(p, aCount, aContacts, aScanTime))
15297 #   endif /* VBOX_WITH_GLUE */
15298 
15299 interface IMouse
15300 {
15301 #   ifndef VBOX_WITH_GLUE
15302     struct IMouse_vtbl *vtbl;
15303 #   else /* VBOX_WITH_GLUE */
15304     CONST_VTBL struct IMouseVtbl *lpVtbl;
15305 #   endif /* VBOX_WITH_GLUE */
15306 };
15307 /* End of struct IMouse declaration */
15308 
15309 
15310 /* Start of struct IDisplaySourceBitmap declaration */
15311 #   define IDISPLAYSOURCEBITMAP_IID_STR "0b78daeb-f52f-43b9-99e8-4a3c226cbe2d"
15312 #   define IDISPLAYSOURCEBITMAP_IID { \
15313     0x0b78daeb, 0xf52f, 0x43b9, \
15314     { 0x99, 0xe8, 0x4a, 0x3c, 0x22, 0x6c, 0xbe, 0x2d } \
15315 }
15316 /* COM compatibility */
15317 VBOX_EXTERN_CONST(nsIID, IID_IDisplaySourceBitmap);
15318 #   ifndef VBOX_WITH_GLUE
15319 struct IDisplaySourceBitmap_vtbl
15320 {
15321     struct nsISupports_vtbl nsisupports;
15322 
15323     nsresult (*GetScreenId)(IDisplaySourceBitmap *pThis, PRUint32 *screenId);
15324 
15325     nsresult (*QueryBitmapInfo)(
15326         IDisplaySourceBitmap *pThis,
15327         PRUint8 * * address,
15328         PRUint32 * width,
15329         PRUint32 * height,
15330         PRUint32 * bitsPerPixel,
15331         PRUint32 * bytesPerLine,
15332         PRUint32 * bitmapFormat
15333     );
15334 
15335 };
15336 #   else /* VBOX_WITH_GLUE */
15337 struct IDisplaySourceBitmapVtbl
15338 {
15339     nsresult (*QueryInterface)(IDisplaySourceBitmap *pThis, const nsID *iid, void **resultp);
15340     nsrefcnt (*AddRef)(IDisplaySourceBitmap *pThis);
15341     nsrefcnt (*Release)(IDisplaySourceBitmap *pThis);
15342     nsresult (*GetScreenId)(IDisplaySourceBitmap *pThis, PRUint32 *screenId);
15343 
15344     nsresult (*QueryBitmapInfo)(
15345         IDisplaySourceBitmap *pThis,
15346         PRUint8 * * address,
15347         PRUint32 * width,
15348         PRUint32 * height,
15349         PRUint32 * bitsPerPixel,
15350         PRUint32 * bytesPerLine,
15351         PRUint32 * bitmapFormat
15352     );
15353 
15354 };
15355 #    define IDisplaySourceBitmap_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15356 #    define IDisplaySourceBitmap_AddRef(p) ((p)->lpVtbl->AddRef(p))
15357 #    define IDisplaySourceBitmap_Release(p) ((p)->lpVtbl->Release(p))
15358 #    define IDisplaySourceBitmap_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
15359 #    define IDisplaySourceBitmap_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
15360 #    define IDisplaySourceBitmap_QueryBitmapInfo(p, aAddress, aWidth, aHeight, aBitsPerPixel, aBytesPerLine, aBitmapFormat) ((p)->lpVtbl->QueryBitmapInfo(p, aAddress, aWidth, aHeight, aBitsPerPixel, aBytesPerLine, aBitmapFormat))
15361 #   endif /* VBOX_WITH_GLUE */
15362 
15363 interface IDisplaySourceBitmap
15364 {
15365 #   ifndef VBOX_WITH_GLUE
15366     struct IDisplaySourceBitmap_vtbl *vtbl;
15367 #   else /* VBOX_WITH_GLUE */
15368     CONST_VTBL struct IDisplaySourceBitmapVtbl *lpVtbl;
15369 #   endif /* VBOX_WITH_GLUE */
15370 };
15371 /* End of struct IDisplaySourceBitmap declaration */
15372 
15373 
15374 /* Start of struct IFramebuffer declaration */
15375 #   define IFRAMEBUFFER_IID_STR "8b82295f-415f-1aa1-17fd-9fbbac8edf44"
15376 #   define IFRAMEBUFFER_IID { \
15377     0x8b82295f, 0x415f, 0x1aa1, \
15378     { 0x17, 0xfd, 0x9f, 0xbb, 0xac, 0x8e, 0xdf, 0x44 } \
15379 }
15380 /* COM compatibility */
15381 VBOX_EXTERN_CONST(nsIID, IID_IFramebuffer);
15382 #   ifndef VBOX_WITH_GLUE
15383 struct IFramebuffer_vtbl
15384 {
15385     struct nsISupports_vtbl nsisupports;
15386 
15387     nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
15388 
15389     nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
15390 
15391     nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
15392 
15393     nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
15394 
15395     nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
15396 
15397     nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
15398 
15399     nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
15400 
15401     nsresult (*GetWinId)(IFramebuffer *pThis, PRInt64 *winId);
15402 
15403     nsresult (*GetCapabilities)(IFramebuffer *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
15404 
15405     nsresult (*NotifyUpdate)(
15406         IFramebuffer *pThis,
15407         PRUint32 x,
15408         PRUint32 y,
15409         PRUint32 width,
15410         PRUint32 height
15411     );
15412 
15413     nsresult (*NotifyUpdateImage)(
15414         IFramebuffer *pThis,
15415         PRUint32 x,
15416         PRUint32 y,
15417         PRUint32 width,
15418         PRUint32 height,
15419         PRUint32 imageSize,
15420         PRUint8* image
15421     );
15422 
15423     nsresult (*NotifyChange)(
15424         IFramebuffer *pThis,
15425         PRUint32 screenId,
15426         PRUint32 xOrigin,
15427         PRUint32 yOrigin,
15428         PRUint32 width,
15429         PRUint32 height
15430     );
15431 
15432     nsresult (*VideoModeSupported)(
15433         IFramebuffer *pThis,
15434         PRUint32 width,
15435         PRUint32 height,
15436         PRUint32 bpp,
15437         PRBool * supported
15438     );
15439 
15440     nsresult (*GetVisibleRegion)(
15441         IFramebuffer *pThis,
15442         PRUint8 * rectangles,
15443         PRUint32 count,
15444         PRUint32 * countCopied
15445     );
15446 
15447     nsresult (*SetVisibleRegion)(
15448         IFramebuffer *pThis,
15449         PRUint8 * rectangles,
15450         PRUint32 count
15451     );
15452 
15453     nsresult (*ProcessVHWACommand)(
15454         IFramebuffer *pThis,
15455         PRUint8 * command
15456     );
15457 
15458     nsresult (*Notify3DEvent)(
15459         IFramebuffer *pThis,
15460         PRUint32 type,
15461         PRUint32 dataSize,
15462         PRUint8* data
15463     );
15464 
15465 };
15466 #   else /* VBOX_WITH_GLUE */
15467 struct IFramebufferVtbl
15468 {
15469     nsresult (*QueryInterface)(IFramebuffer *pThis, const nsID *iid, void **resultp);
15470     nsrefcnt (*AddRef)(IFramebuffer *pThis);
15471     nsrefcnt (*Release)(IFramebuffer *pThis);
15472     nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
15473 
15474     nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
15475 
15476     nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
15477 
15478     nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
15479 
15480     nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
15481 
15482     nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
15483 
15484     nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
15485 
15486     nsresult (*GetWinId)(IFramebuffer *pThis, PRInt64 *winId);
15487 
15488     nsresult (*GetCapabilities)(IFramebuffer *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
15489 
15490     nsresult (*NotifyUpdate)(
15491         IFramebuffer *pThis,
15492         PRUint32 x,
15493         PRUint32 y,
15494         PRUint32 width,
15495         PRUint32 height
15496     );
15497 
15498     nsresult (*NotifyUpdateImage)(
15499         IFramebuffer *pThis,
15500         PRUint32 x,
15501         PRUint32 y,
15502         PRUint32 width,
15503         PRUint32 height,
15504         PRUint32 imageSize,
15505         PRUint8* image
15506     );
15507 
15508     nsresult (*NotifyChange)(
15509         IFramebuffer *pThis,
15510         PRUint32 screenId,
15511         PRUint32 xOrigin,
15512         PRUint32 yOrigin,
15513         PRUint32 width,
15514         PRUint32 height
15515     );
15516 
15517     nsresult (*VideoModeSupported)(
15518         IFramebuffer *pThis,
15519         PRUint32 width,
15520         PRUint32 height,
15521         PRUint32 bpp,
15522         PRBool * supported
15523     );
15524 
15525     nsresult (*GetVisibleRegion)(
15526         IFramebuffer *pThis,
15527         PRUint8 * rectangles,
15528         PRUint32 count,
15529         PRUint32 * countCopied
15530     );
15531 
15532     nsresult (*SetVisibleRegion)(
15533         IFramebuffer *pThis,
15534         PRUint8 * rectangles,
15535         PRUint32 count
15536     );
15537 
15538     nsresult (*ProcessVHWACommand)(
15539         IFramebuffer *pThis,
15540         PRUint8 * command
15541     );
15542 
15543     nsresult (*Notify3DEvent)(
15544         IFramebuffer *pThis,
15545         PRUint32 type,
15546         PRUint32 dataSize,
15547         PRUint8* data
15548     );
15549 
15550 };
15551 #    define IFramebuffer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15552 #    define IFramebuffer_AddRef(p) ((p)->lpVtbl->AddRef(p))
15553 #    define IFramebuffer_Release(p) ((p)->lpVtbl->Release(p))
15554 #    define IFramebuffer_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15555 #    define IFramebuffer_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15556 #    define IFramebuffer_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15557 #    define IFramebuffer_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15558 #    define IFramebuffer_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
15559 #    define IFramebuffer_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
15560 #    define IFramebuffer_get_BytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
15561 #    define IFramebuffer_GetBytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
15562 #    define IFramebuffer_get_PixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
15563 #    define IFramebuffer_GetPixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
15564 #    define IFramebuffer_get_HeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
15565 #    define IFramebuffer_GetHeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
15566 #    define IFramebuffer_get_Overlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
15567 #    define IFramebuffer_GetOverlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
15568 #    define IFramebuffer_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
15569 #    define IFramebuffer_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
15570 #    define IFramebuffer_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
15571 #    define IFramebuffer_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
15572 #    define IFramebuffer_NotifyUpdate(p, aX, aY, aWidth, aHeight) ((p)->lpVtbl->NotifyUpdate(p, aX, aY, aWidth, aHeight))
15573 #    define IFramebuffer_NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage) ((p)->lpVtbl->NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage))
15574 #    define IFramebuffer_NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight) ((p)->lpVtbl->NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight))
15575 #    define IFramebuffer_VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported) ((p)->lpVtbl->VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported))
15576 #    define IFramebuffer_GetVisibleRegion(p, aRectangles, aCount, aCountCopied) ((p)->lpVtbl->GetVisibleRegion(p, aRectangles, aCount, aCountCopied))
15577 #    define IFramebuffer_SetVisibleRegion(p, aRectangles, aCount) ((p)->lpVtbl->SetVisibleRegion(p, aRectangles, aCount))
15578 #    define IFramebuffer_ProcessVHWACommand(p, aCommand) ((p)->lpVtbl->ProcessVHWACommand(p, aCommand))
15579 #    define IFramebuffer_Notify3DEvent(p, aType, aData) ((p)->lpVtbl->Notify3DEvent(p, aType, aData))
15580 #   endif /* VBOX_WITH_GLUE */
15581 
15582 interface IFramebuffer
15583 {
15584 #   ifndef VBOX_WITH_GLUE
15585     struct IFramebuffer_vtbl *vtbl;
15586 #   else /* VBOX_WITH_GLUE */
15587     CONST_VTBL struct IFramebufferVtbl *lpVtbl;
15588 #   endif /* VBOX_WITH_GLUE */
15589 };
15590 /* End of struct IFramebuffer declaration */
15591 
15592 
15593 /* Start of struct IFramebufferOverlay declaration */
15594 #   define IFRAMEBUFFEROVERLAY_IID_STR "af398a9a-6b76-4805-8fab-00a9dcf4732b"
15595 #   define IFRAMEBUFFEROVERLAY_IID { \
15596     0xaf398a9a, 0x6b76, 0x4805, \
15597     { 0x8f, 0xab, 0x00, 0xa9, 0xdc, 0xf4, 0x73, 0x2b } \
15598 }
15599 /* COM compatibility */
15600 VBOX_EXTERN_CONST(nsIID, IID_IFramebufferOverlay);
15601 #   ifndef VBOX_WITH_GLUE
15602 struct IFramebufferOverlay_vtbl
15603 {
15604     struct IFramebuffer_vtbl iframebuffer;
15605 
15606     nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
15607 
15608     nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
15609 
15610     nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
15611     nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
15612 
15613     nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
15614     nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
15615 
15616     nsresult (*Move)(
15617         IFramebufferOverlay *pThis,
15618         PRUint32 x,
15619         PRUint32 y
15620     );
15621 
15622 };
15623 #   else /* VBOX_WITH_GLUE */
15624 struct IFramebufferOverlayVtbl
15625 {
15626     nsresult (*QueryInterface)(IFramebufferOverlay *pThis, const nsID *iid, void **resultp);
15627     nsrefcnt (*AddRef)(IFramebufferOverlay *pThis);
15628     nsrefcnt (*Release)(IFramebufferOverlay *pThis);
15629     nsresult (*GetWidth)(IFramebufferOverlay *pThis, PRUint32 *width);
15630 
15631     nsresult (*GetHeight)(IFramebufferOverlay *pThis, PRUint32 *height);
15632 
15633     nsresult (*GetBitsPerPixel)(IFramebufferOverlay *pThis, PRUint32 *bitsPerPixel);
15634 
15635     nsresult (*GetBytesPerLine)(IFramebufferOverlay *pThis, PRUint32 *bytesPerLine);
15636 
15637     nsresult (*GetPixelFormat)(IFramebufferOverlay *pThis, PRUint32 *pixelFormat);
15638 
15639     nsresult (*GetHeightReduction)(IFramebufferOverlay *pThis, PRUint32 *heightReduction);
15640 
15641     nsresult (*GetOverlay)(IFramebufferOverlay *pThis, IFramebufferOverlay * *overlay);
15642 
15643     nsresult (*GetWinId)(IFramebufferOverlay *pThis, PRInt64 *winId);
15644 
15645     nsresult (*GetCapabilities)(IFramebufferOverlay *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
15646 
15647     nsresult (*NotifyUpdate)(
15648         IFramebufferOverlay *pThis,
15649         PRUint32 x,
15650         PRUint32 y,
15651         PRUint32 width,
15652         PRUint32 height
15653     );
15654 
15655     nsresult (*NotifyUpdateImage)(
15656         IFramebufferOverlay *pThis,
15657         PRUint32 x,
15658         PRUint32 y,
15659         PRUint32 width,
15660         PRUint32 height,
15661         PRUint32 imageSize,
15662         PRUint8* image
15663     );
15664 
15665     nsresult (*NotifyChange)(
15666         IFramebufferOverlay *pThis,
15667         PRUint32 screenId,
15668         PRUint32 xOrigin,
15669         PRUint32 yOrigin,
15670         PRUint32 width,
15671         PRUint32 height
15672     );
15673 
15674     nsresult (*VideoModeSupported)(
15675         IFramebufferOverlay *pThis,
15676         PRUint32 width,
15677         PRUint32 height,
15678         PRUint32 bpp,
15679         PRBool * supported
15680     );
15681 
15682     nsresult (*GetVisibleRegion)(
15683         IFramebufferOverlay *pThis,
15684         PRUint8 * rectangles,
15685         PRUint32 count,
15686         PRUint32 * countCopied
15687     );
15688 
15689     nsresult (*SetVisibleRegion)(
15690         IFramebufferOverlay *pThis,
15691         PRUint8 * rectangles,
15692         PRUint32 count
15693     );
15694 
15695     nsresult (*ProcessVHWACommand)(
15696         IFramebufferOverlay *pThis,
15697         PRUint8 * command
15698     );
15699 
15700     nsresult (*Notify3DEvent)(
15701         IFramebufferOverlay *pThis,
15702         PRUint32 type,
15703         PRUint32 dataSize,
15704         PRUint8* data
15705     );
15706 
15707     nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
15708 
15709     nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
15710 
15711     nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
15712     nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
15713 
15714     nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
15715     nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
15716 
15717     nsresult (*Move)(
15718         IFramebufferOverlay *pThis,
15719         PRUint32 x,
15720         PRUint32 y
15721     );
15722 
15723 };
15724 #    define IFramebufferOverlay_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15725 #    define IFramebufferOverlay_AddRef(p) ((p)->lpVtbl->AddRef(p))
15726 #    define IFramebufferOverlay_Release(p) ((p)->lpVtbl->Release(p))
15727 #    define IFramebufferOverlay_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15728 #    define IFramebufferOverlay_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15729 #    define IFramebufferOverlay_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15730 #    define IFramebufferOverlay_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15731 #    define IFramebufferOverlay_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
15732 #    define IFramebufferOverlay_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
15733 #    define IFramebufferOverlay_get_BytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
15734 #    define IFramebufferOverlay_GetBytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
15735 #    define IFramebufferOverlay_get_PixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
15736 #    define IFramebufferOverlay_GetPixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
15737 #    define IFramebufferOverlay_get_HeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
15738 #    define IFramebufferOverlay_GetHeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
15739 #    define IFramebufferOverlay_get_Overlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
15740 #    define IFramebufferOverlay_GetOverlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
15741 #    define IFramebufferOverlay_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
15742 #    define IFramebufferOverlay_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
15743 #    define IFramebufferOverlay_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
15744 #    define IFramebufferOverlay_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
15745 #    define IFramebufferOverlay_NotifyUpdate(p, aX, aY, aWidth, aHeight) ((p)->lpVtbl->NotifyUpdate(p, aX, aY, aWidth, aHeight))
15746 #    define IFramebufferOverlay_NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage) ((p)->lpVtbl->NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage))
15747 #    define IFramebufferOverlay_NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight) ((p)->lpVtbl->NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight))
15748 #    define IFramebufferOverlay_VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported) ((p)->lpVtbl->VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported))
15749 #    define IFramebufferOverlay_GetVisibleRegion(p, aRectangles, aCount, aCountCopied) ((p)->lpVtbl->GetVisibleRegion(p, aRectangles, aCount, aCountCopied))
15750 #    define IFramebufferOverlay_SetVisibleRegion(p, aRectangles, aCount) ((p)->lpVtbl->SetVisibleRegion(p, aRectangles, aCount))
15751 #    define IFramebufferOverlay_ProcessVHWACommand(p, aCommand) ((p)->lpVtbl->ProcessVHWACommand(p, aCommand))
15752 #    define IFramebufferOverlay_Notify3DEvent(p, aType, aData) ((p)->lpVtbl->Notify3DEvent(p, aType, aData))
15753 #    define IFramebufferOverlay_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
15754 #    define IFramebufferOverlay_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
15755 #    define IFramebufferOverlay_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
15756 #    define IFramebufferOverlay_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
15757 #    define IFramebufferOverlay_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
15758 #    define IFramebufferOverlay_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
15759 #    define IFramebufferOverlay_put_Visible(p, aVisible) ((p)->lpVtbl->SetVisible(p, aVisible))
15760 #    define IFramebufferOverlay_SetVisible(p, aVisible) ((p)->lpVtbl->SetVisible(p, aVisible))
15761 #    define IFramebufferOverlay_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
15762 #    define IFramebufferOverlay_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
15763 #    define IFramebufferOverlay_put_Alpha(p, aAlpha) ((p)->lpVtbl->SetAlpha(p, aAlpha))
15764 #    define IFramebufferOverlay_SetAlpha(p, aAlpha) ((p)->lpVtbl->SetAlpha(p, aAlpha))
15765 #    define IFramebufferOverlay_Move(p, aX, aY) ((p)->lpVtbl->Move(p, aX, aY))
15766 #   endif /* VBOX_WITH_GLUE */
15767 
15768 interface IFramebufferOverlay
15769 {
15770 #   ifndef VBOX_WITH_GLUE
15771     struct IFramebufferOverlay_vtbl *vtbl;
15772 #   else /* VBOX_WITH_GLUE */
15773     CONST_VTBL struct IFramebufferOverlayVtbl *lpVtbl;
15774 #   endif /* VBOX_WITH_GLUE */
15775 };
15776 /* End of struct IFramebufferOverlay declaration */
15777 
15778 
15779 /* Start of struct IGuestScreenInfo declaration */
15780 #   define IGUESTSCREENINFO_IID_STR "6b2f98f8-9641-4397-854a-040439d0114b"
15781 #   define IGUESTSCREENINFO_IID { \
15782     0x6b2f98f8, 0x9641, 0x4397, \
15783     { 0x85, 0x4a, 0x04, 0x04, 0x39, 0xd0, 0x11, 0x4b } \
15784 }
15785 /* COM compatibility */
15786 VBOX_EXTERN_CONST(nsIID, IID_IGuestScreenInfo);
15787 #   ifndef VBOX_WITH_GLUE
15788 struct IGuestScreenInfo_vtbl
15789 {
15790     struct nsISupports_vtbl nsisupports;
15791 
15792     nsresult (*GetScreenId)(IGuestScreenInfo *pThis, PRUint32 *screenId);
15793 
15794     nsresult (*GetGuestMonitorStatus)(IGuestScreenInfo *pThis, PRUint32 *guestMonitorStatus);
15795 
15796     nsresult (*GetPrimary)(IGuestScreenInfo *pThis, PRBool *primary);
15797 
15798     nsresult (*GetOrigin)(IGuestScreenInfo *pThis, PRBool *origin);
15799 
15800     nsresult (*GetOriginX)(IGuestScreenInfo *pThis, PRInt32 *originX);
15801 
15802     nsresult (*GetOriginY)(IGuestScreenInfo *pThis, PRInt32 *originY);
15803 
15804     nsresult (*GetWidth)(IGuestScreenInfo *pThis, PRUint32 *width);
15805 
15806     nsresult (*GetHeight)(IGuestScreenInfo *pThis, PRUint32 *height);
15807 
15808     nsresult (*GetBitsPerPixel)(IGuestScreenInfo *pThis, PRUint32 *bitsPerPixel);
15809 
15810     nsresult (*GetExtendedInfo)(IGuestScreenInfo *pThis, PRUnichar * *extendedInfo);
15811 
15812 };
15813 #   else /* VBOX_WITH_GLUE */
15814 struct IGuestScreenInfoVtbl
15815 {
15816     nsresult (*QueryInterface)(IGuestScreenInfo *pThis, const nsID *iid, void **resultp);
15817     nsrefcnt (*AddRef)(IGuestScreenInfo *pThis);
15818     nsrefcnt (*Release)(IGuestScreenInfo *pThis);
15819     nsresult (*GetScreenId)(IGuestScreenInfo *pThis, PRUint32 *screenId);
15820 
15821     nsresult (*GetGuestMonitorStatus)(IGuestScreenInfo *pThis, PRUint32 *guestMonitorStatus);
15822 
15823     nsresult (*GetPrimary)(IGuestScreenInfo *pThis, PRBool *primary);
15824 
15825     nsresult (*GetOrigin)(IGuestScreenInfo *pThis, PRBool *origin);
15826 
15827     nsresult (*GetOriginX)(IGuestScreenInfo *pThis, PRInt32 *originX);
15828 
15829     nsresult (*GetOriginY)(IGuestScreenInfo *pThis, PRInt32 *originY);
15830 
15831     nsresult (*GetWidth)(IGuestScreenInfo *pThis, PRUint32 *width);
15832 
15833     nsresult (*GetHeight)(IGuestScreenInfo *pThis, PRUint32 *height);
15834 
15835     nsresult (*GetBitsPerPixel)(IGuestScreenInfo *pThis, PRUint32 *bitsPerPixel);
15836 
15837     nsresult (*GetExtendedInfo)(IGuestScreenInfo *pThis, PRUnichar * *extendedInfo);
15838 
15839 };
15840 #    define IGuestScreenInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15841 #    define IGuestScreenInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
15842 #    define IGuestScreenInfo_Release(p) ((p)->lpVtbl->Release(p))
15843 #    define IGuestScreenInfo_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
15844 #    define IGuestScreenInfo_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
15845 #    define IGuestScreenInfo_get_GuestMonitorStatus(p, aGuestMonitorStatus) ((p)->lpVtbl->GetGuestMonitorStatus(p, aGuestMonitorStatus))
15846 #    define IGuestScreenInfo_GetGuestMonitorStatus(p, aGuestMonitorStatus) ((p)->lpVtbl->GetGuestMonitorStatus(p, aGuestMonitorStatus))
15847 #    define IGuestScreenInfo_get_Primary(p, aPrimary) ((p)->lpVtbl->GetPrimary(p, aPrimary))
15848 #    define IGuestScreenInfo_GetPrimary(p, aPrimary) ((p)->lpVtbl->GetPrimary(p, aPrimary))
15849 #    define IGuestScreenInfo_get_Origin(p, aOrigin) ((p)->lpVtbl->GetOrigin(p, aOrigin))
15850 #    define IGuestScreenInfo_GetOrigin(p, aOrigin) ((p)->lpVtbl->GetOrigin(p, aOrigin))
15851 #    define IGuestScreenInfo_get_OriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
15852 #    define IGuestScreenInfo_GetOriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
15853 #    define IGuestScreenInfo_get_OriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
15854 #    define IGuestScreenInfo_GetOriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
15855 #    define IGuestScreenInfo_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15856 #    define IGuestScreenInfo_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
15857 #    define IGuestScreenInfo_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15858 #    define IGuestScreenInfo_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
15859 #    define IGuestScreenInfo_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
15860 #    define IGuestScreenInfo_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
15861 #    define IGuestScreenInfo_get_ExtendedInfo(p, aExtendedInfo) ((p)->lpVtbl->GetExtendedInfo(p, aExtendedInfo))
15862 #    define IGuestScreenInfo_GetExtendedInfo(p, aExtendedInfo) ((p)->lpVtbl->GetExtendedInfo(p, aExtendedInfo))
15863 #   endif /* VBOX_WITH_GLUE */
15864 
15865 interface IGuestScreenInfo
15866 {
15867 #   ifndef VBOX_WITH_GLUE
15868     struct IGuestScreenInfo_vtbl *vtbl;
15869 #   else /* VBOX_WITH_GLUE */
15870     CONST_VTBL struct IGuestScreenInfoVtbl *lpVtbl;
15871 #   endif /* VBOX_WITH_GLUE */
15872 };
15873 /* End of struct IGuestScreenInfo declaration */
15874 
15875 
15876 /* Start of struct IDisplay declaration */
15877 #   define IDISPLAY_IID_STR "76eed314-3c72-4bbb-95cf-5eb4947a4041"
15878 #   define IDISPLAY_IID { \
15879     0x76eed314, 0x3c72, 0x4bbb, \
15880     { 0x95, 0xcf, 0x5e, 0xb4, 0x94, 0x7a, 0x40, 0x41 } \
15881 }
15882 /* COM compatibility */
15883 VBOX_EXTERN_CONST(nsIID, IID_IDisplay);
15884 #   ifndef VBOX_WITH_GLUE
15885 struct IDisplay_vtbl
15886 {
15887     struct nsISupports_vtbl nsisupports;
15888 
15889     nsresult (*GetGuestScreenLayout)(IDisplay *pThis, PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout);
15890 
15891     nsresult (*GetInternalAndReservedAttribute1IDisplay)(IDisplay *pThis, PRUint32 *reserved);
15892 
15893     nsresult (*GetInternalAndReservedAttribute2IDisplay)(IDisplay *pThis, PRUint32 *reserved);
15894 
15895     nsresult (*GetScreenResolution)(
15896         IDisplay *pThis,
15897         PRUint32 screenId,
15898         PRUint32 * width,
15899         PRUint32 * height,
15900         PRUint32 * bitsPerPixel,
15901         PRInt32 * xOrigin,
15902         PRInt32 * yOrigin,
15903         PRUint32 * guestMonitorStatus
15904     );
15905 
15906     nsresult (*AttachFramebuffer)(
15907         IDisplay *pThis,
15908         PRUint32 screenId,
15909         IFramebuffer * framebuffer,
15910         PRUnichar * * id
15911     );
15912 
15913     nsresult (*DetachFramebuffer)(
15914         IDisplay *pThis,
15915         PRUint32 screenId,
15916         PRUnichar * id
15917     );
15918 
15919     nsresult (*QueryFramebuffer)(
15920         IDisplay *pThis,
15921         PRUint32 screenId,
15922         IFramebuffer * * framebuffer
15923     );
15924 
15925     nsresult (*SetVideoModeHint)(
15926         IDisplay *pThis,
15927         PRUint32 display,
15928         PRBool enabled,
15929         PRBool changeOrigin,
15930         PRInt32 originX,
15931         PRInt32 originY,
15932         PRUint32 width,
15933         PRUint32 height,
15934         PRUint32 bitsPerPixel
15935     );
15936 
15937     nsresult (*SetSeamlessMode)(
15938         IDisplay *pThis,
15939         PRBool enabled
15940     );
15941 
15942     nsresult (*TakeScreenShot)(
15943         IDisplay *pThis,
15944         PRUint32 screenId,
15945         PRUint8 * address,
15946         PRUint32 width,
15947         PRUint32 height,
15948         PRUint32 bitmapFormat
15949     );
15950 
15951     nsresult (*TakeScreenShotToArray)(
15952         IDisplay *pThis,
15953         PRUint32 screenId,
15954         PRUint32 width,
15955         PRUint32 height,
15956         PRUint32 bitmapFormat,
15957         PRUint32 *screenDataSize,
15958         PRUint8** screenData
15959     );
15960 
15961     nsresult (*DrawToScreen)(
15962         IDisplay *pThis,
15963         PRUint32 screenId,
15964         PRUint8 * address,
15965         PRUint32 x,
15966         PRUint32 y,
15967         PRUint32 width,
15968         PRUint32 height
15969     );
15970 
15971     nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
15972 
15973     nsresult (*InvalidateAndUpdateScreen)(
15974         IDisplay *pThis,
15975         PRUint32 screenId
15976     );
15977 
15978     nsresult (*CompleteVHWACommand)(
15979         IDisplay *pThis,
15980         PRUint8 * command
15981     );
15982 
15983     nsresult (*ViewportChanged)(
15984         IDisplay *pThis,
15985         PRUint32 screenId,
15986         PRUint32 x,
15987         PRUint32 y,
15988         PRUint32 width,
15989         PRUint32 height
15990     );
15991 
15992     nsresult (*QuerySourceBitmap)(
15993         IDisplay *pThis,
15994         PRUint32 screenId,
15995         IDisplaySourceBitmap * * displaySourceBitmap
15996     );
15997 
15998     nsresult (*NotifyScaleFactorChange)(
15999         IDisplay *pThis,
16000         PRUint32 screenId,
16001         PRUint32 u32ScaleFactorWMultiplied,
16002         PRUint32 u32ScaleFactorHMultiplied
16003     );
16004 
16005     nsresult (*NotifyHiDPIOutputPolicyChange)(
16006         IDisplay *pThis,
16007         PRBool fUnscaledHiDPI
16008     );
16009 
16010     nsresult (*SetScreenLayout)(
16011         IDisplay *pThis,
16012         PRUint32 screenLayoutMode,
16013         PRUint32 guestScreenInfoSize,
16014         IGuestScreenInfo ** guestScreenInfo
16015     );
16016 
16017     nsresult (*DetachScreens)(
16018         IDisplay *pThis,
16019         PRUint32 screenIdsSize,
16020         PRInt32* screenIds
16021     );
16022 
16023     nsresult (*InternalAndReservedMethod1IDisplay)(IDisplay *pThis);
16024 
16025     nsresult (*InternalAndReservedMethod2IDisplay)(IDisplay *pThis);
16026 
16027     nsresult (*InternalAndReservedMethod3IDisplay)(IDisplay *pThis);
16028 
16029     nsresult (*InternalAndReservedMethod4IDisplay)(IDisplay *pThis);
16030 
16031 };
16032 #   else /* VBOX_WITH_GLUE */
16033 struct IDisplayVtbl
16034 {
16035     nsresult (*QueryInterface)(IDisplay *pThis, const nsID *iid, void **resultp);
16036     nsrefcnt (*AddRef)(IDisplay *pThis);
16037     nsrefcnt (*Release)(IDisplay *pThis);
16038     nsresult (*GetGuestScreenLayout)(IDisplay *pThis, PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout);
16039 
16040     nsresult (*GetInternalAndReservedAttribute1IDisplay)(IDisplay *pThis, PRUint32 *reserved);
16041 
16042     nsresult (*GetInternalAndReservedAttribute2IDisplay)(IDisplay *pThis, PRUint32 *reserved);
16043 
16044     nsresult (*GetScreenResolution)(
16045         IDisplay *pThis,
16046         PRUint32 screenId,
16047         PRUint32 * width,
16048         PRUint32 * height,
16049         PRUint32 * bitsPerPixel,
16050         PRInt32 * xOrigin,
16051         PRInt32 * yOrigin,
16052         PRUint32 * guestMonitorStatus
16053     );
16054 
16055     nsresult (*AttachFramebuffer)(
16056         IDisplay *pThis,
16057         PRUint32 screenId,
16058         IFramebuffer * framebuffer,
16059         PRUnichar * * id
16060     );
16061 
16062     nsresult (*DetachFramebuffer)(
16063         IDisplay *pThis,
16064         PRUint32 screenId,
16065         PRUnichar * id
16066     );
16067 
16068     nsresult (*QueryFramebuffer)(
16069         IDisplay *pThis,
16070         PRUint32 screenId,
16071         IFramebuffer * * framebuffer
16072     );
16073 
16074     nsresult (*SetVideoModeHint)(
16075         IDisplay *pThis,
16076         PRUint32 display,
16077         PRBool enabled,
16078         PRBool changeOrigin,
16079         PRInt32 originX,
16080         PRInt32 originY,
16081         PRUint32 width,
16082         PRUint32 height,
16083         PRUint32 bitsPerPixel
16084     );
16085 
16086     nsresult (*SetSeamlessMode)(
16087         IDisplay *pThis,
16088         PRBool enabled
16089     );
16090 
16091     nsresult (*TakeScreenShot)(
16092         IDisplay *pThis,
16093         PRUint32 screenId,
16094         PRUint8 * address,
16095         PRUint32 width,
16096         PRUint32 height,
16097         PRUint32 bitmapFormat
16098     );
16099 
16100     nsresult (*TakeScreenShotToArray)(
16101         IDisplay *pThis,
16102         PRUint32 screenId,
16103         PRUint32 width,
16104         PRUint32 height,
16105         PRUint32 bitmapFormat,
16106         PRUint32 *screenDataSize,
16107         PRUint8** screenData
16108     );
16109 
16110     nsresult (*DrawToScreen)(
16111         IDisplay *pThis,
16112         PRUint32 screenId,
16113         PRUint8 * address,
16114         PRUint32 x,
16115         PRUint32 y,
16116         PRUint32 width,
16117         PRUint32 height
16118     );
16119 
16120     nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
16121 
16122     nsresult (*InvalidateAndUpdateScreen)(
16123         IDisplay *pThis,
16124         PRUint32 screenId
16125     );
16126 
16127     nsresult (*CompleteVHWACommand)(
16128         IDisplay *pThis,
16129         PRUint8 * command
16130     );
16131 
16132     nsresult (*ViewportChanged)(
16133         IDisplay *pThis,
16134         PRUint32 screenId,
16135         PRUint32 x,
16136         PRUint32 y,
16137         PRUint32 width,
16138         PRUint32 height
16139     );
16140 
16141     nsresult (*QuerySourceBitmap)(
16142         IDisplay *pThis,
16143         PRUint32 screenId,
16144         IDisplaySourceBitmap * * displaySourceBitmap
16145     );
16146 
16147     nsresult (*NotifyScaleFactorChange)(
16148         IDisplay *pThis,
16149         PRUint32 screenId,
16150         PRUint32 u32ScaleFactorWMultiplied,
16151         PRUint32 u32ScaleFactorHMultiplied
16152     );
16153 
16154     nsresult (*NotifyHiDPIOutputPolicyChange)(
16155         IDisplay *pThis,
16156         PRBool fUnscaledHiDPI
16157     );
16158 
16159     nsresult (*SetScreenLayout)(
16160         IDisplay *pThis,
16161         PRUint32 screenLayoutMode,
16162         PRUint32 guestScreenInfoSize,
16163         IGuestScreenInfo ** guestScreenInfo
16164     );
16165 
16166     nsresult (*DetachScreens)(
16167         IDisplay *pThis,
16168         PRUint32 screenIdsSize,
16169         PRInt32* screenIds
16170     );
16171 
16172     nsresult (*InternalAndReservedMethod1IDisplay)(IDisplay *pThis);
16173 
16174     nsresult (*InternalAndReservedMethod2IDisplay)(IDisplay *pThis);
16175 
16176     nsresult (*InternalAndReservedMethod3IDisplay)(IDisplay *pThis);
16177 
16178     nsresult (*InternalAndReservedMethod4IDisplay)(IDisplay *pThis);
16179 
16180 };
16181 #    define IDisplay_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16182 #    define IDisplay_AddRef(p) ((p)->lpVtbl->AddRef(p))
16183 #    define IDisplay_Release(p) ((p)->lpVtbl->Release(p))
16184 #    define IDisplay_get_GuestScreenLayout(p, aGuestScreenLayout) ((p)->lpVtbl->GetGuestScreenLayout(p, aGuestScreenLayout))
16185 #    define IDisplay_GetGuestScreenLayout(p, aGuestScreenLayout) ((p)->lpVtbl->GetGuestScreenLayout(p, aGuestScreenLayout))
16186 #    define IDisplay_GetScreenResolution(p, aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus) ((p)->lpVtbl->GetScreenResolution(p, aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus))
16187 #    define IDisplay_AttachFramebuffer(p, aScreenId, aFramebuffer, aId) ((p)->lpVtbl->AttachFramebuffer(p, aScreenId, aFramebuffer, aId))
16188 #    define IDisplay_DetachFramebuffer(p, aScreenId, aId) ((p)->lpVtbl->DetachFramebuffer(p, aScreenId, aId))
16189 #    define IDisplay_QueryFramebuffer(p, aScreenId, aFramebuffer) ((p)->lpVtbl->QueryFramebuffer(p, aScreenId, aFramebuffer))
16190 #    define IDisplay_SetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel) ((p)->lpVtbl->SetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel))
16191 #    define IDisplay_SetSeamlessMode(p, aEnabled) ((p)->lpVtbl->SetSeamlessMode(p, aEnabled))
16192 #    define IDisplay_TakeScreenShot(p, aScreenId, aAddress, aWidth, aHeight, aBitmapFormat) ((p)->lpVtbl->TakeScreenShot(p, aScreenId, aAddress, aWidth, aHeight, aBitmapFormat))
16193 #    define IDisplay_TakeScreenShotToArray(p, aScreenId, aWidth, aHeight, aBitmapFormat, aScreenData) ((p)->lpVtbl->TakeScreenShotToArray(p, aScreenId, aWidth, aHeight, aBitmapFormat, aScreenData))
16194 #    define IDisplay_DrawToScreen(p, aScreenId, aAddress, aX, aY, aWidth, aHeight) ((p)->lpVtbl->DrawToScreen(p, aScreenId, aAddress, aX, aY, aWidth, aHeight))
16195 #    define IDisplay_InvalidateAndUpdate(p) ((p)->lpVtbl->InvalidateAndUpdate(p))
16196 #    define IDisplay_InvalidateAndUpdateScreen(p, aScreenId) ((p)->lpVtbl->InvalidateAndUpdateScreen(p, aScreenId))
16197 #    define IDisplay_CompleteVHWACommand(p, aCommand) ((p)->lpVtbl->CompleteVHWACommand(p, aCommand))
16198 #    define IDisplay_ViewportChanged(p, aScreenId, aX, aY, aWidth, aHeight) ((p)->lpVtbl->ViewportChanged(p, aScreenId, aX, aY, aWidth, aHeight))
16199 #    define IDisplay_QuerySourceBitmap(p, aScreenId, aDisplaySourceBitmap) ((p)->lpVtbl->QuerySourceBitmap(p, aScreenId, aDisplaySourceBitmap))
16200 #    define IDisplay_NotifyScaleFactorChange(p, aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied) ((p)->lpVtbl->NotifyScaleFactorChange(p, aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied))
16201 #    define IDisplay_NotifyHiDPIOutputPolicyChange(p, aFUnscaledHiDPI) ((p)->lpVtbl->NotifyHiDPIOutputPolicyChange(p, aFUnscaledHiDPI))
16202 #    define IDisplay_SetScreenLayout(p, aScreenLayoutMode, aGuestScreenInfo) ((p)->lpVtbl->SetScreenLayout(p, aScreenLayoutMode, aGuestScreenInfo))
16203 #    define IDisplay_DetachScreens(p, aScreenIds) ((p)->lpVtbl->DetachScreens(p, aScreenIds))
16204 #   endif /* VBOX_WITH_GLUE */
16205 
16206 interface IDisplay
16207 {
16208 #   ifndef VBOX_WITH_GLUE
16209     struct IDisplay_vtbl *vtbl;
16210 #   else /* VBOX_WITH_GLUE */
16211     CONST_VTBL struct IDisplayVtbl *lpVtbl;
16212 #   endif /* VBOX_WITH_GLUE */
16213 };
16214 /* End of struct IDisplay declaration */
16215 
16216 
16217 /* Start of struct INetworkAdapter declaration */
16218 #   define INETWORKADAPTER_IID_STR "e925c2aa-4fe4-aaf6-91c5-e9b8ea4151ee"
16219 #   define INETWORKADAPTER_IID { \
16220     0xe925c2aa, 0x4fe4, 0xaaf6, \
16221     { 0x91, 0xc5, 0xe9, 0xb8, 0xea, 0x41, 0x51, 0xee } \
16222 }
16223 /* COM compatibility */
16224 VBOX_EXTERN_CONST(nsIID, IID_INetworkAdapter);
16225 #   ifndef VBOX_WITH_GLUE
16226 struct INetworkAdapter_vtbl
16227 {
16228     struct nsISupports_vtbl nsisupports;
16229 
16230     nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
16231     nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
16232 
16233     nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
16234 
16235     nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
16236     nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
16237 
16238     nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
16239     nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
16240 
16241     nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
16242     nsresult (*SetAttachmentType)(INetworkAdapter *pThis, PRUint32 attachmentType);
16243 
16244     nsresult (*GetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * *bridgedInterface);
16245     nsresult (*SetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * bridgedInterface);
16246 
16247     nsresult (*GetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * *hostOnlyInterface);
16248     nsresult (*SetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * hostOnlyInterface);
16249 
16250     nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
16251     nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
16252 
16253     nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
16254     nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
16255 
16256     nsresult (*GetGenericDriver)(INetworkAdapter *pThis, PRUnichar * *genericDriver);
16257     nsresult (*SetGenericDriver)(INetworkAdapter *pThis, PRUnichar * genericDriver);
16258 
16259     nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
16260     nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
16261 
16262     nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
16263     nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
16264 
16265     nsresult (*GetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 *promiscModePolicy);
16266     nsresult (*SetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 promiscModePolicy);
16267 
16268     nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
16269     nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
16270 
16271     nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
16272     nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
16273 
16274     nsresult (*GetNATEngine)(INetworkAdapter *pThis, INATEngine * *NATEngine);
16275 
16276     nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
16277     nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
16278 
16279     nsresult (*GetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * *bandwidthGroup);
16280     nsresult (*SetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * bandwidthGroup);
16281 
16282     nsresult (*GetInternalAndReservedAttribute1INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16283 
16284     nsresult (*GetInternalAndReservedAttribute2INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16285 
16286     nsresult (*GetInternalAndReservedAttribute3INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16287 
16288     nsresult (*GetInternalAndReservedAttribute4INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16289 
16290     nsresult (*GetProperty)(
16291         INetworkAdapter *pThis,
16292         PRUnichar * key,
16293         PRUnichar * * value
16294     );
16295 
16296     nsresult (*SetProperty)(
16297         INetworkAdapter *pThis,
16298         PRUnichar * key,
16299         PRUnichar * value
16300     );
16301 
16302     nsresult (*GetProperties)(
16303         INetworkAdapter *pThis,
16304         PRUnichar * names,
16305         PRUint32 *returnNamesSize,
16306         PRUnichar *** returnNames,
16307         PRUint32 *returnValuesSize,
16308         PRUnichar *** returnValues
16309     );
16310 
16311     nsresult (*InternalAndReservedMethod1INetworkAdapter)(INetworkAdapter *pThis);
16312 
16313 };
16314 #   else /* VBOX_WITH_GLUE */
16315 struct INetworkAdapterVtbl
16316 {
16317     nsresult (*QueryInterface)(INetworkAdapter *pThis, const nsID *iid, void **resultp);
16318     nsrefcnt (*AddRef)(INetworkAdapter *pThis);
16319     nsrefcnt (*Release)(INetworkAdapter *pThis);
16320     nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
16321     nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
16322 
16323     nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
16324 
16325     nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
16326     nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
16327 
16328     nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
16329     nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
16330 
16331     nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
16332     nsresult (*SetAttachmentType)(INetworkAdapter *pThis, PRUint32 attachmentType);
16333 
16334     nsresult (*GetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * *bridgedInterface);
16335     nsresult (*SetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * bridgedInterface);
16336 
16337     nsresult (*GetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * *hostOnlyInterface);
16338     nsresult (*SetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * hostOnlyInterface);
16339 
16340     nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
16341     nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
16342 
16343     nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
16344     nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
16345 
16346     nsresult (*GetGenericDriver)(INetworkAdapter *pThis, PRUnichar * *genericDriver);
16347     nsresult (*SetGenericDriver)(INetworkAdapter *pThis, PRUnichar * genericDriver);
16348 
16349     nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
16350     nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
16351 
16352     nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
16353     nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
16354 
16355     nsresult (*GetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 *promiscModePolicy);
16356     nsresult (*SetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 promiscModePolicy);
16357 
16358     nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
16359     nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
16360 
16361     nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
16362     nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
16363 
16364     nsresult (*GetNATEngine)(INetworkAdapter *pThis, INATEngine * *NATEngine);
16365 
16366     nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
16367     nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
16368 
16369     nsresult (*GetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * *bandwidthGroup);
16370     nsresult (*SetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * bandwidthGroup);
16371 
16372     nsresult (*GetInternalAndReservedAttribute1INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16373 
16374     nsresult (*GetInternalAndReservedAttribute2INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16375 
16376     nsresult (*GetInternalAndReservedAttribute3INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16377 
16378     nsresult (*GetInternalAndReservedAttribute4INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
16379 
16380     nsresult (*GetProperty)(
16381         INetworkAdapter *pThis,
16382         PRUnichar * key,
16383         PRUnichar * * value
16384     );
16385 
16386     nsresult (*SetProperty)(
16387         INetworkAdapter *pThis,
16388         PRUnichar * key,
16389         PRUnichar * value
16390     );
16391 
16392     nsresult (*GetProperties)(
16393         INetworkAdapter *pThis,
16394         PRUnichar * names,
16395         PRUint32 *returnNamesSize,
16396         PRUnichar *** returnNames,
16397         PRUint32 *returnValuesSize,
16398         PRUnichar *** returnValues
16399     );
16400 
16401     nsresult (*InternalAndReservedMethod1INetworkAdapter)(INetworkAdapter *pThis);
16402 
16403 };
16404 #    define INetworkAdapter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16405 #    define INetworkAdapter_AddRef(p) ((p)->lpVtbl->AddRef(p))
16406 #    define INetworkAdapter_Release(p) ((p)->lpVtbl->Release(p))
16407 #    define INetworkAdapter_get_AdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
16408 #    define INetworkAdapter_GetAdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
16409 #    define INetworkAdapter_put_AdapterType(p, aAdapterType) ((p)->lpVtbl->SetAdapterType(p, aAdapterType))
16410 #    define INetworkAdapter_SetAdapterType(p, aAdapterType) ((p)->lpVtbl->SetAdapterType(p, aAdapterType))
16411 #    define INetworkAdapter_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
16412 #    define INetworkAdapter_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
16413 #    define INetworkAdapter_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
16414 #    define INetworkAdapter_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
16415 #    define INetworkAdapter_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
16416 #    define INetworkAdapter_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
16417 #    define INetworkAdapter_get_MACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
16418 #    define INetworkAdapter_GetMACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
16419 #    define INetworkAdapter_put_MACAddress(p, aMACAddress) ((p)->lpVtbl->SetMACAddress(p, aMACAddress))
16420 #    define INetworkAdapter_SetMACAddress(p, aMACAddress) ((p)->lpVtbl->SetMACAddress(p, aMACAddress))
16421 #    define INetworkAdapter_get_AttachmentType(p, aAttachmentType) ((p)->lpVtbl->GetAttachmentType(p, aAttachmentType))
16422 #    define INetworkAdapter_GetAttachmentType(p, aAttachmentType) ((p)->lpVtbl->GetAttachmentType(p, aAttachmentType))
16423 #    define INetworkAdapter_put_AttachmentType(p, aAttachmentType) ((p)->lpVtbl->SetAttachmentType(p, aAttachmentType))
16424 #    define INetworkAdapter_SetAttachmentType(p, aAttachmentType) ((p)->lpVtbl->SetAttachmentType(p, aAttachmentType))
16425 #    define INetworkAdapter_get_BridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->GetBridgedInterface(p, aBridgedInterface))
16426 #    define INetworkAdapter_GetBridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->GetBridgedInterface(p, aBridgedInterface))
16427 #    define INetworkAdapter_put_BridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->SetBridgedInterface(p, aBridgedInterface))
16428 #    define INetworkAdapter_SetBridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->SetBridgedInterface(p, aBridgedInterface))
16429 #    define INetworkAdapter_get_HostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->GetHostOnlyInterface(p, aHostOnlyInterface))
16430 #    define INetworkAdapter_GetHostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->GetHostOnlyInterface(p, aHostOnlyInterface))
16431 #    define INetworkAdapter_put_HostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->SetHostOnlyInterface(p, aHostOnlyInterface))
16432 #    define INetworkAdapter_SetHostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->SetHostOnlyInterface(p, aHostOnlyInterface))
16433 #    define INetworkAdapter_get_InternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->GetInternalNetwork(p, aInternalNetwork))
16434 #    define INetworkAdapter_GetInternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->GetInternalNetwork(p, aInternalNetwork))
16435 #    define INetworkAdapter_put_InternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->SetInternalNetwork(p, aInternalNetwork))
16436 #    define INetworkAdapter_SetInternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->SetInternalNetwork(p, aInternalNetwork))
16437 #    define INetworkAdapter_get_NATNetwork(p, aNATNetwork) ((p)->lpVtbl->GetNATNetwork(p, aNATNetwork))
16438 #    define INetworkAdapter_GetNATNetwork(p, aNATNetwork) ((p)->lpVtbl->GetNATNetwork(p, aNATNetwork))
16439 #    define INetworkAdapter_put_NATNetwork(p, aNATNetwork) ((p)->lpVtbl->SetNATNetwork(p, aNATNetwork))
16440 #    define INetworkAdapter_SetNATNetwork(p, aNATNetwork) ((p)->lpVtbl->SetNATNetwork(p, aNATNetwork))
16441 #    define INetworkAdapter_get_GenericDriver(p, aGenericDriver) ((p)->lpVtbl->GetGenericDriver(p, aGenericDriver))
16442 #    define INetworkAdapter_GetGenericDriver(p, aGenericDriver) ((p)->lpVtbl->GetGenericDriver(p, aGenericDriver))
16443 #    define INetworkAdapter_put_GenericDriver(p, aGenericDriver) ((p)->lpVtbl->SetGenericDriver(p, aGenericDriver))
16444 #    define INetworkAdapter_SetGenericDriver(p, aGenericDriver) ((p)->lpVtbl->SetGenericDriver(p, aGenericDriver))
16445 #    define INetworkAdapter_get_CableConnected(p, aCableConnected) ((p)->lpVtbl->GetCableConnected(p, aCableConnected))
16446 #    define INetworkAdapter_GetCableConnected(p, aCableConnected) ((p)->lpVtbl->GetCableConnected(p, aCableConnected))
16447 #    define INetworkAdapter_put_CableConnected(p, aCableConnected) ((p)->lpVtbl->SetCableConnected(p, aCableConnected))
16448 #    define INetworkAdapter_SetCableConnected(p, aCableConnected) ((p)->lpVtbl->SetCableConnected(p, aCableConnected))
16449 #    define INetworkAdapter_get_LineSpeed(p, aLineSpeed) ((p)->lpVtbl->GetLineSpeed(p, aLineSpeed))
16450 #    define INetworkAdapter_GetLineSpeed(p, aLineSpeed) ((p)->lpVtbl->GetLineSpeed(p, aLineSpeed))
16451 #    define INetworkAdapter_put_LineSpeed(p, aLineSpeed) ((p)->lpVtbl->SetLineSpeed(p, aLineSpeed))
16452 #    define INetworkAdapter_SetLineSpeed(p, aLineSpeed) ((p)->lpVtbl->SetLineSpeed(p, aLineSpeed))
16453 #    define INetworkAdapter_get_PromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->GetPromiscModePolicy(p, aPromiscModePolicy))
16454 #    define INetworkAdapter_GetPromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->GetPromiscModePolicy(p, aPromiscModePolicy))
16455 #    define INetworkAdapter_put_PromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->SetPromiscModePolicy(p, aPromiscModePolicy))
16456 #    define INetworkAdapter_SetPromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->SetPromiscModePolicy(p, aPromiscModePolicy))
16457 #    define INetworkAdapter_get_TraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->GetTraceEnabled(p, aTraceEnabled))
16458 #    define INetworkAdapter_GetTraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->GetTraceEnabled(p, aTraceEnabled))
16459 #    define INetworkAdapter_put_TraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->SetTraceEnabled(p, aTraceEnabled))
16460 #    define INetworkAdapter_SetTraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->SetTraceEnabled(p, aTraceEnabled))
16461 #    define INetworkAdapter_get_TraceFile(p, aTraceFile) ((p)->lpVtbl->GetTraceFile(p, aTraceFile))
16462 #    define INetworkAdapter_GetTraceFile(p, aTraceFile) ((p)->lpVtbl->GetTraceFile(p, aTraceFile))
16463 #    define INetworkAdapter_put_TraceFile(p, aTraceFile) ((p)->lpVtbl->SetTraceFile(p, aTraceFile))
16464 #    define INetworkAdapter_SetTraceFile(p, aTraceFile) ((p)->lpVtbl->SetTraceFile(p, aTraceFile))
16465 #    define INetworkAdapter_get_NATEngine(p, aNATEngine) ((p)->lpVtbl->GetNATEngine(p, aNATEngine))
16466 #    define INetworkAdapter_GetNATEngine(p, aNATEngine) ((p)->lpVtbl->GetNATEngine(p, aNATEngine))
16467 #    define INetworkAdapter_get_BootPriority(p, aBootPriority) ((p)->lpVtbl->GetBootPriority(p, aBootPriority))
16468 #    define INetworkAdapter_GetBootPriority(p, aBootPriority) ((p)->lpVtbl->GetBootPriority(p, aBootPriority))
16469 #    define INetworkAdapter_put_BootPriority(p, aBootPriority) ((p)->lpVtbl->SetBootPriority(p, aBootPriority))
16470 #    define INetworkAdapter_SetBootPriority(p, aBootPriority) ((p)->lpVtbl->SetBootPriority(p, aBootPriority))
16471 #    define INetworkAdapter_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
16472 #    define INetworkAdapter_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
16473 #    define INetworkAdapter_put_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroup(p, aBandwidthGroup))
16474 #    define INetworkAdapter_SetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroup(p, aBandwidthGroup))
16475 #    define INetworkAdapter_GetProperty(p, aKey, aValue) ((p)->lpVtbl->GetProperty(p, aKey, aValue))
16476 #    define INetworkAdapter_SetProperty(p, aKey, aValue) ((p)->lpVtbl->SetProperty(p, aKey, aValue))
16477 #    define INetworkAdapter_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
16478 #   endif /* VBOX_WITH_GLUE */
16479 
16480 interface INetworkAdapter
16481 {
16482 #   ifndef VBOX_WITH_GLUE
16483     struct INetworkAdapter_vtbl *vtbl;
16484 #   else /* VBOX_WITH_GLUE */
16485     CONST_VTBL struct INetworkAdapterVtbl *lpVtbl;
16486 #   endif /* VBOX_WITH_GLUE */
16487 };
16488 /* End of struct INetworkAdapter declaration */
16489 
16490 
16491 /* Start of struct ISerialPort declaration */
16492 #   define ISERIALPORT_IID_STR "cb0a4a29-43a3-9040-0c25-34845db7b042"
16493 #   define ISERIALPORT_IID { \
16494     0xcb0a4a29, 0x43a3, 0x9040, \
16495     { 0x0c, 0x25, 0x34, 0x84, 0x5d, 0xb7, 0xb0, 0x42 } \
16496 }
16497 /* COM compatibility */
16498 VBOX_EXTERN_CONST(nsIID, IID_ISerialPort);
16499 #   ifndef VBOX_WITH_GLUE
16500 struct ISerialPort_vtbl
16501 {
16502     struct nsISupports_vtbl nsisupports;
16503 
16504     nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
16505 
16506     nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
16507     nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
16508 
16509     nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
16510     nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
16511 
16512     nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
16513     nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
16514 
16515     nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
16516     nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
16517 
16518     nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
16519     nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
16520 
16521     nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
16522     nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
16523 
16524     nsresult (*GetInternalAndReservedAttribute1ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
16525 
16526     nsresult (*GetInternalAndReservedAttribute2ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
16527 
16528 };
16529 #   else /* VBOX_WITH_GLUE */
16530 struct ISerialPortVtbl
16531 {
16532     nsresult (*QueryInterface)(ISerialPort *pThis, const nsID *iid, void **resultp);
16533     nsrefcnt (*AddRef)(ISerialPort *pThis);
16534     nsrefcnt (*Release)(ISerialPort *pThis);
16535     nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
16536 
16537     nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
16538     nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
16539 
16540     nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
16541     nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
16542 
16543     nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
16544     nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
16545 
16546     nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
16547     nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
16548 
16549     nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
16550     nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
16551 
16552     nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
16553     nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
16554 
16555     nsresult (*GetInternalAndReservedAttribute1ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
16556 
16557     nsresult (*GetInternalAndReservedAttribute2ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
16558 
16559 };
16560 #    define ISerialPort_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16561 #    define ISerialPort_AddRef(p) ((p)->lpVtbl->AddRef(p))
16562 #    define ISerialPort_Release(p) ((p)->lpVtbl->Release(p))
16563 #    define ISerialPort_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
16564 #    define ISerialPort_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
16565 #    define ISerialPort_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
16566 #    define ISerialPort_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
16567 #    define ISerialPort_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
16568 #    define ISerialPort_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
16569 #    define ISerialPort_get_IOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
16570 #    define ISerialPort_GetIOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
16571 #    define ISerialPort_put_IOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
16572 #    define ISerialPort_SetIOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
16573 #    define ISerialPort_get_IRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
16574 #    define ISerialPort_GetIRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
16575 #    define ISerialPort_put_IRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
16576 #    define ISerialPort_SetIRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
16577 #    define ISerialPort_get_HostMode(p, aHostMode) ((p)->lpVtbl->GetHostMode(p, aHostMode))
16578 #    define ISerialPort_GetHostMode(p, aHostMode) ((p)->lpVtbl->GetHostMode(p, aHostMode))
16579 #    define ISerialPort_put_HostMode(p, aHostMode) ((p)->lpVtbl->SetHostMode(p, aHostMode))
16580 #    define ISerialPort_SetHostMode(p, aHostMode) ((p)->lpVtbl->SetHostMode(p, aHostMode))
16581 #    define ISerialPort_get_Server(p, aServer) ((p)->lpVtbl->GetServer(p, aServer))
16582 #    define ISerialPort_GetServer(p, aServer) ((p)->lpVtbl->GetServer(p, aServer))
16583 #    define ISerialPort_put_Server(p, aServer) ((p)->lpVtbl->SetServer(p, aServer))
16584 #    define ISerialPort_SetServer(p, aServer) ((p)->lpVtbl->SetServer(p, aServer))
16585 #    define ISerialPort_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
16586 #    define ISerialPort_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
16587 #    define ISerialPort_put_Path(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
16588 #    define ISerialPort_SetPath(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
16589 #   endif /* VBOX_WITH_GLUE */
16590 
16591 interface ISerialPort
16592 {
16593 #   ifndef VBOX_WITH_GLUE
16594     struct ISerialPort_vtbl *vtbl;
16595 #   else /* VBOX_WITH_GLUE */
16596     CONST_VTBL struct ISerialPortVtbl *lpVtbl;
16597 #   endif /* VBOX_WITH_GLUE */
16598 };
16599 /* End of struct ISerialPort declaration */
16600 
16601 
16602 /* Start of struct IParallelPort declaration */
16603 #   define IPARALLELPORT_IID_STR "788b87df-7708-444b-9eef-c116ce423d39"
16604 #   define IPARALLELPORT_IID { \
16605     0x788b87df, 0x7708, 0x444b, \
16606     { 0x9e, 0xef, 0xc1, 0x16, 0xce, 0x42, 0x3d, 0x39 } \
16607 }
16608 /* COM compatibility */
16609 VBOX_EXTERN_CONST(nsIID, IID_IParallelPort);
16610 #   ifndef VBOX_WITH_GLUE
16611 struct IParallelPort_vtbl
16612 {
16613     struct nsISupports_vtbl nsisupports;
16614 
16615     nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
16616 
16617     nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
16618     nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
16619 
16620     nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
16621     nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
16622 
16623     nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
16624     nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
16625 
16626     nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
16627     nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
16628 
16629     nsresult (*GetInternalAndReservedAttribute1IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16630 
16631     nsresult (*GetInternalAndReservedAttribute2IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16632 
16633     nsresult (*GetInternalAndReservedAttribute3IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16634 
16635     nsresult (*GetInternalAndReservedAttribute4IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16636 
16637 };
16638 #   else /* VBOX_WITH_GLUE */
16639 struct IParallelPortVtbl
16640 {
16641     nsresult (*QueryInterface)(IParallelPort *pThis, const nsID *iid, void **resultp);
16642     nsrefcnt (*AddRef)(IParallelPort *pThis);
16643     nsrefcnt (*Release)(IParallelPort *pThis);
16644     nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
16645 
16646     nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
16647     nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
16648 
16649     nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
16650     nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
16651 
16652     nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
16653     nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
16654 
16655     nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
16656     nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
16657 
16658     nsresult (*GetInternalAndReservedAttribute1IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16659 
16660     nsresult (*GetInternalAndReservedAttribute2IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16661 
16662     nsresult (*GetInternalAndReservedAttribute3IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16663 
16664     nsresult (*GetInternalAndReservedAttribute4IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
16665 
16666 };
16667 #    define IParallelPort_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16668 #    define IParallelPort_AddRef(p) ((p)->lpVtbl->AddRef(p))
16669 #    define IParallelPort_Release(p) ((p)->lpVtbl->Release(p))
16670 #    define IParallelPort_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
16671 #    define IParallelPort_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
16672 #    define IParallelPort_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
16673 #    define IParallelPort_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
16674 #    define IParallelPort_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
16675 #    define IParallelPort_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
16676 #    define IParallelPort_get_IOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
16677 #    define IParallelPort_GetIOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
16678 #    define IParallelPort_put_IOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
16679 #    define IParallelPort_SetIOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
16680 #    define IParallelPort_get_IRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
16681 #    define IParallelPort_GetIRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
16682 #    define IParallelPort_put_IRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
16683 #    define IParallelPort_SetIRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
16684 #    define IParallelPort_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
16685 #    define IParallelPort_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
16686 #    define IParallelPort_put_Path(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
16687 #    define IParallelPort_SetPath(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
16688 #   endif /* VBOX_WITH_GLUE */
16689 
16690 interface IParallelPort
16691 {
16692 #   ifndef VBOX_WITH_GLUE
16693     struct IParallelPort_vtbl *vtbl;
16694 #   else /* VBOX_WITH_GLUE */
16695     CONST_VTBL struct IParallelPortVtbl *lpVtbl;
16696 #   endif /* VBOX_WITH_GLUE */
16697 };
16698 /* End of struct IParallelPort declaration */
16699 
16700 
16701 /* Start of struct IMachineDebugger declaration */
16702 #   define IMACHINEDEBUGGER_IID_STR "9c0f5269-47ae-ee34-c2fe-53a16e388925"
16703 #   define IMACHINEDEBUGGER_IID { \
16704     0x9c0f5269, 0x47ae, 0xee34, \
16705     { 0xc2, 0xfe, 0x53, 0xa1, 0x6e, 0x38, 0x89, 0x25 } \
16706 }
16707 /* COM compatibility */
16708 VBOX_EXTERN_CONST(nsIID, IID_IMachineDebugger);
16709 #   ifndef VBOX_WITH_GLUE
16710 struct IMachineDebugger_vtbl
16711 {
16712     struct nsISupports_vtbl nsisupports;
16713 
16714     nsresult (*GetSingleStep)(IMachineDebugger *pThis, PRBool *singleStep);
16715     nsresult (*SetSingleStep)(IMachineDebugger *pThis, PRBool singleStep);
16716 
16717     nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
16718     nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
16719 
16720     nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
16721     nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
16722 
16723     nsresult (*GetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool *executeAllInIEM);
16724     nsresult (*SetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool executeAllInIEM);
16725 
16726     nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
16727     nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
16728 
16729     nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
16730     nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
16731 
16732     nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
16733     nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
16734 
16735     nsresult (*GetLogDbgFlags)(IMachineDebugger *pThis, PRUnichar * *logDbgFlags);
16736 
16737     nsresult (*GetLogDbgGroups)(IMachineDebugger *pThis, PRUnichar * *logDbgGroups);
16738 
16739     nsresult (*GetLogDbgDestinations)(IMachineDebugger *pThis, PRUnichar * *logDbgDestinations);
16740 
16741     nsresult (*GetLogRelFlags)(IMachineDebugger *pThis, PRUnichar * *logRelFlags);
16742 
16743     nsresult (*GetLogRelGroups)(IMachineDebugger *pThis, PRUnichar * *logRelGroups);
16744 
16745     nsresult (*GetLogRelDestinations)(IMachineDebugger *pThis, PRUnichar * *logRelDestinations);
16746 
16747     nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
16748 
16749     nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
16750 
16751     nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
16752 
16753     nsresult (*GetHWVirtExUXEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExUXEnabled);
16754 
16755     nsresult (*GetOSName)(IMachineDebugger *pThis, PRUnichar * *OSName);
16756 
16757     nsresult (*GetOSVersion)(IMachineDebugger *pThis, PRUnichar * *OSVersion);
16758 
16759     nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
16760 
16761     nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
16762     nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
16763 
16764     nsresult (*GetVM)(IMachineDebugger *pThis, PRInt64 *VM);
16765 
16766     nsresult (*GetUptime)(IMachineDebugger *pThis, PRInt64 *uptime);
16767 
16768     nsresult (*GetInternalAndReservedAttribute1IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16769 
16770     nsresult (*GetInternalAndReservedAttribute2IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16771 
16772     nsresult (*GetInternalAndReservedAttribute3IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16773 
16774     nsresult (*GetInternalAndReservedAttribute4IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16775 
16776     nsresult (*GetInternalAndReservedAttribute5IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16777 
16778     nsresult (*GetInternalAndReservedAttribute6IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16779 
16780     nsresult (*GetInternalAndReservedAttribute7IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16781 
16782     nsresult (*GetInternalAndReservedAttribute8IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16783 
16784     nsresult (*GetInternalAndReservedAttribute9IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16785 
16786     nsresult (*GetInternalAndReservedAttribute10IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16787 
16788     nsresult (*GetInternalAndReservedAttribute11IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16789 
16790     nsresult (*GetInternalAndReservedAttribute12IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16791 
16792     nsresult (*GetInternalAndReservedAttribute13IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16793 
16794     nsresult (*GetInternalAndReservedAttribute14IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16795 
16796     nsresult (*GetInternalAndReservedAttribute15IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
16797 
16798     nsresult (*DumpGuestCore)(
16799         IMachineDebugger *pThis,
16800         PRUnichar * filename,
16801         PRUnichar * compression
16802     );
16803 
16804     nsresult (*DumpHostProcessCore)(
16805         IMachineDebugger *pThis,
16806         PRUnichar * filename,
16807         PRUnichar * compression
16808     );
16809 
16810     nsresult (*Info)(
16811         IMachineDebugger *pThis,
16812         PRUnichar * name,
16813         PRUnichar * args,
16814         PRUnichar * * info
16815     );
16816 
16817     nsresult (*InjectNMI)(IMachineDebugger *pThis );
16818 
16819     nsresult (*ModifyLogGroups)(
16820         IMachineDebugger *pThis,
16821         PRUnichar * settings
16822     );
16823 
16824     nsresult (*ModifyLogFlags)(
16825         IMachineDebugger *pThis,
16826         PRUnichar * settings
16827     );
16828 
16829     nsresult (*ModifyLogDestinations)(
16830         IMachineDebugger *pThis,
16831         PRUnichar * settings
16832     );
16833 
16834     nsresult (*ReadPhysicalMemory)(
16835         IMachineDebugger *pThis,
16836         PRInt64 address,
16837         PRUint32 size,
16838         PRUint32 *bytesSize,
16839         PRUint8** bytes
16840     );
16841 
16842     nsresult (*WritePhysicalMemory)(
16843         IMachineDebugger *pThis,
16844         PRInt64 address,
16845         PRUint32 size,
16846         PRUint32 bytesSize,
16847         PRUint8* bytes
16848     );
16849 
16850     nsresult (*ReadVirtualMemory)(
16851         IMachineDebugger *pThis,
16852         PRUint32 cpuId,
16853         PRInt64 address,
16854         PRUint32 size,
16855         PRUint32 *bytesSize,
16856         PRUint8** bytes
16857     );
16858 
16859     nsresult (*WriteVirtualMemory)(
16860         IMachineDebugger *pThis,
16861         PRUint32 cpuId,
16862         PRInt64 address,
16863         PRUint32 size,
16864         PRUint32 bytesSize,
16865         PRUint8* bytes
16866     );
16867 
16868     nsresult (*LoadPlugIn)(
16869         IMachineDebugger *pThis,
16870         PRUnichar * name,
16871         PRUnichar * * plugInName
16872     );
16873 
16874     nsresult (*UnloadPlugIn)(
16875         IMachineDebugger *pThis,
16876         PRUnichar * name
16877     );
16878 
16879     nsresult (*DetectOS)(
16880         IMachineDebugger *pThis,
16881         PRUnichar * * os
16882     );
16883 
16884     nsresult (*QueryOSKernelLog)(
16885         IMachineDebugger *pThis,
16886         PRUint32 maxMessages,
16887         PRUnichar * * dmesg
16888     );
16889 
16890     nsresult (*GetRegister)(
16891         IMachineDebugger *pThis,
16892         PRUint32 cpuId,
16893         PRUnichar * name,
16894         PRUnichar * * value
16895     );
16896 
16897     nsresult (*GetRegisters)(
16898         IMachineDebugger *pThis,
16899         PRUint32 cpuId,
16900         PRUint32 *namesSize,
16901         PRUnichar *** names,
16902         PRUint32 *valuesSize,
16903         PRUnichar *** values
16904     );
16905 
16906     nsresult (*SetRegister)(
16907         IMachineDebugger *pThis,
16908         PRUint32 cpuId,
16909         PRUnichar * name,
16910         PRUnichar * value
16911     );
16912 
16913     nsresult (*SetRegisters)(
16914         IMachineDebugger *pThis,
16915         PRUint32 cpuId,
16916         PRUint32 namesSize,
16917         PRUnichar ** names,
16918         PRUint32 valuesSize,
16919         PRUnichar ** values
16920     );
16921 
16922     nsresult (*DumpGuestStack)(
16923         IMachineDebugger *pThis,
16924         PRUint32 cpuId,
16925         PRUnichar * * stack
16926     );
16927 
16928     nsresult (*ResetStats)(
16929         IMachineDebugger *pThis,
16930         PRUnichar * pattern
16931     );
16932 
16933     nsresult (*DumpStats)(
16934         IMachineDebugger *pThis,
16935         PRUnichar * pattern
16936     );
16937 
16938     nsresult (*GetStats)(
16939         IMachineDebugger *pThis,
16940         PRUnichar * pattern,
16941         PRBool withDescriptions,
16942         PRUnichar * * stats
16943     );
16944 
16945     nsresult (*InternalAndReservedMethod1IMachineDebugger)(IMachineDebugger *pThis);
16946 
16947     nsresult (*InternalAndReservedMethod2IMachineDebugger)(IMachineDebugger *pThis);
16948 
16949     nsresult (*InternalAndReservedMethod3IMachineDebugger)(IMachineDebugger *pThis);
16950 
16951     nsresult (*InternalAndReservedMethod4IMachineDebugger)(IMachineDebugger *pThis);
16952 
16953     nsresult (*InternalAndReservedMethod5IMachineDebugger)(IMachineDebugger *pThis);
16954 
16955     nsresult (*InternalAndReservedMethod6IMachineDebugger)(IMachineDebugger *pThis);
16956 
16957     nsresult (*InternalAndReservedMethod7IMachineDebugger)(IMachineDebugger *pThis);
16958 
16959     nsresult (*InternalAndReservedMethod8IMachineDebugger)(IMachineDebugger *pThis);
16960 
16961     nsresult (*InternalAndReservedMethod9IMachineDebugger)(IMachineDebugger *pThis);
16962 
16963     nsresult (*InternalAndReservedMethod10IMachineDebugger)(IMachineDebugger *pThis);
16964 
16965     nsresult (*InternalAndReservedMethod11IMachineDebugger)(IMachineDebugger *pThis);
16966 
16967     nsresult (*InternalAndReservedMethod12IMachineDebugger)(IMachineDebugger *pThis);
16968 
16969     nsresult (*InternalAndReservedMethod13IMachineDebugger)(IMachineDebugger *pThis);
16970 
16971     nsresult (*InternalAndReservedMethod14IMachineDebugger)(IMachineDebugger *pThis);
16972 
16973     nsresult (*InternalAndReservedMethod15IMachineDebugger)(IMachineDebugger *pThis);
16974 
16975     nsresult (*InternalAndReservedMethod16IMachineDebugger)(IMachineDebugger *pThis);
16976 
16977 };
16978 #   else /* VBOX_WITH_GLUE */
16979 struct IMachineDebuggerVtbl
16980 {
16981     nsresult (*QueryInterface)(IMachineDebugger *pThis, const nsID *iid, void **resultp);
16982     nsrefcnt (*AddRef)(IMachineDebugger *pThis);
16983     nsrefcnt (*Release)(IMachineDebugger *pThis);
16984     nsresult (*GetSingleStep)(IMachineDebugger *pThis, PRBool *singleStep);
16985     nsresult (*SetSingleStep)(IMachineDebugger *pThis, PRBool singleStep);
16986 
16987     nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
16988     nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
16989 
16990     nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
16991     nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
16992 
16993     nsresult (*GetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool *executeAllInIEM);
16994     nsresult (*SetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool executeAllInIEM);
16995 
16996     nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
16997     nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
16998 
16999     nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
17000     nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
17001 
17002     nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
17003     nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
17004 
17005     nsresult (*GetLogDbgFlags)(IMachineDebugger *pThis, PRUnichar * *logDbgFlags);
17006 
17007     nsresult (*GetLogDbgGroups)(IMachineDebugger *pThis, PRUnichar * *logDbgGroups);
17008 
17009     nsresult (*GetLogDbgDestinations)(IMachineDebugger *pThis, PRUnichar * *logDbgDestinations);
17010 
17011     nsresult (*GetLogRelFlags)(IMachineDebugger *pThis, PRUnichar * *logRelFlags);
17012 
17013     nsresult (*GetLogRelGroups)(IMachineDebugger *pThis, PRUnichar * *logRelGroups);
17014 
17015     nsresult (*GetLogRelDestinations)(IMachineDebugger *pThis, PRUnichar * *logRelDestinations);
17016 
17017     nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
17018 
17019     nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
17020 
17021     nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
17022 
17023     nsresult (*GetHWVirtExUXEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExUXEnabled);
17024 
17025     nsresult (*GetOSName)(IMachineDebugger *pThis, PRUnichar * *OSName);
17026 
17027     nsresult (*GetOSVersion)(IMachineDebugger *pThis, PRUnichar * *OSVersion);
17028 
17029     nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
17030 
17031     nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
17032     nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
17033 
17034     nsresult (*GetVM)(IMachineDebugger *pThis, PRInt64 *VM);
17035 
17036     nsresult (*GetUptime)(IMachineDebugger *pThis, PRInt64 *uptime);
17037 
17038     nsresult (*GetInternalAndReservedAttribute1IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17039 
17040     nsresult (*GetInternalAndReservedAttribute2IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17041 
17042     nsresult (*GetInternalAndReservedAttribute3IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17043 
17044     nsresult (*GetInternalAndReservedAttribute4IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17045 
17046     nsresult (*GetInternalAndReservedAttribute5IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17047 
17048     nsresult (*GetInternalAndReservedAttribute6IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17049 
17050     nsresult (*GetInternalAndReservedAttribute7IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17051 
17052     nsresult (*GetInternalAndReservedAttribute8IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17053 
17054     nsresult (*GetInternalAndReservedAttribute9IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17055 
17056     nsresult (*GetInternalAndReservedAttribute10IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17057 
17058     nsresult (*GetInternalAndReservedAttribute11IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17059 
17060     nsresult (*GetInternalAndReservedAttribute12IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17061 
17062     nsresult (*GetInternalAndReservedAttribute13IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17063 
17064     nsresult (*GetInternalAndReservedAttribute14IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17065 
17066     nsresult (*GetInternalAndReservedAttribute15IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
17067 
17068     nsresult (*DumpGuestCore)(
17069         IMachineDebugger *pThis,
17070         PRUnichar * filename,
17071         PRUnichar * compression
17072     );
17073 
17074     nsresult (*DumpHostProcessCore)(
17075         IMachineDebugger *pThis,
17076         PRUnichar * filename,
17077         PRUnichar * compression
17078     );
17079 
17080     nsresult (*Info)(
17081         IMachineDebugger *pThis,
17082         PRUnichar * name,
17083         PRUnichar * args,
17084         PRUnichar * * info
17085     );
17086 
17087     nsresult (*InjectNMI)(IMachineDebugger *pThis );
17088 
17089     nsresult (*ModifyLogGroups)(
17090         IMachineDebugger *pThis,
17091         PRUnichar * settings
17092     );
17093 
17094     nsresult (*ModifyLogFlags)(
17095         IMachineDebugger *pThis,
17096         PRUnichar * settings
17097     );
17098 
17099     nsresult (*ModifyLogDestinations)(
17100         IMachineDebugger *pThis,
17101         PRUnichar * settings
17102     );
17103 
17104     nsresult (*ReadPhysicalMemory)(
17105         IMachineDebugger *pThis,
17106         PRInt64 address,
17107         PRUint32 size,
17108         PRUint32 *bytesSize,
17109         PRUint8** bytes
17110     );
17111 
17112     nsresult (*WritePhysicalMemory)(
17113         IMachineDebugger *pThis,
17114         PRInt64 address,
17115         PRUint32 size,
17116         PRUint32 bytesSize,
17117         PRUint8* bytes
17118     );
17119 
17120     nsresult (*ReadVirtualMemory)(
17121         IMachineDebugger *pThis,
17122         PRUint32 cpuId,
17123         PRInt64 address,
17124         PRUint32 size,
17125         PRUint32 *bytesSize,
17126         PRUint8** bytes
17127     );
17128 
17129     nsresult (*WriteVirtualMemory)(
17130         IMachineDebugger *pThis,
17131         PRUint32 cpuId,
17132         PRInt64 address,
17133         PRUint32 size,
17134         PRUint32 bytesSize,
17135         PRUint8* bytes
17136     );
17137 
17138     nsresult (*LoadPlugIn)(
17139         IMachineDebugger *pThis,
17140         PRUnichar * name,
17141         PRUnichar * * plugInName
17142     );
17143 
17144     nsresult (*UnloadPlugIn)(
17145         IMachineDebugger *pThis,
17146         PRUnichar * name
17147     );
17148 
17149     nsresult (*DetectOS)(
17150         IMachineDebugger *pThis,
17151         PRUnichar * * os
17152     );
17153 
17154     nsresult (*QueryOSKernelLog)(
17155         IMachineDebugger *pThis,
17156         PRUint32 maxMessages,
17157         PRUnichar * * dmesg
17158     );
17159 
17160     nsresult (*GetRegister)(
17161         IMachineDebugger *pThis,
17162         PRUint32 cpuId,
17163         PRUnichar * name,
17164         PRUnichar * * value
17165     );
17166 
17167     nsresult (*GetRegisters)(
17168         IMachineDebugger *pThis,
17169         PRUint32 cpuId,
17170         PRUint32 *namesSize,
17171         PRUnichar *** names,
17172         PRUint32 *valuesSize,
17173         PRUnichar *** values
17174     );
17175 
17176     nsresult (*SetRegister)(
17177         IMachineDebugger *pThis,
17178         PRUint32 cpuId,
17179         PRUnichar * name,
17180         PRUnichar * value
17181     );
17182 
17183     nsresult (*SetRegisters)(
17184         IMachineDebugger *pThis,
17185         PRUint32 cpuId,
17186         PRUint32 namesSize,
17187         PRUnichar ** names,
17188         PRUint32 valuesSize,
17189         PRUnichar ** values
17190     );
17191 
17192     nsresult (*DumpGuestStack)(
17193         IMachineDebugger *pThis,
17194         PRUint32 cpuId,
17195         PRUnichar * * stack
17196     );
17197 
17198     nsresult (*ResetStats)(
17199         IMachineDebugger *pThis,
17200         PRUnichar * pattern
17201     );
17202 
17203     nsresult (*DumpStats)(
17204         IMachineDebugger *pThis,
17205         PRUnichar * pattern
17206     );
17207 
17208     nsresult (*GetStats)(
17209         IMachineDebugger *pThis,
17210         PRUnichar * pattern,
17211         PRBool withDescriptions,
17212         PRUnichar * * stats
17213     );
17214 
17215     nsresult (*InternalAndReservedMethod1IMachineDebugger)(IMachineDebugger *pThis);
17216 
17217     nsresult (*InternalAndReservedMethod2IMachineDebugger)(IMachineDebugger *pThis);
17218 
17219     nsresult (*InternalAndReservedMethod3IMachineDebugger)(IMachineDebugger *pThis);
17220 
17221     nsresult (*InternalAndReservedMethod4IMachineDebugger)(IMachineDebugger *pThis);
17222 
17223     nsresult (*InternalAndReservedMethod5IMachineDebugger)(IMachineDebugger *pThis);
17224 
17225     nsresult (*InternalAndReservedMethod6IMachineDebugger)(IMachineDebugger *pThis);
17226 
17227     nsresult (*InternalAndReservedMethod7IMachineDebugger)(IMachineDebugger *pThis);
17228 
17229     nsresult (*InternalAndReservedMethod8IMachineDebugger)(IMachineDebugger *pThis);
17230 
17231     nsresult (*InternalAndReservedMethod9IMachineDebugger)(IMachineDebugger *pThis);
17232 
17233     nsresult (*InternalAndReservedMethod10IMachineDebugger)(IMachineDebugger *pThis);
17234 
17235     nsresult (*InternalAndReservedMethod11IMachineDebugger)(IMachineDebugger *pThis);
17236 
17237     nsresult (*InternalAndReservedMethod12IMachineDebugger)(IMachineDebugger *pThis);
17238 
17239     nsresult (*InternalAndReservedMethod13IMachineDebugger)(IMachineDebugger *pThis);
17240 
17241     nsresult (*InternalAndReservedMethod14IMachineDebugger)(IMachineDebugger *pThis);
17242 
17243     nsresult (*InternalAndReservedMethod15IMachineDebugger)(IMachineDebugger *pThis);
17244 
17245     nsresult (*InternalAndReservedMethod16IMachineDebugger)(IMachineDebugger *pThis);
17246 
17247 };
17248 #    define IMachineDebugger_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17249 #    define IMachineDebugger_AddRef(p) ((p)->lpVtbl->AddRef(p))
17250 #    define IMachineDebugger_Release(p) ((p)->lpVtbl->Release(p))
17251 #    define IMachineDebugger_get_SingleStep(p, aSingleStep) ((p)->lpVtbl->GetSingleStep(p, aSingleStep))
17252 #    define IMachineDebugger_GetSingleStep(p, aSingleStep) ((p)->lpVtbl->GetSingleStep(p, aSingleStep))
17253 #    define IMachineDebugger_put_SingleStep(p, aSingleStep) ((p)->lpVtbl->SetSingleStep(p, aSingleStep))
17254 #    define IMachineDebugger_SetSingleStep(p, aSingleStep) ((p)->lpVtbl->SetSingleStep(p, aSingleStep))
17255 #    define IMachineDebugger_get_RecompileUser(p, aRecompileUser) ((p)->lpVtbl->GetRecompileUser(p, aRecompileUser))
17256 #    define IMachineDebugger_GetRecompileUser(p, aRecompileUser) ((p)->lpVtbl->GetRecompileUser(p, aRecompileUser))
17257 #    define IMachineDebugger_put_RecompileUser(p, aRecompileUser) ((p)->lpVtbl->SetRecompileUser(p, aRecompileUser))
17258 #    define IMachineDebugger_SetRecompileUser(p, aRecompileUser) ((p)->lpVtbl->SetRecompileUser(p, aRecompileUser))
17259 #    define IMachineDebugger_get_RecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->GetRecompileSupervisor(p, aRecompileSupervisor))
17260 #    define IMachineDebugger_GetRecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->GetRecompileSupervisor(p, aRecompileSupervisor))
17261 #    define IMachineDebugger_put_RecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->SetRecompileSupervisor(p, aRecompileSupervisor))
17262 #    define IMachineDebugger_SetRecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->SetRecompileSupervisor(p, aRecompileSupervisor))
17263 #    define IMachineDebugger_get_ExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->GetExecuteAllInIEM(p, aExecuteAllInIEM))
17264 #    define IMachineDebugger_GetExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->GetExecuteAllInIEM(p, aExecuteAllInIEM))
17265 #    define IMachineDebugger_put_ExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->SetExecuteAllInIEM(p, aExecuteAllInIEM))
17266 #    define IMachineDebugger_SetExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->SetExecuteAllInIEM(p, aExecuteAllInIEM))
17267 #    define IMachineDebugger_get_PATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->GetPATMEnabled(p, aPATMEnabled))
17268 #    define IMachineDebugger_GetPATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->GetPATMEnabled(p, aPATMEnabled))
17269 #    define IMachineDebugger_put_PATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->SetPATMEnabled(p, aPATMEnabled))
17270 #    define IMachineDebugger_SetPATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->SetPATMEnabled(p, aPATMEnabled))
17271 #    define IMachineDebugger_get_CSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->GetCSAMEnabled(p, aCSAMEnabled))
17272 #    define IMachineDebugger_GetCSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->GetCSAMEnabled(p, aCSAMEnabled))
17273 #    define IMachineDebugger_put_CSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->SetCSAMEnabled(p, aCSAMEnabled))
17274 #    define IMachineDebugger_SetCSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->SetCSAMEnabled(p, aCSAMEnabled))
17275 #    define IMachineDebugger_get_LogEnabled(p, aLogEnabled) ((p)->lpVtbl->GetLogEnabled(p, aLogEnabled))
17276 #    define IMachineDebugger_GetLogEnabled(p, aLogEnabled) ((p)->lpVtbl->GetLogEnabled(p, aLogEnabled))
17277 #    define IMachineDebugger_put_LogEnabled(p, aLogEnabled) ((p)->lpVtbl->SetLogEnabled(p, aLogEnabled))
17278 #    define IMachineDebugger_SetLogEnabled(p, aLogEnabled) ((p)->lpVtbl->SetLogEnabled(p, aLogEnabled))
17279 #    define IMachineDebugger_get_LogDbgFlags(p, aLogDbgFlags) ((p)->lpVtbl->GetLogDbgFlags(p, aLogDbgFlags))
17280 #    define IMachineDebugger_GetLogDbgFlags(p, aLogDbgFlags) ((p)->lpVtbl->GetLogDbgFlags(p, aLogDbgFlags))
17281 #    define IMachineDebugger_get_LogDbgGroups(p, aLogDbgGroups) ((p)->lpVtbl->GetLogDbgGroups(p, aLogDbgGroups))
17282 #    define IMachineDebugger_GetLogDbgGroups(p, aLogDbgGroups) ((p)->lpVtbl->GetLogDbgGroups(p, aLogDbgGroups))
17283 #    define IMachineDebugger_get_LogDbgDestinations(p, aLogDbgDestinations) ((p)->lpVtbl->GetLogDbgDestinations(p, aLogDbgDestinations))
17284 #    define IMachineDebugger_GetLogDbgDestinations(p, aLogDbgDestinations) ((p)->lpVtbl->GetLogDbgDestinations(p, aLogDbgDestinations))
17285 #    define IMachineDebugger_get_LogRelFlags(p, aLogRelFlags) ((p)->lpVtbl->GetLogRelFlags(p, aLogRelFlags))
17286 #    define IMachineDebugger_GetLogRelFlags(p, aLogRelFlags) ((p)->lpVtbl->GetLogRelFlags(p, aLogRelFlags))
17287 #    define IMachineDebugger_get_LogRelGroups(p, aLogRelGroups) ((p)->lpVtbl->GetLogRelGroups(p, aLogRelGroups))
17288 #    define IMachineDebugger_GetLogRelGroups(p, aLogRelGroups) ((p)->lpVtbl->GetLogRelGroups(p, aLogRelGroups))
17289 #    define IMachineDebugger_get_LogRelDestinations(p, aLogRelDestinations) ((p)->lpVtbl->GetLogRelDestinations(p, aLogRelDestinations))
17290 #    define IMachineDebugger_GetLogRelDestinations(p, aLogRelDestinations) ((p)->lpVtbl->GetLogRelDestinations(p, aLogRelDestinations))
17291 #    define IMachineDebugger_get_HWVirtExEnabled(p, aHWVirtExEnabled) ((p)->lpVtbl->GetHWVirtExEnabled(p, aHWVirtExEnabled))
17292 #    define IMachineDebugger_GetHWVirtExEnabled(p, aHWVirtExEnabled) ((p)->lpVtbl->GetHWVirtExEnabled(p, aHWVirtExEnabled))
17293 #    define IMachineDebugger_get_HWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled) ((p)->lpVtbl->GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled))
17294 #    define IMachineDebugger_GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled) ((p)->lpVtbl->GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled))
17295 #    define IMachineDebugger_get_HWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled) ((p)->lpVtbl->GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled))
17296 #    define IMachineDebugger_GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled) ((p)->lpVtbl->GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled))
17297 #    define IMachineDebugger_get_HWVirtExUXEnabled(p, aHWVirtExUXEnabled) ((p)->lpVtbl->GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled))
17298 #    define IMachineDebugger_GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled) ((p)->lpVtbl->GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled))
17299 #    define IMachineDebugger_get_OSName(p, aOSName) ((p)->lpVtbl->GetOSName(p, aOSName))
17300 #    define IMachineDebugger_GetOSName(p, aOSName) ((p)->lpVtbl->GetOSName(p, aOSName))
17301 #    define IMachineDebugger_get_OSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
17302 #    define IMachineDebugger_GetOSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
17303 #    define IMachineDebugger_get_PAEEnabled(p, aPAEEnabled) ((p)->lpVtbl->GetPAEEnabled(p, aPAEEnabled))
17304 #    define IMachineDebugger_GetPAEEnabled(p, aPAEEnabled) ((p)->lpVtbl->GetPAEEnabled(p, aPAEEnabled))
17305 #    define IMachineDebugger_get_VirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->GetVirtualTimeRate(p, aVirtualTimeRate))
17306 #    define IMachineDebugger_GetVirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->GetVirtualTimeRate(p, aVirtualTimeRate))
17307 #    define IMachineDebugger_put_VirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->SetVirtualTimeRate(p, aVirtualTimeRate))
17308 #    define IMachineDebugger_SetVirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->SetVirtualTimeRate(p, aVirtualTimeRate))
17309 #    define IMachineDebugger_get_VM(p, aVM) ((p)->lpVtbl->GetVM(p, aVM))
17310 #    define IMachineDebugger_GetVM(p, aVM) ((p)->lpVtbl->GetVM(p, aVM))
17311 #    define IMachineDebugger_get_Uptime(p, aUptime) ((p)->lpVtbl->GetUptime(p, aUptime))
17312 #    define IMachineDebugger_GetUptime(p, aUptime) ((p)->lpVtbl->GetUptime(p, aUptime))
17313 #    define IMachineDebugger_DumpGuestCore(p, aFilename, aCompression) ((p)->lpVtbl->DumpGuestCore(p, aFilename, aCompression))
17314 #    define IMachineDebugger_DumpHostProcessCore(p, aFilename, aCompression) ((p)->lpVtbl->DumpHostProcessCore(p, aFilename, aCompression))
17315 #    define IMachineDebugger_Info(p, aName, aArgs, aInfo) ((p)->lpVtbl->Info(p, aName, aArgs, aInfo))
17316 #    define IMachineDebugger_InjectNMI(p) ((p)->lpVtbl->InjectNMI(p))
17317 #    define IMachineDebugger_ModifyLogGroups(p, aSettings) ((p)->lpVtbl->ModifyLogGroups(p, aSettings))
17318 #    define IMachineDebugger_ModifyLogFlags(p, aSettings) ((p)->lpVtbl->ModifyLogFlags(p, aSettings))
17319 #    define IMachineDebugger_ModifyLogDestinations(p, aSettings) ((p)->lpVtbl->ModifyLogDestinations(p, aSettings))
17320 #    define IMachineDebugger_ReadPhysicalMemory(p, aAddress, aSize, aBytes) ((p)->lpVtbl->ReadPhysicalMemory(p, aAddress, aSize, aBytes))
17321 #    define IMachineDebugger_WritePhysicalMemory(p, aAddress, aSize, aBytes) ((p)->lpVtbl->WritePhysicalMemory(p, aAddress, aSize, aBytes))
17322 #    define IMachineDebugger_ReadVirtualMemory(p, aCpuId, aAddress, aSize, aBytes) ((p)->lpVtbl->ReadVirtualMemory(p, aCpuId, aAddress, aSize, aBytes))
17323 #    define IMachineDebugger_WriteVirtualMemory(p, aCpuId, aAddress, aSize, aBytes) ((p)->lpVtbl->WriteVirtualMemory(p, aCpuId, aAddress, aSize, aBytes))
17324 #    define IMachineDebugger_LoadPlugIn(p, aName, aPlugInName) ((p)->lpVtbl->LoadPlugIn(p, aName, aPlugInName))
17325 #    define IMachineDebugger_UnloadPlugIn(p, aName) ((p)->lpVtbl->UnloadPlugIn(p, aName))
17326 #    define IMachineDebugger_DetectOS(p, aOs) ((p)->lpVtbl->DetectOS(p, aOs))
17327 #    define IMachineDebugger_QueryOSKernelLog(p, aMaxMessages, aDmesg) ((p)->lpVtbl->QueryOSKernelLog(p, aMaxMessages, aDmesg))
17328 #    define IMachineDebugger_GetRegister(p, aCpuId, aName, aValue) ((p)->lpVtbl->GetRegister(p, aCpuId, aName, aValue))
17329 #    define IMachineDebugger_GetRegisters(p, aCpuId, aNames, aValues) ((p)->lpVtbl->GetRegisters(p, aCpuId, aNames, aValues))
17330 #    define IMachineDebugger_SetRegister(p, aCpuId, aName, aValue) ((p)->lpVtbl->SetRegister(p, aCpuId, aName, aValue))
17331 #    define IMachineDebugger_SetRegisters(p, aCpuId, aNames, aValues) ((p)->lpVtbl->SetRegisters(p, aCpuId, aNames, aValues))
17332 #    define IMachineDebugger_DumpGuestStack(p, aCpuId, aStack) ((p)->lpVtbl->DumpGuestStack(p, aCpuId, aStack))
17333 #    define IMachineDebugger_ResetStats(p, aPattern) ((p)->lpVtbl->ResetStats(p, aPattern))
17334 #    define IMachineDebugger_DumpStats(p, aPattern) ((p)->lpVtbl->DumpStats(p, aPattern))
17335 #    define IMachineDebugger_GetStats(p, aPattern, aWithDescriptions, aStats) ((p)->lpVtbl->GetStats(p, aPattern, aWithDescriptions, aStats))
17336 #   endif /* VBOX_WITH_GLUE */
17337 
17338 interface IMachineDebugger
17339 {
17340 #   ifndef VBOX_WITH_GLUE
17341     struct IMachineDebugger_vtbl *vtbl;
17342 #   else /* VBOX_WITH_GLUE */
17343     CONST_VTBL struct IMachineDebuggerVtbl *lpVtbl;
17344 #   endif /* VBOX_WITH_GLUE */
17345 };
17346 /* End of struct IMachineDebugger declaration */
17347 
17348 
17349 /* Start of struct IUSBDeviceFilters declaration */
17350 #   define IUSBDEVICEFILTERS_IID_STR "9709db9b-3346-49d6-8f1c-41b0c4784ff2"
17351 #   define IUSBDEVICEFILTERS_IID { \
17352     0x9709db9b, 0x3346, 0x49d6, \
17353     { 0x8f, 0x1c, 0x41, 0xb0, 0xc4, 0x78, 0x4f, 0xf2 } \
17354 }
17355 /* COM compatibility */
17356 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceFilters);
17357 #   ifndef VBOX_WITH_GLUE
17358 struct IUSBDeviceFilters_vtbl
17359 {
17360     struct nsISupports_vtbl nsisupports;
17361 
17362     nsresult (*GetDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
17363 
17364     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
17365 
17366     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
17367 
17368     nsresult (*CreateDeviceFilter)(
17369         IUSBDeviceFilters *pThis,
17370         PRUnichar * name,
17371         IUSBDeviceFilter * * filter
17372     );
17373 
17374     nsresult (*InsertDeviceFilter)(
17375         IUSBDeviceFilters *pThis,
17376         PRUint32 position,
17377         IUSBDeviceFilter * filter
17378     );
17379 
17380     nsresult (*RemoveDeviceFilter)(
17381         IUSBDeviceFilters *pThis,
17382         PRUint32 position,
17383         IUSBDeviceFilter * * filter
17384     );
17385 
17386     nsresult (*InternalAndReservedMethod1IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
17387 
17388     nsresult (*InternalAndReservedMethod2IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
17389 
17390 };
17391 #   else /* VBOX_WITH_GLUE */
17392 struct IUSBDeviceFiltersVtbl
17393 {
17394     nsresult (*QueryInterface)(IUSBDeviceFilters *pThis, const nsID *iid, void **resultp);
17395     nsrefcnt (*AddRef)(IUSBDeviceFilters *pThis);
17396     nsrefcnt (*Release)(IUSBDeviceFilters *pThis);
17397     nsresult (*GetDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
17398 
17399     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
17400 
17401     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
17402 
17403     nsresult (*CreateDeviceFilter)(
17404         IUSBDeviceFilters *pThis,
17405         PRUnichar * name,
17406         IUSBDeviceFilter * * filter
17407     );
17408 
17409     nsresult (*InsertDeviceFilter)(
17410         IUSBDeviceFilters *pThis,
17411         PRUint32 position,
17412         IUSBDeviceFilter * filter
17413     );
17414 
17415     nsresult (*RemoveDeviceFilter)(
17416         IUSBDeviceFilters *pThis,
17417         PRUint32 position,
17418         IUSBDeviceFilter * * filter
17419     );
17420 
17421     nsresult (*InternalAndReservedMethod1IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
17422 
17423     nsresult (*InternalAndReservedMethod2IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
17424 
17425 };
17426 #    define IUSBDeviceFilters_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17427 #    define IUSBDeviceFilters_AddRef(p) ((p)->lpVtbl->AddRef(p))
17428 #    define IUSBDeviceFilters_Release(p) ((p)->lpVtbl->Release(p))
17429 #    define IUSBDeviceFilters_get_DeviceFilters(p, aDeviceFilters) ((p)->lpVtbl->GetDeviceFilters(p, aDeviceFilters))
17430 #    define IUSBDeviceFilters_GetDeviceFilters(p, aDeviceFilters) ((p)->lpVtbl->GetDeviceFilters(p, aDeviceFilters))
17431 #    define IUSBDeviceFilters_CreateDeviceFilter(p, aName, aFilter) ((p)->lpVtbl->CreateDeviceFilter(p, aName, aFilter))
17432 #    define IUSBDeviceFilters_InsertDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->InsertDeviceFilter(p, aPosition, aFilter))
17433 #    define IUSBDeviceFilters_RemoveDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->RemoveDeviceFilter(p, aPosition, aFilter))
17434 #   endif /* VBOX_WITH_GLUE */
17435 
17436 interface IUSBDeviceFilters
17437 {
17438 #   ifndef VBOX_WITH_GLUE
17439     struct IUSBDeviceFilters_vtbl *vtbl;
17440 #   else /* VBOX_WITH_GLUE */
17441     CONST_VTBL struct IUSBDeviceFiltersVtbl *lpVtbl;
17442 #   endif /* VBOX_WITH_GLUE */
17443 };
17444 /* End of struct IUSBDeviceFilters declaration */
17445 
17446 
17447 /* Start of struct IUSBController declaration */
17448 #   define IUSBCONTROLLER_IID_STR "0c293c51-4810-e174-4f78-199376c63bbe"
17449 #   define IUSBCONTROLLER_IID { \
17450     0x0c293c51, 0x4810, 0xe174, \
17451     { 0x4f, 0x78, 0x19, 0x93, 0x76, 0xc6, 0x3b, 0xbe } \
17452 }
17453 /* COM compatibility */
17454 VBOX_EXTERN_CONST(nsIID, IID_IUSBController);
17455 #   ifndef VBOX_WITH_GLUE
17456 struct IUSBController_vtbl
17457 {
17458     struct nsISupports_vtbl nsisupports;
17459 
17460     nsresult (*GetName)(IUSBController *pThis, PRUnichar * *name);
17461     nsresult (*SetName)(IUSBController *pThis, PRUnichar * name);
17462 
17463     nsresult (*GetType)(IUSBController *pThis, PRUint32 *type);
17464     nsresult (*SetType)(IUSBController *pThis, PRUint32 type);
17465 
17466     nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
17467 
17468     nsresult (*GetInternalAndReservedAttribute1IUSBController)(IUSBController *pThis, PRUint32 *reserved);
17469 
17470     nsresult (*GetInternalAndReservedAttribute2IUSBController)(IUSBController *pThis, PRUint32 *reserved);
17471 
17472 };
17473 #   else /* VBOX_WITH_GLUE */
17474 struct IUSBControllerVtbl
17475 {
17476     nsresult (*QueryInterface)(IUSBController *pThis, const nsID *iid, void **resultp);
17477     nsrefcnt (*AddRef)(IUSBController *pThis);
17478     nsrefcnt (*Release)(IUSBController *pThis);
17479     nsresult (*GetName)(IUSBController *pThis, PRUnichar * *name);
17480     nsresult (*SetName)(IUSBController *pThis, PRUnichar * name);
17481 
17482     nsresult (*GetType)(IUSBController *pThis, PRUint32 *type);
17483     nsresult (*SetType)(IUSBController *pThis, PRUint32 type);
17484 
17485     nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
17486 
17487     nsresult (*GetInternalAndReservedAttribute1IUSBController)(IUSBController *pThis, PRUint32 *reserved);
17488 
17489     nsresult (*GetInternalAndReservedAttribute2IUSBController)(IUSBController *pThis, PRUint32 *reserved);
17490 
17491 };
17492 #    define IUSBController_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17493 #    define IUSBController_AddRef(p) ((p)->lpVtbl->AddRef(p))
17494 #    define IUSBController_Release(p) ((p)->lpVtbl->Release(p))
17495 #    define IUSBController_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
17496 #    define IUSBController_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
17497 #    define IUSBController_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
17498 #    define IUSBController_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
17499 #    define IUSBController_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
17500 #    define IUSBController_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
17501 #    define IUSBController_put_Type(p, aType) ((p)->lpVtbl->SetType(p, aType))
17502 #    define IUSBController_SetType(p, aType) ((p)->lpVtbl->SetType(p, aType))
17503 #    define IUSBController_get_USBStandard(p, aUSBStandard) ((p)->lpVtbl->GetUSBStandard(p, aUSBStandard))
17504 #    define IUSBController_GetUSBStandard(p, aUSBStandard) ((p)->lpVtbl->GetUSBStandard(p, aUSBStandard))
17505 #   endif /* VBOX_WITH_GLUE */
17506 
17507 interface IUSBController
17508 {
17509 #   ifndef VBOX_WITH_GLUE
17510     struct IUSBController_vtbl *vtbl;
17511 #   else /* VBOX_WITH_GLUE */
17512     CONST_VTBL struct IUSBControllerVtbl *lpVtbl;
17513 #   endif /* VBOX_WITH_GLUE */
17514 };
17515 /* End of struct IUSBController declaration */
17516 
17517 
17518 /* Start of struct IUSBDevice declaration */
17519 #   define IUSBDEVICE_IID_STR "5915d179-83c7-4f2b-a323-9a97f46f4e29"
17520 #   define IUSBDEVICE_IID { \
17521     0x5915d179, 0x83c7, 0x4f2b, \
17522     { 0xa3, 0x23, 0x9a, 0x97, 0xf4, 0x6f, 0x4e, 0x29 } \
17523 }
17524 /* COM compatibility */
17525 VBOX_EXTERN_CONST(nsIID, IID_IUSBDevice);
17526 #   ifndef VBOX_WITH_GLUE
17527 struct IUSBDevice_vtbl
17528 {
17529     struct nsISupports_vtbl nsisupports;
17530 
17531     nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
17532 
17533     nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
17534 
17535     nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
17536 
17537     nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
17538 
17539     nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
17540 
17541     nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
17542 
17543     nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
17544 
17545     nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
17546 
17547     nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
17548 
17549     nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
17550 
17551     nsresult (*GetPortVersion)(IUSBDevice *pThis, PRUint16 *portVersion);
17552 
17553     nsresult (*GetSpeed)(IUSBDevice *pThis, PRUint32 *speed);
17554 
17555     nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
17556 
17557     nsresult (*GetDeviceInfo)(IUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
17558 
17559     nsresult (*GetBackend)(IUSBDevice *pThis, PRUnichar * *backend);
17560 
17561     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
17562 
17563     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
17564 
17565 };
17566 #   else /* VBOX_WITH_GLUE */
17567 struct IUSBDeviceVtbl
17568 {
17569     nsresult (*QueryInterface)(IUSBDevice *pThis, const nsID *iid, void **resultp);
17570     nsrefcnt (*AddRef)(IUSBDevice *pThis);
17571     nsrefcnt (*Release)(IUSBDevice *pThis);
17572     nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
17573 
17574     nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
17575 
17576     nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
17577 
17578     nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
17579 
17580     nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
17581 
17582     nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
17583 
17584     nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
17585 
17586     nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
17587 
17588     nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
17589 
17590     nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
17591 
17592     nsresult (*GetPortVersion)(IUSBDevice *pThis, PRUint16 *portVersion);
17593 
17594     nsresult (*GetSpeed)(IUSBDevice *pThis, PRUint32 *speed);
17595 
17596     nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
17597 
17598     nsresult (*GetDeviceInfo)(IUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
17599 
17600     nsresult (*GetBackend)(IUSBDevice *pThis, PRUnichar * *backend);
17601 
17602     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
17603 
17604     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
17605 
17606 };
17607 #    define IUSBDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17608 #    define IUSBDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
17609 #    define IUSBDevice_Release(p) ((p)->lpVtbl->Release(p))
17610 #    define IUSBDevice_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
17611 #    define IUSBDevice_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
17612 #    define IUSBDevice_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
17613 #    define IUSBDevice_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
17614 #    define IUSBDevice_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
17615 #    define IUSBDevice_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
17616 #    define IUSBDevice_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
17617 #    define IUSBDevice_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
17618 #    define IUSBDevice_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
17619 #    define IUSBDevice_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
17620 #    define IUSBDevice_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
17621 #    define IUSBDevice_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
17622 #    define IUSBDevice_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
17623 #    define IUSBDevice_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
17624 #    define IUSBDevice_get_Address(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
17625 #    define IUSBDevice_GetAddress(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
17626 #    define IUSBDevice_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
17627 #    define IUSBDevice_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
17628 #    define IUSBDevice_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
17629 #    define IUSBDevice_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
17630 #    define IUSBDevice_get_PortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
17631 #    define IUSBDevice_GetPortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
17632 #    define IUSBDevice_get_Speed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
17633 #    define IUSBDevice_GetSpeed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
17634 #    define IUSBDevice_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
17635 #    define IUSBDevice_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
17636 #    define IUSBDevice_get_DeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
17637 #    define IUSBDevice_GetDeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
17638 #    define IUSBDevice_get_Backend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
17639 #    define IUSBDevice_GetBackend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
17640 #   endif /* VBOX_WITH_GLUE */
17641 
17642 interface IUSBDevice
17643 {
17644 #   ifndef VBOX_WITH_GLUE
17645     struct IUSBDevice_vtbl *vtbl;
17646 #   else /* VBOX_WITH_GLUE */
17647     CONST_VTBL struct IUSBDeviceVtbl *lpVtbl;
17648 #   endif /* VBOX_WITH_GLUE */
17649 };
17650 /* End of struct IUSBDevice declaration */
17651 
17652 
17653 /* Start of struct IUSBDeviceFilter declaration */
17654 #   define IUSBDEVICEFILTER_IID_STR "45587218-4289-ef4e-8e6a-e5b07816b631"
17655 #   define IUSBDEVICEFILTER_IID { \
17656     0x45587218, 0x4289, 0xef4e, \
17657     { 0x8e, 0x6a, 0xe5, 0xb0, 0x78, 0x16, 0xb6, 0x31 } \
17658 }
17659 /* COM compatibility */
17660 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceFilter);
17661 #   ifndef VBOX_WITH_GLUE
17662 struct IUSBDeviceFilter_vtbl
17663 {
17664     struct nsISupports_vtbl nsisupports;
17665 
17666     nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
17667     nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
17668 
17669     nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
17670     nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
17671 
17672     nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
17673     nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
17674 
17675     nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
17676     nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
17677 
17678     nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
17679     nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
17680 
17681     nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
17682     nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
17683 
17684     nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
17685     nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
17686 
17687     nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
17688     nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
17689 
17690     nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
17691     nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
17692 
17693     nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
17694     nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
17695 
17696     nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
17697     nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
17698 
17699     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17700 
17701     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17702 
17703     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17704 
17705     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17706 
17707     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17708 
17709     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17710 
17711     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17712 
17713     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17714 
17715 };
17716 #   else /* VBOX_WITH_GLUE */
17717 struct IUSBDeviceFilterVtbl
17718 {
17719     nsresult (*QueryInterface)(IUSBDeviceFilter *pThis, const nsID *iid, void **resultp);
17720     nsrefcnt (*AddRef)(IUSBDeviceFilter *pThis);
17721     nsrefcnt (*Release)(IUSBDeviceFilter *pThis);
17722     nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
17723     nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
17724 
17725     nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
17726     nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
17727 
17728     nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
17729     nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
17730 
17731     nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
17732     nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
17733 
17734     nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
17735     nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
17736 
17737     nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
17738     nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
17739 
17740     nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
17741     nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
17742 
17743     nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
17744     nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
17745 
17746     nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
17747     nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
17748 
17749     nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
17750     nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
17751 
17752     nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
17753     nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
17754 
17755     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17756 
17757     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17758 
17759     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17760 
17761     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17762 
17763     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17764 
17765     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17766 
17767     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17768 
17769     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
17770 
17771 };
17772 #    define IUSBDeviceFilter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17773 #    define IUSBDeviceFilter_AddRef(p) ((p)->lpVtbl->AddRef(p))
17774 #    define IUSBDeviceFilter_Release(p) ((p)->lpVtbl->Release(p))
17775 #    define IUSBDeviceFilter_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
17776 #    define IUSBDeviceFilter_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
17777 #    define IUSBDeviceFilter_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
17778 #    define IUSBDeviceFilter_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
17779 #    define IUSBDeviceFilter_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
17780 #    define IUSBDeviceFilter_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
17781 #    define IUSBDeviceFilter_put_Active(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
17782 #    define IUSBDeviceFilter_SetActive(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
17783 #    define IUSBDeviceFilter_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
17784 #    define IUSBDeviceFilter_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
17785 #    define IUSBDeviceFilter_put_VendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
17786 #    define IUSBDeviceFilter_SetVendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
17787 #    define IUSBDeviceFilter_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
17788 #    define IUSBDeviceFilter_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
17789 #    define IUSBDeviceFilter_put_ProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
17790 #    define IUSBDeviceFilter_SetProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
17791 #    define IUSBDeviceFilter_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
17792 #    define IUSBDeviceFilter_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
17793 #    define IUSBDeviceFilter_put_Revision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
17794 #    define IUSBDeviceFilter_SetRevision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
17795 #    define IUSBDeviceFilter_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
17796 #    define IUSBDeviceFilter_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
17797 #    define IUSBDeviceFilter_put_Manufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
17798 #    define IUSBDeviceFilter_SetManufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
17799 #    define IUSBDeviceFilter_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
17800 #    define IUSBDeviceFilter_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
17801 #    define IUSBDeviceFilter_put_Product(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
17802 #    define IUSBDeviceFilter_SetProduct(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
17803 #    define IUSBDeviceFilter_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
17804 #    define IUSBDeviceFilter_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
17805 #    define IUSBDeviceFilter_put_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
17806 #    define IUSBDeviceFilter_SetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
17807 #    define IUSBDeviceFilter_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
17808 #    define IUSBDeviceFilter_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
17809 #    define IUSBDeviceFilter_put_Port(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
17810 #    define IUSBDeviceFilter_SetPort(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
17811 #    define IUSBDeviceFilter_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
17812 #    define IUSBDeviceFilter_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
17813 #    define IUSBDeviceFilter_put_Remote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
17814 #    define IUSBDeviceFilter_SetRemote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
17815 #    define IUSBDeviceFilter_get_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
17816 #    define IUSBDeviceFilter_GetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
17817 #    define IUSBDeviceFilter_put_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
17818 #    define IUSBDeviceFilter_SetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
17819 #   endif /* VBOX_WITH_GLUE */
17820 
17821 interface IUSBDeviceFilter
17822 {
17823 #   ifndef VBOX_WITH_GLUE
17824     struct IUSBDeviceFilter_vtbl *vtbl;
17825 #   else /* VBOX_WITH_GLUE */
17826     CONST_VTBL struct IUSBDeviceFilterVtbl *lpVtbl;
17827 #   endif /* VBOX_WITH_GLUE */
17828 };
17829 /* End of struct IUSBDeviceFilter declaration */
17830 
17831 
17832 /* Start of struct IHostUSBDevice declaration */
17833 #   define IHOSTUSBDEVICE_IID_STR "c19073dd-cc7b-431b-98b2-951fda8eab89"
17834 #   define IHOSTUSBDEVICE_IID { \
17835     0xc19073dd, 0xcc7b, 0x431b, \
17836     { 0x98, 0xb2, 0x95, 0x1f, 0xda, 0x8e, 0xab, 0x89 } \
17837 }
17838 /* COM compatibility */
17839 VBOX_EXTERN_CONST(nsIID, IID_IHostUSBDevice);
17840 #   ifndef VBOX_WITH_GLUE
17841 struct IHostUSBDevice_vtbl
17842 {
17843     struct IUSBDevice_vtbl iusbdevice;
17844 
17845     nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
17846 
17847     nsresult (*GetInternalAndReservedAttribute1IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17848 
17849     nsresult (*GetInternalAndReservedAttribute2IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17850 
17851     nsresult (*GetInternalAndReservedAttribute3IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17852 
17853     nsresult (*GetInternalAndReservedAttribute4IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17854 
17855 };
17856 #   else /* VBOX_WITH_GLUE */
17857 struct IHostUSBDeviceVtbl
17858 {
17859     nsresult (*QueryInterface)(IHostUSBDevice *pThis, const nsID *iid, void **resultp);
17860     nsrefcnt (*AddRef)(IHostUSBDevice *pThis);
17861     nsrefcnt (*Release)(IHostUSBDevice *pThis);
17862     nsresult (*GetId)(IHostUSBDevice *pThis, PRUnichar * *id);
17863 
17864     nsresult (*GetVendorId)(IHostUSBDevice *pThis, PRUint16 *vendorId);
17865 
17866     nsresult (*GetProductId)(IHostUSBDevice *pThis, PRUint16 *productId);
17867 
17868     nsresult (*GetRevision)(IHostUSBDevice *pThis, PRUint16 *revision);
17869 
17870     nsresult (*GetManufacturer)(IHostUSBDevice *pThis, PRUnichar * *manufacturer);
17871 
17872     nsresult (*GetProduct)(IHostUSBDevice *pThis, PRUnichar * *product);
17873 
17874     nsresult (*GetSerialNumber)(IHostUSBDevice *pThis, PRUnichar * *serialNumber);
17875 
17876     nsresult (*GetAddress)(IHostUSBDevice *pThis, PRUnichar * *address);
17877 
17878     nsresult (*GetPort)(IHostUSBDevice *pThis, PRUint16 *port);
17879 
17880     nsresult (*GetVersion)(IHostUSBDevice *pThis, PRUint16 *version);
17881 
17882     nsresult (*GetPortVersion)(IHostUSBDevice *pThis, PRUint16 *portVersion);
17883 
17884     nsresult (*GetSpeed)(IHostUSBDevice *pThis, PRUint32 *speed);
17885 
17886     nsresult (*GetRemote)(IHostUSBDevice *pThis, PRBool *remote);
17887 
17888     nsresult (*GetDeviceInfo)(IHostUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
17889 
17890     nsresult (*GetBackend)(IHostUSBDevice *pThis, PRUnichar * *backend);
17891 
17892     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17893 
17894     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17895 
17896     nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
17897 
17898     nsresult (*GetInternalAndReservedAttribute1IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17899 
17900     nsresult (*GetInternalAndReservedAttribute2IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17901 
17902     nsresult (*GetInternalAndReservedAttribute3IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17903 
17904     nsresult (*GetInternalAndReservedAttribute4IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
17905 
17906 };
17907 #    define IHostUSBDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17908 #    define IHostUSBDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
17909 #    define IHostUSBDevice_Release(p) ((p)->lpVtbl->Release(p))
17910 #    define IHostUSBDevice_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
17911 #    define IHostUSBDevice_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
17912 #    define IHostUSBDevice_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
17913 #    define IHostUSBDevice_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
17914 #    define IHostUSBDevice_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
17915 #    define IHostUSBDevice_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
17916 #    define IHostUSBDevice_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
17917 #    define IHostUSBDevice_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
17918 #    define IHostUSBDevice_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
17919 #    define IHostUSBDevice_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
17920 #    define IHostUSBDevice_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
17921 #    define IHostUSBDevice_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
17922 #    define IHostUSBDevice_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
17923 #    define IHostUSBDevice_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
17924 #    define IHostUSBDevice_get_Address(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
17925 #    define IHostUSBDevice_GetAddress(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
17926 #    define IHostUSBDevice_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
17927 #    define IHostUSBDevice_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
17928 #    define IHostUSBDevice_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
17929 #    define IHostUSBDevice_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
17930 #    define IHostUSBDevice_get_PortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
17931 #    define IHostUSBDevice_GetPortVersion(p, aPortVersion) ((p)->lpVtbl->GetPortVersion(p, aPortVersion))
17932 #    define IHostUSBDevice_get_Speed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
17933 #    define IHostUSBDevice_GetSpeed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
17934 #    define IHostUSBDevice_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
17935 #    define IHostUSBDevice_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
17936 #    define IHostUSBDevice_get_DeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
17937 #    define IHostUSBDevice_GetDeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
17938 #    define IHostUSBDevice_get_Backend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
17939 #    define IHostUSBDevice_GetBackend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
17940 #    define IHostUSBDevice_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
17941 #    define IHostUSBDevice_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
17942 #   endif /* VBOX_WITH_GLUE */
17943 
17944 interface IHostUSBDevice
17945 {
17946 #   ifndef VBOX_WITH_GLUE
17947     struct IHostUSBDevice_vtbl *vtbl;
17948 #   else /* VBOX_WITH_GLUE */
17949     CONST_VTBL struct IHostUSBDeviceVtbl *lpVtbl;
17950 #   endif /* VBOX_WITH_GLUE */
17951 };
17952 /* End of struct IHostUSBDevice declaration */
17953 
17954 
17955 /* Start of struct IHostUSBDeviceFilter declaration */
17956 #   define IHOSTUSBDEVICEFILTER_IID_STR "01adb2d6-aedf-461c-be2c-99e91bdad8a1"
17957 #   define IHOSTUSBDEVICEFILTER_IID { \
17958     0x01adb2d6, 0xaedf, 0x461c, \
17959     { 0xbe, 0x2c, 0x99, 0xe9, 0x1b, 0xda, 0xd8, 0xa1 } \
17960 }
17961 /* COM compatibility */
17962 VBOX_EXTERN_CONST(nsIID, IID_IHostUSBDeviceFilter);
17963 #   ifndef VBOX_WITH_GLUE
17964 struct IHostUSBDeviceFilter_vtbl
17965 {
17966     struct IUSBDeviceFilter_vtbl iusbdevicefilter;
17967 
17968     nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
17969     nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
17970 
17971     nsresult (*GetInternalAndReservedAttribute1IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17972 
17973     nsresult (*GetInternalAndReservedAttribute2IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17974 
17975     nsresult (*GetInternalAndReservedAttribute3IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17976 
17977     nsresult (*GetInternalAndReservedAttribute4IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17978 
17979     nsresult (*GetInternalAndReservedAttribute5IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17980 
17981     nsresult (*GetInternalAndReservedAttribute6IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17982 
17983     nsresult (*GetInternalAndReservedAttribute7IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17984 
17985     nsresult (*GetInternalAndReservedAttribute8IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
17986 
17987 };
17988 #   else /* VBOX_WITH_GLUE */
17989 struct IHostUSBDeviceFilterVtbl
17990 {
17991     nsresult (*QueryInterface)(IHostUSBDeviceFilter *pThis, const nsID *iid, void **resultp);
17992     nsrefcnt (*AddRef)(IHostUSBDeviceFilter *pThis);
17993     nsrefcnt (*Release)(IHostUSBDeviceFilter *pThis);
17994     nsresult (*GetName)(IHostUSBDeviceFilter *pThis, PRUnichar * *name);
17995     nsresult (*SetName)(IHostUSBDeviceFilter *pThis, PRUnichar * name);
17996 
17997     nsresult (*GetActive)(IHostUSBDeviceFilter *pThis, PRBool *active);
17998     nsresult (*SetActive)(IHostUSBDeviceFilter *pThis, PRBool active);
17999 
18000     nsresult (*GetVendorId)(IHostUSBDeviceFilter *pThis, PRUnichar * *vendorId);
18001     nsresult (*SetVendorId)(IHostUSBDeviceFilter *pThis, PRUnichar * vendorId);
18002 
18003     nsresult (*GetProductId)(IHostUSBDeviceFilter *pThis, PRUnichar * *productId);
18004     nsresult (*SetProductId)(IHostUSBDeviceFilter *pThis, PRUnichar * productId);
18005 
18006     nsresult (*GetRevision)(IHostUSBDeviceFilter *pThis, PRUnichar * *revision);
18007     nsresult (*SetRevision)(IHostUSBDeviceFilter *pThis, PRUnichar * revision);
18008 
18009     nsresult (*GetManufacturer)(IHostUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
18010     nsresult (*SetManufacturer)(IHostUSBDeviceFilter *pThis, PRUnichar * manufacturer);
18011 
18012     nsresult (*GetProduct)(IHostUSBDeviceFilter *pThis, PRUnichar * *product);
18013     nsresult (*SetProduct)(IHostUSBDeviceFilter *pThis, PRUnichar * product);
18014 
18015     nsresult (*GetSerialNumber)(IHostUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
18016     nsresult (*SetSerialNumber)(IHostUSBDeviceFilter *pThis, PRUnichar * serialNumber);
18017 
18018     nsresult (*GetPort)(IHostUSBDeviceFilter *pThis, PRUnichar * *port);
18019     nsresult (*SetPort)(IHostUSBDeviceFilter *pThis, PRUnichar * port);
18020 
18021     nsresult (*GetRemote)(IHostUSBDeviceFilter *pThis, PRUnichar * *remote);
18022     nsresult (*SetRemote)(IHostUSBDeviceFilter *pThis, PRUnichar * remote);
18023 
18024     nsresult (*GetMaskedInterfaces)(IHostUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
18025     nsresult (*SetMaskedInterfaces)(IHostUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
18026 
18027     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18028 
18029     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18030 
18031     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18032 
18033     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18034 
18035     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18036 
18037     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18038 
18039     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18040 
18041     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18042 
18043     nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
18044     nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
18045 
18046     nsresult (*GetInternalAndReservedAttribute1IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18047 
18048     nsresult (*GetInternalAndReservedAttribute2IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18049 
18050     nsresult (*GetInternalAndReservedAttribute3IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18051 
18052     nsresult (*GetInternalAndReservedAttribute4IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18053 
18054     nsresult (*GetInternalAndReservedAttribute5IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18055 
18056     nsresult (*GetInternalAndReservedAttribute6IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18057 
18058     nsresult (*GetInternalAndReservedAttribute7IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18059 
18060     nsresult (*GetInternalAndReservedAttribute8IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
18061 
18062 };
18063 #    define IHostUSBDeviceFilter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18064 #    define IHostUSBDeviceFilter_AddRef(p) ((p)->lpVtbl->AddRef(p))
18065 #    define IHostUSBDeviceFilter_Release(p) ((p)->lpVtbl->Release(p))
18066 #    define IHostUSBDeviceFilter_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
18067 #    define IHostUSBDeviceFilter_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
18068 #    define IHostUSBDeviceFilter_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
18069 #    define IHostUSBDeviceFilter_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
18070 #    define IHostUSBDeviceFilter_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
18071 #    define IHostUSBDeviceFilter_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
18072 #    define IHostUSBDeviceFilter_put_Active(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
18073 #    define IHostUSBDeviceFilter_SetActive(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
18074 #    define IHostUSBDeviceFilter_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
18075 #    define IHostUSBDeviceFilter_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
18076 #    define IHostUSBDeviceFilter_put_VendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
18077 #    define IHostUSBDeviceFilter_SetVendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
18078 #    define IHostUSBDeviceFilter_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
18079 #    define IHostUSBDeviceFilter_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
18080 #    define IHostUSBDeviceFilter_put_ProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
18081 #    define IHostUSBDeviceFilter_SetProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
18082 #    define IHostUSBDeviceFilter_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
18083 #    define IHostUSBDeviceFilter_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
18084 #    define IHostUSBDeviceFilter_put_Revision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
18085 #    define IHostUSBDeviceFilter_SetRevision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
18086 #    define IHostUSBDeviceFilter_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
18087 #    define IHostUSBDeviceFilter_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
18088 #    define IHostUSBDeviceFilter_put_Manufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
18089 #    define IHostUSBDeviceFilter_SetManufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
18090 #    define IHostUSBDeviceFilter_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
18091 #    define IHostUSBDeviceFilter_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
18092 #    define IHostUSBDeviceFilter_put_Product(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
18093 #    define IHostUSBDeviceFilter_SetProduct(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
18094 #    define IHostUSBDeviceFilter_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
18095 #    define IHostUSBDeviceFilter_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
18096 #    define IHostUSBDeviceFilter_put_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
18097 #    define IHostUSBDeviceFilter_SetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
18098 #    define IHostUSBDeviceFilter_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
18099 #    define IHostUSBDeviceFilter_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
18100 #    define IHostUSBDeviceFilter_put_Port(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
18101 #    define IHostUSBDeviceFilter_SetPort(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
18102 #    define IHostUSBDeviceFilter_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
18103 #    define IHostUSBDeviceFilter_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
18104 #    define IHostUSBDeviceFilter_put_Remote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
18105 #    define IHostUSBDeviceFilter_SetRemote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
18106 #    define IHostUSBDeviceFilter_get_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
18107 #    define IHostUSBDeviceFilter_GetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
18108 #    define IHostUSBDeviceFilter_put_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
18109 #    define IHostUSBDeviceFilter_SetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
18110 #    define IHostUSBDeviceFilter_get_Action(p, aAction) ((p)->lpVtbl->GetAction(p, aAction))
18111 #    define IHostUSBDeviceFilter_GetAction(p, aAction) ((p)->lpVtbl->GetAction(p, aAction))
18112 #    define IHostUSBDeviceFilter_put_Action(p, aAction) ((p)->lpVtbl->SetAction(p, aAction))
18113 #    define IHostUSBDeviceFilter_SetAction(p, aAction) ((p)->lpVtbl->SetAction(p, aAction))
18114 #   endif /* VBOX_WITH_GLUE */
18115 
18116 interface IHostUSBDeviceFilter
18117 {
18118 #   ifndef VBOX_WITH_GLUE
18119     struct IHostUSBDeviceFilter_vtbl *vtbl;
18120 #   else /* VBOX_WITH_GLUE */
18121     CONST_VTBL struct IHostUSBDeviceFilterVtbl *lpVtbl;
18122 #   endif /* VBOX_WITH_GLUE */
18123 };
18124 /* End of struct IHostUSBDeviceFilter declaration */
18125 
18126 
18127 /* Start of struct IUSBProxyBackend declaration */
18128 #   define IUSBPROXYBACKEND_IID_STR "dfe56449-6989-4002-80cf-3607f377d40c"
18129 #   define IUSBPROXYBACKEND_IID { \
18130     0xdfe56449, 0x6989, 0x4002, \
18131     { 0x80, 0xcf, 0x36, 0x07, 0xf3, 0x77, 0xd4, 0x0c } \
18132 }
18133 /* COM compatibility */
18134 VBOX_EXTERN_CONST(nsIID, IID_IUSBProxyBackend);
18135 #   ifndef VBOX_WITH_GLUE
18136 struct IUSBProxyBackend_vtbl
18137 {
18138     struct nsISupports_vtbl nsisupports;
18139 
18140     nsresult (*GetName)(IUSBProxyBackend *pThis, PRUnichar * *name);
18141 
18142     nsresult (*GetType)(IUSBProxyBackend *pThis, PRUnichar * *type);
18143 
18144     nsresult (*GetInternalAndReservedAttribute1IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18145 
18146     nsresult (*GetInternalAndReservedAttribute2IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18147 
18148     nsresult (*GetInternalAndReservedAttribute3IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18149 
18150     nsresult (*GetInternalAndReservedAttribute4IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18151 
18152     nsresult (*GetInternalAndReservedAttribute5IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18153 
18154     nsresult (*GetInternalAndReservedAttribute6IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18155 
18156     nsresult (*GetInternalAndReservedAttribute7IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18157 
18158     nsresult (*GetInternalAndReservedAttribute8IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18159 
18160     nsresult (*InternalAndReservedMethod1IUSBProxyBackend)(IUSBProxyBackend *pThis);
18161 
18162     nsresult (*InternalAndReservedMethod2IUSBProxyBackend)(IUSBProxyBackend *pThis);
18163 
18164     nsresult (*InternalAndReservedMethod3IUSBProxyBackend)(IUSBProxyBackend *pThis);
18165 
18166     nsresult (*InternalAndReservedMethod4IUSBProxyBackend)(IUSBProxyBackend *pThis);
18167 
18168 };
18169 #   else /* VBOX_WITH_GLUE */
18170 struct IUSBProxyBackendVtbl
18171 {
18172     nsresult (*QueryInterface)(IUSBProxyBackend *pThis, const nsID *iid, void **resultp);
18173     nsrefcnt (*AddRef)(IUSBProxyBackend *pThis);
18174     nsrefcnt (*Release)(IUSBProxyBackend *pThis);
18175     nsresult (*GetName)(IUSBProxyBackend *pThis, PRUnichar * *name);
18176 
18177     nsresult (*GetType)(IUSBProxyBackend *pThis, PRUnichar * *type);
18178 
18179     nsresult (*GetInternalAndReservedAttribute1IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18180 
18181     nsresult (*GetInternalAndReservedAttribute2IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18182 
18183     nsresult (*GetInternalAndReservedAttribute3IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18184 
18185     nsresult (*GetInternalAndReservedAttribute4IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18186 
18187     nsresult (*GetInternalAndReservedAttribute5IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18188 
18189     nsresult (*GetInternalAndReservedAttribute6IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18190 
18191     nsresult (*GetInternalAndReservedAttribute7IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18192 
18193     nsresult (*GetInternalAndReservedAttribute8IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
18194 
18195     nsresult (*InternalAndReservedMethod1IUSBProxyBackend)(IUSBProxyBackend *pThis);
18196 
18197     nsresult (*InternalAndReservedMethod2IUSBProxyBackend)(IUSBProxyBackend *pThis);
18198 
18199     nsresult (*InternalAndReservedMethod3IUSBProxyBackend)(IUSBProxyBackend *pThis);
18200 
18201     nsresult (*InternalAndReservedMethod4IUSBProxyBackend)(IUSBProxyBackend *pThis);
18202 
18203 };
18204 #    define IUSBProxyBackend_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18205 #    define IUSBProxyBackend_AddRef(p) ((p)->lpVtbl->AddRef(p))
18206 #    define IUSBProxyBackend_Release(p) ((p)->lpVtbl->Release(p))
18207 #    define IUSBProxyBackend_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
18208 #    define IUSBProxyBackend_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
18209 #    define IUSBProxyBackend_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
18210 #    define IUSBProxyBackend_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
18211 #   endif /* VBOX_WITH_GLUE */
18212 
18213 interface IUSBProxyBackend
18214 {
18215 #   ifndef VBOX_WITH_GLUE
18216     struct IUSBProxyBackend_vtbl *vtbl;
18217 #   else /* VBOX_WITH_GLUE */
18218     CONST_VTBL struct IUSBProxyBackendVtbl *lpVtbl;
18219 #   endif /* VBOX_WITH_GLUE */
18220 };
18221 /* End of struct IUSBProxyBackend declaration */
18222 
18223 
18224 /* Start of struct IAudioAdapter declaration */
18225 #   define IAUDIOADAPTER_IID_STR "aeccc0a8-e0a0-427f-b946-c42063f54d81"
18226 #   define IAUDIOADAPTER_IID { \
18227     0xaeccc0a8, 0xe0a0, 0x427f, \
18228     { 0xb9, 0x46, 0xc4, 0x20, 0x63, 0xf5, 0x4d, 0x81 } \
18229 }
18230 /* COM compatibility */
18231 VBOX_EXTERN_CONST(nsIID, IID_IAudioAdapter);
18232 #   ifndef VBOX_WITH_GLUE
18233 struct IAudioAdapter_vtbl
18234 {
18235     struct nsISupports_vtbl nsisupports;
18236 
18237     nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
18238     nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
18239 
18240     nsresult (*GetEnabledIn)(IAudioAdapter *pThis, PRBool *enabledIn);
18241     nsresult (*SetEnabledIn)(IAudioAdapter *pThis, PRBool enabledIn);
18242 
18243     nsresult (*GetEnabledOut)(IAudioAdapter *pThis, PRBool *enabledOut);
18244     nsresult (*SetEnabledOut)(IAudioAdapter *pThis, PRBool enabledOut);
18245 
18246     nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
18247     nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
18248 
18249     nsresult (*GetAudioCodec)(IAudioAdapter *pThis, PRUint32 *audioCodec);
18250     nsresult (*SetAudioCodec)(IAudioAdapter *pThis, PRUint32 audioCodec);
18251 
18252     nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
18253     nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
18254 
18255     nsresult (*GetPropertiesList)(IAudioAdapter *pThis, PRUint32 *propertiesListSize, PRUnichar * **propertiesList);
18256 
18257     nsresult (*GetInternalAndReservedAttribute1IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
18258 
18259     nsresult (*GetInternalAndReservedAttribute2IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
18260 
18261     nsresult (*SetProperty)(
18262         IAudioAdapter *pThis,
18263         PRUnichar * key,
18264         PRUnichar * value
18265     );
18266 
18267     nsresult (*GetProperty)(
18268         IAudioAdapter *pThis,
18269         PRUnichar * key,
18270         PRUnichar * * value
18271     );
18272 
18273     nsresult (*InternalAndReservedMethod1IAudioAdapter)(IAudioAdapter *pThis);
18274 
18275 };
18276 #   else /* VBOX_WITH_GLUE */
18277 struct IAudioAdapterVtbl
18278 {
18279     nsresult (*QueryInterface)(IAudioAdapter *pThis, const nsID *iid, void **resultp);
18280     nsrefcnt (*AddRef)(IAudioAdapter *pThis);
18281     nsrefcnt (*Release)(IAudioAdapter *pThis);
18282     nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
18283     nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
18284 
18285     nsresult (*GetEnabledIn)(IAudioAdapter *pThis, PRBool *enabledIn);
18286     nsresult (*SetEnabledIn)(IAudioAdapter *pThis, PRBool enabledIn);
18287 
18288     nsresult (*GetEnabledOut)(IAudioAdapter *pThis, PRBool *enabledOut);
18289     nsresult (*SetEnabledOut)(IAudioAdapter *pThis, PRBool enabledOut);
18290 
18291     nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
18292     nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
18293 
18294     nsresult (*GetAudioCodec)(IAudioAdapter *pThis, PRUint32 *audioCodec);
18295     nsresult (*SetAudioCodec)(IAudioAdapter *pThis, PRUint32 audioCodec);
18296 
18297     nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
18298     nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
18299 
18300     nsresult (*GetPropertiesList)(IAudioAdapter *pThis, PRUint32 *propertiesListSize, PRUnichar * **propertiesList);
18301 
18302     nsresult (*GetInternalAndReservedAttribute1IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
18303 
18304     nsresult (*GetInternalAndReservedAttribute2IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
18305 
18306     nsresult (*SetProperty)(
18307         IAudioAdapter *pThis,
18308         PRUnichar * key,
18309         PRUnichar * value
18310     );
18311 
18312     nsresult (*GetProperty)(
18313         IAudioAdapter *pThis,
18314         PRUnichar * key,
18315         PRUnichar * * value
18316     );
18317 
18318     nsresult (*InternalAndReservedMethod1IAudioAdapter)(IAudioAdapter *pThis);
18319 
18320 };
18321 #    define IAudioAdapter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18322 #    define IAudioAdapter_AddRef(p) ((p)->lpVtbl->AddRef(p))
18323 #    define IAudioAdapter_Release(p) ((p)->lpVtbl->Release(p))
18324 #    define IAudioAdapter_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18325 #    define IAudioAdapter_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18326 #    define IAudioAdapter_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18327 #    define IAudioAdapter_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18328 #    define IAudioAdapter_get_EnabledIn(p, aEnabledIn) ((p)->lpVtbl->GetEnabledIn(p, aEnabledIn))
18329 #    define IAudioAdapter_GetEnabledIn(p, aEnabledIn) ((p)->lpVtbl->GetEnabledIn(p, aEnabledIn))
18330 #    define IAudioAdapter_put_EnabledIn(p, aEnabledIn) ((p)->lpVtbl->SetEnabledIn(p, aEnabledIn))
18331 #    define IAudioAdapter_SetEnabledIn(p, aEnabledIn) ((p)->lpVtbl->SetEnabledIn(p, aEnabledIn))
18332 #    define IAudioAdapter_get_EnabledOut(p, aEnabledOut) ((p)->lpVtbl->GetEnabledOut(p, aEnabledOut))
18333 #    define IAudioAdapter_GetEnabledOut(p, aEnabledOut) ((p)->lpVtbl->GetEnabledOut(p, aEnabledOut))
18334 #    define IAudioAdapter_put_EnabledOut(p, aEnabledOut) ((p)->lpVtbl->SetEnabledOut(p, aEnabledOut))
18335 #    define IAudioAdapter_SetEnabledOut(p, aEnabledOut) ((p)->lpVtbl->SetEnabledOut(p, aEnabledOut))
18336 #    define IAudioAdapter_get_AudioController(p, aAudioController) ((p)->lpVtbl->GetAudioController(p, aAudioController))
18337 #    define IAudioAdapter_GetAudioController(p, aAudioController) ((p)->lpVtbl->GetAudioController(p, aAudioController))
18338 #    define IAudioAdapter_put_AudioController(p, aAudioController) ((p)->lpVtbl->SetAudioController(p, aAudioController))
18339 #    define IAudioAdapter_SetAudioController(p, aAudioController) ((p)->lpVtbl->SetAudioController(p, aAudioController))
18340 #    define IAudioAdapter_get_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
18341 #    define IAudioAdapter_GetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
18342 #    define IAudioAdapter_put_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
18343 #    define IAudioAdapter_SetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
18344 #    define IAudioAdapter_get_AudioDriver(p, aAudioDriver) ((p)->lpVtbl->GetAudioDriver(p, aAudioDriver))
18345 #    define IAudioAdapter_GetAudioDriver(p, aAudioDriver) ((p)->lpVtbl->GetAudioDriver(p, aAudioDriver))
18346 #    define IAudioAdapter_put_AudioDriver(p, aAudioDriver) ((p)->lpVtbl->SetAudioDriver(p, aAudioDriver))
18347 #    define IAudioAdapter_SetAudioDriver(p, aAudioDriver) ((p)->lpVtbl->SetAudioDriver(p, aAudioDriver))
18348 #    define IAudioAdapter_get_PropertiesList(p, aPropertiesList) ((p)->lpVtbl->GetPropertiesList(p, aPropertiesList))
18349 #    define IAudioAdapter_GetPropertiesList(p, aPropertiesList) ((p)->lpVtbl->GetPropertiesList(p, aPropertiesList))
18350 #    define IAudioAdapter_SetProperty(p, aKey, aValue) ((p)->lpVtbl->SetProperty(p, aKey, aValue))
18351 #    define IAudioAdapter_GetProperty(p, aKey, aValue) ((p)->lpVtbl->GetProperty(p, aKey, aValue))
18352 #   endif /* VBOX_WITH_GLUE */
18353 
18354 interface IAudioAdapter
18355 {
18356 #   ifndef VBOX_WITH_GLUE
18357     struct IAudioAdapter_vtbl *vtbl;
18358 #   else /* VBOX_WITH_GLUE */
18359     CONST_VTBL struct IAudioAdapterVtbl *lpVtbl;
18360 #   endif /* VBOX_WITH_GLUE */
18361 };
18362 /* End of struct IAudioAdapter declaration */
18363 
18364 
18365 /* Start of struct IVRDEServer declaration */
18366 #   define IVRDESERVER_IID_STR "6e758489-453a-6f98-9cb9-2da2cb8eabb5"
18367 #   define IVRDESERVER_IID { \
18368     0x6e758489, 0x453a, 0x6f98, \
18369     { 0x9c, 0xb9, 0x2d, 0xa2, 0xcb, 0x8e, 0xab, 0xb5 } \
18370 }
18371 /* COM compatibility */
18372 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServer);
18373 #   ifndef VBOX_WITH_GLUE
18374 struct IVRDEServer_vtbl
18375 {
18376     struct nsISupports_vtbl nsisupports;
18377 
18378     nsresult (*GetEnabled)(IVRDEServer *pThis, PRBool *enabled);
18379     nsresult (*SetEnabled)(IVRDEServer *pThis, PRBool enabled);
18380 
18381     nsresult (*GetAuthType)(IVRDEServer *pThis, PRUint32 *authType);
18382     nsresult (*SetAuthType)(IVRDEServer *pThis, PRUint32 authType);
18383 
18384     nsresult (*GetAuthTimeout)(IVRDEServer *pThis, PRUint32 *authTimeout);
18385     nsresult (*SetAuthTimeout)(IVRDEServer *pThis, PRUint32 authTimeout);
18386 
18387     nsresult (*GetAllowMultiConnection)(IVRDEServer *pThis, PRBool *allowMultiConnection);
18388     nsresult (*SetAllowMultiConnection)(IVRDEServer *pThis, PRBool allowMultiConnection);
18389 
18390     nsresult (*GetReuseSingleConnection)(IVRDEServer *pThis, PRBool *reuseSingleConnection);
18391     nsresult (*SetReuseSingleConnection)(IVRDEServer *pThis, PRBool reuseSingleConnection);
18392 
18393     nsresult (*GetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * *VRDEExtPack);
18394     nsresult (*SetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * VRDEExtPack);
18395 
18396     nsresult (*GetAuthLibrary)(IVRDEServer *pThis, PRUnichar * *authLibrary);
18397     nsresult (*SetAuthLibrary)(IVRDEServer *pThis, PRUnichar * authLibrary);
18398 
18399     nsresult (*GetVRDEProperties)(IVRDEServer *pThis, PRUint32 *VRDEPropertiesSize, PRUnichar * **VRDEProperties);
18400 
18401     nsresult (*GetInternalAndReservedAttribute1IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
18402 
18403     nsresult (*GetInternalAndReservedAttribute2IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
18404 
18405     nsresult (*SetVRDEProperty)(
18406         IVRDEServer *pThis,
18407         PRUnichar * key,
18408         PRUnichar * value
18409     );
18410 
18411     nsresult (*GetVRDEProperty)(
18412         IVRDEServer *pThis,
18413         PRUnichar * key,
18414         PRUnichar * * value
18415     );
18416 
18417     nsresult (*InternalAndReservedMethod1IVRDEServer)(IVRDEServer *pThis);
18418 
18419 };
18420 #   else /* VBOX_WITH_GLUE */
18421 struct IVRDEServerVtbl
18422 {
18423     nsresult (*QueryInterface)(IVRDEServer *pThis, const nsID *iid, void **resultp);
18424     nsrefcnt (*AddRef)(IVRDEServer *pThis);
18425     nsrefcnt (*Release)(IVRDEServer *pThis);
18426     nsresult (*GetEnabled)(IVRDEServer *pThis, PRBool *enabled);
18427     nsresult (*SetEnabled)(IVRDEServer *pThis, PRBool enabled);
18428 
18429     nsresult (*GetAuthType)(IVRDEServer *pThis, PRUint32 *authType);
18430     nsresult (*SetAuthType)(IVRDEServer *pThis, PRUint32 authType);
18431 
18432     nsresult (*GetAuthTimeout)(IVRDEServer *pThis, PRUint32 *authTimeout);
18433     nsresult (*SetAuthTimeout)(IVRDEServer *pThis, PRUint32 authTimeout);
18434 
18435     nsresult (*GetAllowMultiConnection)(IVRDEServer *pThis, PRBool *allowMultiConnection);
18436     nsresult (*SetAllowMultiConnection)(IVRDEServer *pThis, PRBool allowMultiConnection);
18437 
18438     nsresult (*GetReuseSingleConnection)(IVRDEServer *pThis, PRBool *reuseSingleConnection);
18439     nsresult (*SetReuseSingleConnection)(IVRDEServer *pThis, PRBool reuseSingleConnection);
18440 
18441     nsresult (*GetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * *VRDEExtPack);
18442     nsresult (*SetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * VRDEExtPack);
18443 
18444     nsresult (*GetAuthLibrary)(IVRDEServer *pThis, PRUnichar * *authLibrary);
18445     nsresult (*SetAuthLibrary)(IVRDEServer *pThis, PRUnichar * authLibrary);
18446 
18447     nsresult (*GetVRDEProperties)(IVRDEServer *pThis, PRUint32 *VRDEPropertiesSize, PRUnichar * **VRDEProperties);
18448 
18449     nsresult (*GetInternalAndReservedAttribute1IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
18450 
18451     nsresult (*GetInternalAndReservedAttribute2IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
18452 
18453     nsresult (*SetVRDEProperty)(
18454         IVRDEServer *pThis,
18455         PRUnichar * key,
18456         PRUnichar * value
18457     );
18458 
18459     nsresult (*GetVRDEProperty)(
18460         IVRDEServer *pThis,
18461         PRUnichar * key,
18462         PRUnichar * * value
18463     );
18464 
18465     nsresult (*InternalAndReservedMethod1IVRDEServer)(IVRDEServer *pThis);
18466 
18467 };
18468 #    define IVRDEServer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18469 #    define IVRDEServer_AddRef(p) ((p)->lpVtbl->AddRef(p))
18470 #    define IVRDEServer_Release(p) ((p)->lpVtbl->Release(p))
18471 #    define IVRDEServer_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18472 #    define IVRDEServer_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
18473 #    define IVRDEServer_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18474 #    define IVRDEServer_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
18475 #    define IVRDEServer_get_AuthType(p, aAuthType) ((p)->lpVtbl->GetAuthType(p, aAuthType))
18476 #    define IVRDEServer_GetAuthType(p, aAuthType) ((p)->lpVtbl->GetAuthType(p, aAuthType))
18477 #    define IVRDEServer_put_AuthType(p, aAuthType) ((p)->lpVtbl->SetAuthType(p, aAuthType))
18478 #    define IVRDEServer_SetAuthType(p, aAuthType) ((p)->lpVtbl->SetAuthType(p, aAuthType))
18479 #    define IVRDEServer_get_AuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->GetAuthTimeout(p, aAuthTimeout))
18480 #    define IVRDEServer_GetAuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->GetAuthTimeout(p, aAuthTimeout))
18481 #    define IVRDEServer_put_AuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->SetAuthTimeout(p, aAuthTimeout))
18482 #    define IVRDEServer_SetAuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->SetAuthTimeout(p, aAuthTimeout))
18483 #    define IVRDEServer_get_AllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->GetAllowMultiConnection(p, aAllowMultiConnection))
18484 #    define IVRDEServer_GetAllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->GetAllowMultiConnection(p, aAllowMultiConnection))
18485 #    define IVRDEServer_put_AllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->SetAllowMultiConnection(p, aAllowMultiConnection))
18486 #    define IVRDEServer_SetAllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->SetAllowMultiConnection(p, aAllowMultiConnection))
18487 #    define IVRDEServer_get_ReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->GetReuseSingleConnection(p, aReuseSingleConnection))
18488 #    define IVRDEServer_GetReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->GetReuseSingleConnection(p, aReuseSingleConnection))
18489 #    define IVRDEServer_put_ReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->SetReuseSingleConnection(p, aReuseSingleConnection))
18490 #    define IVRDEServer_SetReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->SetReuseSingleConnection(p, aReuseSingleConnection))
18491 #    define IVRDEServer_get_VRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->GetVRDEExtPack(p, aVRDEExtPack))
18492 #    define IVRDEServer_GetVRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->GetVRDEExtPack(p, aVRDEExtPack))
18493 #    define IVRDEServer_put_VRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->SetVRDEExtPack(p, aVRDEExtPack))
18494 #    define IVRDEServer_SetVRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->SetVRDEExtPack(p, aVRDEExtPack))
18495 #    define IVRDEServer_get_AuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->GetAuthLibrary(p, aAuthLibrary))
18496 #    define IVRDEServer_GetAuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->GetAuthLibrary(p, aAuthLibrary))
18497 #    define IVRDEServer_put_AuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->SetAuthLibrary(p, aAuthLibrary))
18498 #    define IVRDEServer_SetAuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->SetAuthLibrary(p, aAuthLibrary))
18499 #    define IVRDEServer_get_VRDEProperties(p, aVRDEProperties) ((p)->lpVtbl->GetVRDEProperties(p, aVRDEProperties))
18500 #    define IVRDEServer_GetVRDEProperties(p, aVRDEProperties) ((p)->lpVtbl->GetVRDEProperties(p, aVRDEProperties))
18501 #    define IVRDEServer_SetVRDEProperty(p, aKey, aValue) ((p)->lpVtbl->SetVRDEProperty(p, aKey, aValue))
18502 #    define IVRDEServer_GetVRDEProperty(p, aKey, aValue) ((p)->lpVtbl->GetVRDEProperty(p, aKey, aValue))
18503 #   endif /* VBOX_WITH_GLUE */
18504 
18505 interface IVRDEServer
18506 {
18507 #   ifndef VBOX_WITH_GLUE
18508     struct IVRDEServer_vtbl *vtbl;
18509 #   else /* VBOX_WITH_GLUE */
18510     CONST_VTBL struct IVRDEServerVtbl *lpVtbl;
18511 #   endif /* VBOX_WITH_GLUE */
18512 };
18513 /* End of struct IVRDEServer declaration */
18514 
18515 
18516 /* Start of struct ISharedFolder declaration */
18517 #   define ISHAREDFOLDER_IID_STR "15aabe95-e594-4e18-9222-b5e83a23f1da"
18518 #   define ISHAREDFOLDER_IID { \
18519     0x15aabe95, 0xe594, 0x4e18, \
18520     { 0x92, 0x22, 0xb5, 0xe8, 0x3a, 0x23, 0xf1, 0xda } \
18521 }
18522 /* COM compatibility */
18523 VBOX_EXTERN_CONST(nsIID, IID_ISharedFolder);
18524 #   ifndef VBOX_WITH_GLUE
18525 struct ISharedFolder_vtbl
18526 {
18527     struct nsISupports_vtbl nsisupports;
18528 
18529     nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
18530 
18531     nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
18532 
18533     nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
18534 
18535     nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
18536 
18537     nsresult (*GetAutoMount)(ISharedFolder *pThis, PRBool *autoMount);
18538 
18539     nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
18540 
18541     nsresult (*GetInternalAndReservedAttribute1ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18542 
18543     nsresult (*GetInternalAndReservedAttribute2ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18544 
18545     nsresult (*GetInternalAndReservedAttribute3ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18546 
18547     nsresult (*GetInternalAndReservedAttribute4ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18548 
18549 };
18550 #   else /* VBOX_WITH_GLUE */
18551 struct ISharedFolderVtbl
18552 {
18553     nsresult (*QueryInterface)(ISharedFolder *pThis, const nsID *iid, void **resultp);
18554     nsrefcnt (*AddRef)(ISharedFolder *pThis);
18555     nsrefcnt (*Release)(ISharedFolder *pThis);
18556     nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
18557 
18558     nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
18559 
18560     nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
18561 
18562     nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
18563 
18564     nsresult (*GetAutoMount)(ISharedFolder *pThis, PRBool *autoMount);
18565 
18566     nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
18567 
18568     nsresult (*GetInternalAndReservedAttribute1ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18569 
18570     nsresult (*GetInternalAndReservedAttribute2ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18571 
18572     nsresult (*GetInternalAndReservedAttribute3ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18573 
18574     nsresult (*GetInternalAndReservedAttribute4ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
18575 
18576 };
18577 #    define ISharedFolder_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18578 #    define ISharedFolder_AddRef(p) ((p)->lpVtbl->AddRef(p))
18579 #    define ISharedFolder_Release(p) ((p)->lpVtbl->Release(p))
18580 #    define ISharedFolder_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
18581 #    define ISharedFolder_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
18582 #    define ISharedFolder_get_HostPath(p, aHostPath) ((p)->lpVtbl->GetHostPath(p, aHostPath))
18583 #    define ISharedFolder_GetHostPath(p, aHostPath) ((p)->lpVtbl->GetHostPath(p, aHostPath))
18584 #    define ISharedFolder_get_Accessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
18585 #    define ISharedFolder_GetAccessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
18586 #    define ISharedFolder_get_Writable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
18587 #    define ISharedFolder_GetWritable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
18588 #    define ISharedFolder_get_AutoMount(p, aAutoMount) ((p)->lpVtbl->GetAutoMount(p, aAutoMount))
18589 #    define ISharedFolder_GetAutoMount(p, aAutoMount) ((p)->lpVtbl->GetAutoMount(p, aAutoMount))
18590 #    define ISharedFolder_get_LastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
18591 #    define ISharedFolder_GetLastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
18592 #   endif /* VBOX_WITH_GLUE */
18593 
18594 interface ISharedFolder
18595 {
18596 #   ifndef VBOX_WITH_GLUE
18597     struct ISharedFolder_vtbl *vtbl;
18598 #   else /* VBOX_WITH_GLUE */
18599     CONST_VTBL struct ISharedFolderVtbl *lpVtbl;
18600 #   endif /* VBOX_WITH_GLUE */
18601 };
18602 /* End of struct ISharedFolder declaration */
18603 
18604 
18605 /* Start of struct ISession declaration */
18606 #   define ISESSION_IID_STR "7844aa05-b02e-4cdd-a04f-ade4a762e6b7"
18607 #   define ISESSION_IID { \
18608     0x7844aa05, 0xb02e, 0x4cdd, \
18609     { 0xa0, 0x4f, 0xad, 0xe4, 0xa7, 0x62, 0xe6, 0xb7 } \
18610 }
18611 /* COM compatibility */
18612 VBOX_EXTERN_CONST(nsIID, IID_ISession);
18613 #   ifndef VBOX_WITH_GLUE
18614 struct ISession_vtbl
18615 {
18616     struct nsISupports_vtbl nsisupports;
18617 
18618     nsresult (*GetState)(ISession *pThis, PRUint32 *state);
18619 
18620     nsresult (*GetType)(ISession *pThis, PRUint32 *type);
18621 
18622     nsresult (*GetName)(ISession *pThis, PRUnichar * *name);
18623     nsresult (*SetName)(ISession *pThis, PRUnichar * name);
18624 
18625     nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
18626 
18627     nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
18628 
18629     nsresult (*GetInternalAndReservedAttribute1ISession)(ISession *pThis, PRUint32 *reserved);
18630 
18631     nsresult (*GetInternalAndReservedAttribute2ISession)(ISession *pThis, PRUint32 *reserved);
18632 
18633     nsresult (*GetInternalAndReservedAttribute3ISession)(ISession *pThis, PRUint32 *reserved);
18634 
18635     nsresult (*GetInternalAndReservedAttribute4ISession)(ISession *pThis, PRUint32 *reserved);
18636 
18637     nsresult (*UnlockMachine)(ISession *pThis );
18638 
18639     nsresult (*InternalAndReservedMethod1ISession)(ISession *pThis);
18640 
18641     nsresult (*InternalAndReservedMethod2ISession)(ISession *pThis);
18642 
18643     nsresult (*InternalAndReservedMethod3ISession)(ISession *pThis);
18644 
18645 };
18646 #   else /* VBOX_WITH_GLUE */
18647 struct ISessionVtbl
18648 {
18649     nsresult (*QueryInterface)(ISession *pThis, const nsID *iid, void **resultp);
18650     nsrefcnt (*AddRef)(ISession *pThis);
18651     nsrefcnt (*Release)(ISession *pThis);
18652     nsresult (*GetState)(ISession *pThis, PRUint32 *state);
18653 
18654     nsresult (*GetType)(ISession *pThis, PRUint32 *type);
18655 
18656     nsresult (*GetName)(ISession *pThis, PRUnichar * *name);
18657     nsresult (*SetName)(ISession *pThis, PRUnichar * name);
18658 
18659     nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
18660 
18661     nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
18662 
18663     nsresult (*GetInternalAndReservedAttribute1ISession)(ISession *pThis, PRUint32 *reserved);
18664 
18665     nsresult (*GetInternalAndReservedAttribute2ISession)(ISession *pThis, PRUint32 *reserved);
18666 
18667     nsresult (*GetInternalAndReservedAttribute3ISession)(ISession *pThis, PRUint32 *reserved);
18668 
18669     nsresult (*GetInternalAndReservedAttribute4ISession)(ISession *pThis, PRUint32 *reserved);
18670 
18671     nsresult (*UnlockMachine)(ISession *pThis );
18672 
18673     nsresult (*InternalAndReservedMethod1ISession)(ISession *pThis);
18674 
18675     nsresult (*InternalAndReservedMethod2ISession)(ISession *pThis);
18676 
18677     nsresult (*InternalAndReservedMethod3ISession)(ISession *pThis);
18678 
18679 };
18680 #    define ISession_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18681 #    define ISession_AddRef(p) ((p)->lpVtbl->AddRef(p))
18682 #    define ISession_Release(p) ((p)->lpVtbl->Release(p))
18683 #    define ISession_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
18684 #    define ISession_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
18685 #    define ISession_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
18686 #    define ISession_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
18687 #    define ISession_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
18688 #    define ISession_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
18689 #    define ISession_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
18690 #    define ISession_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
18691 #    define ISession_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
18692 #    define ISession_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
18693 #    define ISession_get_Console(p, aConsole) ((p)->lpVtbl->GetConsole(p, aConsole))
18694 #    define ISession_GetConsole(p, aConsole) ((p)->lpVtbl->GetConsole(p, aConsole))
18695 #    define ISession_UnlockMachine(p) ((p)->lpVtbl->UnlockMachine(p))
18696 #   endif /* VBOX_WITH_GLUE */
18697 
18698 interface ISession
18699 {
18700 #   ifndef VBOX_WITH_GLUE
18701     struct ISession_vtbl *vtbl;
18702 #   else /* VBOX_WITH_GLUE */
18703     CONST_VTBL struct ISessionVtbl *lpVtbl;
18704 #   endif /* VBOX_WITH_GLUE */
18705 };
18706 /* End of struct ISession declaration */
18707 
18708 
18709 /* Start of struct IStorageController declaration */
18710 #   define ISTORAGECONTROLLER_IID_STR "49b19d41-4a75-7bd5-c124-259acba3c41d"
18711 #   define ISTORAGECONTROLLER_IID { \
18712     0x49b19d41, 0x4a75, 0x7bd5, \
18713     { 0xc1, 0x24, 0x25, 0x9a, 0xcb, 0xa3, 0xc4, 0x1d } \
18714 }
18715 /* COM compatibility */
18716 VBOX_EXTERN_CONST(nsIID, IID_IStorageController);
18717 #   ifndef VBOX_WITH_GLUE
18718 struct IStorageController_vtbl
18719 {
18720     struct nsISupports_vtbl nsisupports;
18721 
18722     nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
18723     nsresult (*SetName)(IStorageController *pThis, PRUnichar * name);
18724 
18725     nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
18726 
18727     nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
18728 
18729     nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
18730 
18731     nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
18732     nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
18733 
18734     nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
18735     nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
18736 
18737     nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
18738 
18739     nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
18740     nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
18741 
18742     nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
18743     nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
18744 
18745     nsresult (*GetBootable)(IStorageController *pThis, PRBool *bootable);
18746 
18747     nsresult (*GetInternalAndReservedAttribute1IStorageController)(IStorageController *pThis, PRUint32 *reserved);
18748 
18749     nsresult (*GetInternalAndReservedAttribute2IStorageController)(IStorageController *pThis, PRUint32 *reserved);
18750 
18751     nsresult (*InternalAndReservedMethod1IStorageController)(IStorageController *pThis);
18752 
18753 };
18754 #   else /* VBOX_WITH_GLUE */
18755 struct IStorageControllerVtbl
18756 {
18757     nsresult (*QueryInterface)(IStorageController *pThis, const nsID *iid, void **resultp);
18758     nsrefcnt (*AddRef)(IStorageController *pThis);
18759     nsrefcnt (*Release)(IStorageController *pThis);
18760     nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
18761     nsresult (*SetName)(IStorageController *pThis, PRUnichar * name);
18762 
18763     nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
18764 
18765     nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
18766 
18767     nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
18768 
18769     nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
18770     nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
18771 
18772     nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
18773     nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
18774 
18775     nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
18776 
18777     nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
18778     nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
18779 
18780     nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
18781     nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
18782 
18783     nsresult (*GetBootable)(IStorageController *pThis, PRBool *bootable);
18784 
18785     nsresult (*GetInternalAndReservedAttribute1IStorageController)(IStorageController *pThis, PRUint32 *reserved);
18786 
18787     nsresult (*GetInternalAndReservedAttribute2IStorageController)(IStorageController *pThis, PRUint32 *reserved);
18788 
18789     nsresult (*InternalAndReservedMethod1IStorageController)(IStorageController *pThis);
18790 
18791 };
18792 #    define IStorageController_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18793 #    define IStorageController_AddRef(p) ((p)->lpVtbl->AddRef(p))
18794 #    define IStorageController_Release(p) ((p)->lpVtbl->Release(p))
18795 #    define IStorageController_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
18796 #    define IStorageController_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
18797 #    define IStorageController_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
18798 #    define IStorageController_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
18799 #    define IStorageController_get_MaxDevicesPerPortCount(p, aMaxDevicesPerPortCount) ((p)->lpVtbl->GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount))
18800 #    define IStorageController_GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount) ((p)->lpVtbl->GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount))
18801 #    define IStorageController_get_MinPortCount(p, aMinPortCount) ((p)->lpVtbl->GetMinPortCount(p, aMinPortCount))
18802 #    define IStorageController_GetMinPortCount(p, aMinPortCount) ((p)->lpVtbl->GetMinPortCount(p, aMinPortCount))
18803 #    define IStorageController_get_MaxPortCount(p, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCount(p, aMaxPortCount))
18804 #    define IStorageController_GetMaxPortCount(p, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCount(p, aMaxPortCount))
18805 #    define IStorageController_get_Instance(p, aInstance) ((p)->lpVtbl->GetInstance(p, aInstance))
18806 #    define IStorageController_GetInstance(p, aInstance) ((p)->lpVtbl->GetInstance(p, aInstance))
18807 #    define IStorageController_put_Instance(p, aInstance) ((p)->lpVtbl->SetInstance(p, aInstance))
18808 #    define IStorageController_SetInstance(p, aInstance) ((p)->lpVtbl->SetInstance(p, aInstance))
18809 #    define IStorageController_get_PortCount(p, aPortCount) ((p)->lpVtbl->GetPortCount(p, aPortCount))
18810 #    define IStorageController_GetPortCount(p, aPortCount) ((p)->lpVtbl->GetPortCount(p, aPortCount))
18811 #    define IStorageController_put_PortCount(p, aPortCount) ((p)->lpVtbl->SetPortCount(p, aPortCount))
18812 #    define IStorageController_SetPortCount(p, aPortCount) ((p)->lpVtbl->SetPortCount(p, aPortCount))
18813 #    define IStorageController_get_Bus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
18814 #    define IStorageController_GetBus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
18815 #    define IStorageController_get_ControllerType(p, aControllerType) ((p)->lpVtbl->GetControllerType(p, aControllerType))
18816 #    define IStorageController_GetControllerType(p, aControllerType) ((p)->lpVtbl->GetControllerType(p, aControllerType))
18817 #    define IStorageController_put_ControllerType(p, aControllerType) ((p)->lpVtbl->SetControllerType(p, aControllerType))
18818 #    define IStorageController_SetControllerType(p, aControllerType) ((p)->lpVtbl->SetControllerType(p, aControllerType))
18819 #    define IStorageController_get_UseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->GetUseHostIOCache(p, aUseHostIOCache))
18820 #    define IStorageController_GetUseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->GetUseHostIOCache(p, aUseHostIOCache))
18821 #    define IStorageController_put_UseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->SetUseHostIOCache(p, aUseHostIOCache))
18822 #    define IStorageController_SetUseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->SetUseHostIOCache(p, aUseHostIOCache))
18823 #    define IStorageController_get_Bootable(p, aBootable) ((p)->lpVtbl->GetBootable(p, aBootable))
18824 #    define IStorageController_GetBootable(p, aBootable) ((p)->lpVtbl->GetBootable(p, aBootable))
18825 #   endif /* VBOX_WITH_GLUE */
18826 
18827 interface IStorageController
18828 {
18829 #   ifndef VBOX_WITH_GLUE
18830     struct IStorageController_vtbl *vtbl;
18831 #   else /* VBOX_WITH_GLUE */
18832     CONST_VTBL struct IStorageControllerVtbl *lpVtbl;
18833 #   endif /* VBOX_WITH_GLUE */
18834 };
18835 /* End of struct IStorageController declaration */
18836 
18837 
18838 /* Start of struct IPerformanceMetric declaration */
18839 #   define IPERFORMANCEMETRIC_IID_STR "81314d14-fd1c-411a-95c5-e9bb1414e632"
18840 #   define IPERFORMANCEMETRIC_IID { \
18841     0x81314d14, 0xfd1c, 0x411a, \
18842     { 0x95, 0xc5, 0xe9, 0xbb, 0x14, 0x14, 0xe6, 0x32 } \
18843 }
18844 /* COM compatibility */
18845 VBOX_EXTERN_CONST(nsIID, IID_IPerformanceMetric);
18846 #   ifndef VBOX_WITH_GLUE
18847 struct IPerformanceMetric_vtbl
18848 {
18849     struct nsISupports_vtbl nsisupports;
18850 
18851     nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
18852 
18853     nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
18854 
18855     nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
18856 
18857     nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
18858 
18859     nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
18860 
18861     nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
18862 
18863     nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
18864 
18865     nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
18866 
18867     nsresult (*GetInternalAndReservedAttribute1IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18868 
18869     nsresult (*GetInternalAndReservedAttribute2IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18870 
18871     nsresult (*GetInternalAndReservedAttribute3IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18872 
18873     nsresult (*GetInternalAndReservedAttribute4IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18874 
18875     nsresult (*GetInternalAndReservedAttribute5IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18876 
18877     nsresult (*GetInternalAndReservedAttribute6IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18878 
18879     nsresult (*GetInternalAndReservedAttribute7IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18880 
18881     nsresult (*GetInternalAndReservedAttribute8IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18882 
18883 };
18884 #   else /* VBOX_WITH_GLUE */
18885 struct IPerformanceMetricVtbl
18886 {
18887     nsresult (*QueryInterface)(IPerformanceMetric *pThis, const nsID *iid, void **resultp);
18888     nsrefcnt (*AddRef)(IPerformanceMetric *pThis);
18889     nsrefcnt (*Release)(IPerformanceMetric *pThis);
18890     nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
18891 
18892     nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
18893 
18894     nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
18895 
18896     nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
18897 
18898     nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
18899 
18900     nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
18901 
18902     nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
18903 
18904     nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
18905 
18906     nsresult (*GetInternalAndReservedAttribute1IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18907 
18908     nsresult (*GetInternalAndReservedAttribute2IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18909 
18910     nsresult (*GetInternalAndReservedAttribute3IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18911 
18912     nsresult (*GetInternalAndReservedAttribute4IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18913 
18914     nsresult (*GetInternalAndReservedAttribute5IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18915 
18916     nsresult (*GetInternalAndReservedAttribute6IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18917 
18918     nsresult (*GetInternalAndReservedAttribute7IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18919 
18920     nsresult (*GetInternalAndReservedAttribute8IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
18921 
18922 };
18923 #    define IPerformanceMetric_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18924 #    define IPerformanceMetric_AddRef(p) ((p)->lpVtbl->AddRef(p))
18925 #    define IPerformanceMetric_Release(p) ((p)->lpVtbl->Release(p))
18926 #    define IPerformanceMetric_get_MetricName(p, aMetricName) ((p)->lpVtbl->GetMetricName(p, aMetricName))
18927 #    define IPerformanceMetric_GetMetricName(p, aMetricName) ((p)->lpVtbl->GetMetricName(p, aMetricName))
18928 #    define IPerformanceMetric_get_Object(p, aObject) ((p)->lpVtbl->GetObject(p, aObject))
18929 #    define IPerformanceMetric_GetObject(p, aObject) ((p)->lpVtbl->GetObject(p, aObject))
18930 #    define IPerformanceMetric_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
18931 #    define IPerformanceMetric_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
18932 #    define IPerformanceMetric_get_Period(p, aPeriod) ((p)->lpVtbl->GetPeriod(p, aPeriod))
18933 #    define IPerformanceMetric_GetPeriod(p, aPeriod) ((p)->lpVtbl->GetPeriod(p, aPeriod))
18934 #    define IPerformanceMetric_get_Count(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
18935 #    define IPerformanceMetric_GetCount(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
18936 #    define IPerformanceMetric_get_Unit(p, aUnit) ((p)->lpVtbl->GetUnit(p, aUnit))
18937 #    define IPerformanceMetric_GetUnit(p, aUnit) ((p)->lpVtbl->GetUnit(p, aUnit))
18938 #    define IPerformanceMetric_get_MinimumValue(p, aMinimumValue) ((p)->lpVtbl->GetMinimumValue(p, aMinimumValue))
18939 #    define IPerformanceMetric_GetMinimumValue(p, aMinimumValue) ((p)->lpVtbl->GetMinimumValue(p, aMinimumValue))
18940 #    define IPerformanceMetric_get_MaximumValue(p, aMaximumValue) ((p)->lpVtbl->GetMaximumValue(p, aMaximumValue))
18941 #    define IPerformanceMetric_GetMaximumValue(p, aMaximumValue) ((p)->lpVtbl->GetMaximumValue(p, aMaximumValue))
18942 #   endif /* VBOX_WITH_GLUE */
18943 
18944 interface IPerformanceMetric
18945 {
18946 #   ifndef VBOX_WITH_GLUE
18947     struct IPerformanceMetric_vtbl *vtbl;
18948 #   else /* VBOX_WITH_GLUE */
18949     CONST_VTBL struct IPerformanceMetricVtbl *lpVtbl;
18950 #   endif /* VBOX_WITH_GLUE */
18951 };
18952 /* End of struct IPerformanceMetric declaration */
18953 
18954 
18955 /* Start of struct IPerformanceCollector declaration */
18956 #   define IPERFORMANCECOLLECTOR_IID_STR "b14290ad-cd54-400c-b858-797bcb82570e"
18957 #   define IPERFORMANCECOLLECTOR_IID { \
18958     0xb14290ad, 0xcd54, 0x400c, \
18959     { 0xb8, 0x58, 0x79, 0x7b, 0xcb, 0x82, 0x57, 0x0e } \
18960 }
18961 /* COM compatibility */
18962 VBOX_EXTERN_CONST(nsIID, IID_IPerformanceCollector);
18963 #   ifndef VBOX_WITH_GLUE
18964 struct IPerformanceCollector_vtbl
18965 {
18966     struct nsISupports_vtbl nsisupports;
18967 
18968     nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
18969 
18970     nsresult (*GetInternalAndReservedAttribute1IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18971 
18972     nsresult (*GetInternalAndReservedAttribute2IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18973 
18974     nsresult (*GetInternalAndReservedAttribute3IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18975 
18976     nsresult (*GetInternalAndReservedAttribute4IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18977 
18978     nsresult (*GetInternalAndReservedAttribute5IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18979 
18980     nsresult (*GetInternalAndReservedAttribute6IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18981 
18982     nsresult (*GetInternalAndReservedAttribute7IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18983 
18984     nsresult (*GetInternalAndReservedAttribute8IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
18985 
18986     nsresult (*GetMetrics)(
18987         IPerformanceCollector *pThis,
18988         PRUint32 metricNamesSize,
18989         PRUnichar ** metricNames,
18990         PRUint32 objectsSize,
18991         nsISupports ** objects,
18992         PRUint32 *metricsSize,
18993         IPerformanceMetric *** metrics
18994     );
18995 
18996     nsresult (*SetupMetrics)(
18997         IPerformanceCollector *pThis,
18998         PRUint32 metricNamesSize,
18999         PRUnichar ** metricNames,
19000         PRUint32 objectsSize,
19001         nsISupports ** objects,
19002         PRUint32 period,
19003         PRUint32 count,
19004         PRUint32 *affectedMetricsSize,
19005         IPerformanceMetric *** affectedMetrics
19006     );
19007 
19008     nsresult (*EnableMetrics)(
19009         IPerformanceCollector *pThis,
19010         PRUint32 metricNamesSize,
19011         PRUnichar ** metricNames,
19012         PRUint32 objectsSize,
19013         nsISupports ** objects,
19014         PRUint32 *affectedMetricsSize,
19015         IPerformanceMetric *** affectedMetrics
19016     );
19017 
19018     nsresult (*DisableMetrics)(
19019         IPerformanceCollector *pThis,
19020         PRUint32 metricNamesSize,
19021         PRUnichar ** metricNames,
19022         PRUint32 objectsSize,
19023         nsISupports ** objects,
19024         PRUint32 *affectedMetricsSize,
19025         IPerformanceMetric *** affectedMetrics
19026     );
19027 
19028     nsresult (*QueryMetricsData)(
19029         IPerformanceCollector *pThis,
19030         PRUint32 metricNamesSize,
19031         PRUnichar ** metricNames,
19032         PRUint32 objectsSize,
19033         nsISupports ** objects,
19034         PRUint32 *returnMetricNamesSize,
19035         PRUnichar *** returnMetricNames,
19036         PRUint32 *returnObjectsSize,
19037         nsISupports *** returnObjects,
19038         PRUint32 *returnUnitsSize,
19039         PRUnichar *** returnUnits,
19040         PRUint32 *returnScalesSize,
19041         PRUint32** returnScales,
19042         PRUint32 *returnSequenceNumbersSize,
19043         PRUint32** returnSequenceNumbers,
19044         PRUint32 *returnDataIndicesSize,
19045         PRUint32** returnDataIndices,
19046         PRUint32 *returnDataLengthsSize,
19047         PRUint32** returnDataLengths,
19048         PRUint32 *returnDataSize,
19049         PRInt32** returnData
19050     );
19051 
19052     nsresult (*InternalAndReservedMethod1IPerformanceCollector)(IPerformanceCollector *pThis);
19053 
19054     nsresult (*InternalAndReservedMethod2IPerformanceCollector)(IPerformanceCollector *pThis);
19055 
19056     nsresult (*InternalAndReservedMethod3IPerformanceCollector)(IPerformanceCollector *pThis);
19057 
19058     nsresult (*InternalAndReservedMethod4IPerformanceCollector)(IPerformanceCollector *pThis);
19059 
19060 };
19061 #   else /* VBOX_WITH_GLUE */
19062 struct IPerformanceCollectorVtbl
19063 {
19064     nsresult (*QueryInterface)(IPerformanceCollector *pThis, const nsID *iid, void **resultp);
19065     nsrefcnt (*AddRef)(IPerformanceCollector *pThis);
19066     nsrefcnt (*Release)(IPerformanceCollector *pThis);
19067     nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
19068 
19069     nsresult (*GetInternalAndReservedAttribute1IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19070 
19071     nsresult (*GetInternalAndReservedAttribute2IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19072 
19073     nsresult (*GetInternalAndReservedAttribute3IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19074 
19075     nsresult (*GetInternalAndReservedAttribute4IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19076 
19077     nsresult (*GetInternalAndReservedAttribute5IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19078 
19079     nsresult (*GetInternalAndReservedAttribute6IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19080 
19081     nsresult (*GetInternalAndReservedAttribute7IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19082 
19083     nsresult (*GetInternalAndReservedAttribute8IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
19084 
19085     nsresult (*GetMetrics)(
19086         IPerformanceCollector *pThis,
19087         PRUint32 metricNamesSize,
19088         PRUnichar ** metricNames,
19089         PRUint32 objectsSize,
19090         nsISupports ** objects,
19091         PRUint32 *metricsSize,
19092         IPerformanceMetric *** metrics
19093     );
19094 
19095     nsresult (*SetupMetrics)(
19096         IPerformanceCollector *pThis,
19097         PRUint32 metricNamesSize,
19098         PRUnichar ** metricNames,
19099         PRUint32 objectsSize,
19100         nsISupports ** objects,
19101         PRUint32 period,
19102         PRUint32 count,
19103         PRUint32 *affectedMetricsSize,
19104         IPerformanceMetric *** affectedMetrics
19105     );
19106 
19107     nsresult (*EnableMetrics)(
19108         IPerformanceCollector *pThis,
19109         PRUint32 metricNamesSize,
19110         PRUnichar ** metricNames,
19111         PRUint32 objectsSize,
19112         nsISupports ** objects,
19113         PRUint32 *affectedMetricsSize,
19114         IPerformanceMetric *** affectedMetrics
19115     );
19116 
19117     nsresult (*DisableMetrics)(
19118         IPerformanceCollector *pThis,
19119         PRUint32 metricNamesSize,
19120         PRUnichar ** metricNames,
19121         PRUint32 objectsSize,
19122         nsISupports ** objects,
19123         PRUint32 *affectedMetricsSize,
19124         IPerformanceMetric *** affectedMetrics
19125     );
19126 
19127     nsresult (*QueryMetricsData)(
19128         IPerformanceCollector *pThis,
19129         PRUint32 metricNamesSize,
19130         PRUnichar ** metricNames,
19131         PRUint32 objectsSize,
19132         nsISupports ** objects,
19133         PRUint32 *returnMetricNamesSize,
19134         PRUnichar *** returnMetricNames,
19135         PRUint32 *returnObjectsSize,
19136         nsISupports *** returnObjects,
19137         PRUint32 *returnUnitsSize,
19138         PRUnichar *** returnUnits,
19139         PRUint32 *returnScalesSize,
19140         PRUint32** returnScales,
19141         PRUint32 *returnSequenceNumbersSize,
19142         PRUint32** returnSequenceNumbers,
19143         PRUint32 *returnDataIndicesSize,
19144         PRUint32** returnDataIndices,
19145         PRUint32 *returnDataLengthsSize,
19146         PRUint32** returnDataLengths,
19147         PRUint32 *returnDataSize,
19148         PRInt32** returnData
19149     );
19150 
19151     nsresult (*InternalAndReservedMethod1IPerformanceCollector)(IPerformanceCollector *pThis);
19152 
19153     nsresult (*InternalAndReservedMethod2IPerformanceCollector)(IPerformanceCollector *pThis);
19154 
19155     nsresult (*InternalAndReservedMethod3IPerformanceCollector)(IPerformanceCollector *pThis);
19156 
19157     nsresult (*InternalAndReservedMethod4IPerformanceCollector)(IPerformanceCollector *pThis);
19158 
19159 };
19160 #    define IPerformanceCollector_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19161 #    define IPerformanceCollector_AddRef(p) ((p)->lpVtbl->AddRef(p))
19162 #    define IPerformanceCollector_Release(p) ((p)->lpVtbl->Release(p))
19163 #    define IPerformanceCollector_get_MetricNames(p, aMetricNames) ((p)->lpVtbl->GetMetricNames(p, aMetricNames))
19164 #    define IPerformanceCollector_GetMetricNames(p, aMetricNames) ((p)->lpVtbl->GetMetricNames(p, aMetricNames))
19165 #    define IPerformanceCollector_GetMetrics(p, aMetricNames, aObjects, aMetrics) ((p)->lpVtbl->GetMetrics(p, aMetricNames, aObjects, aMetrics))
19166 #    define IPerformanceCollector_SetupMetrics(p, aMetricNames, aObjects, aPeriod, aCount, aAffectedMetrics) ((p)->lpVtbl->SetupMetrics(p, aMetricNames, aObjects, aPeriod, aCount, aAffectedMetrics))
19167 #    define IPerformanceCollector_EnableMetrics(p, aMetricNames, aObjects, aAffectedMetrics) ((p)->lpVtbl->EnableMetrics(p, aMetricNames, aObjects, aAffectedMetrics))
19168 #    define IPerformanceCollector_DisableMetrics(p, aMetricNames, aObjects, aAffectedMetrics) ((p)->lpVtbl->DisableMetrics(p, aMetricNames, aObjects, aAffectedMetrics))
19169 #    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))
19170 #   endif /* VBOX_WITH_GLUE */
19171 
19172 interface IPerformanceCollector
19173 {
19174 #   ifndef VBOX_WITH_GLUE
19175     struct IPerformanceCollector_vtbl *vtbl;
19176 #   else /* VBOX_WITH_GLUE */
19177     CONST_VTBL struct IPerformanceCollectorVtbl *lpVtbl;
19178 #   endif /* VBOX_WITH_GLUE */
19179 };
19180 /* End of struct IPerformanceCollector declaration */
19181 
19182 
19183 /* Start of struct INATEngine declaration */
19184 #   define INATENGINE_IID_STR "c1cdb6bf-44cb-e334-66fa-469a17fd09df"
19185 #   define INATENGINE_IID { \
19186     0xc1cdb6bf, 0x44cb, 0xe334, \
19187     { 0x66, 0xfa, 0x46, 0x9a, 0x17, 0xfd, 0x09, 0xdf } \
19188 }
19189 /* COM compatibility */
19190 VBOX_EXTERN_CONST(nsIID, IID_INATEngine);
19191 #   ifndef VBOX_WITH_GLUE
19192 struct INATEngine_vtbl
19193 {
19194     struct nsISupports_vtbl nsisupports;
19195 
19196     nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
19197     nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
19198 
19199     nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
19200     nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
19201 
19202     nsresult (*GetTFTPPrefix)(INATEngine *pThis, PRUnichar * *TFTPPrefix);
19203     nsresult (*SetTFTPPrefix)(INATEngine *pThis, PRUnichar * TFTPPrefix);
19204 
19205     nsresult (*GetTFTPBootFile)(INATEngine *pThis, PRUnichar * *TFTPBootFile);
19206     nsresult (*SetTFTPBootFile)(INATEngine *pThis, PRUnichar * TFTPBootFile);
19207 
19208     nsresult (*GetTFTPNextServer)(INATEngine *pThis, PRUnichar * *TFTPNextServer);
19209     nsresult (*SetTFTPNextServer)(INATEngine *pThis, PRUnichar * TFTPNextServer);
19210 
19211     nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
19212     nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
19213 
19214     nsresult (*GetDNSPassDomain)(INATEngine *pThis, PRBool *DNSPassDomain);
19215     nsresult (*SetDNSPassDomain)(INATEngine *pThis, PRBool DNSPassDomain);
19216 
19217     nsresult (*GetDNSProxy)(INATEngine *pThis, PRBool *DNSProxy);
19218     nsresult (*SetDNSProxy)(INATEngine *pThis, PRBool DNSProxy);
19219 
19220     nsresult (*GetDNSUseHostResolver)(INATEngine *pThis, PRBool *DNSUseHostResolver);
19221     nsresult (*SetDNSUseHostResolver)(INATEngine *pThis, PRBool DNSUseHostResolver);
19222 
19223     nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
19224 
19225     nsresult (*GetInternalAndReservedAttribute1INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19226 
19227     nsresult (*GetInternalAndReservedAttribute2INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19228 
19229     nsresult (*GetInternalAndReservedAttribute3INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19230 
19231     nsresult (*GetInternalAndReservedAttribute4INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19232 
19233     nsresult (*SetNetworkSettings)(
19234         INATEngine *pThis,
19235         PRUint32 mtu,
19236         PRUint32 sockSnd,
19237         PRUint32 sockRcv,
19238         PRUint32 TcpWndSnd,
19239         PRUint32 TcpWndRcv
19240     );
19241 
19242     nsresult (*GetNetworkSettings)(
19243         INATEngine *pThis,
19244         PRUint32 * mtu,
19245         PRUint32 * sockSnd,
19246         PRUint32 * sockRcv,
19247         PRUint32 * TcpWndSnd,
19248         PRUint32 * TcpWndRcv
19249     );
19250 
19251     nsresult (*AddRedirect)(
19252         INATEngine *pThis,
19253         PRUnichar * name,
19254         PRUint32 proto,
19255         PRUnichar * hostIP,
19256         PRUint16 hostPort,
19257         PRUnichar * guestIP,
19258         PRUint16 guestPort
19259     );
19260 
19261     nsresult (*RemoveRedirect)(
19262         INATEngine *pThis,
19263         PRUnichar * name
19264     );
19265 
19266     nsresult (*InternalAndReservedMethod1INATEngine)(INATEngine *pThis);
19267 
19268     nsresult (*InternalAndReservedMethod2INATEngine)(INATEngine *pThis);
19269 
19270 };
19271 #   else /* VBOX_WITH_GLUE */
19272 struct INATEngineVtbl
19273 {
19274     nsresult (*QueryInterface)(INATEngine *pThis, const nsID *iid, void **resultp);
19275     nsrefcnt (*AddRef)(INATEngine *pThis);
19276     nsrefcnt (*Release)(INATEngine *pThis);
19277     nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
19278     nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
19279 
19280     nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
19281     nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
19282 
19283     nsresult (*GetTFTPPrefix)(INATEngine *pThis, PRUnichar * *TFTPPrefix);
19284     nsresult (*SetTFTPPrefix)(INATEngine *pThis, PRUnichar * TFTPPrefix);
19285 
19286     nsresult (*GetTFTPBootFile)(INATEngine *pThis, PRUnichar * *TFTPBootFile);
19287     nsresult (*SetTFTPBootFile)(INATEngine *pThis, PRUnichar * TFTPBootFile);
19288 
19289     nsresult (*GetTFTPNextServer)(INATEngine *pThis, PRUnichar * *TFTPNextServer);
19290     nsresult (*SetTFTPNextServer)(INATEngine *pThis, PRUnichar * TFTPNextServer);
19291 
19292     nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
19293     nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
19294 
19295     nsresult (*GetDNSPassDomain)(INATEngine *pThis, PRBool *DNSPassDomain);
19296     nsresult (*SetDNSPassDomain)(INATEngine *pThis, PRBool DNSPassDomain);
19297 
19298     nsresult (*GetDNSProxy)(INATEngine *pThis, PRBool *DNSProxy);
19299     nsresult (*SetDNSProxy)(INATEngine *pThis, PRBool DNSProxy);
19300 
19301     nsresult (*GetDNSUseHostResolver)(INATEngine *pThis, PRBool *DNSUseHostResolver);
19302     nsresult (*SetDNSUseHostResolver)(INATEngine *pThis, PRBool DNSUseHostResolver);
19303 
19304     nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
19305 
19306     nsresult (*GetInternalAndReservedAttribute1INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19307 
19308     nsresult (*GetInternalAndReservedAttribute2INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19309 
19310     nsresult (*GetInternalAndReservedAttribute3INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19311 
19312     nsresult (*GetInternalAndReservedAttribute4INATEngine)(INATEngine *pThis, PRUint32 *reserved);
19313 
19314     nsresult (*SetNetworkSettings)(
19315         INATEngine *pThis,
19316         PRUint32 mtu,
19317         PRUint32 sockSnd,
19318         PRUint32 sockRcv,
19319         PRUint32 TcpWndSnd,
19320         PRUint32 TcpWndRcv
19321     );
19322 
19323     nsresult (*GetNetworkSettings)(
19324         INATEngine *pThis,
19325         PRUint32 * mtu,
19326         PRUint32 * sockSnd,
19327         PRUint32 * sockRcv,
19328         PRUint32 * TcpWndSnd,
19329         PRUint32 * TcpWndRcv
19330     );
19331 
19332     nsresult (*AddRedirect)(
19333         INATEngine *pThis,
19334         PRUnichar * name,
19335         PRUint32 proto,
19336         PRUnichar * hostIP,
19337         PRUint16 hostPort,
19338         PRUnichar * guestIP,
19339         PRUint16 guestPort
19340     );
19341 
19342     nsresult (*RemoveRedirect)(
19343         INATEngine *pThis,
19344         PRUnichar * name
19345     );
19346 
19347     nsresult (*InternalAndReservedMethod1INATEngine)(INATEngine *pThis);
19348 
19349     nsresult (*InternalAndReservedMethod2INATEngine)(INATEngine *pThis);
19350 
19351 };
19352 #    define INATEngine_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19353 #    define INATEngine_AddRef(p) ((p)->lpVtbl->AddRef(p))
19354 #    define INATEngine_Release(p) ((p)->lpVtbl->Release(p))
19355 #    define INATEngine_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
19356 #    define INATEngine_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
19357 #    define INATEngine_put_Network(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
19358 #    define INATEngine_SetNetwork(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
19359 #    define INATEngine_get_HostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
19360 #    define INATEngine_GetHostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
19361 #    define INATEngine_put_HostIP(p, aHostIP) ((p)->lpVtbl->SetHostIP(p, aHostIP))
19362 #    define INATEngine_SetHostIP(p, aHostIP) ((p)->lpVtbl->SetHostIP(p, aHostIP))
19363 #    define INATEngine_get_TFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->GetTFTPPrefix(p, aTFTPPrefix))
19364 #    define INATEngine_GetTFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->GetTFTPPrefix(p, aTFTPPrefix))
19365 #    define INATEngine_put_TFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->SetTFTPPrefix(p, aTFTPPrefix))
19366 #    define INATEngine_SetTFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->SetTFTPPrefix(p, aTFTPPrefix))
19367 #    define INATEngine_get_TFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->GetTFTPBootFile(p, aTFTPBootFile))
19368 #    define INATEngine_GetTFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->GetTFTPBootFile(p, aTFTPBootFile))
19369 #    define INATEngine_put_TFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->SetTFTPBootFile(p, aTFTPBootFile))
19370 #    define INATEngine_SetTFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->SetTFTPBootFile(p, aTFTPBootFile))
19371 #    define INATEngine_get_TFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->GetTFTPNextServer(p, aTFTPNextServer))
19372 #    define INATEngine_GetTFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->GetTFTPNextServer(p, aTFTPNextServer))
19373 #    define INATEngine_put_TFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->SetTFTPNextServer(p, aTFTPNextServer))
19374 #    define INATEngine_SetTFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->SetTFTPNextServer(p, aTFTPNextServer))
19375 #    define INATEngine_get_AliasMode(p, aAliasMode) ((p)->lpVtbl->GetAliasMode(p, aAliasMode))
19376 #    define INATEngine_GetAliasMode(p, aAliasMode) ((p)->lpVtbl->GetAliasMode(p, aAliasMode))
19377 #    define INATEngine_put_AliasMode(p, aAliasMode) ((p)->lpVtbl->SetAliasMode(p, aAliasMode))
19378 #    define INATEngine_SetAliasMode(p, aAliasMode) ((p)->lpVtbl->SetAliasMode(p, aAliasMode))
19379 #    define INATEngine_get_DNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->GetDNSPassDomain(p, aDNSPassDomain))
19380 #    define INATEngine_GetDNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->GetDNSPassDomain(p, aDNSPassDomain))
19381 #    define INATEngine_put_DNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->SetDNSPassDomain(p, aDNSPassDomain))
19382 #    define INATEngine_SetDNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->SetDNSPassDomain(p, aDNSPassDomain))
19383 #    define INATEngine_get_DNSProxy(p, aDNSProxy) ((p)->lpVtbl->GetDNSProxy(p, aDNSProxy))
19384 #    define INATEngine_GetDNSProxy(p, aDNSProxy) ((p)->lpVtbl->GetDNSProxy(p, aDNSProxy))
19385 #    define INATEngine_put_DNSProxy(p, aDNSProxy) ((p)->lpVtbl->SetDNSProxy(p, aDNSProxy))
19386 #    define INATEngine_SetDNSProxy(p, aDNSProxy) ((p)->lpVtbl->SetDNSProxy(p, aDNSProxy))
19387 #    define INATEngine_get_DNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->GetDNSUseHostResolver(p, aDNSUseHostResolver))
19388 #    define INATEngine_GetDNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->GetDNSUseHostResolver(p, aDNSUseHostResolver))
19389 #    define INATEngine_put_DNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->SetDNSUseHostResolver(p, aDNSUseHostResolver))
19390 #    define INATEngine_SetDNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->SetDNSUseHostResolver(p, aDNSUseHostResolver))
19391 #    define INATEngine_get_Redirects(p, aRedirects) ((p)->lpVtbl->GetRedirects(p, aRedirects))
19392 #    define INATEngine_GetRedirects(p, aRedirects) ((p)->lpVtbl->GetRedirects(p, aRedirects))
19393 #    define INATEngine_SetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv) ((p)->lpVtbl->SetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv))
19394 #    define INATEngine_GetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv) ((p)->lpVtbl->GetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv))
19395 #    define INATEngine_AddRedirect(p, aName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort) ((p)->lpVtbl->AddRedirect(p, aName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort))
19396 #    define INATEngine_RemoveRedirect(p, aName) ((p)->lpVtbl->RemoveRedirect(p, aName))
19397 #   endif /* VBOX_WITH_GLUE */
19398 
19399 interface INATEngine
19400 {
19401 #   ifndef VBOX_WITH_GLUE
19402     struct INATEngine_vtbl *vtbl;
19403 #   else /* VBOX_WITH_GLUE */
19404     CONST_VTBL struct INATEngineVtbl *lpVtbl;
19405 #   endif /* VBOX_WITH_GLUE */
19406 };
19407 /* End of struct INATEngine declaration */
19408 
19409 
19410 /* Start of struct IExtPackPlugIn declaration */
19411 #   define IEXTPACKPLUGIN_IID_STR "c8e667b2-4234-1f9c-6508-afa9cea4efa1"
19412 #   define IEXTPACKPLUGIN_IID { \
19413     0xc8e667b2, 0x4234, 0x1f9c, \
19414     { 0x65, 0x08, 0xaf, 0xa9, 0xce, 0xa4, 0xef, 0xa1 } \
19415 }
19416 /* COM compatibility */
19417 VBOX_EXTERN_CONST(nsIID, IID_IExtPackPlugIn);
19418 #   ifndef VBOX_WITH_GLUE
19419 struct IExtPackPlugIn_vtbl
19420 {
19421     struct nsISupports_vtbl nsisupports;
19422 
19423     nsresult (*GetName)(IExtPackPlugIn *pThis, PRUnichar * *name);
19424 
19425     nsresult (*GetDescription)(IExtPackPlugIn *pThis, PRUnichar * *description);
19426 
19427     nsresult (*GetFrontend)(IExtPackPlugIn *pThis, PRUnichar * *frontend);
19428 
19429     nsresult (*GetModulePath)(IExtPackPlugIn *pThis, PRUnichar * *modulePath);
19430 
19431     nsresult (*GetInternalAndReservedAttribute1IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
19432 
19433     nsresult (*GetInternalAndReservedAttribute2IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
19434 
19435 };
19436 #   else /* VBOX_WITH_GLUE */
19437 struct IExtPackPlugInVtbl
19438 {
19439     nsresult (*QueryInterface)(IExtPackPlugIn *pThis, const nsID *iid, void **resultp);
19440     nsrefcnt (*AddRef)(IExtPackPlugIn *pThis);
19441     nsrefcnt (*Release)(IExtPackPlugIn *pThis);
19442     nsresult (*GetName)(IExtPackPlugIn *pThis, PRUnichar * *name);
19443 
19444     nsresult (*GetDescription)(IExtPackPlugIn *pThis, PRUnichar * *description);
19445 
19446     nsresult (*GetFrontend)(IExtPackPlugIn *pThis, PRUnichar * *frontend);
19447 
19448     nsresult (*GetModulePath)(IExtPackPlugIn *pThis, PRUnichar * *modulePath);
19449 
19450     nsresult (*GetInternalAndReservedAttribute1IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
19451 
19452     nsresult (*GetInternalAndReservedAttribute2IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
19453 
19454 };
19455 #    define IExtPackPlugIn_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19456 #    define IExtPackPlugIn_AddRef(p) ((p)->lpVtbl->AddRef(p))
19457 #    define IExtPackPlugIn_Release(p) ((p)->lpVtbl->Release(p))
19458 #    define IExtPackPlugIn_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
19459 #    define IExtPackPlugIn_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
19460 #    define IExtPackPlugIn_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19461 #    define IExtPackPlugIn_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19462 #    define IExtPackPlugIn_get_Frontend(p, aFrontend) ((p)->lpVtbl->GetFrontend(p, aFrontend))
19463 #    define IExtPackPlugIn_GetFrontend(p, aFrontend) ((p)->lpVtbl->GetFrontend(p, aFrontend))
19464 #    define IExtPackPlugIn_get_ModulePath(p, aModulePath) ((p)->lpVtbl->GetModulePath(p, aModulePath))
19465 #    define IExtPackPlugIn_GetModulePath(p, aModulePath) ((p)->lpVtbl->GetModulePath(p, aModulePath))
19466 #   endif /* VBOX_WITH_GLUE */
19467 
19468 interface IExtPackPlugIn
19469 {
19470 #   ifndef VBOX_WITH_GLUE
19471     struct IExtPackPlugIn_vtbl *vtbl;
19472 #   else /* VBOX_WITH_GLUE */
19473     CONST_VTBL struct IExtPackPlugInVtbl *lpVtbl;
19474 #   endif /* VBOX_WITH_GLUE */
19475 };
19476 /* End of struct IExtPackPlugIn declaration */
19477 
19478 
19479 /* Start of struct IExtPackBase declaration */
19480 #   define IEXTPACKBASE_IID_STR "4bd17415-4438-8657-e78e-80a40713a23c"
19481 #   define IEXTPACKBASE_IID { \
19482     0x4bd17415, 0x4438, 0x8657, \
19483     { 0xe7, 0x8e, 0x80, 0xa4, 0x07, 0x13, 0xa2, 0x3c } \
19484 }
19485 /* COM compatibility */
19486 VBOX_EXTERN_CONST(nsIID, IID_IExtPackBase);
19487 #   ifndef VBOX_WITH_GLUE
19488 struct IExtPackBase_vtbl
19489 {
19490     struct nsISupports_vtbl nsisupports;
19491 
19492     nsresult (*GetName)(IExtPackBase *pThis, PRUnichar * *name);
19493 
19494     nsresult (*GetDescription)(IExtPackBase *pThis, PRUnichar * *description);
19495 
19496     nsresult (*GetVersion)(IExtPackBase *pThis, PRUnichar * *version);
19497 
19498     nsresult (*GetRevision)(IExtPackBase *pThis, PRUint32 *revision);
19499 
19500     nsresult (*GetEdition)(IExtPackBase *pThis, PRUnichar * *edition);
19501 
19502     nsresult (*GetVRDEModule)(IExtPackBase *pThis, PRUnichar * *VRDEModule);
19503 
19504     nsresult (*GetPlugIns)(IExtPackBase *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
19505 
19506     nsresult (*GetUsable)(IExtPackBase *pThis, PRBool *usable);
19507 
19508     nsresult (*GetWhyUnusable)(IExtPackBase *pThis, PRUnichar * *whyUnusable);
19509 
19510     nsresult (*GetShowLicense)(IExtPackBase *pThis, PRBool *showLicense);
19511 
19512     nsresult (*GetLicense)(IExtPackBase *pThis, PRUnichar * *license);
19513 
19514     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19515 
19516     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19517 
19518     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19519 
19520     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19521 
19522     nsresult (*QueryLicense)(
19523         IExtPackBase *pThis,
19524         PRUnichar * preferredLocale,
19525         PRUnichar * preferredLanguage,
19526         PRUnichar * format,
19527         PRUnichar * * licenseText
19528     );
19529 
19530     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackBase *pThis);
19531 
19532 };
19533 #   else /* VBOX_WITH_GLUE */
19534 struct IExtPackBaseVtbl
19535 {
19536     nsresult (*QueryInterface)(IExtPackBase *pThis, const nsID *iid, void **resultp);
19537     nsrefcnt (*AddRef)(IExtPackBase *pThis);
19538     nsrefcnt (*Release)(IExtPackBase *pThis);
19539     nsresult (*GetName)(IExtPackBase *pThis, PRUnichar * *name);
19540 
19541     nsresult (*GetDescription)(IExtPackBase *pThis, PRUnichar * *description);
19542 
19543     nsresult (*GetVersion)(IExtPackBase *pThis, PRUnichar * *version);
19544 
19545     nsresult (*GetRevision)(IExtPackBase *pThis, PRUint32 *revision);
19546 
19547     nsresult (*GetEdition)(IExtPackBase *pThis, PRUnichar * *edition);
19548 
19549     nsresult (*GetVRDEModule)(IExtPackBase *pThis, PRUnichar * *VRDEModule);
19550 
19551     nsresult (*GetPlugIns)(IExtPackBase *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
19552 
19553     nsresult (*GetUsable)(IExtPackBase *pThis, PRBool *usable);
19554 
19555     nsresult (*GetWhyUnusable)(IExtPackBase *pThis, PRUnichar * *whyUnusable);
19556 
19557     nsresult (*GetShowLicense)(IExtPackBase *pThis, PRBool *showLicense);
19558 
19559     nsresult (*GetLicense)(IExtPackBase *pThis, PRUnichar * *license);
19560 
19561     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19562 
19563     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19564 
19565     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19566 
19567     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
19568 
19569     nsresult (*QueryLicense)(
19570         IExtPackBase *pThis,
19571         PRUnichar * preferredLocale,
19572         PRUnichar * preferredLanguage,
19573         PRUnichar * format,
19574         PRUnichar * * licenseText
19575     );
19576 
19577     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackBase *pThis);
19578 
19579 };
19580 #    define IExtPackBase_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19581 #    define IExtPackBase_AddRef(p) ((p)->lpVtbl->AddRef(p))
19582 #    define IExtPackBase_Release(p) ((p)->lpVtbl->Release(p))
19583 #    define IExtPackBase_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
19584 #    define IExtPackBase_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
19585 #    define IExtPackBase_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19586 #    define IExtPackBase_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19587 #    define IExtPackBase_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19588 #    define IExtPackBase_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19589 #    define IExtPackBase_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19590 #    define IExtPackBase_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19591 #    define IExtPackBase_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
19592 #    define IExtPackBase_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
19593 #    define IExtPackBase_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
19594 #    define IExtPackBase_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
19595 #    define IExtPackBase_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
19596 #    define IExtPackBase_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
19597 #    define IExtPackBase_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
19598 #    define IExtPackBase_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
19599 #    define IExtPackBase_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
19600 #    define IExtPackBase_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
19601 #    define IExtPackBase_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
19602 #    define IExtPackBase_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
19603 #    define IExtPackBase_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
19604 #    define IExtPackBase_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
19605 #    define IExtPackBase_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
19606 #   endif /* VBOX_WITH_GLUE */
19607 
19608 interface IExtPackBase
19609 {
19610 #   ifndef VBOX_WITH_GLUE
19611     struct IExtPackBase_vtbl *vtbl;
19612 #   else /* VBOX_WITH_GLUE */
19613     CONST_VTBL struct IExtPackBaseVtbl *lpVtbl;
19614 #   endif /* VBOX_WITH_GLUE */
19615 };
19616 /* End of struct IExtPackBase declaration */
19617 
19618 
19619 /* Start of struct IExtPack declaration */
19620 #   define IEXTPACK_IID_STR "431685da-3618-4ebc-b038-833ba829b4b2"
19621 #   define IEXTPACK_IID { \
19622     0x431685da, 0x3618, 0x4ebc, \
19623     { 0xb0, 0x38, 0x83, 0x3b, 0xa8, 0x29, 0xb4, 0xb2 } \
19624 }
19625 /* COM compatibility */
19626 VBOX_EXTERN_CONST(nsIID, IID_IExtPack);
19627 #   ifndef VBOX_WITH_GLUE
19628 struct IExtPack_vtbl
19629 {
19630     struct IExtPackBase_vtbl iextpackbase;
19631 
19632     nsresult (*QueryObject)(
19633         IExtPack *pThis,
19634         PRUnichar * objUuid,
19635         nsISupports * * returnInterface
19636     );
19637 
19638 };
19639 #   else /* VBOX_WITH_GLUE */
19640 struct IExtPackVtbl
19641 {
19642     nsresult (*QueryInterface)(IExtPack *pThis, const nsID *iid, void **resultp);
19643     nsrefcnt (*AddRef)(IExtPack *pThis);
19644     nsrefcnt (*Release)(IExtPack *pThis);
19645     nsresult (*GetName)(IExtPack *pThis, PRUnichar * *name);
19646 
19647     nsresult (*GetDescription)(IExtPack *pThis, PRUnichar * *description);
19648 
19649     nsresult (*GetVersion)(IExtPack *pThis, PRUnichar * *version);
19650 
19651     nsresult (*GetRevision)(IExtPack *pThis, PRUint32 *revision);
19652 
19653     nsresult (*GetEdition)(IExtPack *pThis, PRUnichar * *edition);
19654 
19655     nsresult (*GetVRDEModule)(IExtPack *pThis, PRUnichar * *VRDEModule);
19656 
19657     nsresult (*GetPlugIns)(IExtPack *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
19658 
19659     nsresult (*GetUsable)(IExtPack *pThis, PRBool *usable);
19660 
19661     nsresult (*GetWhyUnusable)(IExtPack *pThis, PRUnichar * *whyUnusable);
19662 
19663     nsresult (*GetShowLicense)(IExtPack *pThis, PRBool *showLicense);
19664 
19665     nsresult (*GetLicense)(IExtPack *pThis, PRUnichar * *license);
19666 
19667     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
19668 
19669     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
19670 
19671     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
19672 
19673     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
19674 
19675     nsresult (*QueryLicense)(
19676         IExtPack *pThis,
19677         PRUnichar * preferredLocale,
19678         PRUnichar * preferredLanguage,
19679         PRUnichar * format,
19680         PRUnichar * * licenseText
19681     );
19682 
19683     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPack *pThis);
19684 
19685     nsresult (*QueryObject)(
19686         IExtPack *pThis,
19687         PRUnichar * objUuid,
19688         nsISupports * * returnInterface
19689     );
19690 
19691 };
19692 #    define IExtPack_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19693 #    define IExtPack_AddRef(p) ((p)->lpVtbl->AddRef(p))
19694 #    define IExtPack_Release(p) ((p)->lpVtbl->Release(p))
19695 #    define IExtPack_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
19696 #    define IExtPack_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
19697 #    define IExtPack_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19698 #    define IExtPack_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19699 #    define IExtPack_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19700 #    define IExtPack_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19701 #    define IExtPack_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19702 #    define IExtPack_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19703 #    define IExtPack_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
19704 #    define IExtPack_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
19705 #    define IExtPack_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
19706 #    define IExtPack_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
19707 #    define IExtPack_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
19708 #    define IExtPack_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
19709 #    define IExtPack_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
19710 #    define IExtPack_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
19711 #    define IExtPack_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
19712 #    define IExtPack_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
19713 #    define IExtPack_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
19714 #    define IExtPack_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
19715 #    define IExtPack_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
19716 #    define IExtPack_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
19717 #    define IExtPack_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
19718 #    define IExtPack_QueryObject(p, aObjUuid, aReturnInterface) ((p)->lpVtbl->QueryObject(p, aObjUuid, aReturnInterface))
19719 #   endif /* VBOX_WITH_GLUE */
19720 
19721 interface IExtPack
19722 {
19723 #   ifndef VBOX_WITH_GLUE
19724     struct IExtPack_vtbl *vtbl;
19725 #   else /* VBOX_WITH_GLUE */
19726     CONST_VTBL struct IExtPackVtbl *lpVtbl;
19727 #   endif /* VBOX_WITH_GLUE */
19728 };
19729 /* End of struct IExtPack declaration */
19730 
19731 
19732 /* Start of struct IExtPackFile declaration */
19733 #   define IEXTPACKFILE_IID_STR "4c7f4bf6-4671-2f75-0fbb-a99f6218cdfc"
19734 #   define IEXTPACKFILE_IID { \
19735     0x4c7f4bf6, 0x4671, 0x2f75, \
19736     { 0x0f, 0xbb, 0xa9, 0x9f, 0x62, 0x18, 0xcd, 0xfc } \
19737 }
19738 /* COM compatibility */
19739 VBOX_EXTERN_CONST(nsIID, IID_IExtPackFile);
19740 #   ifndef VBOX_WITH_GLUE
19741 struct IExtPackFile_vtbl
19742 {
19743     struct IExtPackBase_vtbl iextpackbase;
19744 
19745     nsresult (*GetFilePath)(IExtPackFile *pThis, PRUnichar * *filePath);
19746 
19747     nsresult (*GetInternalAndReservedAttribute1IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
19748 
19749     nsresult (*GetInternalAndReservedAttribute2IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
19750 
19751     nsresult (*Install)(
19752         IExtPackFile *pThis,
19753         PRBool replace,
19754         PRUnichar * displayInfo,
19755         IProgress * * progess
19756     );
19757 
19758     nsresult (*InternalAndReservedMethod1IExtPackFile)(IExtPackFile *pThis);
19759 
19760 };
19761 #   else /* VBOX_WITH_GLUE */
19762 struct IExtPackFileVtbl
19763 {
19764     nsresult (*QueryInterface)(IExtPackFile *pThis, const nsID *iid, void **resultp);
19765     nsrefcnt (*AddRef)(IExtPackFile *pThis);
19766     nsrefcnt (*Release)(IExtPackFile *pThis);
19767     nsresult (*GetName)(IExtPackFile *pThis, PRUnichar * *name);
19768 
19769     nsresult (*GetDescription)(IExtPackFile *pThis, PRUnichar * *description);
19770 
19771     nsresult (*GetVersion)(IExtPackFile *pThis, PRUnichar * *version);
19772 
19773     nsresult (*GetRevision)(IExtPackFile *pThis, PRUint32 *revision);
19774 
19775     nsresult (*GetEdition)(IExtPackFile *pThis, PRUnichar * *edition);
19776 
19777     nsresult (*GetVRDEModule)(IExtPackFile *pThis, PRUnichar * *VRDEModule);
19778 
19779     nsresult (*GetPlugIns)(IExtPackFile *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
19780 
19781     nsresult (*GetUsable)(IExtPackFile *pThis, PRBool *usable);
19782 
19783     nsresult (*GetWhyUnusable)(IExtPackFile *pThis, PRUnichar * *whyUnusable);
19784 
19785     nsresult (*GetShowLicense)(IExtPackFile *pThis, PRBool *showLicense);
19786 
19787     nsresult (*GetLicense)(IExtPackFile *pThis, PRUnichar * *license);
19788 
19789     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
19790 
19791     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
19792 
19793     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
19794 
19795     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
19796 
19797     nsresult (*QueryLicense)(
19798         IExtPackFile *pThis,
19799         PRUnichar * preferredLocale,
19800         PRUnichar * preferredLanguage,
19801         PRUnichar * format,
19802         PRUnichar * * licenseText
19803     );
19804 
19805     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackFile *pThis);
19806 
19807     nsresult (*GetFilePath)(IExtPackFile *pThis, PRUnichar * *filePath);
19808 
19809     nsresult (*GetInternalAndReservedAttribute1IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
19810 
19811     nsresult (*GetInternalAndReservedAttribute2IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
19812 
19813     nsresult (*Install)(
19814         IExtPackFile *pThis,
19815         PRBool replace,
19816         PRUnichar * displayInfo,
19817         IProgress * * progess
19818     );
19819 
19820     nsresult (*InternalAndReservedMethod1IExtPackFile)(IExtPackFile *pThis);
19821 
19822 };
19823 #    define IExtPackFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19824 #    define IExtPackFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
19825 #    define IExtPackFile_Release(p) ((p)->lpVtbl->Release(p))
19826 #    define IExtPackFile_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
19827 #    define IExtPackFile_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
19828 #    define IExtPackFile_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19829 #    define IExtPackFile_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
19830 #    define IExtPackFile_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19831 #    define IExtPackFile_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
19832 #    define IExtPackFile_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19833 #    define IExtPackFile_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
19834 #    define IExtPackFile_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
19835 #    define IExtPackFile_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
19836 #    define IExtPackFile_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
19837 #    define IExtPackFile_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
19838 #    define IExtPackFile_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
19839 #    define IExtPackFile_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
19840 #    define IExtPackFile_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
19841 #    define IExtPackFile_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
19842 #    define IExtPackFile_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
19843 #    define IExtPackFile_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
19844 #    define IExtPackFile_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
19845 #    define IExtPackFile_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
19846 #    define IExtPackFile_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
19847 #    define IExtPackFile_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
19848 #    define IExtPackFile_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
19849 #    define IExtPackFile_get_FilePath(p, aFilePath) ((p)->lpVtbl->GetFilePath(p, aFilePath))
19850 #    define IExtPackFile_GetFilePath(p, aFilePath) ((p)->lpVtbl->GetFilePath(p, aFilePath))
19851 #    define IExtPackFile_Install(p, aReplace, aDisplayInfo, aProgess) ((p)->lpVtbl->Install(p, aReplace, aDisplayInfo, aProgess))
19852 #   endif /* VBOX_WITH_GLUE */
19853 
19854 interface IExtPackFile
19855 {
19856 #   ifndef VBOX_WITH_GLUE
19857     struct IExtPackFile_vtbl *vtbl;
19858 #   else /* VBOX_WITH_GLUE */
19859     CONST_VTBL struct IExtPackFileVtbl *lpVtbl;
19860 #   endif /* VBOX_WITH_GLUE */
19861 };
19862 /* End of struct IExtPackFile declaration */
19863 
19864 
19865 /* Start of struct IExtPackManager declaration */
19866 #   define IEXTPACKMANAGER_IID_STR "edba9d10-45d8-b440-1712-46ac0c9bc4c5"
19867 #   define IEXTPACKMANAGER_IID { \
19868     0xedba9d10, 0x45d8, 0xb440, \
19869     { 0x17, 0x12, 0x46, 0xac, 0x0c, 0x9b, 0xc4, 0xc5 } \
19870 }
19871 /* COM compatibility */
19872 VBOX_EXTERN_CONST(nsIID, IID_IExtPackManager);
19873 #   ifndef VBOX_WITH_GLUE
19874 struct IExtPackManager_vtbl
19875 {
19876     struct nsISupports_vtbl nsisupports;
19877 
19878     nsresult (*GetInstalledExtPacks)(IExtPackManager *pThis, PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks);
19879 
19880     nsresult (*GetInternalAndReservedAttribute1IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
19881 
19882     nsresult (*GetInternalAndReservedAttribute2IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
19883 
19884     nsresult (*Find)(
19885         IExtPackManager *pThis,
19886         PRUnichar * name,
19887         IExtPack * * returnData
19888     );
19889 
19890     nsresult (*OpenExtPackFile)(
19891         IExtPackManager *pThis,
19892         PRUnichar * path,
19893         IExtPackFile * * file
19894     );
19895 
19896     nsresult (*Uninstall)(
19897         IExtPackManager *pThis,
19898         PRUnichar * name,
19899         PRBool forcedRemoval,
19900         PRUnichar * displayInfo,
19901         IProgress * * progess
19902     );
19903 
19904     nsresult (*Cleanup)(IExtPackManager *pThis );
19905 
19906     nsresult (*QueryAllPlugInsForFrontend)(
19907         IExtPackManager *pThis,
19908         PRUnichar * frontendName,
19909         PRUint32 *plugInModulesSize,
19910         PRUnichar *** plugInModules
19911     );
19912 
19913     nsresult (*IsExtPackUsable)(
19914         IExtPackManager *pThis,
19915         PRUnichar * name,
19916         PRBool * usable
19917     );
19918 
19919     nsresult (*InternalAndReservedMethod1IExtPackManager)(IExtPackManager *pThis);
19920 
19921 };
19922 #   else /* VBOX_WITH_GLUE */
19923 struct IExtPackManagerVtbl
19924 {
19925     nsresult (*QueryInterface)(IExtPackManager *pThis, const nsID *iid, void **resultp);
19926     nsrefcnt (*AddRef)(IExtPackManager *pThis);
19927     nsrefcnt (*Release)(IExtPackManager *pThis);
19928     nsresult (*GetInstalledExtPacks)(IExtPackManager *pThis, PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks);
19929 
19930     nsresult (*GetInternalAndReservedAttribute1IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
19931 
19932     nsresult (*GetInternalAndReservedAttribute2IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
19933 
19934     nsresult (*Find)(
19935         IExtPackManager *pThis,
19936         PRUnichar * name,
19937         IExtPack * * returnData
19938     );
19939 
19940     nsresult (*OpenExtPackFile)(
19941         IExtPackManager *pThis,
19942         PRUnichar * path,
19943         IExtPackFile * * file
19944     );
19945 
19946     nsresult (*Uninstall)(
19947         IExtPackManager *pThis,
19948         PRUnichar * name,
19949         PRBool forcedRemoval,
19950         PRUnichar * displayInfo,
19951         IProgress * * progess
19952     );
19953 
19954     nsresult (*Cleanup)(IExtPackManager *pThis );
19955 
19956     nsresult (*QueryAllPlugInsForFrontend)(
19957         IExtPackManager *pThis,
19958         PRUnichar * frontendName,
19959         PRUint32 *plugInModulesSize,
19960         PRUnichar *** plugInModules
19961     );
19962 
19963     nsresult (*IsExtPackUsable)(
19964         IExtPackManager *pThis,
19965         PRUnichar * name,
19966         PRBool * usable
19967     );
19968 
19969     nsresult (*InternalAndReservedMethod1IExtPackManager)(IExtPackManager *pThis);
19970 
19971 };
19972 #    define IExtPackManager_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19973 #    define IExtPackManager_AddRef(p) ((p)->lpVtbl->AddRef(p))
19974 #    define IExtPackManager_Release(p) ((p)->lpVtbl->Release(p))
19975 #    define IExtPackManager_get_InstalledExtPacks(p, aInstalledExtPacks) ((p)->lpVtbl->GetInstalledExtPacks(p, aInstalledExtPacks))
19976 #    define IExtPackManager_GetInstalledExtPacks(p, aInstalledExtPacks) ((p)->lpVtbl->GetInstalledExtPacks(p, aInstalledExtPacks))
19977 #    define IExtPackManager_Find(p, aName, aReturnData) ((p)->lpVtbl->Find(p, aName, aReturnData))
19978 #    define IExtPackManager_OpenExtPackFile(p, aPath, aFile) ((p)->lpVtbl->OpenExtPackFile(p, aPath, aFile))
19979 #    define IExtPackManager_Uninstall(p, aName, aForcedRemoval, aDisplayInfo, aProgess) ((p)->lpVtbl->Uninstall(p, aName, aForcedRemoval, aDisplayInfo, aProgess))
19980 #    define IExtPackManager_Cleanup(p) ((p)->lpVtbl->Cleanup(p))
19981 #    define IExtPackManager_QueryAllPlugInsForFrontend(p, aFrontendName, aPlugInModules) ((p)->lpVtbl->QueryAllPlugInsForFrontend(p, aFrontendName, aPlugInModules))
19982 #    define IExtPackManager_IsExtPackUsable(p, aName, aUsable) ((p)->lpVtbl->IsExtPackUsable(p, aName, aUsable))
19983 #   endif /* VBOX_WITH_GLUE */
19984 
19985 interface IExtPackManager
19986 {
19987 #   ifndef VBOX_WITH_GLUE
19988     struct IExtPackManager_vtbl *vtbl;
19989 #   else /* VBOX_WITH_GLUE */
19990     CONST_VTBL struct IExtPackManagerVtbl *lpVtbl;
19991 #   endif /* VBOX_WITH_GLUE */
19992 };
19993 /* End of struct IExtPackManager declaration */
19994 
19995 
19996 /* Start of struct IBandwidthGroup declaration */
19997 #   define IBANDWIDTHGROUP_IID_STR "31587f93-2d12-4d7c-ba6d-ce51d0d5b265"
19998 #   define IBANDWIDTHGROUP_IID { \
19999     0x31587f93, 0x2d12, 0x4d7c, \
20000     { 0xba, 0x6d, 0xce, 0x51, 0xd0, 0xd5, 0xb2, 0x65 } \
20001 }
20002 /* COM compatibility */
20003 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthGroup);
20004 #   ifndef VBOX_WITH_GLUE
20005 struct IBandwidthGroup_vtbl
20006 {
20007     struct nsISupports_vtbl nsisupports;
20008 
20009     nsresult (*GetName)(IBandwidthGroup *pThis, PRUnichar * *name);
20010 
20011     nsresult (*GetType)(IBandwidthGroup *pThis, PRUint32 *type);
20012 
20013     nsresult (*GetReference)(IBandwidthGroup *pThis, PRUint32 *reference);
20014 
20015     nsresult (*GetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 *maxBytesPerSec);
20016     nsresult (*SetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 maxBytesPerSec);
20017 
20018     nsresult (*GetInternalAndReservedAttribute1IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20019 
20020     nsresult (*GetInternalAndReservedAttribute2IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20021 
20022     nsresult (*GetInternalAndReservedAttribute3IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20023 
20024     nsresult (*GetInternalAndReservedAttribute4IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20025 
20026 };
20027 #   else /* VBOX_WITH_GLUE */
20028 struct IBandwidthGroupVtbl
20029 {
20030     nsresult (*QueryInterface)(IBandwidthGroup *pThis, const nsID *iid, void **resultp);
20031     nsrefcnt (*AddRef)(IBandwidthGroup *pThis);
20032     nsrefcnt (*Release)(IBandwidthGroup *pThis);
20033     nsresult (*GetName)(IBandwidthGroup *pThis, PRUnichar * *name);
20034 
20035     nsresult (*GetType)(IBandwidthGroup *pThis, PRUint32 *type);
20036 
20037     nsresult (*GetReference)(IBandwidthGroup *pThis, PRUint32 *reference);
20038 
20039     nsresult (*GetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 *maxBytesPerSec);
20040     nsresult (*SetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 maxBytesPerSec);
20041 
20042     nsresult (*GetInternalAndReservedAttribute1IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20043 
20044     nsresult (*GetInternalAndReservedAttribute2IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20045 
20046     nsresult (*GetInternalAndReservedAttribute3IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20047 
20048     nsresult (*GetInternalAndReservedAttribute4IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
20049 
20050 };
20051 #    define IBandwidthGroup_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20052 #    define IBandwidthGroup_AddRef(p) ((p)->lpVtbl->AddRef(p))
20053 #    define IBandwidthGroup_Release(p) ((p)->lpVtbl->Release(p))
20054 #    define IBandwidthGroup_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
20055 #    define IBandwidthGroup_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
20056 #    define IBandwidthGroup_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20057 #    define IBandwidthGroup_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20058 #    define IBandwidthGroup_get_Reference(p, aReference) ((p)->lpVtbl->GetReference(p, aReference))
20059 #    define IBandwidthGroup_GetReference(p, aReference) ((p)->lpVtbl->GetReference(p, aReference))
20060 #    define IBandwidthGroup_get_MaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->GetMaxBytesPerSec(p, aMaxBytesPerSec))
20061 #    define IBandwidthGroup_GetMaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->GetMaxBytesPerSec(p, aMaxBytesPerSec))
20062 #    define IBandwidthGroup_put_MaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->SetMaxBytesPerSec(p, aMaxBytesPerSec))
20063 #    define IBandwidthGroup_SetMaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->SetMaxBytesPerSec(p, aMaxBytesPerSec))
20064 #   endif /* VBOX_WITH_GLUE */
20065 
20066 interface IBandwidthGroup
20067 {
20068 #   ifndef VBOX_WITH_GLUE
20069     struct IBandwidthGroup_vtbl *vtbl;
20070 #   else /* VBOX_WITH_GLUE */
20071     CONST_VTBL struct IBandwidthGroupVtbl *lpVtbl;
20072 #   endif /* VBOX_WITH_GLUE */
20073 };
20074 /* End of struct IBandwidthGroup declaration */
20075 
20076 
20077 /* Start of struct IBandwidthControl declaration */
20078 #   define IBANDWIDTHCONTROL_IID_STR "48c7f4c0-c9d6-4742-957c-a6fd52e8c4ae"
20079 #   define IBANDWIDTHCONTROL_IID { \
20080     0x48c7f4c0, 0xc9d6, 0x4742, \
20081     { 0x95, 0x7c, 0xa6, 0xfd, 0x52, 0xe8, 0xc4, 0xae } \
20082 }
20083 /* COM compatibility */
20084 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthControl);
20085 #   ifndef VBOX_WITH_GLUE
20086 struct IBandwidthControl_vtbl
20087 {
20088     struct nsISupports_vtbl nsisupports;
20089 
20090     nsresult (*GetNumGroups)(IBandwidthControl *pThis, PRUint32 *numGroups);
20091 
20092     nsresult (*GetInternalAndReservedAttribute1IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
20093 
20094     nsresult (*GetInternalAndReservedAttribute2IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
20095 
20096     nsresult (*CreateBandwidthGroup)(
20097         IBandwidthControl *pThis,
20098         PRUnichar * name,
20099         PRUint32 type,
20100         PRInt64 maxBytesPerSec
20101     );
20102 
20103     nsresult (*DeleteBandwidthGroup)(
20104         IBandwidthControl *pThis,
20105         PRUnichar * name
20106     );
20107 
20108     nsresult (*GetBandwidthGroup)(
20109         IBandwidthControl *pThis,
20110         PRUnichar * name,
20111         IBandwidthGroup * * bandwidthGroup
20112     );
20113 
20114     nsresult (*GetAllBandwidthGroups)(
20115         IBandwidthControl *pThis,
20116         PRUint32 *bandwidthGroupsSize,
20117         IBandwidthGroup *** bandwidthGroups
20118     );
20119 
20120     nsresult (*InternalAndReservedMethod1IBandwidthControl)(IBandwidthControl *pThis);
20121 
20122     nsresult (*InternalAndReservedMethod2IBandwidthControl)(IBandwidthControl *pThis);
20123 
20124 };
20125 #   else /* VBOX_WITH_GLUE */
20126 struct IBandwidthControlVtbl
20127 {
20128     nsresult (*QueryInterface)(IBandwidthControl *pThis, const nsID *iid, void **resultp);
20129     nsrefcnt (*AddRef)(IBandwidthControl *pThis);
20130     nsrefcnt (*Release)(IBandwidthControl *pThis);
20131     nsresult (*GetNumGroups)(IBandwidthControl *pThis, PRUint32 *numGroups);
20132 
20133     nsresult (*GetInternalAndReservedAttribute1IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
20134 
20135     nsresult (*GetInternalAndReservedAttribute2IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
20136 
20137     nsresult (*CreateBandwidthGroup)(
20138         IBandwidthControl *pThis,
20139         PRUnichar * name,
20140         PRUint32 type,
20141         PRInt64 maxBytesPerSec
20142     );
20143 
20144     nsresult (*DeleteBandwidthGroup)(
20145         IBandwidthControl *pThis,
20146         PRUnichar * name
20147     );
20148 
20149     nsresult (*GetBandwidthGroup)(
20150         IBandwidthControl *pThis,
20151         PRUnichar * name,
20152         IBandwidthGroup * * bandwidthGroup
20153     );
20154 
20155     nsresult (*GetAllBandwidthGroups)(
20156         IBandwidthControl *pThis,
20157         PRUint32 *bandwidthGroupsSize,
20158         IBandwidthGroup *** bandwidthGroups
20159     );
20160 
20161     nsresult (*InternalAndReservedMethod1IBandwidthControl)(IBandwidthControl *pThis);
20162 
20163     nsresult (*InternalAndReservedMethod2IBandwidthControl)(IBandwidthControl *pThis);
20164 
20165 };
20166 #    define IBandwidthControl_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20167 #    define IBandwidthControl_AddRef(p) ((p)->lpVtbl->AddRef(p))
20168 #    define IBandwidthControl_Release(p) ((p)->lpVtbl->Release(p))
20169 #    define IBandwidthControl_get_NumGroups(p, aNumGroups) ((p)->lpVtbl->GetNumGroups(p, aNumGroups))
20170 #    define IBandwidthControl_GetNumGroups(p, aNumGroups) ((p)->lpVtbl->GetNumGroups(p, aNumGroups))
20171 #    define IBandwidthControl_CreateBandwidthGroup(p, aName, aType, aMaxBytesPerSec) ((p)->lpVtbl->CreateBandwidthGroup(p, aName, aType, aMaxBytesPerSec))
20172 #    define IBandwidthControl_DeleteBandwidthGroup(p, aName) ((p)->lpVtbl->DeleteBandwidthGroup(p, aName))
20173 #    define IBandwidthControl_GetBandwidthGroup(p, aName, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aName, aBandwidthGroup))
20174 #    define IBandwidthControl_GetAllBandwidthGroups(p, aBandwidthGroups) ((p)->lpVtbl->GetAllBandwidthGroups(p, aBandwidthGroups))
20175 #   endif /* VBOX_WITH_GLUE */
20176 
20177 interface IBandwidthControl
20178 {
20179 #   ifndef VBOX_WITH_GLUE
20180     struct IBandwidthControl_vtbl *vtbl;
20181 #   else /* VBOX_WITH_GLUE */
20182     CONST_VTBL struct IBandwidthControlVtbl *lpVtbl;
20183 #   endif /* VBOX_WITH_GLUE */
20184 };
20185 /* End of struct IBandwidthControl declaration */
20186 
20187 
20188 /* Start of struct IVirtualBoxClient declaration */
20189 #   define IVIRTUALBOXCLIENT_IID_STR "d2937a8e-cb8d-4382-90ba-b7da78a74573"
20190 #   define IVIRTUALBOXCLIENT_IID { \
20191     0xd2937a8e, 0xcb8d, 0x4382, \
20192     { 0x90, 0xba, 0xb7, 0xda, 0x78, 0xa7, 0x45, 0x73 } \
20193 }
20194 /* COM compatibility */
20195 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBoxClient);
20196 #   ifndef VBOX_WITH_GLUE
20197 struct IVirtualBoxClient_vtbl
20198 {
20199     struct nsISupports_vtbl nsisupports;
20200 
20201     nsresult (*GetVirtualBox)(IVirtualBoxClient *pThis, IVirtualBox * *virtualBox);
20202 
20203     nsresult (*GetSession)(IVirtualBoxClient *pThis, ISession * *session);
20204 
20205     nsresult (*GetEventSource)(IVirtualBoxClient *pThis, IEventSource * *eventSource);
20206 
20207     nsresult (*GetInternalAndReservedAttribute1IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20208 
20209     nsresult (*GetInternalAndReservedAttribute2IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20210 
20211     nsresult (*GetInternalAndReservedAttribute3IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20212 
20213     nsresult (*GetInternalAndReservedAttribute4IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20214 
20215     nsresult (*CheckMachineError)(
20216         IVirtualBoxClient *pThis,
20217         IMachine * machine
20218     );
20219 
20220     nsresult (*InternalAndReservedMethod1IVirtualBoxClient)(IVirtualBoxClient *pThis);
20221 
20222     nsresult (*InternalAndReservedMethod2IVirtualBoxClient)(IVirtualBoxClient *pThis);
20223 
20224     nsresult (*InternalAndReservedMethod3IVirtualBoxClient)(IVirtualBoxClient *pThis);
20225 
20226     nsresult (*InternalAndReservedMethod4IVirtualBoxClient)(IVirtualBoxClient *pThis);
20227 
20228 };
20229 #   else /* VBOX_WITH_GLUE */
20230 struct IVirtualBoxClientVtbl
20231 {
20232     nsresult (*QueryInterface)(IVirtualBoxClient *pThis, const nsID *iid, void **resultp);
20233     nsrefcnt (*AddRef)(IVirtualBoxClient *pThis);
20234     nsrefcnt (*Release)(IVirtualBoxClient *pThis);
20235     nsresult (*GetVirtualBox)(IVirtualBoxClient *pThis, IVirtualBox * *virtualBox);
20236 
20237     nsresult (*GetSession)(IVirtualBoxClient *pThis, ISession * *session);
20238 
20239     nsresult (*GetEventSource)(IVirtualBoxClient *pThis, IEventSource * *eventSource);
20240 
20241     nsresult (*GetInternalAndReservedAttribute1IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20242 
20243     nsresult (*GetInternalAndReservedAttribute2IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20244 
20245     nsresult (*GetInternalAndReservedAttribute3IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20246 
20247     nsresult (*GetInternalAndReservedAttribute4IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
20248 
20249     nsresult (*CheckMachineError)(
20250         IVirtualBoxClient *pThis,
20251         IMachine * machine
20252     );
20253 
20254     nsresult (*InternalAndReservedMethod1IVirtualBoxClient)(IVirtualBoxClient *pThis);
20255 
20256     nsresult (*InternalAndReservedMethod2IVirtualBoxClient)(IVirtualBoxClient *pThis);
20257 
20258     nsresult (*InternalAndReservedMethod3IVirtualBoxClient)(IVirtualBoxClient *pThis);
20259 
20260     nsresult (*InternalAndReservedMethod4IVirtualBoxClient)(IVirtualBoxClient *pThis);
20261 
20262 };
20263 #    define IVirtualBoxClient_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20264 #    define IVirtualBoxClient_AddRef(p) ((p)->lpVtbl->AddRef(p))
20265 #    define IVirtualBoxClient_Release(p) ((p)->lpVtbl->Release(p))
20266 #    define IVirtualBoxClient_get_VirtualBox(p, aVirtualBox) ((p)->lpVtbl->GetVirtualBox(p, aVirtualBox))
20267 #    define IVirtualBoxClient_GetVirtualBox(p, aVirtualBox) ((p)->lpVtbl->GetVirtualBox(p, aVirtualBox))
20268 #    define IVirtualBoxClient_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
20269 #    define IVirtualBoxClient_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
20270 #    define IVirtualBoxClient_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
20271 #    define IVirtualBoxClient_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
20272 #    define IVirtualBoxClient_CheckMachineError(p, aMachine) ((p)->lpVtbl->CheckMachineError(p, aMachine))
20273 #   endif /* VBOX_WITH_GLUE */
20274 
20275 interface IVirtualBoxClient
20276 {
20277 #   ifndef VBOX_WITH_GLUE
20278     struct IVirtualBoxClient_vtbl *vtbl;
20279 #   else /* VBOX_WITH_GLUE */
20280     CONST_VTBL struct IVirtualBoxClientVtbl *lpVtbl;
20281 #   endif /* VBOX_WITH_GLUE */
20282 };
20283 /* End of struct IVirtualBoxClient declaration */
20284 
20285 
20286 /* Start of struct IEventSource declaration */
20287 #   define IEVENTSOURCE_IID_STR "9b6e1aee-35f3-4f4d-b5bb-ed0ecefd8538"
20288 #   define IEVENTSOURCE_IID { \
20289     0x9b6e1aee, 0x35f3, 0x4f4d, \
20290     { 0xb5, 0xbb, 0xed, 0x0e, 0xce, 0xfd, 0x85, 0x38 } \
20291 }
20292 /* COM compatibility */
20293 VBOX_EXTERN_CONST(nsIID, IID_IEventSource);
20294 #   ifndef VBOX_WITH_GLUE
20295 struct IEventSource_vtbl
20296 {
20297     struct nsISupports_vtbl nsisupports;
20298 
20299     nsresult (*CreateListener)(
20300         IEventSource *pThis,
20301         IEventListener * * listener
20302     );
20303 
20304     nsresult (*CreateAggregator)(
20305         IEventSource *pThis,
20306         PRUint32 subordinatesSize,
20307         IEventSource ** subordinates,
20308         IEventSource * * result
20309     );
20310 
20311     nsresult (*RegisterListener)(
20312         IEventSource *pThis,
20313         IEventListener * listener,
20314         PRUint32 interestingSize,
20315         PRUint32* interesting,
20316         PRBool active
20317     );
20318 
20319     nsresult (*UnregisterListener)(
20320         IEventSource *pThis,
20321         IEventListener * listener
20322     );
20323 
20324     nsresult (*FireEvent)(
20325         IEventSource *pThis,
20326         IEvent * event,
20327         PRInt32 timeout,
20328         PRBool * result
20329     );
20330 
20331     nsresult (*GetEvent)(
20332         IEventSource *pThis,
20333         IEventListener * listener,
20334         PRInt32 timeout,
20335         IEvent * * event
20336     );
20337 
20338     nsresult (*EventProcessed)(
20339         IEventSource *pThis,
20340         IEventListener * listener,
20341         IEvent * event
20342     );
20343 
20344 };
20345 #   else /* VBOX_WITH_GLUE */
20346 struct IEventSourceVtbl
20347 {
20348     nsresult (*QueryInterface)(IEventSource *pThis, const nsID *iid, void **resultp);
20349     nsrefcnt (*AddRef)(IEventSource *pThis);
20350     nsrefcnt (*Release)(IEventSource *pThis);
20351     nsresult (*CreateListener)(
20352         IEventSource *pThis,
20353         IEventListener * * listener
20354     );
20355 
20356     nsresult (*CreateAggregator)(
20357         IEventSource *pThis,
20358         PRUint32 subordinatesSize,
20359         IEventSource ** subordinates,
20360         IEventSource * * result
20361     );
20362 
20363     nsresult (*RegisterListener)(
20364         IEventSource *pThis,
20365         IEventListener * listener,
20366         PRUint32 interestingSize,
20367         PRUint32* interesting,
20368         PRBool active
20369     );
20370 
20371     nsresult (*UnregisterListener)(
20372         IEventSource *pThis,
20373         IEventListener * listener
20374     );
20375 
20376     nsresult (*FireEvent)(
20377         IEventSource *pThis,
20378         IEvent * event,
20379         PRInt32 timeout,
20380         PRBool * result
20381     );
20382 
20383     nsresult (*GetEvent)(
20384         IEventSource *pThis,
20385         IEventListener * listener,
20386         PRInt32 timeout,
20387         IEvent * * event
20388     );
20389 
20390     nsresult (*EventProcessed)(
20391         IEventSource *pThis,
20392         IEventListener * listener,
20393         IEvent * event
20394     );
20395 
20396 };
20397 #    define IEventSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20398 #    define IEventSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
20399 #    define IEventSource_Release(p) ((p)->lpVtbl->Release(p))
20400 #    define IEventSource_CreateListener(p, aListener) ((p)->lpVtbl->CreateListener(p, aListener))
20401 #    define IEventSource_CreateAggregator(p, aSubordinates, aResult) ((p)->lpVtbl->CreateAggregator(p, aSubordinates, aResult))
20402 #    define IEventSource_RegisterListener(p, aListener, aInteresting, aActive) ((p)->lpVtbl->RegisterListener(p, aListener, aInteresting, aActive))
20403 #    define IEventSource_UnregisterListener(p, aListener) ((p)->lpVtbl->UnregisterListener(p, aListener))
20404 #    define IEventSource_FireEvent(p, aEvent, aTimeout, aResult) ((p)->lpVtbl->FireEvent(p, aEvent, aTimeout, aResult))
20405 #    define IEventSource_GetEvent(p, aListener, aTimeout, aEvent) ((p)->lpVtbl->GetEvent(p, aListener, aTimeout, aEvent))
20406 #    define IEventSource_EventProcessed(p, aListener, aEvent) ((p)->lpVtbl->EventProcessed(p, aListener, aEvent))
20407 #   endif /* VBOX_WITH_GLUE */
20408 
20409 interface IEventSource
20410 {
20411 #   ifndef VBOX_WITH_GLUE
20412     struct IEventSource_vtbl *vtbl;
20413 #   else /* VBOX_WITH_GLUE */
20414     CONST_VTBL struct IEventSourceVtbl *lpVtbl;
20415 #   endif /* VBOX_WITH_GLUE */
20416 };
20417 /* End of struct IEventSource declaration */
20418 
20419 
20420 /* Start of struct IEventListener declaration */
20421 #   define IEVENTLISTENER_IID_STR "67099191-32e7-4f6c-85ee-422304c71b90"
20422 #   define IEVENTLISTENER_IID { \
20423     0x67099191, 0x32e7, 0x4f6c, \
20424     { 0x85, 0xee, 0x42, 0x23, 0x04, 0xc7, 0x1b, 0x90 } \
20425 }
20426 /* COM compatibility */
20427 VBOX_EXTERN_CONST(nsIID, IID_IEventListener);
20428 #   ifndef VBOX_WITH_GLUE
20429 struct IEventListener_vtbl
20430 {
20431     struct nsISupports_vtbl nsisupports;
20432 
20433     nsresult (*HandleEvent)(
20434         IEventListener *pThis,
20435         IEvent * event
20436     );
20437 
20438 };
20439 #   else /* VBOX_WITH_GLUE */
20440 struct IEventListenerVtbl
20441 {
20442     nsresult (*QueryInterface)(IEventListener *pThis, const nsID *iid, void **resultp);
20443     nsrefcnt (*AddRef)(IEventListener *pThis);
20444     nsrefcnt (*Release)(IEventListener *pThis);
20445     nsresult (*HandleEvent)(
20446         IEventListener *pThis,
20447         IEvent * event
20448     );
20449 
20450 };
20451 #    define IEventListener_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20452 #    define IEventListener_AddRef(p) ((p)->lpVtbl->AddRef(p))
20453 #    define IEventListener_Release(p) ((p)->lpVtbl->Release(p))
20454 #    define IEventListener_HandleEvent(p, aEvent) ((p)->lpVtbl->HandleEvent(p, aEvent))
20455 #   endif /* VBOX_WITH_GLUE */
20456 
20457 interface IEventListener
20458 {
20459 #   ifndef VBOX_WITH_GLUE
20460     struct IEventListener_vtbl *vtbl;
20461 #   else /* VBOX_WITH_GLUE */
20462     CONST_VTBL struct IEventListenerVtbl *lpVtbl;
20463 #   endif /* VBOX_WITH_GLUE */
20464 };
20465 /* End of struct IEventListener declaration */
20466 
20467 
20468 /* Start of struct IEvent declaration */
20469 #   define IEVENT_IID_STR "0ca2adba-8f30-401b-a8cd-fe31dbe839c0"
20470 #   define IEVENT_IID { \
20471     0x0ca2adba, 0x8f30, 0x401b, \
20472     { 0xa8, 0xcd, 0xfe, 0x31, 0xdb, 0xe8, 0x39, 0xc0 } \
20473 }
20474 /* COM compatibility */
20475 VBOX_EXTERN_CONST(nsIID, IID_IEvent);
20476 #   ifndef VBOX_WITH_GLUE
20477 struct IEvent_vtbl
20478 {
20479     struct nsISupports_vtbl nsisupports;
20480 
20481     nsresult (*GetType)(IEvent *pThis, PRUint32 *type);
20482 
20483     nsresult (*GetSource)(IEvent *pThis, IEventSource * *source);
20484 
20485     nsresult (*GetWaitable)(IEvent *pThis, PRBool *waitable);
20486 
20487     nsresult (*SetProcessed)(IEvent *pThis );
20488 
20489     nsresult (*WaitProcessed)(
20490         IEvent *pThis,
20491         PRInt32 timeout,
20492         PRBool * result
20493     );
20494 
20495 };
20496 #   else /* VBOX_WITH_GLUE */
20497 struct IEventVtbl
20498 {
20499     nsresult (*QueryInterface)(IEvent *pThis, const nsID *iid, void **resultp);
20500     nsrefcnt (*AddRef)(IEvent *pThis);
20501     nsrefcnt (*Release)(IEvent *pThis);
20502     nsresult (*GetType)(IEvent *pThis, PRUint32 *type);
20503 
20504     nsresult (*GetSource)(IEvent *pThis, IEventSource * *source);
20505 
20506     nsresult (*GetWaitable)(IEvent *pThis, PRBool *waitable);
20507 
20508     nsresult (*SetProcessed)(IEvent *pThis );
20509 
20510     nsresult (*WaitProcessed)(
20511         IEvent *pThis,
20512         PRInt32 timeout,
20513         PRBool * result
20514     );
20515 
20516 };
20517 #    define IEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20518 #    define IEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20519 #    define IEvent_Release(p) ((p)->lpVtbl->Release(p))
20520 #    define IEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20521 #    define IEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20522 #    define IEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20523 #    define IEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20524 #    define IEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20525 #    define IEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20526 #    define IEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
20527 #    define IEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
20528 #   endif /* VBOX_WITH_GLUE */
20529 
20530 interface IEvent
20531 {
20532 #   ifndef VBOX_WITH_GLUE
20533     struct IEvent_vtbl *vtbl;
20534 #   else /* VBOX_WITH_GLUE */
20535     CONST_VTBL struct IEventVtbl *lpVtbl;
20536 #   endif /* VBOX_WITH_GLUE */
20537 };
20538 /* End of struct IEvent declaration */
20539 
20540 
20541 /* Start of struct IReusableEvent declaration */
20542 #   define IREUSABLEEVENT_IID_STR "69bfb134-80f6-4266-8e20-16371f68fa25"
20543 #   define IREUSABLEEVENT_IID { \
20544     0x69bfb134, 0x80f6, 0x4266, \
20545     { 0x8e, 0x20, 0x16, 0x37, 0x1f, 0x68, 0xfa, 0x25 } \
20546 }
20547 /* COM compatibility */
20548 VBOX_EXTERN_CONST(nsIID, IID_IReusableEvent);
20549 #   ifndef VBOX_WITH_GLUE
20550 struct IReusableEvent_vtbl
20551 {
20552     struct IEvent_vtbl ievent;
20553 
20554     nsresult (*GetGeneration)(IReusableEvent *pThis, PRUint32 *generation);
20555 
20556     nsresult (*Reuse)(IReusableEvent *pThis );
20557 
20558 };
20559 #   else /* VBOX_WITH_GLUE */
20560 struct IReusableEventVtbl
20561 {
20562     nsresult (*QueryInterface)(IReusableEvent *pThis, const nsID *iid, void **resultp);
20563     nsrefcnt (*AddRef)(IReusableEvent *pThis);
20564     nsrefcnt (*Release)(IReusableEvent *pThis);
20565     nsresult (*GetType)(IReusableEvent *pThis, PRUint32 *type);
20566 
20567     nsresult (*GetSource)(IReusableEvent *pThis, IEventSource * *source);
20568 
20569     nsresult (*GetWaitable)(IReusableEvent *pThis, PRBool *waitable);
20570 
20571     nsresult (*SetProcessed)(IReusableEvent *pThis );
20572 
20573     nsresult (*WaitProcessed)(
20574         IReusableEvent *pThis,
20575         PRInt32 timeout,
20576         PRBool * result
20577     );
20578 
20579     nsresult (*GetGeneration)(IReusableEvent *pThis, PRUint32 *generation);
20580 
20581     nsresult (*Reuse)(IReusableEvent *pThis );
20582 
20583 };
20584 #    define IReusableEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20585 #    define IReusableEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20586 #    define IReusableEvent_Release(p) ((p)->lpVtbl->Release(p))
20587 #    define IReusableEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20588 #    define IReusableEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20589 #    define IReusableEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20590 #    define IReusableEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20591 #    define IReusableEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20592 #    define IReusableEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20593 #    define IReusableEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
20594 #    define IReusableEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
20595 #    define IReusableEvent_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
20596 #    define IReusableEvent_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
20597 #    define IReusableEvent_Reuse(p) ((p)->lpVtbl->Reuse(p))
20598 #   endif /* VBOX_WITH_GLUE */
20599 
20600 interface IReusableEvent
20601 {
20602 #   ifndef VBOX_WITH_GLUE
20603     struct IReusableEvent_vtbl *vtbl;
20604 #   else /* VBOX_WITH_GLUE */
20605     CONST_VTBL struct IReusableEventVtbl *lpVtbl;
20606 #   endif /* VBOX_WITH_GLUE */
20607 };
20608 /* End of struct IReusableEvent declaration */
20609 
20610 
20611 /* Start of struct IMachineEvent declaration */
20612 #   define IMACHINEEVENT_IID_STR "92ed7b1a-0d96-40ed-ae46-a564d484325e"
20613 #   define IMACHINEEVENT_IID { \
20614     0x92ed7b1a, 0x0d96, 0x40ed, \
20615     { 0xae, 0x46, 0xa5, 0x64, 0xd4, 0x84, 0x32, 0x5e } \
20616 }
20617 /* COM compatibility */
20618 VBOX_EXTERN_CONST(nsIID, IID_IMachineEvent);
20619 #   ifndef VBOX_WITH_GLUE
20620 struct IMachineEvent_vtbl
20621 {
20622     struct IEvent_vtbl ievent;
20623 
20624     nsresult (*GetMachineId)(IMachineEvent *pThis, PRUnichar * *machineId);
20625 
20626 };
20627 #   else /* VBOX_WITH_GLUE */
20628 struct IMachineEventVtbl
20629 {
20630     nsresult (*QueryInterface)(IMachineEvent *pThis, const nsID *iid, void **resultp);
20631     nsrefcnt (*AddRef)(IMachineEvent *pThis);
20632     nsrefcnt (*Release)(IMachineEvent *pThis);
20633     nsresult (*GetType)(IMachineEvent *pThis, PRUint32 *type);
20634 
20635     nsresult (*GetSource)(IMachineEvent *pThis, IEventSource * *source);
20636 
20637     nsresult (*GetWaitable)(IMachineEvent *pThis, PRBool *waitable);
20638 
20639     nsresult (*SetProcessed)(IMachineEvent *pThis );
20640 
20641     nsresult (*WaitProcessed)(
20642         IMachineEvent *pThis,
20643         PRInt32 timeout,
20644         PRBool * result
20645     );
20646 
20647     nsresult (*GetMachineId)(IMachineEvent *pThis, PRUnichar * *machineId);
20648 
20649 };
20650 #    define IMachineEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20651 #    define IMachineEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20652 #    define IMachineEvent_Release(p) ((p)->lpVtbl->Release(p))
20653 #    define IMachineEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20654 #    define IMachineEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20655 #    define IMachineEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20656 #    define IMachineEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20657 #    define IMachineEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20658 #    define IMachineEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20659 #    define IMachineEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
20660 #    define IMachineEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
20661 #    define IMachineEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
20662 #    define IMachineEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
20663 #   endif /* VBOX_WITH_GLUE */
20664 
20665 interface IMachineEvent
20666 {
20667 #   ifndef VBOX_WITH_GLUE
20668     struct IMachineEvent_vtbl *vtbl;
20669 #   else /* VBOX_WITH_GLUE */
20670     CONST_VTBL struct IMachineEventVtbl *lpVtbl;
20671 #   endif /* VBOX_WITH_GLUE */
20672 };
20673 /* End of struct IMachineEvent declaration */
20674 
20675 
20676 /* Start of struct IMachineStateChangedEvent declaration */
20677 #   define IMACHINESTATECHANGEDEVENT_IID_STR "5748F794-48DF-438D-85EB-98FFD70D18C9"
20678 #   define IMACHINESTATECHANGEDEVENT_IID { \
20679     0x5748F794, 0x48DF, 0x438D, \
20680     { 0x85, 0xEB, 0x98, 0xFF, 0xD7, 0x0D, 0x18, 0xC9 } \
20681 }
20682 /* COM compatibility */
20683 VBOX_EXTERN_CONST(nsIID, IID_IMachineStateChangedEvent);
20684 #   ifndef VBOX_WITH_GLUE
20685 struct IMachineStateChangedEvent_vtbl
20686 {
20687     struct IMachineEvent_vtbl imachineevent;
20688 
20689     nsresult (*GetState)(IMachineStateChangedEvent *pThis, PRUint32 *state);
20690 
20691 };
20692 #   else /* VBOX_WITH_GLUE */
20693 struct IMachineStateChangedEventVtbl
20694 {
20695     nsresult (*QueryInterface)(IMachineStateChangedEvent *pThis, const nsID *iid, void **resultp);
20696     nsrefcnt (*AddRef)(IMachineStateChangedEvent *pThis);
20697     nsrefcnt (*Release)(IMachineStateChangedEvent *pThis);
20698     nsresult (*GetType)(IMachineStateChangedEvent *pThis, PRUint32 *type);
20699 
20700     nsresult (*GetSource)(IMachineStateChangedEvent *pThis, IEventSource * *source);
20701 
20702     nsresult (*GetWaitable)(IMachineStateChangedEvent *pThis, PRBool *waitable);
20703 
20704     nsresult (*SetProcessed)(IMachineStateChangedEvent *pThis );
20705 
20706     nsresult (*WaitProcessed)(
20707         IMachineStateChangedEvent *pThis,
20708         PRInt32 timeout,
20709         PRBool * result
20710     );
20711 
20712     nsresult (*GetMachineId)(IMachineStateChangedEvent *pThis, PRUnichar * *machineId);
20713 
20714     nsresult (*GetState)(IMachineStateChangedEvent *pThis, PRUint32 *state);
20715 
20716 };
20717 #    define IMachineStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20718 #    define IMachineStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20719 #    define IMachineStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
20720 #    define IMachineStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20721 #    define IMachineStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20722 #    define IMachineStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20723 #    define IMachineStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20724 #    define IMachineStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20725 #    define IMachineStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20726 #    define IMachineStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
20727 #    define IMachineStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
20728 #    define IMachineStateChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
20729 #    define IMachineStateChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
20730 #    define IMachineStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
20731 #    define IMachineStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
20732 #   endif /* VBOX_WITH_GLUE */
20733 
20734 interface IMachineStateChangedEvent
20735 {
20736 #   ifndef VBOX_WITH_GLUE
20737     struct IMachineStateChangedEvent_vtbl *vtbl;
20738 #   else /* VBOX_WITH_GLUE */
20739     CONST_VTBL struct IMachineStateChangedEventVtbl *lpVtbl;
20740 #   endif /* VBOX_WITH_GLUE */
20741 };
20742 /* End of struct IMachineStateChangedEvent declaration */
20743 
20744 
20745 /* Start of struct IMachineDataChangedEvent declaration */
20746 #   define IMACHINEDATACHANGEDEVENT_IID_STR "abe94809-2e88-4436-83d7-50f3e64d0503"
20747 #   define IMACHINEDATACHANGEDEVENT_IID { \
20748     0xabe94809, 0x2e88, 0x4436, \
20749     { 0x83, 0xd7, 0x50, 0xf3, 0xe6, 0x4d, 0x05, 0x03 } \
20750 }
20751 /* COM compatibility */
20752 VBOX_EXTERN_CONST(nsIID, IID_IMachineDataChangedEvent);
20753 #   ifndef VBOX_WITH_GLUE
20754 struct IMachineDataChangedEvent_vtbl
20755 {
20756     struct IMachineEvent_vtbl imachineevent;
20757 
20758     nsresult (*GetTemporary)(IMachineDataChangedEvent *pThis, PRBool *temporary);
20759 
20760 };
20761 #   else /* VBOX_WITH_GLUE */
20762 struct IMachineDataChangedEventVtbl
20763 {
20764     nsresult (*QueryInterface)(IMachineDataChangedEvent *pThis, const nsID *iid, void **resultp);
20765     nsrefcnt (*AddRef)(IMachineDataChangedEvent *pThis);
20766     nsrefcnt (*Release)(IMachineDataChangedEvent *pThis);
20767     nsresult (*GetType)(IMachineDataChangedEvent *pThis, PRUint32 *type);
20768 
20769     nsresult (*GetSource)(IMachineDataChangedEvent *pThis, IEventSource * *source);
20770 
20771     nsresult (*GetWaitable)(IMachineDataChangedEvent *pThis, PRBool *waitable);
20772 
20773     nsresult (*SetProcessed)(IMachineDataChangedEvent *pThis );
20774 
20775     nsresult (*WaitProcessed)(
20776         IMachineDataChangedEvent *pThis,
20777         PRInt32 timeout,
20778         PRBool * result
20779     );
20780 
20781     nsresult (*GetMachineId)(IMachineDataChangedEvent *pThis, PRUnichar * *machineId);
20782 
20783     nsresult (*GetTemporary)(IMachineDataChangedEvent *pThis, PRBool *temporary);
20784 
20785 };
20786 #    define IMachineDataChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20787 #    define IMachineDataChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20788 #    define IMachineDataChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
20789 #    define IMachineDataChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20790 #    define IMachineDataChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20791 #    define IMachineDataChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20792 #    define IMachineDataChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20793 #    define IMachineDataChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20794 #    define IMachineDataChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20795 #    define IMachineDataChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
20796 #    define IMachineDataChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
20797 #    define IMachineDataChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
20798 #    define IMachineDataChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
20799 #    define IMachineDataChangedEvent_get_Temporary(p, aTemporary) ((p)->lpVtbl->GetTemporary(p, aTemporary))
20800 #    define IMachineDataChangedEvent_GetTemporary(p, aTemporary) ((p)->lpVtbl->GetTemporary(p, aTemporary))
20801 #   endif /* VBOX_WITH_GLUE */
20802 
20803 interface IMachineDataChangedEvent
20804 {
20805 #   ifndef VBOX_WITH_GLUE
20806     struct IMachineDataChangedEvent_vtbl *vtbl;
20807 #   else /* VBOX_WITH_GLUE */
20808     CONST_VTBL struct IMachineDataChangedEventVtbl *lpVtbl;
20809 #   endif /* VBOX_WITH_GLUE */
20810 };
20811 /* End of struct IMachineDataChangedEvent declaration */
20812 
20813 
20814 /* Start of struct IMediumRegisteredEvent declaration */
20815 #   define IMEDIUMREGISTEREDEVENT_IID_STR "53fac49a-b7f1-4a5a-a4ef-a11dd9c2a458"
20816 #   define IMEDIUMREGISTEREDEVENT_IID { \
20817     0x53fac49a, 0xb7f1, 0x4a5a, \
20818     { 0xa4, 0xef, 0xa1, 0x1d, 0xd9, 0xc2, 0xa4, 0x58 } \
20819 }
20820 /* COM compatibility */
20821 VBOX_EXTERN_CONST(nsIID, IID_IMediumRegisteredEvent);
20822 #   ifndef VBOX_WITH_GLUE
20823 struct IMediumRegisteredEvent_vtbl
20824 {
20825     struct IEvent_vtbl ievent;
20826 
20827     nsresult (*GetMediumId)(IMediumRegisteredEvent *pThis, PRUnichar * *mediumId);
20828 
20829     nsresult (*GetMediumType)(IMediumRegisteredEvent *pThis, PRUint32 *mediumType);
20830 
20831     nsresult (*GetRegistered)(IMediumRegisteredEvent *pThis, PRBool *registered);
20832 
20833 };
20834 #   else /* VBOX_WITH_GLUE */
20835 struct IMediumRegisteredEventVtbl
20836 {
20837     nsresult (*QueryInterface)(IMediumRegisteredEvent *pThis, const nsID *iid, void **resultp);
20838     nsrefcnt (*AddRef)(IMediumRegisteredEvent *pThis);
20839     nsrefcnt (*Release)(IMediumRegisteredEvent *pThis);
20840     nsresult (*GetType)(IMediumRegisteredEvent *pThis, PRUint32 *type);
20841 
20842     nsresult (*GetSource)(IMediumRegisteredEvent *pThis, IEventSource * *source);
20843 
20844     nsresult (*GetWaitable)(IMediumRegisteredEvent *pThis, PRBool *waitable);
20845 
20846     nsresult (*SetProcessed)(IMediumRegisteredEvent *pThis );
20847 
20848     nsresult (*WaitProcessed)(
20849         IMediumRegisteredEvent *pThis,
20850         PRInt32 timeout,
20851         PRBool * result
20852     );
20853 
20854     nsresult (*GetMediumId)(IMediumRegisteredEvent *pThis, PRUnichar * *mediumId);
20855 
20856     nsresult (*GetMediumType)(IMediumRegisteredEvent *pThis, PRUint32 *mediumType);
20857 
20858     nsresult (*GetRegistered)(IMediumRegisteredEvent *pThis, PRBool *registered);
20859 
20860 };
20861 #    define IMediumRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20862 #    define IMediumRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20863 #    define IMediumRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
20864 #    define IMediumRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20865 #    define IMediumRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20866 #    define IMediumRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20867 #    define IMediumRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20868 #    define IMediumRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20869 #    define IMediumRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20870 #    define IMediumRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
20871 #    define IMediumRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
20872 #    define IMediumRegisteredEvent_get_MediumId(p, aMediumId) ((p)->lpVtbl->GetMediumId(p, aMediumId))
20873 #    define IMediumRegisteredEvent_GetMediumId(p, aMediumId) ((p)->lpVtbl->GetMediumId(p, aMediumId))
20874 #    define IMediumRegisteredEvent_get_MediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
20875 #    define IMediumRegisteredEvent_GetMediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
20876 #    define IMediumRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
20877 #    define IMediumRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
20878 #   endif /* VBOX_WITH_GLUE */
20879 
20880 interface IMediumRegisteredEvent
20881 {
20882 #   ifndef VBOX_WITH_GLUE
20883     struct IMediumRegisteredEvent_vtbl *vtbl;
20884 #   else /* VBOX_WITH_GLUE */
20885     CONST_VTBL struct IMediumRegisteredEventVtbl *lpVtbl;
20886 #   endif /* VBOX_WITH_GLUE */
20887 };
20888 /* End of struct IMediumRegisteredEvent declaration */
20889 
20890 
20891 /* Start of struct IMediumConfigChangedEvent declaration */
20892 #   define IMEDIUMCONFIGCHANGEDEVENT_IID_STR "dd3e2654-a161-41f1-b583-4892f4a9d5d5"
20893 #   define IMEDIUMCONFIGCHANGEDEVENT_IID { \
20894     0xdd3e2654, 0xa161, 0x41f1, \
20895     { 0xb5, 0x83, 0x48, 0x92, 0xf4, 0xa9, 0xd5, 0xd5 } \
20896 }
20897 /* COM compatibility */
20898 VBOX_EXTERN_CONST(nsIID, IID_IMediumConfigChangedEvent);
20899 #   ifndef VBOX_WITH_GLUE
20900 struct IMediumConfigChangedEvent_vtbl
20901 {
20902     struct IEvent_vtbl ievent;
20903 
20904     nsresult (*GetMedium)(IMediumConfigChangedEvent *pThis, IMedium * *medium);
20905 
20906 };
20907 #   else /* VBOX_WITH_GLUE */
20908 struct IMediumConfigChangedEventVtbl
20909 {
20910     nsresult (*QueryInterface)(IMediumConfigChangedEvent *pThis, const nsID *iid, void **resultp);
20911     nsrefcnt (*AddRef)(IMediumConfigChangedEvent *pThis);
20912     nsrefcnt (*Release)(IMediumConfigChangedEvent *pThis);
20913     nsresult (*GetType)(IMediumConfigChangedEvent *pThis, PRUint32 *type);
20914 
20915     nsresult (*GetSource)(IMediumConfigChangedEvent *pThis, IEventSource * *source);
20916 
20917     nsresult (*GetWaitable)(IMediumConfigChangedEvent *pThis, PRBool *waitable);
20918 
20919     nsresult (*SetProcessed)(IMediumConfigChangedEvent *pThis );
20920 
20921     nsresult (*WaitProcessed)(
20922         IMediumConfigChangedEvent *pThis,
20923         PRInt32 timeout,
20924         PRBool * result
20925     );
20926 
20927     nsresult (*GetMedium)(IMediumConfigChangedEvent *pThis, IMedium * *medium);
20928 
20929 };
20930 #    define IMediumConfigChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20931 #    define IMediumConfigChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20932 #    define IMediumConfigChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
20933 #    define IMediumConfigChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20934 #    define IMediumConfigChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20935 #    define IMediumConfigChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20936 #    define IMediumConfigChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
20937 #    define IMediumConfigChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20938 #    define IMediumConfigChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
20939 #    define IMediumConfigChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
20940 #    define IMediumConfigChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
20941 #    define IMediumConfigChangedEvent_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
20942 #    define IMediumConfigChangedEvent_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
20943 #   endif /* VBOX_WITH_GLUE */
20944 
20945 interface IMediumConfigChangedEvent
20946 {
20947 #   ifndef VBOX_WITH_GLUE
20948     struct IMediumConfigChangedEvent_vtbl *vtbl;
20949 #   else /* VBOX_WITH_GLUE */
20950     CONST_VTBL struct IMediumConfigChangedEventVtbl *lpVtbl;
20951 #   endif /* VBOX_WITH_GLUE */
20952 };
20953 /* End of struct IMediumConfigChangedEvent declaration */
20954 
20955 
20956 /* Start of struct IMachineRegisteredEvent declaration */
20957 #   define IMACHINEREGISTEREDEVENT_IID_STR "c354a762-3ff2-4f2e-8f09-07382ee25088"
20958 #   define IMACHINEREGISTEREDEVENT_IID { \
20959     0xc354a762, 0x3ff2, 0x4f2e, \
20960     { 0x8f, 0x09, 0x07, 0x38, 0x2e, 0xe2, 0x50, 0x88 } \
20961 }
20962 /* COM compatibility */
20963 VBOX_EXTERN_CONST(nsIID, IID_IMachineRegisteredEvent);
20964 #   ifndef VBOX_WITH_GLUE
20965 struct IMachineRegisteredEvent_vtbl
20966 {
20967     struct IMachineEvent_vtbl imachineevent;
20968 
20969     nsresult (*GetRegistered)(IMachineRegisteredEvent *pThis, PRBool *registered);
20970 
20971 };
20972 #   else /* VBOX_WITH_GLUE */
20973 struct IMachineRegisteredEventVtbl
20974 {
20975     nsresult (*QueryInterface)(IMachineRegisteredEvent *pThis, const nsID *iid, void **resultp);
20976     nsrefcnt (*AddRef)(IMachineRegisteredEvent *pThis);
20977     nsrefcnt (*Release)(IMachineRegisteredEvent *pThis);
20978     nsresult (*GetType)(IMachineRegisteredEvent *pThis, PRUint32 *type);
20979 
20980     nsresult (*GetSource)(IMachineRegisteredEvent *pThis, IEventSource * *source);
20981 
20982     nsresult (*GetWaitable)(IMachineRegisteredEvent *pThis, PRBool *waitable);
20983 
20984     nsresult (*SetProcessed)(IMachineRegisteredEvent *pThis );
20985 
20986     nsresult (*WaitProcessed)(
20987         IMachineRegisteredEvent *pThis,
20988         PRInt32 timeout,
20989         PRBool * result
20990     );
20991 
20992     nsresult (*GetMachineId)(IMachineRegisteredEvent *pThis, PRUnichar * *machineId);
20993 
20994     nsresult (*GetRegistered)(IMachineRegisteredEvent *pThis, PRBool *registered);
20995 
20996 };
20997 #    define IMachineRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20998 #    define IMachineRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
20999 #    define IMachineRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
21000 #    define IMachineRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21001 #    define IMachineRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21002 #    define IMachineRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21003 #    define IMachineRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21004 #    define IMachineRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21005 #    define IMachineRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21006 #    define IMachineRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21007 #    define IMachineRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21008 #    define IMachineRegisteredEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21009 #    define IMachineRegisteredEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21010 #    define IMachineRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
21011 #    define IMachineRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
21012 #   endif /* VBOX_WITH_GLUE */
21013 
21014 interface IMachineRegisteredEvent
21015 {
21016 #   ifndef VBOX_WITH_GLUE
21017     struct IMachineRegisteredEvent_vtbl *vtbl;
21018 #   else /* VBOX_WITH_GLUE */
21019     CONST_VTBL struct IMachineRegisteredEventVtbl *lpVtbl;
21020 #   endif /* VBOX_WITH_GLUE */
21021 };
21022 /* End of struct IMachineRegisteredEvent declaration */
21023 
21024 
21025 /* Start of struct ISessionStateChangedEvent declaration */
21026 #   define ISESSIONSTATECHANGEDEVENT_IID_STR "714a3eef-799a-4489-86cd-fe8e45b2ff8e"
21027 #   define ISESSIONSTATECHANGEDEVENT_IID { \
21028     0x714a3eef, 0x799a, 0x4489, \
21029     { 0x86, 0xcd, 0xfe, 0x8e, 0x45, 0xb2, 0xff, 0x8e } \
21030 }
21031 /* COM compatibility */
21032 VBOX_EXTERN_CONST(nsIID, IID_ISessionStateChangedEvent);
21033 #   ifndef VBOX_WITH_GLUE
21034 struct ISessionStateChangedEvent_vtbl
21035 {
21036     struct IMachineEvent_vtbl imachineevent;
21037 
21038     nsresult (*GetState)(ISessionStateChangedEvent *pThis, PRUint32 *state);
21039 
21040 };
21041 #   else /* VBOX_WITH_GLUE */
21042 struct ISessionStateChangedEventVtbl
21043 {
21044     nsresult (*QueryInterface)(ISessionStateChangedEvent *pThis, const nsID *iid, void **resultp);
21045     nsrefcnt (*AddRef)(ISessionStateChangedEvent *pThis);
21046     nsrefcnt (*Release)(ISessionStateChangedEvent *pThis);
21047     nsresult (*GetType)(ISessionStateChangedEvent *pThis, PRUint32 *type);
21048 
21049     nsresult (*GetSource)(ISessionStateChangedEvent *pThis, IEventSource * *source);
21050 
21051     nsresult (*GetWaitable)(ISessionStateChangedEvent *pThis, PRBool *waitable);
21052 
21053     nsresult (*SetProcessed)(ISessionStateChangedEvent *pThis );
21054 
21055     nsresult (*WaitProcessed)(
21056         ISessionStateChangedEvent *pThis,
21057         PRInt32 timeout,
21058         PRBool * result
21059     );
21060 
21061     nsresult (*GetMachineId)(ISessionStateChangedEvent *pThis, PRUnichar * *machineId);
21062 
21063     nsresult (*GetState)(ISessionStateChangedEvent *pThis, PRUint32 *state);
21064 
21065 };
21066 #    define ISessionStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21067 #    define ISessionStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21068 #    define ISessionStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21069 #    define ISessionStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21070 #    define ISessionStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21071 #    define ISessionStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21072 #    define ISessionStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21073 #    define ISessionStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21074 #    define ISessionStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21075 #    define ISessionStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21076 #    define ISessionStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21077 #    define ISessionStateChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21078 #    define ISessionStateChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21079 #    define ISessionStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
21080 #    define ISessionStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
21081 #   endif /* VBOX_WITH_GLUE */
21082 
21083 interface ISessionStateChangedEvent
21084 {
21085 #   ifndef VBOX_WITH_GLUE
21086     struct ISessionStateChangedEvent_vtbl *vtbl;
21087 #   else /* VBOX_WITH_GLUE */
21088     CONST_VTBL struct ISessionStateChangedEventVtbl *lpVtbl;
21089 #   endif /* VBOX_WITH_GLUE */
21090 };
21091 /* End of struct ISessionStateChangedEvent declaration */
21092 
21093 
21094 /* Start of struct IGuestPropertyChangedEvent declaration */
21095 #   define IGUESTPROPERTYCHANGEDEVENT_IID_STR "3f63597a-26f1-4edb-8dd2-6bddd0912368"
21096 #   define IGUESTPROPERTYCHANGEDEVENT_IID { \
21097     0x3f63597a, 0x26f1, 0x4edb, \
21098     { 0x8d, 0xd2, 0x6b, 0xdd, 0xd0, 0x91, 0x23, 0x68 } \
21099 }
21100 /* COM compatibility */
21101 VBOX_EXTERN_CONST(nsIID, IID_IGuestPropertyChangedEvent);
21102 #   ifndef VBOX_WITH_GLUE
21103 struct IGuestPropertyChangedEvent_vtbl
21104 {
21105     struct IMachineEvent_vtbl imachineevent;
21106 
21107     nsresult (*GetName)(IGuestPropertyChangedEvent *pThis, PRUnichar * *name);
21108 
21109     nsresult (*GetValue)(IGuestPropertyChangedEvent *pThis, PRUnichar * *value);
21110 
21111     nsresult (*GetFlags)(IGuestPropertyChangedEvent *pThis, PRUnichar * *flags);
21112 
21113 };
21114 #   else /* VBOX_WITH_GLUE */
21115 struct IGuestPropertyChangedEventVtbl
21116 {
21117     nsresult (*QueryInterface)(IGuestPropertyChangedEvent *pThis, const nsID *iid, void **resultp);
21118     nsrefcnt (*AddRef)(IGuestPropertyChangedEvent *pThis);
21119     nsrefcnt (*Release)(IGuestPropertyChangedEvent *pThis);
21120     nsresult (*GetType)(IGuestPropertyChangedEvent *pThis, PRUint32 *type);
21121 
21122     nsresult (*GetSource)(IGuestPropertyChangedEvent *pThis, IEventSource * *source);
21123 
21124     nsresult (*GetWaitable)(IGuestPropertyChangedEvent *pThis, PRBool *waitable);
21125 
21126     nsresult (*SetProcessed)(IGuestPropertyChangedEvent *pThis );
21127 
21128     nsresult (*WaitProcessed)(
21129         IGuestPropertyChangedEvent *pThis,
21130         PRInt32 timeout,
21131         PRBool * result
21132     );
21133 
21134     nsresult (*GetMachineId)(IGuestPropertyChangedEvent *pThis, PRUnichar * *machineId);
21135 
21136     nsresult (*GetName)(IGuestPropertyChangedEvent *pThis, PRUnichar * *name);
21137 
21138     nsresult (*GetValue)(IGuestPropertyChangedEvent *pThis, PRUnichar * *value);
21139 
21140     nsresult (*GetFlags)(IGuestPropertyChangedEvent *pThis, PRUnichar * *flags);
21141 
21142 };
21143 #    define IGuestPropertyChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21144 #    define IGuestPropertyChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21145 #    define IGuestPropertyChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21146 #    define IGuestPropertyChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21147 #    define IGuestPropertyChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21148 #    define IGuestPropertyChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21149 #    define IGuestPropertyChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21150 #    define IGuestPropertyChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21151 #    define IGuestPropertyChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21152 #    define IGuestPropertyChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21153 #    define IGuestPropertyChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21154 #    define IGuestPropertyChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21155 #    define IGuestPropertyChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21156 #    define IGuestPropertyChangedEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21157 #    define IGuestPropertyChangedEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21158 #    define IGuestPropertyChangedEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
21159 #    define IGuestPropertyChangedEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
21160 #    define IGuestPropertyChangedEvent_get_Flags(p, aFlags) ((p)->lpVtbl->GetFlags(p, aFlags))
21161 #    define IGuestPropertyChangedEvent_GetFlags(p, aFlags) ((p)->lpVtbl->GetFlags(p, aFlags))
21162 #   endif /* VBOX_WITH_GLUE */
21163 
21164 interface IGuestPropertyChangedEvent
21165 {
21166 #   ifndef VBOX_WITH_GLUE
21167     struct IGuestPropertyChangedEvent_vtbl *vtbl;
21168 #   else /* VBOX_WITH_GLUE */
21169     CONST_VTBL struct IGuestPropertyChangedEventVtbl *lpVtbl;
21170 #   endif /* VBOX_WITH_GLUE */
21171 };
21172 /* End of struct IGuestPropertyChangedEvent declaration */
21173 
21174 
21175 /* Start of struct ISnapshotEvent declaration */
21176 #   define ISNAPSHOTEVENT_IID_STR "21637b0e-34b8-42d3-acfb-7e96daf77c22"
21177 #   define ISNAPSHOTEVENT_IID { \
21178     0x21637b0e, 0x34b8, 0x42d3, \
21179     { 0xac, 0xfb, 0x7e, 0x96, 0xda, 0xf7, 0x7c, 0x22 } \
21180 }
21181 /* COM compatibility */
21182 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotEvent);
21183 #   ifndef VBOX_WITH_GLUE
21184 struct ISnapshotEvent_vtbl
21185 {
21186     struct IMachineEvent_vtbl imachineevent;
21187 
21188     nsresult (*GetSnapshotId)(ISnapshotEvent *pThis, PRUnichar * *snapshotId);
21189 
21190 };
21191 #   else /* VBOX_WITH_GLUE */
21192 struct ISnapshotEventVtbl
21193 {
21194     nsresult (*QueryInterface)(ISnapshotEvent *pThis, const nsID *iid, void **resultp);
21195     nsrefcnt (*AddRef)(ISnapshotEvent *pThis);
21196     nsrefcnt (*Release)(ISnapshotEvent *pThis);
21197     nsresult (*GetType)(ISnapshotEvent *pThis, PRUint32 *type);
21198 
21199     nsresult (*GetSource)(ISnapshotEvent *pThis, IEventSource * *source);
21200 
21201     nsresult (*GetWaitable)(ISnapshotEvent *pThis, PRBool *waitable);
21202 
21203     nsresult (*SetProcessed)(ISnapshotEvent *pThis );
21204 
21205     nsresult (*WaitProcessed)(
21206         ISnapshotEvent *pThis,
21207         PRInt32 timeout,
21208         PRBool * result
21209     );
21210 
21211     nsresult (*GetMachineId)(ISnapshotEvent *pThis, PRUnichar * *machineId);
21212 
21213     nsresult (*GetSnapshotId)(ISnapshotEvent *pThis, PRUnichar * *snapshotId);
21214 
21215 };
21216 #    define ISnapshotEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21217 #    define ISnapshotEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21218 #    define ISnapshotEvent_Release(p) ((p)->lpVtbl->Release(p))
21219 #    define ISnapshotEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21220 #    define ISnapshotEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21221 #    define ISnapshotEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21222 #    define ISnapshotEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21223 #    define ISnapshotEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21224 #    define ISnapshotEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21225 #    define ISnapshotEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21226 #    define ISnapshotEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21227 #    define ISnapshotEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21228 #    define ISnapshotEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21229 #    define ISnapshotEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21230 #    define ISnapshotEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21231 #   endif /* VBOX_WITH_GLUE */
21232 
21233 interface ISnapshotEvent
21234 {
21235 #   ifndef VBOX_WITH_GLUE
21236     struct ISnapshotEvent_vtbl *vtbl;
21237 #   else /* VBOX_WITH_GLUE */
21238     CONST_VTBL struct ISnapshotEventVtbl *lpVtbl;
21239 #   endif /* VBOX_WITH_GLUE */
21240 };
21241 /* End of struct ISnapshotEvent declaration */
21242 
21243 
21244 /* Start of struct ISnapshotTakenEvent declaration */
21245 #   define ISNAPSHOTTAKENEVENT_IID_STR "d27c0b3d-6038-422c-b45e-6d4a0503d9f1"
21246 #   define ISNAPSHOTTAKENEVENT_IID { \
21247     0xd27c0b3d, 0x6038, 0x422c, \
21248     { 0xb4, 0x5e, 0x6d, 0x4a, 0x05, 0x03, 0xd9, 0xf1 } \
21249 }
21250 /* COM compatibility */
21251 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotTakenEvent);
21252 #   ifndef VBOX_WITH_GLUE
21253 struct ISnapshotTakenEvent_vtbl
21254 {
21255     struct ISnapshotEvent_vtbl isnapshotevent;
21256 
21257     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotTakenEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21258 
21259 };
21260 #   else /* VBOX_WITH_GLUE */
21261 struct ISnapshotTakenEventVtbl
21262 {
21263     nsresult (*QueryInterface)(ISnapshotTakenEvent *pThis, const nsID *iid, void **resultp);
21264     nsrefcnt (*AddRef)(ISnapshotTakenEvent *pThis);
21265     nsrefcnt (*Release)(ISnapshotTakenEvent *pThis);
21266     nsresult (*GetType)(ISnapshotTakenEvent *pThis, PRUint32 *type);
21267 
21268     nsresult (*GetSource)(ISnapshotTakenEvent *pThis, IEventSource * *source);
21269 
21270     nsresult (*GetWaitable)(ISnapshotTakenEvent *pThis, PRBool *waitable);
21271 
21272     nsresult (*SetProcessed)(ISnapshotTakenEvent *pThis );
21273 
21274     nsresult (*WaitProcessed)(
21275         ISnapshotTakenEvent *pThis,
21276         PRInt32 timeout,
21277         PRBool * result
21278     );
21279 
21280     nsresult (*GetMachineId)(ISnapshotTakenEvent *pThis, PRUnichar * *machineId);
21281 
21282     nsresult (*GetSnapshotId)(ISnapshotTakenEvent *pThis, PRUnichar * *snapshotId);
21283 
21284     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotTakenEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21285 
21286 };
21287 #    define ISnapshotTakenEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21288 #    define ISnapshotTakenEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21289 #    define ISnapshotTakenEvent_Release(p) ((p)->lpVtbl->Release(p))
21290 #    define ISnapshotTakenEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21291 #    define ISnapshotTakenEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21292 #    define ISnapshotTakenEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21293 #    define ISnapshotTakenEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21294 #    define ISnapshotTakenEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21295 #    define ISnapshotTakenEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21296 #    define ISnapshotTakenEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21297 #    define ISnapshotTakenEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21298 #    define ISnapshotTakenEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21299 #    define ISnapshotTakenEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21300 #    define ISnapshotTakenEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21301 #    define ISnapshotTakenEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21302 #    define ISnapshotTakenEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21303 #    define ISnapshotTakenEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21304 #   endif /* VBOX_WITH_GLUE */
21305 
21306 interface ISnapshotTakenEvent
21307 {
21308 #   ifndef VBOX_WITH_GLUE
21309     struct ISnapshotTakenEvent_vtbl *vtbl;
21310 #   else /* VBOX_WITH_GLUE */
21311     CONST_VTBL struct ISnapshotTakenEventVtbl *lpVtbl;
21312 #   endif /* VBOX_WITH_GLUE */
21313 };
21314 /* End of struct ISnapshotTakenEvent declaration */
21315 
21316 
21317 /* Start of struct ISnapshotDeletedEvent declaration */
21318 #   define ISNAPSHOTDELETEDEVENT_IID_STR "c48f3401-4a9e-43f4-b7a7-54bd285e22f4"
21319 #   define ISNAPSHOTDELETEDEVENT_IID { \
21320     0xc48f3401, 0x4a9e, 0x43f4, \
21321     { 0xb7, 0xa7, 0x54, 0xbd, 0x28, 0x5e, 0x22, 0xf4 } \
21322 }
21323 /* COM compatibility */
21324 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotDeletedEvent);
21325 #   ifndef VBOX_WITH_GLUE
21326 struct ISnapshotDeletedEvent_vtbl
21327 {
21328     struct ISnapshotEvent_vtbl isnapshotevent;
21329 
21330     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotDeletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21331 
21332 };
21333 #   else /* VBOX_WITH_GLUE */
21334 struct ISnapshotDeletedEventVtbl
21335 {
21336     nsresult (*QueryInterface)(ISnapshotDeletedEvent *pThis, const nsID *iid, void **resultp);
21337     nsrefcnt (*AddRef)(ISnapshotDeletedEvent *pThis);
21338     nsrefcnt (*Release)(ISnapshotDeletedEvent *pThis);
21339     nsresult (*GetType)(ISnapshotDeletedEvent *pThis, PRUint32 *type);
21340 
21341     nsresult (*GetSource)(ISnapshotDeletedEvent *pThis, IEventSource * *source);
21342 
21343     nsresult (*GetWaitable)(ISnapshotDeletedEvent *pThis, PRBool *waitable);
21344 
21345     nsresult (*SetProcessed)(ISnapshotDeletedEvent *pThis );
21346 
21347     nsresult (*WaitProcessed)(
21348         ISnapshotDeletedEvent *pThis,
21349         PRInt32 timeout,
21350         PRBool * result
21351     );
21352 
21353     nsresult (*GetMachineId)(ISnapshotDeletedEvent *pThis, PRUnichar * *machineId);
21354 
21355     nsresult (*GetSnapshotId)(ISnapshotDeletedEvent *pThis, PRUnichar * *snapshotId);
21356 
21357     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotDeletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21358 
21359 };
21360 #    define ISnapshotDeletedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21361 #    define ISnapshotDeletedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21362 #    define ISnapshotDeletedEvent_Release(p) ((p)->lpVtbl->Release(p))
21363 #    define ISnapshotDeletedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21364 #    define ISnapshotDeletedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21365 #    define ISnapshotDeletedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21366 #    define ISnapshotDeletedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21367 #    define ISnapshotDeletedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21368 #    define ISnapshotDeletedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21369 #    define ISnapshotDeletedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21370 #    define ISnapshotDeletedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21371 #    define ISnapshotDeletedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21372 #    define ISnapshotDeletedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21373 #    define ISnapshotDeletedEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21374 #    define ISnapshotDeletedEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21375 #    define ISnapshotDeletedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21376 #    define ISnapshotDeletedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21377 #   endif /* VBOX_WITH_GLUE */
21378 
21379 interface ISnapshotDeletedEvent
21380 {
21381 #   ifndef VBOX_WITH_GLUE
21382     struct ISnapshotDeletedEvent_vtbl *vtbl;
21383 #   else /* VBOX_WITH_GLUE */
21384     CONST_VTBL struct ISnapshotDeletedEventVtbl *lpVtbl;
21385 #   endif /* VBOX_WITH_GLUE */
21386 };
21387 /* End of struct ISnapshotDeletedEvent declaration */
21388 
21389 
21390 /* Start of struct ISnapshotRestoredEvent declaration */
21391 #   define ISNAPSHOTRESTOREDEVENT_IID_STR "f4d803b4-9b2d-4377-bfe6-9702e881516b"
21392 #   define ISNAPSHOTRESTOREDEVENT_IID { \
21393     0xf4d803b4, 0x9b2d, 0x4377, \
21394     { 0xbf, 0xe6, 0x97, 0x02, 0xe8, 0x81, 0x51, 0x6b } \
21395 }
21396 /* COM compatibility */
21397 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotRestoredEvent);
21398 #   ifndef VBOX_WITH_GLUE
21399 struct ISnapshotRestoredEvent_vtbl
21400 {
21401     struct ISnapshotEvent_vtbl isnapshotevent;
21402 
21403     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotRestoredEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21404 
21405 };
21406 #   else /* VBOX_WITH_GLUE */
21407 struct ISnapshotRestoredEventVtbl
21408 {
21409     nsresult (*QueryInterface)(ISnapshotRestoredEvent *pThis, const nsID *iid, void **resultp);
21410     nsrefcnt (*AddRef)(ISnapshotRestoredEvent *pThis);
21411     nsrefcnt (*Release)(ISnapshotRestoredEvent *pThis);
21412     nsresult (*GetType)(ISnapshotRestoredEvent *pThis, PRUint32 *type);
21413 
21414     nsresult (*GetSource)(ISnapshotRestoredEvent *pThis, IEventSource * *source);
21415 
21416     nsresult (*GetWaitable)(ISnapshotRestoredEvent *pThis, PRBool *waitable);
21417 
21418     nsresult (*SetProcessed)(ISnapshotRestoredEvent *pThis );
21419 
21420     nsresult (*WaitProcessed)(
21421         ISnapshotRestoredEvent *pThis,
21422         PRInt32 timeout,
21423         PRBool * result
21424     );
21425 
21426     nsresult (*GetMachineId)(ISnapshotRestoredEvent *pThis, PRUnichar * *machineId);
21427 
21428     nsresult (*GetSnapshotId)(ISnapshotRestoredEvent *pThis, PRUnichar * *snapshotId);
21429 
21430     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotRestoredEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21431 
21432 };
21433 #    define ISnapshotRestoredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21434 #    define ISnapshotRestoredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21435 #    define ISnapshotRestoredEvent_Release(p) ((p)->lpVtbl->Release(p))
21436 #    define ISnapshotRestoredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21437 #    define ISnapshotRestoredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21438 #    define ISnapshotRestoredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21439 #    define ISnapshotRestoredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21440 #    define ISnapshotRestoredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21441 #    define ISnapshotRestoredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21442 #    define ISnapshotRestoredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21443 #    define ISnapshotRestoredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21444 #    define ISnapshotRestoredEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21445 #    define ISnapshotRestoredEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21446 #    define ISnapshotRestoredEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21447 #    define ISnapshotRestoredEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21448 #    define ISnapshotRestoredEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21449 #    define ISnapshotRestoredEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21450 #   endif /* VBOX_WITH_GLUE */
21451 
21452 interface ISnapshotRestoredEvent
21453 {
21454 #   ifndef VBOX_WITH_GLUE
21455     struct ISnapshotRestoredEvent_vtbl *vtbl;
21456 #   else /* VBOX_WITH_GLUE */
21457     CONST_VTBL struct ISnapshotRestoredEventVtbl *lpVtbl;
21458 #   endif /* VBOX_WITH_GLUE */
21459 };
21460 /* End of struct ISnapshotRestoredEvent declaration */
21461 
21462 
21463 /* Start of struct ISnapshotChangedEvent declaration */
21464 #   define ISNAPSHOTCHANGEDEVENT_IID_STR "07541941-8079-447a-a33e-47a69c7980db"
21465 #   define ISNAPSHOTCHANGEDEVENT_IID { \
21466     0x07541941, 0x8079, 0x447a, \
21467     { 0xa3, 0x3e, 0x47, 0xa6, 0x9c, 0x79, 0x80, 0xdb } \
21468 }
21469 /* COM compatibility */
21470 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotChangedEvent);
21471 #   ifndef VBOX_WITH_GLUE
21472 struct ISnapshotChangedEvent_vtbl
21473 {
21474     struct ISnapshotEvent_vtbl isnapshotevent;
21475 
21476     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21477 
21478 };
21479 #   else /* VBOX_WITH_GLUE */
21480 struct ISnapshotChangedEventVtbl
21481 {
21482     nsresult (*QueryInterface)(ISnapshotChangedEvent *pThis, const nsID *iid, void **resultp);
21483     nsrefcnt (*AddRef)(ISnapshotChangedEvent *pThis);
21484     nsrefcnt (*Release)(ISnapshotChangedEvent *pThis);
21485     nsresult (*GetType)(ISnapshotChangedEvent *pThis, PRUint32 *type);
21486 
21487     nsresult (*GetSource)(ISnapshotChangedEvent *pThis, IEventSource * *source);
21488 
21489     nsresult (*GetWaitable)(ISnapshotChangedEvent *pThis, PRBool *waitable);
21490 
21491     nsresult (*SetProcessed)(ISnapshotChangedEvent *pThis );
21492 
21493     nsresult (*WaitProcessed)(
21494         ISnapshotChangedEvent *pThis,
21495         PRInt32 timeout,
21496         PRBool * result
21497     );
21498 
21499     nsresult (*GetMachineId)(ISnapshotChangedEvent *pThis, PRUnichar * *machineId);
21500 
21501     nsresult (*GetSnapshotId)(ISnapshotChangedEvent *pThis, PRUnichar * *snapshotId);
21502 
21503     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21504 
21505 };
21506 #    define ISnapshotChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21507 #    define ISnapshotChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21508 #    define ISnapshotChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21509 #    define ISnapshotChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21510 #    define ISnapshotChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21511 #    define ISnapshotChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21512 #    define ISnapshotChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21513 #    define ISnapshotChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21514 #    define ISnapshotChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21515 #    define ISnapshotChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21516 #    define ISnapshotChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21517 #    define ISnapshotChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21518 #    define ISnapshotChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
21519 #    define ISnapshotChangedEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21520 #    define ISnapshotChangedEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
21521 #    define ISnapshotChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21522 #    define ISnapshotChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21523 #   endif /* VBOX_WITH_GLUE */
21524 
21525 interface ISnapshotChangedEvent
21526 {
21527 #   ifndef VBOX_WITH_GLUE
21528     struct ISnapshotChangedEvent_vtbl *vtbl;
21529 #   else /* VBOX_WITH_GLUE */
21530     CONST_VTBL struct ISnapshotChangedEventVtbl *lpVtbl;
21531 #   endif /* VBOX_WITH_GLUE */
21532 };
21533 /* End of struct ISnapshotChangedEvent declaration */
21534 
21535 
21536 /* Start of struct IMousePointerShapeChangedEvent declaration */
21537 #   define IMOUSEPOINTERSHAPECHANGEDEVENT_IID_STR "a6dcf6e8-416b-4181-8c4a-45ec95177aef"
21538 #   define IMOUSEPOINTERSHAPECHANGEDEVENT_IID { \
21539     0xa6dcf6e8, 0x416b, 0x4181, \
21540     { 0x8c, 0x4a, 0x45, 0xec, 0x95, 0x17, 0x7a, 0xef } \
21541 }
21542 /* COM compatibility */
21543 VBOX_EXTERN_CONST(nsIID, IID_IMousePointerShapeChangedEvent);
21544 #   ifndef VBOX_WITH_GLUE
21545 struct IMousePointerShapeChangedEvent_vtbl
21546 {
21547     struct IEvent_vtbl ievent;
21548 
21549     nsresult (*GetVisible)(IMousePointerShapeChangedEvent *pThis, PRBool *visible);
21550 
21551     nsresult (*GetAlpha)(IMousePointerShapeChangedEvent *pThis, PRBool *alpha);
21552 
21553     nsresult (*GetXhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *xhot);
21554 
21555     nsresult (*GetYhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *yhot);
21556 
21557     nsresult (*GetWidth)(IMousePointerShapeChangedEvent *pThis, PRUint32 *width);
21558 
21559     nsresult (*GetHeight)(IMousePointerShapeChangedEvent *pThis, PRUint32 *height);
21560 
21561     nsresult (*GetShape)(IMousePointerShapeChangedEvent *pThis, PRUint32 *shapeSize, PRUint8 **shape);
21562 
21563 };
21564 #   else /* VBOX_WITH_GLUE */
21565 struct IMousePointerShapeChangedEventVtbl
21566 {
21567     nsresult (*QueryInterface)(IMousePointerShapeChangedEvent *pThis, const nsID *iid, void **resultp);
21568     nsrefcnt (*AddRef)(IMousePointerShapeChangedEvent *pThis);
21569     nsrefcnt (*Release)(IMousePointerShapeChangedEvent *pThis);
21570     nsresult (*GetType)(IMousePointerShapeChangedEvent *pThis, PRUint32 *type);
21571 
21572     nsresult (*GetSource)(IMousePointerShapeChangedEvent *pThis, IEventSource * *source);
21573 
21574     nsresult (*GetWaitable)(IMousePointerShapeChangedEvent *pThis, PRBool *waitable);
21575 
21576     nsresult (*SetProcessed)(IMousePointerShapeChangedEvent *pThis );
21577 
21578     nsresult (*WaitProcessed)(
21579         IMousePointerShapeChangedEvent *pThis,
21580         PRInt32 timeout,
21581         PRBool * result
21582     );
21583 
21584     nsresult (*GetVisible)(IMousePointerShapeChangedEvent *pThis, PRBool *visible);
21585 
21586     nsresult (*GetAlpha)(IMousePointerShapeChangedEvent *pThis, PRBool *alpha);
21587 
21588     nsresult (*GetXhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *xhot);
21589 
21590     nsresult (*GetYhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *yhot);
21591 
21592     nsresult (*GetWidth)(IMousePointerShapeChangedEvent *pThis, PRUint32 *width);
21593 
21594     nsresult (*GetHeight)(IMousePointerShapeChangedEvent *pThis, PRUint32 *height);
21595 
21596     nsresult (*GetShape)(IMousePointerShapeChangedEvent *pThis, PRUint32 *shapeSize, PRUint8 **shape);
21597 
21598 };
21599 #    define IMousePointerShapeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21600 #    define IMousePointerShapeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21601 #    define IMousePointerShapeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21602 #    define IMousePointerShapeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21603 #    define IMousePointerShapeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21604 #    define IMousePointerShapeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21605 #    define IMousePointerShapeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21606 #    define IMousePointerShapeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21607 #    define IMousePointerShapeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21608 #    define IMousePointerShapeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21609 #    define IMousePointerShapeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21610 #    define IMousePointerShapeChangedEvent_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
21611 #    define IMousePointerShapeChangedEvent_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
21612 #    define IMousePointerShapeChangedEvent_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
21613 #    define IMousePointerShapeChangedEvent_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
21614 #    define IMousePointerShapeChangedEvent_get_Xhot(p, aXhot) ((p)->lpVtbl->GetXhot(p, aXhot))
21615 #    define IMousePointerShapeChangedEvent_GetXhot(p, aXhot) ((p)->lpVtbl->GetXhot(p, aXhot))
21616 #    define IMousePointerShapeChangedEvent_get_Yhot(p, aYhot) ((p)->lpVtbl->GetYhot(p, aYhot))
21617 #    define IMousePointerShapeChangedEvent_GetYhot(p, aYhot) ((p)->lpVtbl->GetYhot(p, aYhot))
21618 #    define IMousePointerShapeChangedEvent_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
21619 #    define IMousePointerShapeChangedEvent_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
21620 #    define IMousePointerShapeChangedEvent_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
21621 #    define IMousePointerShapeChangedEvent_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
21622 #    define IMousePointerShapeChangedEvent_get_Shape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
21623 #    define IMousePointerShapeChangedEvent_GetShape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
21624 #   endif /* VBOX_WITH_GLUE */
21625 
21626 interface IMousePointerShapeChangedEvent
21627 {
21628 #   ifndef VBOX_WITH_GLUE
21629     struct IMousePointerShapeChangedEvent_vtbl *vtbl;
21630 #   else /* VBOX_WITH_GLUE */
21631     CONST_VTBL struct IMousePointerShapeChangedEventVtbl *lpVtbl;
21632 #   endif /* VBOX_WITH_GLUE */
21633 };
21634 /* End of struct IMousePointerShapeChangedEvent declaration */
21635 
21636 
21637 /* Start of struct IMouseCapabilityChangedEvent declaration */
21638 #   define IMOUSECAPABILITYCHANGEDEVENT_IID_STR "70e7779a-e64a-4908-804e-371cad23a756"
21639 #   define IMOUSECAPABILITYCHANGEDEVENT_IID { \
21640     0x70e7779a, 0xe64a, 0x4908, \
21641     { 0x80, 0x4e, 0x37, 0x1c, 0xad, 0x23, 0xa7, 0x56 } \
21642 }
21643 /* COM compatibility */
21644 VBOX_EXTERN_CONST(nsIID, IID_IMouseCapabilityChangedEvent);
21645 #   ifndef VBOX_WITH_GLUE
21646 struct IMouseCapabilityChangedEvent_vtbl
21647 {
21648     struct IEvent_vtbl ievent;
21649 
21650     nsresult (*GetSupportsAbsolute)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsAbsolute);
21651 
21652     nsresult (*GetSupportsRelative)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsRelative);
21653 
21654     nsresult (*GetSupportsMultiTouch)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsMultiTouch);
21655 
21656     nsresult (*GetNeedsHostCursor)(IMouseCapabilityChangedEvent *pThis, PRBool *needsHostCursor);
21657 
21658 };
21659 #   else /* VBOX_WITH_GLUE */
21660 struct IMouseCapabilityChangedEventVtbl
21661 {
21662     nsresult (*QueryInterface)(IMouseCapabilityChangedEvent *pThis, const nsID *iid, void **resultp);
21663     nsrefcnt (*AddRef)(IMouseCapabilityChangedEvent *pThis);
21664     nsrefcnt (*Release)(IMouseCapabilityChangedEvent *pThis);
21665     nsresult (*GetType)(IMouseCapabilityChangedEvent *pThis, PRUint32 *type);
21666 
21667     nsresult (*GetSource)(IMouseCapabilityChangedEvent *pThis, IEventSource * *source);
21668 
21669     nsresult (*GetWaitable)(IMouseCapabilityChangedEvent *pThis, PRBool *waitable);
21670 
21671     nsresult (*SetProcessed)(IMouseCapabilityChangedEvent *pThis );
21672 
21673     nsresult (*WaitProcessed)(
21674         IMouseCapabilityChangedEvent *pThis,
21675         PRInt32 timeout,
21676         PRBool * result
21677     );
21678 
21679     nsresult (*GetSupportsAbsolute)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsAbsolute);
21680 
21681     nsresult (*GetSupportsRelative)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsRelative);
21682 
21683     nsresult (*GetSupportsMultiTouch)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsMultiTouch);
21684 
21685     nsresult (*GetNeedsHostCursor)(IMouseCapabilityChangedEvent *pThis, PRBool *needsHostCursor);
21686 
21687 };
21688 #    define IMouseCapabilityChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21689 #    define IMouseCapabilityChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21690 #    define IMouseCapabilityChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21691 #    define IMouseCapabilityChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21692 #    define IMouseCapabilityChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21693 #    define IMouseCapabilityChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21694 #    define IMouseCapabilityChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21695 #    define IMouseCapabilityChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21696 #    define IMouseCapabilityChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21697 #    define IMouseCapabilityChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21698 #    define IMouseCapabilityChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21699 #    define IMouseCapabilityChangedEvent_get_SupportsAbsolute(p, aSupportsAbsolute) ((p)->lpVtbl->GetSupportsAbsolute(p, aSupportsAbsolute))
21700 #    define IMouseCapabilityChangedEvent_GetSupportsAbsolute(p, aSupportsAbsolute) ((p)->lpVtbl->GetSupportsAbsolute(p, aSupportsAbsolute))
21701 #    define IMouseCapabilityChangedEvent_get_SupportsRelative(p, aSupportsRelative) ((p)->lpVtbl->GetSupportsRelative(p, aSupportsRelative))
21702 #    define IMouseCapabilityChangedEvent_GetSupportsRelative(p, aSupportsRelative) ((p)->lpVtbl->GetSupportsRelative(p, aSupportsRelative))
21703 #    define IMouseCapabilityChangedEvent_get_SupportsMultiTouch(p, aSupportsMultiTouch) ((p)->lpVtbl->GetSupportsMultiTouch(p, aSupportsMultiTouch))
21704 #    define IMouseCapabilityChangedEvent_GetSupportsMultiTouch(p, aSupportsMultiTouch) ((p)->lpVtbl->GetSupportsMultiTouch(p, aSupportsMultiTouch))
21705 #    define IMouseCapabilityChangedEvent_get_NeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
21706 #    define IMouseCapabilityChangedEvent_GetNeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
21707 #   endif /* VBOX_WITH_GLUE */
21708 
21709 interface IMouseCapabilityChangedEvent
21710 {
21711 #   ifndef VBOX_WITH_GLUE
21712     struct IMouseCapabilityChangedEvent_vtbl *vtbl;
21713 #   else /* VBOX_WITH_GLUE */
21714     CONST_VTBL struct IMouseCapabilityChangedEventVtbl *lpVtbl;
21715 #   endif /* VBOX_WITH_GLUE */
21716 };
21717 /* End of struct IMouseCapabilityChangedEvent declaration */
21718 
21719 
21720 /* Start of struct IKeyboardLedsChangedEvent declaration */
21721 #   define IKEYBOARDLEDSCHANGEDEVENT_IID_STR "6DDEF35E-4737-457B-99FC-BC52C851A44F"
21722 #   define IKEYBOARDLEDSCHANGEDEVENT_IID { \
21723     0x6DDEF35E, 0x4737, 0x457B, \
21724     { 0x99, 0xFC, 0xBC, 0x52, 0xC8, 0x51, 0xA4, 0x4F } \
21725 }
21726 /* COM compatibility */
21727 VBOX_EXTERN_CONST(nsIID, IID_IKeyboardLedsChangedEvent);
21728 #   ifndef VBOX_WITH_GLUE
21729 struct IKeyboardLedsChangedEvent_vtbl
21730 {
21731     struct IEvent_vtbl ievent;
21732 
21733     nsresult (*GetNumLock)(IKeyboardLedsChangedEvent *pThis, PRBool *numLock);
21734 
21735     nsresult (*GetCapsLock)(IKeyboardLedsChangedEvent *pThis, PRBool *capsLock);
21736 
21737     nsresult (*GetScrollLock)(IKeyboardLedsChangedEvent *pThis, PRBool *scrollLock);
21738 
21739 };
21740 #   else /* VBOX_WITH_GLUE */
21741 struct IKeyboardLedsChangedEventVtbl
21742 {
21743     nsresult (*QueryInterface)(IKeyboardLedsChangedEvent *pThis, const nsID *iid, void **resultp);
21744     nsrefcnt (*AddRef)(IKeyboardLedsChangedEvent *pThis);
21745     nsrefcnt (*Release)(IKeyboardLedsChangedEvent *pThis);
21746     nsresult (*GetType)(IKeyboardLedsChangedEvent *pThis, PRUint32 *type);
21747 
21748     nsresult (*GetSource)(IKeyboardLedsChangedEvent *pThis, IEventSource * *source);
21749 
21750     nsresult (*GetWaitable)(IKeyboardLedsChangedEvent *pThis, PRBool *waitable);
21751 
21752     nsresult (*SetProcessed)(IKeyboardLedsChangedEvent *pThis );
21753 
21754     nsresult (*WaitProcessed)(
21755         IKeyboardLedsChangedEvent *pThis,
21756         PRInt32 timeout,
21757         PRBool * result
21758     );
21759 
21760     nsresult (*GetNumLock)(IKeyboardLedsChangedEvent *pThis, PRBool *numLock);
21761 
21762     nsresult (*GetCapsLock)(IKeyboardLedsChangedEvent *pThis, PRBool *capsLock);
21763 
21764     nsresult (*GetScrollLock)(IKeyboardLedsChangedEvent *pThis, PRBool *scrollLock);
21765 
21766 };
21767 #    define IKeyboardLedsChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21768 #    define IKeyboardLedsChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21769 #    define IKeyboardLedsChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21770 #    define IKeyboardLedsChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21771 #    define IKeyboardLedsChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21772 #    define IKeyboardLedsChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21773 #    define IKeyboardLedsChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21774 #    define IKeyboardLedsChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21775 #    define IKeyboardLedsChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21776 #    define IKeyboardLedsChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21777 #    define IKeyboardLedsChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21778 #    define IKeyboardLedsChangedEvent_get_NumLock(p, aNumLock) ((p)->lpVtbl->GetNumLock(p, aNumLock))
21779 #    define IKeyboardLedsChangedEvent_GetNumLock(p, aNumLock) ((p)->lpVtbl->GetNumLock(p, aNumLock))
21780 #    define IKeyboardLedsChangedEvent_get_CapsLock(p, aCapsLock) ((p)->lpVtbl->GetCapsLock(p, aCapsLock))
21781 #    define IKeyboardLedsChangedEvent_GetCapsLock(p, aCapsLock) ((p)->lpVtbl->GetCapsLock(p, aCapsLock))
21782 #    define IKeyboardLedsChangedEvent_get_ScrollLock(p, aScrollLock) ((p)->lpVtbl->GetScrollLock(p, aScrollLock))
21783 #    define IKeyboardLedsChangedEvent_GetScrollLock(p, aScrollLock) ((p)->lpVtbl->GetScrollLock(p, aScrollLock))
21784 #   endif /* VBOX_WITH_GLUE */
21785 
21786 interface IKeyboardLedsChangedEvent
21787 {
21788 #   ifndef VBOX_WITH_GLUE
21789     struct IKeyboardLedsChangedEvent_vtbl *vtbl;
21790 #   else /* VBOX_WITH_GLUE */
21791     CONST_VTBL struct IKeyboardLedsChangedEventVtbl *lpVtbl;
21792 #   endif /* VBOX_WITH_GLUE */
21793 };
21794 /* End of struct IKeyboardLedsChangedEvent declaration */
21795 
21796 
21797 /* Start of struct IStateChangedEvent declaration */
21798 #   define ISTATECHANGEDEVENT_IID_STR "4376693C-CF37-453B-9289-3B0F521CAF27"
21799 #   define ISTATECHANGEDEVENT_IID { \
21800     0x4376693C, 0xCF37, 0x453B, \
21801     { 0x92, 0x89, 0x3B, 0x0F, 0x52, 0x1C, 0xAF, 0x27 } \
21802 }
21803 /* COM compatibility */
21804 VBOX_EXTERN_CONST(nsIID, IID_IStateChangedEvent);
21805 #   ifndef VBOX_WITH_GLUE
21806 struct IStateChangedEvent_vtbl
21807 {
21808     struct IEvent_vtbl ievent;
21809 
21810     nsresult (*GetState)(IStateChangedEvent *pThis, PRUint32 *state);
21811 
21812 };
21813 #   else /* VBOX_WITH_GLUE */
21814 struct IStateChangedEventVtbl
21815 {
21816     nsresult (*QueryInterface)(IStateChangedEvent *pThis, const nsID *iid, void **resultp);
21817     nsrefcnt (*AddRef)(IStateChangedEvent *pThis);
21818     nsrefcnt (*Release)(IStateChangedEvent *pThis);
21819     nsresult (*GetType)(IStateChangedEvent *pThis, PRUint32 *type);
21820 
21821     nsresult (*GetSource)(IStateChangedEvent *pThis, IEventSource * *source);
21822 
21823     nsresult (*GetWaitable)(IStateChangedEvent *pThis, PRBool *waitable);
21824 
21825     nsresult (*SetProcessed)(IStateChangedEvent *pThis );
21826 
21827     nsresult (*WaitProcessed)(
21828         IStateChangedEvent *pThis,
21829         PRInt32 timeout,
21830         PRBool * result
21831     );
21832 
21833     nsresult (*GetState)(IStateChangedEvent *pThis, PRUint32 *state);
21834 
21835 };
21836 #    define IStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21837 #    define IStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21838 #    define IStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21839 #    define IStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21840 #    define IStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21841 #    define IStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21842 #    define IStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21843 #    define IStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21844 #    define IStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21845 #    define IStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21846 #    define IStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21847 #    define IStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
21848 #    define IStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
21849 #   endif /* VBOX_WITH_GLUE */
21850 
21851 interface IStateChangedEvent
21852 {
21853 #   ifndef VBOX_WITH_GLUE
21854     struct IStateChangedEvent_vtbl *vtbl;
21855 #   else /* VBOX_WITH_GLUE */
21856     CONST_VTBL struct IStateChangedEventVtbl *lpVtbl;
21857 #   endif /* VBOX_WITH_GLUE */
21858 };
21859 /* End of struct IStateChangedEvent declaration */
21860 
21861 
21862 /* Start of struct IAdditionsStateChangedEvent declaration */
21863 #   define IADDITIONSSTATECHANGEDEVENT_IID_STR "D70F7915-DA7C-44C8-A7AC-9F173490446A"
21864 #   define IADDITIONSSTATECHANGEDEVENT_IID { \
21865     0xD70F7915, 0xDA7C, 0x44C8, \
21866     { 0xA7, 0xAC, 0x9F, 0x17, 0x34, 0x90, 0x44, 0x6A } \
21867 }
21868 /* COM compatibility */
21869 VBOX_EXTERN_CONST(nsIID, IID_IAdditionsStateChangedEvent);
21870 #   ifndef VBOX_WITH_GLUE
21871 struct IAdditionsStateChangedEvent_vtbl
21872 {
21873     struct IEvent_vtbl ievent;
21874 
21875     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IAdditionsStateChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21876 
21877 };
21878 #   else /* VBOX_WITH_GLUE */
21879 struct IAdditionsStateChangedEventVtbl
21880 {
21881     nsresult (*QueryInterface)(IAdditionsStateChangedEvent *pThis, const nsID *iid, void **resultp);
21882     nsrefcnt (*AddRef)(IAdditionsStateChangedEvent *pThis);
21883     nsrefcnt (*Release)(IAdditionsStateChangedEvent *pThis);
21884     nsresult (*GetType)(IAdditionsStateChangedEvent *pThis, PRUint32 *type);
21885 
21886     nsresult (*GetSource)(IAdditionsStateChangedEvent *pThis, IEventSource * *source);
21887 
21888     nsresult (*GetWaitable)(IAdditionsStateChangedEvent *pThis, PRBool *waitable);
21889 
21890     nsresult (*SetProcessed)(IAdditionsStateChangedEvent *pThis );
21891 
21892     nsresult (*WaitProcessed)(
21893         IAdditionsStateChangedEvent *pThis,
21894         PRInt32 timeout,
21895         PRBool * result
21896     );
21897 
21898     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IAdditionsStateChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
21899 
21900 };
21901 #    define IAdditionsStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21902 #    define IAdditionsStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21903 #    define IAdditionsStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21904 #    define IAdditionsStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21905 #    define IAdditionsStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21906 #    define IAdditionsStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21907 #    define IAdditionsStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21908 #    define IAdditionsStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21909 #    define IAdditionsStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21910 #    define IAdditionsStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21911 #    define IAdditionsStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21912 #    define IAdditionsStateChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21913 #    define IAdditionsStateChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
21914 #   endif /* VBOX_WITH_GLUE */
21915 
21916 interface IAdditionsStateChangedEvent
21917 {
21918 #   ifndef VBOX_WITH_GLUE
21919     struct IAdditionsStateChangedEvent_vtbl *vtbl;
21920 #   else /* VBOX_WITH_GLUE */
21921     CONST_VTBL struct IAdditionsStateChangedEventVtbl *lpVtbl;
21922 #   endif /* VBOX_WITH_GLUE */
21923 };
21924 /* End of struct IAdditionsStateChangedEvent declaration */
21925 
21926 
21927 /* Start of struct INetworkAdapterChangedEvent declaration */
21928 #   define INETWORKADAPTERCHANGEDEVENT_IID_STR "08889892-1EC6-4883-801D-77F56CFD0103"
21929 #   define INETWORKADAPTERCHANGEDEVENT_IID { \
21930     0x08889892, 0x1EC6, 0x4883, \
21931     { 0x80, 0x1D, 0x77, 0xF5, 0x6C, 0xFD, 0x01, 0x03 } \
21932 }
21933 /* COM compatibility */
21934 VBOX_EXTERN_CONST(nsIID, IID_INetworkAdapterChangedEvent);
21935 #   ifndef VBOX_WITH_GLUE
21936 struct INetworkAdapterChangedEvent_vtbl
21937 {
21938     struct IEvent_vtbl ievent;
21939 
21940     nsresult (*GetNetworkAdapter)(INetworkAdapterChangedEvent *pThis, INetworkAdapter * *networkAdapter);
21941 
21942 };
21943 #   else /* VBOX_WITH_GLUE */
21944 struct INetworkAdapterChangedEventVtbl
21945 {
21946     nsresult (*QueryInterface)(INetworkAdapterChangedEvent *pThis, const nsID *iid, void **resultp);
21947     nsrefcnt (*AddRef)(INetworkAdapterChangedEvent *pThis);
21948     nsrefcnt (*Release)(INetworkAdapterChangedEvent *pThis);
21949     nsresult (*GetType)(INetworkAdapterChangedEvent *pThis, PRUint32 *type);
21950 
21951     nsresult (*GetSource)(INetworkAdapterChangedEvent *pThis, IEventSource * *source);
21952 
21953     nsresult (*GetWaitable)(INetworkAdapterChangedEvent *pThis, PRBool *waitable);
21954 
21955     nsresult (*SetProcessed)(INetworkAdapterChangedEvent *pThis );
21956 
21957     nsresult (*WaitProcessed)(
21958         INetworkAdapterChangedEvent *pThis,
21959         PRInt32 timeout,
21960         PRBool * result
21961     );
21962 
21963     nsresult (*GetNetworkAdapter)(INetworkAdapterChangedEvent *pThis, INetworkAdapter * *networkAdapter);
21964 
21965 };
21966 #    define INetworkAdapterChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21967 #    define INetworkAdapterChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
21968 #    define INetworkAdapterChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
21969 #    define INetworkAdapterChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21970 #    define INetworkAdapterChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21971 #    define INetworkAdapterChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21972 #    define INetworkAdapterChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
21973 #    define INetworkAdapterChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21974 #    define INetworkAdapterChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
21975 #    define INetworkAdapterChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
21976 #    define INetworkAdapterChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
21977 #    define INetworkAdapterChangedEvent_get_NetworkAdapter(p, aNetworkAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aNetworkAdapter))
21978 #    define INetworkAdapterChangedEvent_GetNetworkAdapter(p, aNetworkAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aNetworkAdapter))
21979 #   endif /* VBOX_WITH_GLUE */
21980 
21981 interface INetworkAdapterChangedEvent
21982 {
21983 #   ifndef VBOX_WITH_GLUE
21984     struct INetworkAdapterChangedEvent_vtbl *vtbl;
21985 #   else /* VBOX_WITH_GLUE */
21986     CONST_VTBL struct INetworkAdapterChangedEventVtbl *lpVtbl;
21987 #   endif /* VBOX_WITH_GLUE */
21988 };
21989 /* End of struct INetworkAdapterChangedEvent declaration */
21990 
21991 
21992 /* Start of struct IAudioAdapterChangedEvent declaration */
21993 #   define IAUDIOADAPTERCHANGEDEVENT_IID_STR "D5ABC823-04D0-4DB6-8D66-DC2F033120E1"
21994 #   define IAUDIOADAPTERCHANGEDEVENT_IID { \
21995     0xD5ABC823, 0x04D0, 0x4DB6, \
21996     { 0x8D, 0x66, 0xDC, 0x2F, 0x03, 0x31, 0x20, 0xE1 } \
21997 }
21998 /* COM compatibility */
21999 VBOX_EXTERN_CONST(nsIID, IID_IAudioAdapterChangedEvent);
22000 #   ifndef VBOX_WITH_GLUE
22001 struct IAudioAdapterChangedEvent_vtbl
22002 {
22003     struct IEvent_vtbl ievent;
22004 
22005     nsresult (*GetAudioAdapter)(IAudioAdapterChangedEvent *pThis, IAudioAdapter * *audioAdapter);
22006 
22007 };
22008 #   else /* VBOX_WITH_GLUE */
22009 struct IAudioAdapterChangedEventVtbl
22010 {
22011     nsresult (*QueryInterface)(IAudioAdapterChangedEvent *pThis, const nsID *iid, void **resultp);
22012     nsrefcnt (*AddRef)(IAudioAdapterChangedEvent *pThis);
22013     nsrefcnt (*Release)(IAudioAdapterChangedEvent *pThis);
22014     nsresult (*GetType)(IAudioAdapterChangedEvent *pThis, PRUint32 *type);
22015 
22016     nsresult (*GetSource)(IAudioAdapterChangedEvent *pThis, IEventSource * *source);
22017 
22018     nsresult (*GetWaitable)(IAudioAdapterChangedEvent *pThis, PRBool *waitable);
22019 
22020     nsresult (*SetProcessed)(IAudioAdapterChangedEvent *pThis );
22021 
22022     nsresult (*WaitProcessed)(
22023         IAudioAdapterChangedEvent *pThis,
22024         PRInt32 timeout,
22025         PRBool * result
22026     );
22027 
22028     nsresult (*GetAudioAdapter)(IAudioAdapterChangedEvent *pThis, IAudioAdapter * *audioAdapter);
22029 
22030 };
22031 #    define IAudioAdapterChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22032 #    define IAudioAdapterChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22033 #    define IAudioAdapterChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22034 #    define IAudioAdapterChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22035 #    define IAudioAdapterChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22036 #    define IAudioAdapterChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22037 #    define IAudioAdapterChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22038 #    define IAudioAdapterChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22039 #    define IAudioAdapterChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22040 #    define IAudioAdapterChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22041 #    define IAudioAdapterChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22042 #    define IAudioAdapterChangedEvent_get_AudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
22043 #    define IAudioAdapterChangedEvent_GetAudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
22044 #   endif /* VBOX_WITH_GLUE */
22045 
22046 interface IAudioAdapterChangedEvent
22047 {
22048 #   ifndef VBOX_WITH_GLUE
22049     struct IAudioAdapterChangedEvent_vtbl *vtbl;
22050 #   else /* VBOX_WITH_GLUE */
22051     CONST_VTBL struct IAudioAdapterChangedEventVtbl *lpVtbl;
22052 #   endif /* VBOX_WITH_GLUE */
22053 };
22054 /* End of struct IAudioAdapterChangedEvent declaration */
22055 
22056 
22057 /* Start of struct ISerialPortChangedEvent declaration */
22058 #   define ISERIALPORTCHANGEDEVENT_IID_STR "3BA329DC-659C-488B-835C-4ECA7AE71C6C"
22059 #   define ISERIALPORTCHANGEDEVENT_IID { \
22060     0x3BA329DC, 0x659C, 0x488B, \
22061     { 0x83, 0x5C, 0x4E, 0xCA, 0x7A, 0xE7, 0x1C, 0x6C } \
22062 }
22063 /* COM compatibility */
22064 VBOX_EXTERN_CONST(nsIID, IID_ISerialPortChangedEvent);
22065 #   ifndef VBOX_WITH_GLUE
22066 struct ISerialPortChangedEvent_vtbl
22067 {
22068     struct IEvent_vtbl ievent;
22069 
22070     nsresult (*GetSerialPort)(ISerialPortChangedEvent *pThis, ISerialPort * *serialPort);
22071 
22072 };
22073 #   else /* VBOX_WITH_GLUE */
22074 struct ISerialPortChangedEventVtbl
22075 {
22076     nsresult (*QueryInterface)(ISerialPortChangedEvent *pThis, const nsID *iid, void **resultp);
22077     nsrefcnt (*AddRef)(ISerialPortChangedEvent *pThis);
22078     nsrefcnt (*Release)(ISerialPortChangedEvent *pThis);
22079     nsresult (*GetType)(ISerialPortChangedEvent *pThis, PRUint32 *type);
22080 
22081     nsresult (*GetSource)(ISerialPortChangedEvent *pThis, IEventSource * *source);
22082 
22083     nsresult (*GetWaitable)(ISerialPortChangedEvent *pThis, PRBool *waitable);
22084 
22085     nsresult (*SetProcessed)(ISerialPortChangedEvent *pThis );
22086 
22087     nsresult (*WaitProcessed)(
22088         ISerialPortChangedEvent *pThis,
22089         PRInt32 timeout,
22090         PRBool * result
22091     );
22092 
22093     nsresult (*GetSerialPort)(ISerialPortChangedEvent *pThis, ISerialPort * *serialPort);
22094 
22095 };
22096 #    define ISerialPortChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22097 #    define ISerialPortChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22098 #    define ISerialPortChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22099 #    define ISerialPortChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22100 #    define ISerialPortChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22101 #    define ISerialPortChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22102 #    define ISerialPortChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22103 #    define ISerialPortChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22104 #    define ISerialPortChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22105 #    define ISerialPortChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22106 #    define ISerialPortChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22107 #    define ISerialPortChangedEvent_get_SerialPort(p, aSerialPort) ((p)->lpVtbl->GetSerialPort(p, aSerialPort))
22108 #    define ISerialPortChangedEvent_GetSerialPort(p, aSerialPort) ((p)->lpVtbl->GetSerialPort(p, aSerialPort))
22109 #   endif /* VBOX_WITH_GLUE */
22110 
22111 interface ISerialPortChangedEvent
22112 {
22113 #   ifndef VBOX_WITH_GLUE
22114     struct ISerialPortChangedEvent_vtbl *vtbl;
22115 #   else /* VBOX_WITH_GLUE */
22116     CONST_VTBL struct ISerialPortChangedEventVtbl *lpVtbl;
22117 #   endif /* VBOX_WITH_GLUE */
22118 };
22119 /* End of struct ISerialPortChangedEvent declaration */
22120 
22121 
22122 /* Start of struct IParallelPortChangedEvent declaration */
22123 #   define IPARALLELPORTCHANGEDEVENT_IID_STR "813C99FC-9849-4F47-813E-24A75DC85615"
22124 #   define IPARALLELPORTCHANGEDEVENT_IID { \
22125     0x813C99FC, 0x9849, 0x4F47, \
22126     { 0x81, 0x3E, 0x24, 0xA7, 0x5D, 0xC8, 0x56, 0x15 } \
22127 }
22128 /* COM compatibility */
22129 VBOX_EXTERN_CONST(nsIID, IID_IParallelPortChangedEvent);
22130 #   ifndef VBOX_WITH_GLUE
22131 struct IParallelPortChangedEvent_vtbl
22132 {
22133     struct IEvent_vtbl ievent;
22134 
22135     nsresult (*GetParallelPort)(IParallelPortChangedEvent *pThis, IParallelPort * *parallelPort);
22136 
22137 };
22138 #   else /* VBOX_WITH_GLUE */
22139 struct IParallelPortChangedEventVtbl
22140 {
22141     nsresult (*QueryInterface)(IParallelPortChangedEvent *pThis, const nsID *iid, void **resultp);
22142     nsrefcnt (*AddRef)(IParallelPortChangedEvent *pThis);
22143     nsrefcnt (*Release)(IParallelPortChangedEvent *pThis);
22144     nsresult (*GetType)(IParallelPortChangedEvent *pThis, PRUint32 *type);
22145 
22146     nsresult (*GetSource)(IParallelPortChangedEvent *pThis, IEventSource * *source);
22147 
22148     nsresult (*GetWaitable)(IParallelPortChangedEvent *pThis, PRBool *waitable);
22149 
22150     nsresult (*SetProcessed)(IParallelPortChangedEvent *pThis );
22151 
22152     nsresult (*WaitProcessed)(
22153         IParallelPortChangedEvent *pThis,
22154         PRInt32 timeout,
22155         PRBool * result
22156     );
22157 
22158     nsresult (*GetParallelPort)(IParallelPortChangedEvent *pThis, IParallelPort * *parallelPort);
22159 
22160 };
22161 #    define IParallelPortChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22162 #    define IParallelPortChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22163 #    define IParallelPortChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22164 #    define IParallelPortChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22165 #    define IParallelPortChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22166 #    define IParallelPortChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22167 #    define IParallelPortChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22168 #    define IParallelPortChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22169 #    define IParallelPortChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22170 #    define IParallelPortChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22171 #    define IParallelPortChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22172 #    define IParallelPortChangedEvent_get_ParallelPort(p, aParallelPort) ((p)->lpVtbl->GetParallelPort(p, aParallelPort))
22173 #    define IParallelPortChangedEvent_GetParallelPort(p, aParallelPort) ((p)->lpVtbl->GetParallelPort(p, aParallelPort))
22174 #   endif /* VBOX_WITH_GLUE */
22175 
22176 interface IParallelPortChangedEvent
22177 {
22178 #   ifndef VBOX_WITH_GLUE
22179     struct IParallelPortChangedEvent_vtbl *vtbl;
22180 #   else /* VBOX_WITH_GLUE */
22181     CONST_VTBL struct IParallelPortChangedEventVtbl *lpVtbl;
22182 #   endif /* VBOX_WITH_GLUE */
22183 };
22184 /* End of struct IParallelPortChangedEvent declaration */
22185 
22186 
22187 /* Start of struct IStorageControllerChangedEvent declaration */
22188 #   define ISTORAGECONTROLLERCHANGEDEVENT_IID_STR "715212BF-DA59-426E-8230-3831FAA52C56"
22189 #   define ISTORAGECONTROLLERCHANGEDEVENT_IID { \
22190     0x715212BF, 0xDA59, 0x426E, \
22191     { 0x82, 0x30, 0x38, 0x31, 0xFA, 0xA5, 0x2C, 0x56 } \
22192 }
22193 /* COM compatibility */
22194 VBOX_EXTERN_CONST(nsIID, IID_IStorageControllerChangedEvent);
22195 #   ifndef VBOX_WITH_GLUE
22196 struct IStorageControllerChangedEvent_vtbl
22197 {
22198     struct IEvent_vtbl ievent;
22199 
22200     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IStorageControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
22201 
22202 };
22203 #   else /* VBOX_WITH_GLUE */
22204 struct IStorageControllerChangedEventVtbl
22205 {
22206     nsresult (*QueryInterface)(IStorageControllerChangedEvent *pThis, const nsID *iid, void **resultp);
22207     nsrefcnt (*AddRef)(IStorageControllerChangedEvent *pThis);
22208     nsrefcnt (*Release)(IStorageControllerChangedEvent *pThis);
22209     nsresult (*GetType)(IStorageControllerChangedEvent *pThis, PRUint32 *type);
22210 
22211     nsresult (*GetSource)(IStorageControllerChangedEvent *pThis, IEventSource * *source);
22212 
22213     nsresult (*GetWaitable)(IStorageControllerChangedEvent *pThis, PRBool *waitable);
22214 
22215     nsresult (*SetProcessed)(IStorageControllerChangedEvent *pThis );
22216 
22217     nsresult (*WaitProcessed)(
22218         IStorageControllerChangedEvent *pThis,
22219         PRInt32 timeout,
22220         PRBool * result
22221     );
22222 
22223     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IStorageControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
22224 
22225 };
22226 #    define IStorageControllerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22227 #    define IStorageControllerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22228 #    define IStorageControllerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22229 #    define IStorageControllerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22230 #    define IStorageControllerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22231 #    define IStorageControllerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22232 #    define IStorageControllerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22233 #    define IStorageControllerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22234 #    define IStorageControllerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22235 #    define IStorageControllerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22236 #    define IStorageControllerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22237 #    define IStorageControllerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
22238 #    define IStorageControllerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
22239 #   endif /* VBOX_WITH_GLUE */
22240 
22241 interface IStorageControllerChangedEvent
22242 {
22243 #   ifndef VBOX_WITH_GLUE
22244     struct IStorageControllerChangedEvent_vtbl *vtbl;
22245 #   else /* VBOX_WITH_GLUE */
22246     CONST_VTBL struct IStorageControllerChangedEventVtbl *lpVtbl;
22247 #   endif /* VBOX_WITH_GLUE */
22248 };
22249 /* End of struct IStorageControllerChangedEvent declaration */
22250 
22251 
22252 /* Start of struct IMediumChangedEvent declaration */
22253 #   define IMEDIUMCHANGEDEVENT_IID_STR "0FE2DA40-5637-472A-9736-72019EABD7DE"
22254 #   define IMEDIUMCHANGEDEVENT_IID { \
22255     0x0FE2DA40, 0x5637, 0x472A, \
22256     { 0x97, 0x36, 0x72, 0x01, 0x9E, 0xAB, 0xD7, 0xDE } \
22257 }
22258 /* COM compatibility */
22259 VBOX_EXTERN_CONST(nsIID, IID_IMediumChangedEvent);
22260 #   ifndef VBOX_WITH_GLUE
22261 struct IMediumChangedEvent_vtbl
22262 {
22263     struct IEvent_vtbl ievent;
22264 
22265     nsresult (*GetMediumAttachment)(IMediumChangedEvent *pThis, IMediumAttachment * *mediumAttachment);
22266 
22267 };
22268 #   else /* VBOX_WITH_GLUE */
22269 struct IMediumChangedEventVtbl
22270 {
22271     nsresult (*QueryInterface)(IMediumChangedEvent *pThis, const nsID *iid, void **resultp);
22272     nsrefcnt (*AddRef)(IMediumChangedEvent *pThis);
22273     nsrefcnt (*Release)(IMediumChangedEvent *pThis);
22274     nsresult (*GetType)(IMediumChangedEvent *pThis, PRUint32 *type);
22275 
22276     nsresult (*GetSource)(IMediumChangedEvent *pThis, IEventSource * *source);
22277 
22278     nsresult (*GetWaitable)(IMediumChangedEvent *pThis, PRBool *waitable);
22279 
22280     nsresult (*SetProcessed)(IMediumChangedEvent *pThis );
22281 
22282     nsresult (*WaitProcessed)(
22283         IMediumChangedEvent *pThis,
22284         PRInt32 timeout,
22285         PRBool * result
22286     );
22287 
22288     nsresult (*GetMediumAttachment)(IMediumChangedEvent *pThis, IMediumAttachment * *mediumAttachment);
22289 
22290 };
22291 #    define IMediumChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22292 #    define IMediumChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22293 #    define IMediumChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22294 #    define IMediumChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22295 #    define IMediumChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22296 #    define IMediumChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22297 #    define IMediumChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22298 #    define IMediumChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22299 #    define IMediumChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22300 #    define IMediumChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22301 #    define IMediumChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22302 #    define IMediumChangedEvent_get_MediumAttachment(p, aMediumAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aMediumAttachment))
22303 #    define IMediumChangedEvent_GetMediumAttachment(p, aMediumAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aMediumAttachment))
22304 #   endif /* VBOX_WITH_GLUE */
22305 
22306 interface IMediumChangedEvent
22307 {
22308 #   ifndef VBOX_WITH_GLUE
22309     struct IMediumChangedEvent_vtbl *vtbl;
22310 #   else /* VBOX_WITH_GLUE */
22311     CONST_VTBL struct IMediumChangedEventVtbl *lpVtbl;
22312 #   endif /* VBOX_WITH_GLUE */
22313 };
22314 /* End of struct IMediumChangedEvent declaration */
22315 
22316 
22317 /* Start of struct IClipboardModeChangedEvent declaration */
22318 #   define ICLIPBOARDMODECHANGEDEVENT_IID_STR "cac21692-7997-4595-a731-3a509db604e5"
22319 #   define ICLIPBOARDMODECHANGEDEVENT_IID { \
22320     0xcac21692, 0x7997, 0x4595, \
22321     { 0xa7, 0x31, 0x3a, 0x50, 0x9d, 0xb6, 0x04, 0xe5 } \
22322 }
22323 /* COM compatibility */
22324 VBOX_EXTERN_CONST(nsIID, IID_IClipboardModeChangedEvent);
22325 #   ifndef VBOX_WITH_GLUE
22326 struct IClipboardModeChangedEvent_vtbl
22327 {
22328     struct IEvent_vtbl ievent;
22329 
22330     nsresult (*GetClipboardMode)(IClipboardModeChangedEvent *pThis, PRUint32 *clipboardMode);
22331 
22332 };
22333 #   else /* VBOX_WITH_GLUE */
22334 struct IClipboardModeChangedEventVtbl
22335 {
22336     nsresult (*QueryInterface)(IClipboardModeChangedEvent *pThis, const nsID *iid, void **resultp);
22337     nsrefcnt (*AddRef)(IClipboardModeChangedEvent *pThis);
22338     nsrefcnt (*Release)(IClipboardModeChangedEvent *pThis);
22339     nsresult (*GetType)(IClipboardModeChangedEvent *pThis, PRUint32 *type);
22340 
22341     nsresult (*GetSource)(IClipboardModeChangedEvent *pThis, IEventSource * *source);
22342 
22343     nsresult (*GetWaitable)(IClipboardModeChangedEvent *pThis, PRBool *waitable);
22344 
22345     nsresult (*SetProcessed)(IClipboardModeChangedEvent *pThis );
22346 
22347     nsresult (*WaitProcessed)(
22348         IClipboardModeChangedEvent *pThis,
22349         PRInt32 timeout,
22350         PRBool * result
22351     );
22352 
22353     nsresult (*GetClipboardMode)(IClipboardModeChangedEvent *pThis, PRUint32 *clipboardMode);
22354 
22355 };
22356 #    define IClipboardModeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22357 #    define IClipboardModeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22358 #    define IClipboardModeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22359 #    define IClipboardModeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22360 #    define IClipboardModeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22361 #    define IClipboardModeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22362 #    define IClipboardModeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22363 #    define IClipboardModeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22364 #    define IClipboardModeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22365 #    define IClipboardModeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22366 #    define IClipboardModeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22367 #    define IClipboardModeChangedEvent_get_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
22368 #    define IClipboardModeChangedEvent_GetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
22369 #   endif /* VBOX_WITH_GLUE */
22370 
22371 interface IClipboardModeChangedEvent
22372 {
22373 #   ifndef VBOX_WITH_GLUE
22374     struct IClipboardModeChangedEvent_vtbl *vtbl;
22375 #   else /* VBOX_WITH_GLUE */
22376     CONST_VTBL struct IClipboardModeChangedEventVtbl *lpVtbl;
22377 #   endif /* VBOX_WITH_GLUE */
22378 };
22379 /* End of struct IClipboardModeChangedEvent declaration */
22380 
22381 
22382 /* Start of struct IDnDModeChangedEvent declaration */
22383 #   define IDNDMODECHANGEDEVENT_IID_STR "b55cf856-1f8b-4692-abb4-462429fae5e9"
22384 #   define IDNDMODECHANGEDEVENT_IID { \
22385     0xb55cf856, 0x1f8b, 0x4692, \
22386     { 0xab, 0xb4, 0x46, 0x24, 0x29, 0xfa, 0xe5, 0xe9 } \
22387 }
22388 /* COM compatibility */
22389 VBOX_EXTERN_CONST(nsIID, IID_IDnDModeChangedEvent);
22390 #   ifndef VBOX_WITH_GLUE
22391 struct IDnDModeChangedEvent_vtbl
22392 {
22393     struct IEvent_vtbl ievent;
22394 
22395     nsresult (*GetDndMode)(IDnDModeChangedEvent *pThis, PRUint32 *dndMode);
22396 
22397 };
22398 #   else /* VBOX_WITH_GLUE */
22399 struct IDnDModeChangedEventVtbl
22400 {
22401     nsresult (*QueryInterface)(IDnDModeChangedEvent *pThis, const nsID *iid, void **resultp);
22402     nsrefcnt (*AddRef)(IDnDModeChangedEvent *pThis);
22403     nsrefcnt (*Release)(IDnDModeChangedEvent *pThis);
22404     nsresult (*GetType)(IDnDModeChangedEvent *pThis, PRUint32 *type);
22405 
22406     nsresult (*GetSource)(IDnDModeChangedEvent *pThis, IEventSource * *source);
22407 
22408     nsresult (*GetWaitable)(IDnDModeChangedEvent *pThis, PRBool *waitable);
22409 
22410     nsresult (*SetProcessed)(IDnDModeChangedEvent *pThis );
22411 
22412     nsresult (*WaitProcessed)(
22413         IDnDModeChangedEvent *pThis,
22414         PRInt32 timeout,
22415         PRBool * result
22416     );
22417 
22418     nsresult (*GetDndMode)(IDnDModeChangedEvent *pThis, PRUint32 *dndMode);
22419 
22420 };
22421 #    define IDnDModeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22422 #    define IDnDModeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22423 #    define IDnDModeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22424 #    define IDnDModeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22425 #    define IDnDModeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22426 #    define IDnDModeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22427 #    define IDnDModeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22428 #    define IDnDModeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22429 #    define IDnDModeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22430 #    define IDnDModeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22431 #    define IDnDModeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22432 #    define IDnDModeChangedEvent_get_DndMode(p, aDndMode) ((p)->lpVtbl->GetDndMode(p, aDndMode))
22433 #    define IDnDModeChangedEvent_GetDndMode(p, aDndMode) ((p)->lpVtbl->GetDndMode(p, aDndMode))
22434 #   endif /* VBOX_WITH_GLUE */
22435 
22436 interface IDnDModeChangedEvent
22437 {
22438 #   ifndef VBOX_WITH_GLUE
22439     struct IDnDModeChangedEvent_vtbl *vtbl;
22440 #   else /* VBOX_WITH_GLUE */
22441     CONST_VTBL struct IDnDModeChangedEventVtbl *lpVtbl;
22442 #   endif /* VBOX_WITH_GLUE */
22443 };
22444 /* End of struct IDnDModeChangedEvent declaration */
22445 
22446 
22447 /* Start of struct ICPUChangedEvent declaration */
22448 #   define ICPUCHANGEDEVENT_IID_STR "4da2dec7-71b2-4817-9a64-4ed12c17388e"
22449 #   define ICPUCHANGEDEVENT_IID { \
22450     0x4da2dec7, 0x71b2, 0x4817, \
22451     { 0x9a, 0x64, 0x4e, 0xd1, 0x2c, 0x17, 0x38, 0x8e } \
22452 }
22453 /* COM compatibility */
22454 VBOX_EXTERN_CONST(nsIID, IID_ICPUChangedEvent);
22455 #   ifndef VBOX_WITH_GLUE
22456 struct ICPUChangedEvent_vtbl
22457 {
22458     struct IEvent_vtbl ievent;
22459 
22460     nsresult (*GetCPU)(ICPUChangedEvent *pThis, PRUint32 *CPU);
22461 
22462     nsresult (*GetAdd)(ICPUChangedEvent *pThis, PRBool *add);
22463 
22464 };
22465 #   else /* VBOX_WITH_GLUE */
22466 struct ICPUChangedEventVtbl
22467 {
22468     nsresult (*QueryInterface)(ICPUChangedEvent *pThis, const nsID *iid, void **resultp);
22469     nsrefcnt (*AddRef)(ICPUChangedEvent *pThis);
22470     nsrefcnt (*Release)(ICPUChangedEvent *pThis);
22471     nsresult (*GetType)(ICPUChangedEvent *pThis, PRUint32 *type);
22472 
22473     nsresult (*GetSource)(ICPUChangedEvent *pThis, IEventSource * *source);
22474 
22475     nsresult (*GetWaitable)(ICPUChangedEvent *pThis, PRBool *waitable);
22476 
22477     nsresult (*SetProcessed)(ICPUChangedEvent *pThis );
22478 
22479     nsresult (*WaitProcessed)(
22480         ICPUChangedEvent *pThis,
22481         PRInt32 timeout,
22482         PRBool * result
22483     );
22484 
22485     nsresult (*GetCPU)(ICPUChangedEvent *pThis, PRUint32 *CPU);
22486 
22487     nsresult (*GetAdd)(ICPUChangedEvent *pThis, PRBool *add);
22488 
22489 };
22490 #    define ICPUChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22491 #    define ICPUChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22492 #    define ICPUChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22493 #    define ICPUChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22494 #    define ICPUChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22495 #    define ICPUChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22496 #    define ICPUChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22497 #    define ICPUChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22498 #    define ICPUChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22499 #    define ICPUChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22500 #    define ICPUChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22501 #    define ICPUChangedEvent_get_CPU(p, aCPU) ((p)->lpVtbl->GetCPU(p, aCPU))
22502 #    define ICPUChangedEvent_GetCPU(p, aCPU) ((p)->lpVtbl->GetCPU(p, aCPU))
22503 #    define ICPUChangedEvent_get_Add(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
22504 #    define ICPUChangedEvent_GetAdd(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
22505 #   endif /* VBOX_WITH_GLUE */
22506 
22507 interface ICPUChangedEvent
22508 {
22509 #   ifndef VBOX_WITH_GLUE
22510     struct ICPUChangedEvent_vtbl *vtbl;
22511 #   else /* VBOX_WITH_GLUE */
22512     CONST_VTBL struct ICPUChangedEventVtbl *lpVtbl;
22513 #   endif /* VBOX_WITH_GLUE */
22514 };
22515 /* End of struct ICPUChangedEvent declaration */
22516 
22517 
22518 /* Start of struct ICPUExecutionCapChangedEvent declaration */
22519 #   define ICPUEXECUTIONCAPCHANGEDEVENT_IID_STR "dfa7e4f5-b4a4-44ce-85a8-127ac5eb59dc"
22520 #   define ICPUEXECUTIONCAPCHANGEDEVENT_IID { \
22521     0xdfa7e4f5, 0xb4a4, 0x44ce, \
22522     { 0x85, 0xa8, 0x12, 0x7a, 0xc5, 0xeb, 0x59, 0xdc } \
22523 }
22524 /* COM compatibility */
22525 VBOX_EXTERN_CONST(nsIID, IID_ICPUExecutionCapChangedEvent);
22526 #   ifndef VBOX_WITH_GLUE
22527 struct ICPUExecutionCapChangedEvent_vtbl
22528 {
22529     struct IEvent_vtbl ievent;
22530 
22531     nsresult (*GetExecutionCap)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *executionCap);
22532 
22533 };
22534 #   else /* VBOX_WITH_GLUE */
22535 struct ICPUExecutionCapChangedEventVtbl
22536 {
22537     nsresult (*QueryInterface)(ICPUExecutionCapChangedEvent *pThis, const nsID *iid, void **resultp);
22538     nsrefcnt (*AddRef)(ICPUExecutionCapChangedEvent *pThis);
22539     nsrefcnt (*Release)(ICPUExecutionCapChangedEvent *pThis);
22540     nsresult (*GetType)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *type);
22541 
22542     nsresult (*GetSource)(ICPUExecutionCapChangedEvent *pThis, IEventSource * *source);
22543 
22544     nsresult (*GetWaitable)(ICPUExecutionCapChangedEvent *pThis, PRBool *waitable);
22545 
22546     nsresult (*SetProcessed)(ICPUExecutionCapChangedEvent *pThis );
22547 
22548     nsresult (*WaitProcessed)(
22549         ICPUExecutionCapChangedEvent *pThis,
22550         PRInt32 timeout,
22551         PRBool * result
22552     );
22553 
22554     nsresult (*GetExecutionCap)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *executionCap);
22555 
22556 };
22557 #    define ICPUExecutionCapChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22558 #    define ICPUExecutionCapChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22559 #    define ICPUExecutionCapChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22560 #    define ICPUExecutionCapChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22561 #    define ICPUExecutionCapChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22562 #    define ICPUExecutionCapChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22563 #    define ICPUExecutionCapChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22564 #    define ICPUExecutionCapChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22565 #    define ICPUExecutionCapChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22566 #    define ICPUExecutionCapChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22567 #    define ICPUExecutionCapChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22568 #    define ICPUExecutionCapChangedEvent_get_ExecutionCap(p, aExecutionCap) ((p)->lpVtbl->GetExecutionCap(p, aExecutionCap))
22569 #    define ICPUExecutionCapChangedEvent_GetExecutionCap(p, aExecutionCap) ((p)->lpVtbl->GetExecutionCap(p, aExecutionCap))
22570 #   endif /* VBOX_WITH_GLUE */
22571 
22572 interface ICPUExecutionCapChangedEvent
22573 {
22574 #   ifndef VBOX_WITH_GLUE
22575     struct ICPUExecutionCapChangedEvent_vtbl *vtbl;
22576 #   else /* VBOX_WITH_GLUE */
22577     CONST_VTBL struct ICPUExecutionCapChangedEventVtbl *lpVtbl;
22578 #   endif /* VBOX_WITH_GLUE */
22579 };
22580 /* End of struct ICPUExecutionCapChangedEvent declaration */
22581 
22582 
22583 /* Start of struct IGuestKeyboardEvent declaration */
22584 #   define IGUESTKEYBOARDEVENT_IID_STR "88394258-7006-40d4-b339-472ee3801844"
22585 #   define IGUESTKEYBOARDEVENT_IID { \
22586     0x88394258, 0x7006, 0x40d4, \
22587     { 0xb3, 0x39, 0x47, 0x2e, 0xe3, 0x80, 0x18, 0x44 } \
22588 }
22589 /* COM compatibility */
22590 VBOX_EXTERN_CONST(nsIID, IID_IGuestKeyboardEvent);
22591 #   ifndef VBOX_WITH_GLUE
22592 struct IGuestKeyboardEvent_vtbl
22593 {
22594     struct IEvent_vtbl ievent;
22595 
22596     nsresult (*GetScancodes)(IGuestKeyboardEvent *pThis, PRUint32 *scancodesSize, PRInt32 **scancodes);
22597 
22598 };
22599 #   else /* VBOX_WITH_GLUE */
22600 struct IGuestKeyboardEventVtbl
22601 {
22602     nsresult (*QueryInterface)(IGuestKeyboardEvent *pThis, const nsID *iid, void **resultp);
22603     nsrefcnt (*AddRef)(IGuestKeyboardEvent *pThis);
22604     nsrefcnt (*Release)(IGuestKeyboardEvent *pThis);
22605     nsresult (*GetType)(IGuestKeyboardEvent *pThis, PRUint32 *type);
22606 
22607     nsresult (*GetSource)(IGuestKeyboardEvent *pThis, IEventSource * *source);
22608 
22609     nsresult (*GetWaitable)(IGuestKeyboardEvent *pThis, PRBool *waitable);
22610 
22611     nsresult (*SetProcessed)(IGuestKeyboardEvent *pThis );
22612 
22613     nsresult (*WaitProcessed)(
22614         IGuestKeyboardEvent *pThis,
22615         PRInt32 timeout,
22616         PRBool * result
22617     );
22618 
22619     nsresult (*GetScancodes)(IGuestKeyboardEvent *pThis, PRUint32 *scancodesSize, PRInt32 **scancodes);
22620 
22621 };
22622 #    define IGuestKeyboardEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22623 #    define IGuestKeyboardEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22624 #    define IGuestKeyboardEvent_Release(p) ((p)->lpVtbl->Release(p))
22625 #    define IGuestKeyboardEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22626 #    define IGuestKeyboardEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22627 #    define IGuestKeyboardEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22628 #    define IGuestKeyboardEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22629 #    define IGuestKeyboardEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22630 #    define IGuestKeyboardEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22631 #    define IGuestKeyboardEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22632 #    define IGuestKeyboardEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22633 #    define IGuestKeyboardEvent_get_Scancodes(p, aScancodes) ((p)->lpVtbl->GetScancodes(p, aScancodes))
22634 #    define IGuestKeyboardEvent_GetScancodes(p, aScancodes) ((p)->lpVtbl->GetScancodes(p, aScancodes))
22635 #   endif /* VBOX_WITH_GLUE */
22636 
22637 interface IGuestKeyboardEvent
22638 {
22639 #   ifndef VBOX_WITH_GLUE
22640     struct IGuestKeyboardEvent_vtbl *vtbl;
22641 #   else /* VBOX_WITH_GLUE */
22642     CONST_VTBL struct IGuestKeyboardEventVtbl *lpVtbl;
22643 #   endif /* VBOX_WITH_GLUE */
22644 };
22645 /* End of struct IGuestKeyboardEvent declaration */
22646 
22647 
22648 /* Start of struct IGuestMouseEvent declaration */
22649 #   define IGUESTMOUSEEVENT_IID_STR "179f8647-319c-4e7e-8150-c5837bd265f6"
22650 #   define IGUESTMOUSEEVENT_IID { \
22651     0x179f8647, 0x319c, 0x4e7e, \
22652     { 0x81, 0x50, 0xc5, 0x83, 0x7b, 0xd2, 0x65, 0xf6 } \
22653 }
22654 /* COM compatibility */
22655 VBOX_EXTERN_CONST(nsIID, IID_IGuestMouseEvent);
22656 #   ifndef VBOX_WITH_GLUE
22657 struct IGuestMouseEvent_vtbl
22658 {
22659     struct IReusableEvent_vtbl ireusableevent;
22660 
22661     nsresult (*GetMode)(IGuestMouseEvent *pThis, PRUint32 *mode);
22662 
22663     nsresult (*GetX)(IGuestMouseEvent *pThis, PRInt32 *x);
22664 
22665     nsresult (*GetY)(IGuestMouseEvent *pThis, PRInt32 *y);
22666 
22667     nsresult (*GetZ)(IGuestMouseEvent *pThis, PRInt32 *z);
22668 
22669     nsresult (*GetW)(IGuestMouseEvent *pThis, PRInt32 *w);
22670 
22671     nsresult (*GetButtons)(IGuestMouseEvent *pThis, PRInt32 *buttons);
22672 
22673 };
22674 #   else /* VBOX_WITH_GLUE */
22675 struct IGuestMouseEventVtbl
22676 {
22677     nsresult (*QueryInterface)(IGuestMouseEvent *pThis, const nsID *iid, void **resultp);
22678     nsrefcnt (*AddRef)(IGuestMouseEvent *pThis);
22679     nsrefcnt (*Release)(IGuestMouseEvent *pThis);
22680     nsresult (*GetType)(IGuestMouseEvent *pThis, PRUint32 *type);
22681 
22682     nsresult (*GetSource)(IGuestMouseEvent *pThis, IEventSource * *source);
22683 
22684     nsresult (*GetWaitable)(IGuestMouseEvent *pThis, PRBool *waitable);
22685 
22686     nsresult (*SetProcessed)(IGuestMouseEvent *pThis );
22687 
22688     nsresult (*WaitProcessed)(
22689         IGuestMouseEvent *pThis,
22690         PRInt32 timeout,
22691         PRBool * result
22692     );
22693 
22694     nsresult (*GetGeneration)(IGuestMouseEvent *pThis, PRUint32 *generation);
22695 
22696     nsresult (*Reuse)(IGuestMouseEvent *pThis );
22697 
22698     nsresult (*GetMode)(IGuestMouseEvent *pThis, PRUint32 *mode);
22699 
22700     nsresult (*GetX)(IGuestMouseEvent *pThis, PRInt32 *x);
22701 
22702     nsresult (*GetY)(IGuestMouseEvent *pThis, PRInt32 *y);
22703 
22704     nsresult (*GetZ)(IGuestMouseEvent *pThis, PRInt32 *z);
22705 
22706     nsresult (*GetW)(IGuestMouseEvent *pThis, PRInt32 *w);
22707 
22708     nsresult (*GetButtons)(IGuestMouseEvent *pThis, PRInt32 *buttons);
22709 
22710 };
22711 #    define IGuestMouseEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22712 #    define IGuestMouseEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22713 #    define IGuestMouseEvent_Release(p) ((p)->lpVtbl->Release(p))
22714 #    define IGuestMouseEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22715 #    define IGuestMouseEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22716 #    define IGuestMouseEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22717 #    define IGuestMouseEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22718 #    define IGuestMouseEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22719 #    define IGuestMouseEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22720 #    define IGuestMouseEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22721 #    define IGuestMouseEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22722 #    define IGuestMouseEvent_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
22723 #    define IGuestMouseEvent_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
22724 #    define IGuestMouseEvent_Reuse(p) ((p)->lpVtbl->Reuse(p))
22725 #    define IGuestMouseEvent_get_Mode(p, aMode) ((p)->lpVtbl->GetMode(p, aMode))
22726 #    define IGuestMouseEvent_GetMode(p, aMode) ((p)->lpVtbl->GetMode(p, aMode))
22727 #    define IGuestMouseEvent_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
22728 #    define IGuestMouseEvent_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
22729 #    define IGuestMouseEvent_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
22730 #    define IGuestMouseEvent_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
22731 #    define IGuestMouseEvent_get_Z(p, aZ) ((p)->lpVtbl->GetZ(p, aZ))
22732 #    define IGuestMouseEvent_GetZ(p, aZ) ((p)->lpVtbl->GetZ(p, aZ))
22733 #    define IGuestMouseEvent_get_W(p, aW) ((p)->lpVtbl->GetW(p, aW))
22734 #    define IGuestMouseEvent_GetW(p, aW) ((p)->lpVtbl->GetW(p, aW))
22735 #    define IGuestMouseEvent_get_Buttons(p, aButtons) ((p)->lpVtbl->GetButtons(p, aButtons))
22736 #    define IGuestMouseEvent_GetButtons(p, aButtons) ((p)->lpVtbl->GetButtons(p, aButtons))
22737 #   endif /* VBOX_WITH_GLUE */
22738 
22739 interface IGuestMouseEvent
22740 {
22741 #   ifndef VBOX_WITH_GLUE
22742     struct IGuestMouseEvent_vtbl *vtbl;
22743 #   else /* VBOX_WITH_GLUE */
22744     CONST_VTBL struct IGuestMouseEventVtbl *lpVtbl;
22745 #   endif /* VBOX_WITH_GLUE */
22746 };
22747 /* End of struct IGuestMouseEvent declaration */
22748 
22749 
22750 /* Start of struct IGuestMultiTouchEvent declaration */
22751 #   define IGUESTMULTITOUCHEVENT_IID_STR "be8a0eb5-f4f4-4dd0-9d30-c89b873247ec"
22752 #   define IGUESTMULTITOUCHEVENT_IID { \
22753     0xbe8a0eb5, 0xf4f4, 0x4dd0, \
22754     { 0x9d, 0x30, 0xc8, 0x9b, 0x87, 0x32, 0x47, 0xec } \
22755 }
22756 /* COM compatibility */
22757 VBOX_EXTERN_CONST(nsIID, IID_IGuestMultiTouchEvent);
22758 #   ifndef VBOX_WITH_GLUE
22759 struct IGuestMultiTouchEvent_vtbl
22760 {
22761     struct IEvent_vtbl ievent;
22762 
22763     nsresult (*GetContactCount)(IGuestMultiTouchEvent *pThis, PRInt32 *contactCount);
22764 
22765     nsresult (*GetXPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *xPositionsSize, PRInt16 **xPositions);
22766 
22767     nsresult (*GetYPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *yPositionsSize, PRInt16 **yPositions);
22768 
22769     nsresult (*GetContactIds)(IGuestMultiTouchEvent *pThis, PRUint32 *contactIdsSize, PRUint16 **contactIds);
22770 
22771     nsresult (*GetContactFlags)(IGuestMultiTouchEvent *pThis, PRUint32 *contactFlagsSize, PRUint16 **contactFlags);
22772 
22773     nsresult (*GetScanTime)(IGuestMultiTouchEvent *pThis, PRUint32 *scanTime);
22774 
22775 };
22776 #   else /* VBOX_WITH_GLUE */
22777 struct IGuestMultiTouchEventVtbl
22778 {
22779     nsresult (*QueryInterface)(IGuestMultiTouchEvent *pThis, const nsID *iid, void **resultp);
22780     nsrefcnt (*AddRef)(IGuestMultiTouchEvent *pThis);
22781     nsrefcnt (*Release)(IGuestMultiTouchEvent *pThis);
22782     nsresult (*GetType)(IGuestMultiTouchEvent *pThis, PRUint32 *type);
22783 
22784     nsresult (*GetSource)(IGuestMultiTouchEvent *pThis, IEventSource * *source);
22785 
22786     nsresult (*GetWaitable)(IGuestMultiTouchEvent *pThis, PRBool *waitable);
22787 
22788     nsresult (*SetProcessed)(IGuestMultiTouchEvent *pThis );
22789 
22790     nsresult (*WaitProcessed)(
22791         IGuestMultiTouchEvent *pThis,
22792         PRInt32 timeout,
22793         PRBool * result
22794     );
22795 
22796     nsresult (*GetContactCount)(IGuestMultiTouchEvent *pThis, PRInt32 *contactCount);
22797 
22798     nsresult (*GetXPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *xPositionsSize, PRInt16 **xPositions);
22799 
22800     nsresult (*GetYPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *yPositionsSize, PRInt16 **yPositions);
22801 
22802     nsresult (*GetContactIds)(IGuestMultiTouchEvent *pThis, PRUint32 *contactIdsSize, PRUint16 **contactIds);
22803 
22804     nsresult (*GetContactFlags)(IGuestMultiTouchEvent *pThis, PRUint32 *contactFlagsSize, PRUint16 **contactFlags);
22805 
22806     nsresult (*GetScanTime)(IGuestMultiTouchEvent *pThis, PRUint32 *scanTime);
22807 
22808 };
22809 #    define IGuestMultiTouchEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22810 #    define IGuestMultiTouchEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22811 #    define IGuestMultiTouchEvent_Release(p) ((p)->lpVtbl->Release(p))
22812 #    define IGuestMultiTouchEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22813 #    define IGuestMultiTouchEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22814 #    define IGuestMultiTouchEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22815 #    define IGuestMultiTouchEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22816 #    define IGuestMultiTouchEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22817 #    define IGuestMultiTouchEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22818 #    define IGuestMultiTouchEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22819 #    define IGuestMultiTouchEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22820 #    define IGuestMultiTouchEvent_get_ContactCount(p, aContactCount) ((p)->lpVtbl->GetContactCount(p, aContactCount))
22821 #    define IGuestMultiTouchEvent_GetContactCount(p, aContactCount) ((p)->lpVtbl->GetContactCount(p, aContactCount))
22822 #    define IGuestMultiTouchEvent_get_XPositions(p, aXPositions) ((p)->lpVtbl->GetXPositions(p, aXPositions))
22823 #    define IGuestMultiTouchEvent_GetXPositions(p, aXPositions) ((p)->lpVtbl->GetXPositions(p, aXPositions))
22824 #    define IGuestMultiTouchEvent_get_YPositions(p, aYPositions) ((p)->lpVtbl->GetYPositions(p, aYPositions))
22825 #    define IGuestMultiTouchEvent_GetYPositions(p, aYPositions) ((p)->lpVtbl->GetYPositions(p, aYPositions))
22826 #    define IGuestMultiTouchEvent_get_ContactIds(p, aContactIds) ((p)->lpVtbl->GetContactIds(p, aContactIds))
22827 #    define IGuestMultiTouchEvent_GetContactIds(p, aContactIds) ((p)->lpVtbl->GetContactIds(p, aContactIds))
22828 #    define IGuestMultiTouchEvent_get_ContactFlags(p, aContactFlags) ((p)->lpVtbl->GetContactFlags(p, aContactFlags))
22829 #    define IGuestMultiTouchEvent_GetContactFlags(p, aContactFlags) ((p)->lpVtbl->GetContactFlags(p, aContactFlags))
22830 #    define IGuestMultiTouchEvent_get_ScanTime(p, aScanTime) ((p)->lpVtbl->GetScanTime(p, aScanTime))
22831 #    define IGuestMultiTouchEvent_GetScanTime(p, aScanTime) ((p)->lpVtbl->GetScanTime(p, aScanTime))
22832 #   endif /* VBOX_WITH_GLUE */
22833 
22834 interface IGuestMultiTouchEvent
22835 {
22836 #   ifndef VBOX_WITH_GLUE
22837     struct IGuestMultiTouchEvent_vtbl *vtbl;
22838 #   else /* VBOX_WITH_GLUE */
22839     CONST_VTBL struct IGuestMultiTouchEventVtbl *lpVtbl;
22840 #   endif /* VBOX_WITH_GLUE */
22841 };
22842 /* End of struct IGuestMultiTouchEvent declaration */
22843 
22844 
22845 /* Start of struct IGuestSessionEvent declaration */
22846 #   define IGUESTSESSIONEVENT_IID_STR "b9acd33f-647d-45ac-8fe9-f49b3183ba37"
22847 #   define IGUESTSESSIONEVENT_IID { \
22848     0xb9acd33f, 0x647d, 0x45ac, \
22849     { 0x8f, 0xe9, 0xf4, 0x9b, 0x31, 0x83, 0xba, 0x37 } \
22850 }
22851 /* COM compatibility */
22852 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionEvent);
22853 #   ifndef VBOX_WITH_GLUE
22854 struct IGuestSessionEvent_vtbl
22855 {
22856     struct IEvent_vtbl ievent;
22857 
22858     nsresult (*GetSession)(IGuestSessionEvent *pThis, IGuestSession * *session);
22859 
22860 };
22861 #   else /* VBOX_WITH_GLUE */
22862 struct IGuestSessionEventVtbl
22863 {
22864     nsresult (*QueryInterface)(IGuestSessionEvent *pThis, const nsID *iid, void **resultp);
22865     nsrefcnt (*AddRef)(IGuestSessionEvent *pThis);
22866     nsrefcnt (*Release)(IGuestSessionEvent *pThis);
22867     nsresult (*GetType)(IGuestSessionEvent *pThis, PRUint32 *type);
22868 
22869     nsresult (*GetSource)(IGuestSessionEvent *pThis, IEventSource * *source);
22870 
22871     nsresult (*GetWaitable)(IGuestSessionEvent *pThis, PRBool *waitable);
22872 
22873     nsresult (*SetProcessed)(IGuestSessionEvent *pThis );
22874 
22875     nsresult (*WaitProcessed)(
22876         IGuestSessionEvent *pThis,
22877         PRInt32 timeout,
22878         PRBool * result
22879     );
22880 
22881     nsresult (*GetSession)(IGuestSessionEvent *pThis, IGuestSession * *session);
22882 
22883 };
22884 #    define IGuestSessionEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22885 #    define IGuestSessionEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22886 #    define IGuestSessionEvent_Release(p) ((p)->lpVtbl->Release(p))
22887 #    define IGuestSessionEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22888 #    define IGuestSessionEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22889 #    define IGuestSessionEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22890 #    define IGuestSessionEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22891 #    define IGuestSessionEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22892 #    define IGuestSessionEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22893 #    define IGuestSessionEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22894 #    define IGuestSessionEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22895 #    define IGuestSessionEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
22896 #    define IGuestSessionEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
22897 #   endif /* VBOX_WITH_GLUE */
22898 
22899 interface IGuestSessionEvent
22900 {
22901 #   ifndef VBOX_WITH_GLUE
22902     struct IGuestSessionEvent_vtbl *vtbl;
22903 #   else /* VBOX_WITH_GLUE */
22904     CONST_VTBL struct IGuestSessionEventVtbl *lpVtbl;
22905 #   endif /* VBOX_WITH_GLUE */
22906 };
22907 /* End of struct IGuestSessionEvent declaration */
22908 
22909 
22910 /* Start of struct IGuestSessionStateChangedEvent declaration */
22911 #   define IGUESTSESSIONSTATECHANGEDEVENT_IID_STR "327e3c00-ee61-462f-aed3-0dff6cbf9904"
22912 #   define IGUESTSESSIONSTATECHANGEDEVENT_IID { \
22913     0x327e3c00, 0xee61, 0x462f, \
22914     { 0xae, 0xd3, 0x0d, 0xff, 0x6c, 0xbf, 0x99, 0x04 } \
22915 }
22916 /* COM compatibility */
22917 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionStateChangedEvent);
22918 #   ifndef VBOX_WITH_GLUE
22919 struct IGuestSessionStateChangedEvent_vtbl
22920 {
22921     struct IGuestSessionEvent_vtbl iguestsessionevent;
22922 
22923     nsresult (*GetId)(IGuestSessionStateChangedEvent *pThis, PRUint32 *id);
22924 
22925     nsresult (*GetStatus)(IGuestSessionStateChangedEvent *pThis, PRUint32 *status);
22926 
22927     nsresult (*GetError)(IGuestSessionStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
22928 
22929 };
22930 #   else /* VBOX_WITH_GLUE */
22931 struct IGuestSessionStateChangedEventVtbl
22932 {
22933     nsresult (*QueryInterface)(IGuestSessionStateChangedEvent *pThis, const nsID *iid, void **resultp);
22934     nsrefcnt (*AddRef)(IGuestSessionStateChangedEvent *pThis);
22935     nsrefcnt (*Release)(IGuestSessionStateChangedEvent *pThis);
22936     nsresult (*GetType)(IGuestSessionStateChangedEvent *pThis, PRUint32 *type);
22937 
22938     nsresult (*GetSource)(IGuestSessionStateChangedEvent *pThis, IEventSource * *source);
22939 
22940     nsresult (*GetWaitable)(IGuestSessionStateChangedEvent *pThis, PRBool *waitable);
22941 
22942     nsresult (*SetProcessed)(IGuestSessionStateChangedEvent *pThis );
22943 
22944     nsresult (*WaitProcessed)(
22945         IGuestSessionStateChangedEvent *pThis,
22946         PRInt32 timeout,
22947         PRBool * result
22948     );
22949 
22950     nsresult (*GetSession)(IGuestSessionStateChangedEvent *pThis, IGuestSession * *session);
22951 
22952     nsresult (*GetId)(IGuestSessionStateChangedEvent *pThis, PRUint32 *id);
22953 
22954     nsresult (*GetStatus)(IGuestSessionStateChangedEvent *pThis, PRUint32 *status);
22955 
22956     nsresult (*GetError)(IGuestSessionStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
22957 
22958 };
22959 #    define IGuestSessionStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22960 #    define IGuestSessionStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
22961 #    define IGuestSessionStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
22962 #    define IGuestSessionStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22963 #    define IGuestSessionStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22964 #    define IGuestSessionStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22965 #    define IGuestSessionStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
22966 #    define IGuestSessionStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22967 #    define IGuestSessionStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
22968 #    define IGuestSessionStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
22969 #    define IGuestSessionStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
22970 #    define IGuestSessionStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
22971 #    define IGuestSessionStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
22972 #    define IGuestSessionStateChangedEvent_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
22973 #    define IGuestSessionStateChangedEvent_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
22974 #    define IGuestSessionStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
22975 #    define IGuestSessionStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
22976 #    define IGuestSessionStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
22977 #    define IGuestSessionStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
22978 #   endif /* VBOX_WITH_GLUE */
22979 
22980 interface IGuestSessionStateChangedEvent
22981 {
22982 #   ifndef VBOX_WITH_GLUE
22983     struct IGuestSessionStateChangedEvent_vtbl *vtbl;
22984 #   else /* VBOX_WITH_GLUE */
22985     CONST_VTBL struct IGuestSessionStateChangedEventVtbl *lpVtbl;
22986 #   endif /* VBOX_WITH_GLUE */
22987 };
22988 /* End of struct IGuestSessionStateChangedEvent declaration */
22989 
22990 
22991 /* Start of struct IGuestSessionRegisteredEvent declaration */
22992 #   define IGUESTSESSIONREGISTEREDEVENT_IID_STR "b79de686-eabd-4fa6-960a-f1756c99ea1c"
22993 #   define IGUESTSESSIONREGISTEREDEVENT_IID { \
22994     0xb79de686, 0xeabd, 0x4fa6, \
22995     { 0x96, 0x0a, 0xf1, 0x75, 0x6c, 0x99, 0xea, 0x1c } \
22996 }
22997 /* COM compatibility */
22998 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionRegisteredEvent);
22999 #   ifndef VBOX_WITH_GLUE
23000 struct IGuestSessionRegisteredEvent_vtbl
23001 {
23002     struct IGuestSessionEvent_vtbl iguestsessionevent;
23003 
23004     nsresult (*GetRegistered)(IGuestSessionRegisteredEvent *pThis, PRBool *registered);
23005 
23006 };
23007 #   else /* VBOX_WITH_GLUE */
23008 struct IGuestSessionRegisteredEventVtbl
23009 {
23010     nsresult (*QueryInterface)(IGuestSessionRegisteredEvent *pThis, const nsID *iid, void **resultp);
23011     nsrefcnt (*AddRef)(IGuestSessionRegisteredEvent *pThis);
23012     nsrefcnt (*Release)(IGuestSessionRegisteredEvent *pThis);
23013     nsresult (*GetType)(IGuestSessionRegisteredEvent *pThis, PRUint32 *type);
23014 
23015     nsresult (*GetSource)(IGuestSessionRegisteredEvent *pThis, IEventSource * *source);
23016 
23017     nsresult (*GetWaitable)(IGuestSessionRegisteredEvent *pThis, PRBool *waitable);
23018 
23019     nsresult (*SetProcessed)(IGuestSessionRegisteredEvent *pThis );
23020 
23021     nsresult (*WaitProcessed)(
23022         IGuestSessionRegisteredEvent *pThis,
23023         PRInt32 timeout,
23024         PRBool * result
23025     );
23026 
23027     nsresult (*GetSession)(IGuestSessionRegisteredEvent *pThis, IGuestSession * *session);
23028 
23029     nsresult (*GetRegistered)(IGuestSessionRegisteredEvent *pThis, PRBool *registered);
23030 
23031 };
23032 #    define IGuestSessionRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23033 #    define IGuestSessionRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23034 #    define IGuestSessionRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
23035 #    define IGuestSessionRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23036 #    define IGuestSessionRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23037 #    define IGuestSessionRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23038 #    define IGuestSessionRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23039 #    define IGuestSessionRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23040 #    define IGuestSessionRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23041 #    define IGuestSessionRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23042 #    define IGuestSessionRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23043 #    define IGuestSessionRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23044 #    define IGuestSessionRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23045 #    define IGuestSessionRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
23046 #    define IGuestSessionRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
23047 #   endif /* VBOX_WITH_GLUE */
23048 
23049 interface IGuestSessionRegisteredEvent
23050 {
23051 #   ifndef VBOX_WITH_GLUE
23052     struct IGuestSessionRegisteredEvent_vtbl *vtbl;
23053 #   else /* VBOX_WITH_GLUE */
23054     CONST_VTBL struct IGuestSessionRegisteredEventVtbl *lpVtbl;
23055 #   endif /* VBOX_WITH_GLUE */
23056 };
23057 /* End of struct IGuestSessionRegisteredEvent declaration */
23058 
23059 
23060 /* Start of struct IGuestProcessEvent declaration */
23061 #   define IGUESTPROCESSEVENT_IID_STR "2405f0e5-6588-40a3-9b0a-68c05ba52c4b"
23062 #   define IGUESTPROCESSEVENT_IID { \
23063     0x2405f0e5, 0x6588, 0x40a3, \
23064     { 0x9b, 0x0a, 0x68, 0xc0, 0x5b, 0xa5, 0x2c, 0x4b } \
23065 }
23066 /* COM compatibility */
23067 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessEvent);
23068 #   ifndef VBOX_WITH_GLUE
23069 struct IGuestProcessEvent_vtbl
23070 {
23071     struct IGuestSessionEvent_vtbl iguestsessionevent;
23072 
23073     nsresult (*GetProcess)(IGuestProcessEvent *pThis, IGuestProcess * *process);
23074 
23075     nsresult (*GetPid)(IGuestProcessEvent *pThis, PRUint32 *pid);
23076 
23077 };
23078 #   else /* VBOX_WITH_GLUE */
23079 struct IGuestProcessEventVtbl
23080 {
23081     nsresult (*QueryInterface)(IGuestProcessEvent *pThis, const nsID *iid, void **resultp);
23082     nsrefcnt (*AddRef)(IGuestProcessEvent *pThis);
23083     nsrefcnt (*Release)(IGuestProcessEvent *pThis);
23084     nsresult (*GetType)(IGuestProcessEvent *pThis, PRUint32 *type);
23085 
23086     nsresult (*GetSource)(IGuestProcessEvent *pThis, IEventSource * *source);
23087 
23088     nsresult (*GetWaitable)(IGuestProcessEvent *pThis, PRBool *waitable);
23089 
23090     nsresult (*SetProcessed)(IGuestProcessEvent *pThis );
23091 
23092     nsresult (*WaitProcessed)(
23093         IGuestProcessEvent *pThis,
23094         PRInt32 timeout,
23095         PRBool * result
23096     );
23097 
23098     nsresult (*GetSession)(IGuestProcessEvent *pThis, IGuestSession * *session);
23099 
23100     nsresult (*GetProcess)(IGuestProcessEvent *pThis, IGuestProcess * *process);
23101 
23102     nsresult (*GetPid)(IGuestProcessEvent *pThis, PRUint32 *pid);
23103 
23104 };
23105 #    define IGuestProcessEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23106 #    define IGuestProcessEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23107 #    define IGuestProcessEvent_Release(p) ((p)->lpVtbl->Release(p))
23108 #    define IGuestProcessEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23109 #    define IGuestProcessEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23110 #    define IGuestProcessEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23111 #    define IGuestProcessEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23112 #    define IGuestProcessEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23113 #    define IGuestProcessEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23114 #    define IGuestProcessEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23115 #    define IGuestProcessEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23116 #    define IGuestProcessEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23117 #    define IGuestProcessEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23118 #    define IGuestProcessEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23119 #    define IGuestProcessEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23120 #    define IGuestProcessEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23121 #    define IGuestProcessEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23122 #   endif /* VBOX_WITH_GLUE */
23123 
23124 interface IGuestProcessEvent
23125 {
23126 #   ifndef VBOX_WITH_GLUE
23127     struct IGuestProcessEvent_vtbl *vtbl;
23128 #   else /* VBOX_WITH_GLUE */
23129     CONST_VTBL struct IGuestProcessEventVtbl *lpVtbl;
23130 #   endif /* VBOX_WITH_GLUE */
23131 };
23132 /* End of struct IGuestProcessEvent declaration */
23133 
23134 
23135 /* Start of struct IGuestProcessRegisteredEvent declaration */
23136 #   define IGUESTPROCESSREGISTEREDEVENT_IID_STR "1d89e2b3-c6ea-45b6-9d43-dc6f70cc9f02"
23137 #   define IGUESTPROCESSREGISTEREDEVENT_IID { \
23138     0x1d89e2b3, 0xc6ea, 0x45b6, \
23139     { 0x9d, 0x43, 0xdc, 0x6f, 0x70, 0xcc, 0x9f, 0x02 } \
23140 }
23141 /* COM compatibility */
23142 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessRegisteredEvent);
23143 #   ifndef VBOX_WITH_GLUE
23144 struct IGuestProcessRegisteredEvent_vtbl
23145 {
23146     struct IGuestProcessEvent_vtbl iguestprocessevent;
23147 
23148     nsresult (*GetRegistered)(IGuestProcessRegisteredEvent *pThis, PRBool *registered);
23149 
23150 };
23151 #   else /* VBOX_WITH_GLUE */
23152 struct IGuestProcessRegisteredEventVtbl
23153 {
23154     nsresult (*QueryInterface)(IGuestProcessRegisteredEvent *pThis, const nsID *iid, void **resultp);
23155     nsrefcnt (*AddRef)(IGuestProcessRegisteredEvent *pThis);
23156     nsrefcnt (*Release)(IGuestProcessRegisteredEvent *pThis);
23157     nsresult (*GetType)(IGuestProcessRegisteredEvent *pThis, PRUint32 *type);
23158 
23159     nsresult (*GetSource)(IGuestProcessRegisteredEvent *pThis, IEventSource * *source);
23160 
23161     nsresult (*GetWaitable)(IGuestProcessRegisteredEvent *pThis, PRBool *waitable);
23162 
23163     nsresult (*SetProcessed)(IGuestProcessRegisteredEvent *pThis );
23164 
23165     nsresult (*WaitProcessed)(
23166         IGuestProcessRegisteredEvent *pThis,
23167         PRInt32 timeout,
23168         PRBool * result
23169     );
23170 
23171     nsresult (*GetSession)(IGuestProcessRegisteredEvent *pThis, IGuestSession * *session);
23172 
23173     nsresult (*GetProcess)(IGuestProcessRegisteredEvent *pThis, IGuestProcess * *process);
23174 
23175     nsresult (*GetPid)(IGuestProcessRegisteredEvent *pThis, PRUint32 *pid);
23176 
23177     nsresult (*GetRegistered)(IGuestProcessRegisteredEvent *pThis, PRBool *registered);
23178 
23179 };
23180 #    define IGuestProcessRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23181 #    define IGuestProcessRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23182 #    define IGuestProcessRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
23183 #    define IGuestProcessRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23184 #    define IGuestProcessRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23185 #    define IGuestProcessRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23186 #    define IGuestProcessRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23187 #    define IGuestProcessRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23188 #    define IGuestProcessRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23189 #    define IGuestProcessRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23190 #    define IGuestProcessRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23191 #    define IGuestProcessRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23192 #    define IGuestProcessRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23193 #    define IGuestProcessRegisteredEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23194 #    define IGuestProcessRegisteredEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23195 #    define IGuestProcessRegisteredEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23196 #    define IGuestProcessRegisteredEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23197 #    define IGuestProcessRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
23198 #    define IGuestProcessRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
23199 #   endif /* VBOX_WITH_GLUE */
23200 
23201 interface IGuestProcessRegisteredEvent
23202 {
23203 #   ifndef VBOX_WITH_GLUE
23204     struct IGuestProcessRegisteredEvent_vtbl *vtbl;
23205 #   else /* VBOX_WITH_GLUE */
23206     CONST_VTBL struct IGuestProcessRegisteredEventVtbl *lpVtbl;
23207 #   endif /* VBOX_WITH_GLUE */
23208 };
23209 /* End of struct IGuestProcessRegisteredEvent declaration */
23210 
23211 
23212 /* Start of struct IGuestProcessStateChangedEvent declaration */
23213 #   define IGUESTPROCESSSTATECHANGEDEVENT_IID_STR "c365fb7b-4430-499f-92c8-8bed814a567a"
23214 #   define IGUESTPROCESSSTATECHANGEDEVENT_IID { \
23215     0xc365fb7b, 0x4430, 0x499f, \
23216     { 0x92, 0xc8, 0x8b, 0xed, 0x81, 0x4a, 0x56, 0x7a } \
23217 }
23218 /* COM compatibility */
23219 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessStateChangedEvent);
23220 #   ifndef VBOX_WITH_GLUE
23221 struct IGuestProcessStateChangedEvent_vtbl
23222 {
23223     struct IGuestProcessEvent_vtbl iguestprocessevent;
23224 
23225     nsresult (*GetStatus)(IGuestProcessStateChangedEvent *pThis, PRUint32 *status);
23226 
23227     nsresult (*GetError)(IGuestProcessStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
23228 
23229 };
23230 #   else /* VBOX_WITH_GLUE */
23231 struct IGuestProcessStateChangedEventVtbl
23232 {
23233     nsresult (*QueryInterface)(IGuestProcessStateChangedEvent *pThis, const nsID *iid, void **resultp);
23234     nsrefcnt (*AddRef)(IGuestProcessStateChangedEvent *pThis);
23235     nsrefcnt (*Release)(IGuestProcessStateChangedEvent *pThis);
23236     nsresult (*GetType)(IGuestProcessStateChangedEvent *pThis, PRUint32 *type);
23237 
23238     nsresult (*GetSource)(IGuestProcessStateChangedEvent *pThis, IEventSource * *source);
23239 
23240     nsresult (*GetWaitable)(IGuestProcessStateChangedEvent *pThis, PRBool *waitable);
23241 
23242     nsresult (*SetProcessed)(IGuestProcessStateChangedEvent *pThis );
23243 
23244     nsresult (*WaitProcessed)(
23245         IGuestProcessStateChangedEvent *pThis,
23246         PRInt32 timeout,
23247         PRBool * result
23248     );
23249 
23250     nsresult (*GetSession)(IGuestProcessStateChangedEvent *pThis, IGuestSession * *session);
23251 
23252     nsresult (*GetProcess)(IGuestProcessStateChangedEvent *pThis, IGuestProcess * *process);
23253 
23254     nsresult (*GetPid)(IGuestProcessStateChangedEvent *pThis, PRUint32 *pid);
23255 
23256     nsresult (*GetStatus)(IGuestProcessStateChangedEvent *pThis, PRUint32 *status);
23257 
23258     nsresult (*GetError)(IGuestProcessStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
23259 
23260 };
23261 #    define IGuestProcessStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23262 #    define IGuestProcessStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23263 #    define IGuestProcessStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23264 #    define IGuestProcessStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23265 #    define IGuestProcessStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23266 #    define IGuestProcessStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23267 #    define IGuestProcessStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23268 #    define IGuestProcessStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23269 #    define IGuestProcessStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23270 #    define IGuestProcessStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23271 #    define IGuestProcessStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23272 #    define IGuestProcessStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23273 #    define IGuestProcessStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23274 #    define IGuestProcessStateChangedEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23275 #    define IGuestProcessStateChangedEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23276 #    define IGuestProcessStateChangedEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23277 #    define IGuestProcessStateChangedEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23278 #    define IGuestProcessStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
23279 #    define IGuestProcessStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
23280 #    define IGuestProcessStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
23281 #    define IGuestProcessStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
23282 #   endif /* VBOX_WITH_GLUE */
23283 
23284 interface IGuestProcessStateChangedEvent
23285 {
23286 #   ifndef VBOX_WITH_GLUE
23287     struct IGuestProcessStateChangedEvent_vtbl *vtbl;
23288 #   else /* VBOX_WITH_GLUE */
23289     CONST_VTBL struct IGuestProcessStateChangedEventVtbl *lpVtbl;
23290 #   endif /* VBOX_WITH_GLUE */
23291 };
23292 /* End of struct IGuestProcessStateChangedEvent declaration */
23293 
23294 
23295 /* Start of struct IGuestProcessIOEvent declaration */
23296 #   define IGUESTPROCESSIOEVENT_IID_STR "9ea9227c-e9bb-49b3-bfc7-c5171e93ef38"
23297 #   define IGUESTPROCESSIOEVENT_IID { \
23298     0x9ea9227c, 0xe9bb, 0x49b3, \
23299     { 0xbf, 0xc7, 0xc5, 0x17, 0x1e, 0x93, 0xef, 0x38 } \
23300 }
23301 /* COM compatibility */
23302 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessIOEvent);
23303 #   ifndef VBOX_WITH_GLUE
23304 struct IGuestProcessIOEvent_vtbl
23305 {
23306     struct IGuestProcessEvent_vtbl iguestprocessevent;
23307 
23308     nsresult (*GetHandle)(IGuestProcessIOEvent *pThis, PRUint32 *handle);
23309 
23310     nsresult (*GetProcessed)(IGuestProcessIOEvent *pThis, PRUint32 *processed);
23311 
23312 };
23313 #   else /* VBOX_WITH_GLUE */
23314 struct IGuestProcessIOEventVtbl
23315 {
23316     nsresult (*QueryInterface)(IGuestProcessIOEvent *pThis, const nsID *iid, void **resultp);
23317     nsrefcnt (*AddRef)(IGuestProcessIOEvent *pThis);
23318     nsrefcnt (*Release)(IGuestProcessIOEvent *pThis);
23319     nsresult (*GetType)(IGuestProcessIOEvent *pThis, PRUint32 *type);
23320 
23321     nsresult (*GetSource)(IGuestProcessIOEvent *pThis, IEventSource * *source);
23322 
23323     nsresult (*GetWaitable)(IGuestProcessIOEvent *pThis, PRBool *waitable);
23324 
23325     nsresult (*SetProcessed)(IGuestProcessIOEvent *pThis );
23326 
23327     nsresult (*WaitProcessed)(
23328         IGuestProcessIOEvent *pThis,
23329         PRInt32 timeout,
23330         PRBool * result
23331     );
23332 
23333     nsresult (*GetSession)(IGuestProcessIOEvent *pThis, IGuestSession * *session);
23334 
23335     nsresult (*GetProcess)(IGuestProcessIOEvent *pThis, IGuestProcess * *process);
23336 
23337     nsresult (*GetPid)(IGuestProcessIOEvent *pThis, PRUint32 *pid);
23338 
23339     nsresult (*GetHandle)(IGuestProcessIOEvent *pThis, PRUint32 *handle);
23340 
23341     nsresult (*GetProcessed)(IGuestProcessIOEvent *pThis, PRUint32 *processed);
23342 
23343 };
23344 #    define IGuestProcessIOEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23345 #    define IGuestProcessIOEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23346 #    define IGuestProcessIOEvent_Release(p) ((p)->lpVtbl->Release(p))
23347 #    define IGuestProcessIOEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23348 #    define IGuestProcessIOEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23349 #    define IGuestProcessIOEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23350 #    define IGuestProcessIOEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23351 #    define IGuestProcessIOEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23352 #    define IGuestProcessIOEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23353 #    define IGuestProcessIOEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23354 #    define IGuestProcessIOEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23355 #    define IGuestProcessIOEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23356 #    define IGuestProcessIOEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23357 #    define IGuestProcessIOEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23358 #    define IGuestProcessIOEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23359 #    define IGuestProcessIOEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23360 #    define IGuestProcessIOEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23361 #    define IGuestProcessIOEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
23362 #    define IGuestProcessIOEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
23363 #    define IGuestProcessIOEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23364 #    define IGuestProcessIOEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23365 #   endif /* VBOX_WITH_GLUE */
23366 
23367 interface IGuestProcessIOEvent
23368 {
23369 #   ifndef VBOX_WITH_GLUE
23370     struct IGuestProcessIOEvent_vtbl *vtbl;
23371 #   else /* VBOX_WITH_GLUE */
23372     CONST_VTBL struct IGuestProcessIOEventVtbl *lpVtbl;
23373 #   endif /* VBOX_WITH_GLUE */
23374 };
23375 /* End of struct IGuestProcessIOEvent declaration */
23376 
23377 
23378 /* Start of struct IGuestProcessInputNotifyEvent declaration */
23379 #   define IGUESTPROCESSINPUTNOTIFYEVENT_IID_STR "0de887f2-b7db-4616-aac6-cfb94d89ba78"
23380 #   define IGUESTPROCESSINPUTNOTIFYEVENT_IID { \
23381     0x0de887f2, 0xb7db, 0x4616, \
23382     { 0xaa, 0xc6, 0xcf, 0xb9, 0x4d, 0x89, 0xba, 0x78 } \
23383 }
23384 /* COM compatibility */
23385 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessInputNotifyEvent);
23386 #   ifndef VBOX_WITH_GLUE
23387 struct IGuestProcessInputNotifyEvent_vtbl
23388 {
23389     struct IGuestProcessIOEvent_vtbl iguestprocessioevent;
23390 
23391     nsresult (*GetStatus)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *status);
23392 
23393 };
23394 #   else /* VBOX_WITH_GLUE */
23395 struct IGuestProcessInputNotifyEventVtbl
23396 {
23397     nsresult (*QueryInterface)(IGuestProcessInputNotifyEvent *pThis, const nsID *iid, void **resultp);
23398     nsrefcnt (*AddRef)(IGuestProcessInputNotifyEvent *pThis);
23399     nsrefcnt (*Release)(IGuestProcessInputNotifyEvent *pThis);
23400     nsresult (*GetType)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *type);
23401 
23402     nsresult (*GetSource)(IGuestProcessInputNotifyEvent *pThis, IEventSource * *source);
23403 
23404     nsresult (*GetWaitable)(IGuestProcessInputNotifyEvent *pThis, PRBool *waitable);
23405 
23406     nsresult (*SetProcessed)(IGuestProcessInputNotifyEvent *pThis );
23407 
23408     nsresult (*WaitProcessed)(
23409         IGuestProcessInputNotifyEvent *pThis,
23410         PRInt32 timeout,
23411         PRBool * result
23412     );
23413 
23414     nsresult (*GetSession)(IGuestProcessInputNotifyEvent *pThis, IGuestSession * *session);
23415 
23416     nsresult (*GetProcess)(IGuestProcessInputNotifyEvent *pThis, IGuestProcess * *process);
23417 
23418     nsresult (*GetPid)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *pid);
23419 
23420     nsresult (*GetHandle)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *handle);
23421 
23422     nsresult (*GetProcessed)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *processed);
23423 
23424     nsresult (*GetStatus)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *status);
23425 
23426 };
23427 #    define IGuestProcessInputNotifyEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23428 #    define IGuestProcessInputNotifyEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23429 #    define IGuestProcessInputNotifyEvent_Release(p) ((p)->lpVtbl->Release(p))
23430 #    define IGuestProcessInputNotifyEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23431 #    define IGuestProcessInputNotifyEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23432 #    define IGuestProcessInputNotifyEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23433 #    define IGuestProcessInputNotifyEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23434 #    define IGuestProcessInputNotifyEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23435 #    define IGuestProcessInputNotifyEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23436 #    define IGuestProcessInputNotifyEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23437 #    define IGuestProcessInputNotifyEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23438 #    define IGuestProcessInputNotifyEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23439 #    define IGuestProcessInputNotifyEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23440 #    define IGuestProcessInputNotifyEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23441 #    define IGuestProcessInputNotifyEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23442 #    define IGuestProcessInputNotifyEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23443 #    define IGuestProcessInputNotifyEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23444 #    define IGuestProcessInputNotifyEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
23445 #    define IGuestProcessInputNotifyEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
23446 #    define IGuestProcessInputNotifyEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23447 #    define IGuestProcessInputNotifyEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23448 #    define IGuestProcessInputNotifyEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
23449 #    define IGuestProcessInputNotifyEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
23450 #   endif /* VBOX_WITH_GLUE */
23451 
23452 interface IGuestProcessInputNotifyEvent
23453 {
23454 #   ifndef VBOX_WITH_GLUE
23455     struct IGuestProcessInputNotifyEvent_vtbl *vtbl;
23456 #   else /* VBOX_WITH_GLUE */
23457     CONST_VTBL struct IGuestProcessInputNotifyEventVtbl *lpVtbl;
23458 #   endif /* VBOX_WITH_GLUE */
23459 };
23460 /* End of struct IGuestProcessInputNotifyEvent declaration */
23461 
23462 
23463 /* Start of struct IGuestProcessOutputEvent declaration */
23464 #   define IGUESTPROCESSOUTPUTEVENT_IID_STR "d3d5f1ee-bcb2-4905-a7ab-cc85448a742b"
23465 #   define IGUESTPROCESSOUTPUTEVENT_IID { \
23466     0xd3d5f1ee, 0xbcb2, 0x4905, \
23467     { 0xa7, 0xab, 0xcc, 0x85, 0x44, 0x8a, 0x74, 0x2b } \
23468 }
23469 /* COM compatibility */
23470 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessOutputEvent);
23471 #   ifndef VBOX_WITH_GLUE
23472 struct IGuestProcessOutputEvent_vtbl
23473 {
23474     struct IGuestProcessIOEvent_vtbl iguestprocessioevent;
23475 
23476     nsresult (*GetData)(IGuestProcessOutputEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
23477 
23478 };
23479 #   else /* VBOX_WITH_GLUE */
23480 struct IGuestProcessOutputEventVtbl
23481 {
23482     nsresult (*QueryInterface)(IGuestProcessOutputEvent *pThis, const nsID *iid, void **resultp);
23483     nsrefcnt (*AddRef)(IGuestProcessOutputEvent *pThis);
23484     nsrefcnt (*Release)(IGuestProcessOutputEvent *pThis);
23485     nsresult (*GetType)(IGuestProcessOutputEvent *pThis, PRUint32 *type);
23486 
23487     nsresult (*GetSource)(IGuestProcessOutputEvent *pThis, IEventSource * *source);
23488 
23489     nsresult (*GetWaitable)(IGuestProcessOutputEvent *pThis, PRBool *waitable);
23490 
23491     nsresult (*SetProcessed)(IGuestProcessOutputEvent *pThis );
23492 
23493     nsresult (*WaitProcessed)(
23494         IGuestProcessOutputEvent *pThis,
23495         PRInt32 timeout,
23496         PRBool * result
23497     );
23498 
23499     nsresult (*GetSession)(IGuestProcessOutputEvent *pThis, IGuestSession * *session);
23500 
23501     nsresult (*GetProcess)(IGuestProcessOutputEvent *pThis, IGuestProcess * *process);
23502 
23503     nsresult (*GetPid)(IGuestProcessOutputEvent *pThis, PRUint32 *pid);
23504 
23505     nsresult (*GetHandle)(IGuestProcessOutputEvent *pThis, PRUint32 *handle);
23506 
23507     nsresult (*GetProcessed)(IGuestProcessOutputEvent *pThis, PRUint32 *processed);
23508 
23509     nsresult (*GetData)(IGuestProcessOutputEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
23510 
23511 };
23512 #    define IGuestProcessOutputEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23513 #    define IGuestProcessOutputEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23514 #    define IGuestProcessOutputEvent_Release(p) ((p)->lpVtbl->Release(p))
23515 #    define IGuestProcessOutputEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23516 #    define IGuestProcessOutputEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23517 #    define IGuestProcessOutputEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23518 #    define IGuestProcessOutputEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23519 #    define IGuestProcessOutputEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23520 #    define IGuestProcessOutputEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23521 #    define IGuestProcessOutputEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23522 #    define IGuestProcessOutputEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23523 #    define IGuestProcessOutputEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23524 #    define IGuestProcessOutputEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23525 #    define IGuestProcessOutputEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23526 #    define IGuestProcessOutputEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
23527 #    define IGuestProcessOutputEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23528 #    define IGuestProcessOutputEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
23529 #    define IGuestProcessOutputEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
23530 #    define IGuestProcessOutputEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
23531 #    define IGuestProcessOutputEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23532 #    define IGuestProcessOutputEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23533 #    define IGuestProcessOutputEvent_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
23534 #    define IGuestProcessOutputEvent_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
23535 #   endif /* VBOX_WITH_GLUE */
23536 
23537 interface IGuestProcessOutputEvent
23538 {
23539 #   ifndef VBOX_WITH_GLUE
23540     struct IGuestProcessOutputEvent_vtbl *vtbl;
23541 #   else /* VBOX_WITH_GLUE */
23542     CONST_VTBL struct IGuestProcessOutputEventVtbl *lpVtbl;
23543 #   endif /* VBOX_WITH_GLUE */
23544 };
23545 /* End of struct IGuestProcessOutputEvent declaration */
23546 
23547 
23548 /* Start of struct IGuestFileEvent declaration */
23549 #   define IGUESTFILEEVENT_IID_STR "c8adb7b0-057d-4391-b928-f14b06b710c5"
23550 #   define IGUESTFILEEVENT_IID { \
23551     0xc8adb7b0, 0x057d, 0x4391, \
23552     { 0xb9, 0x28, 0xf1, 0x4b, 0x06, 0xb7, 0x10, 0xc5 } \
23553 }
23554 /* COM compatibility */
23555 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileEvent);
23556 #   ifndef VBOX_WITH_GLUE
23557 struct IGuestFileEvent_vtbl
23558 {
23559     struct IGuestSessionEvent_vtbl iguestsessionevent;
23560 
23561     nsresult (*GetFile)(IGuestFileEvent *pThis, IGuestFile * *file);
23562 
23563 };
23564 #   else /* VBOX_WITH_GLUE */
23565 struct IGuestFileEventVtbl
23566 {
23567     nsresult (*QueryInterface)(IGuestFileEvent *pThis, const nsID *iid, void **resultp);
23568     nsrefcnt (*AddRef)(IGuestFileEvent *pThis);
23569     nsrefcnt (*Release)(IGuestFileEvent *pThis);
23570     nsresult (*GetType)(IGuestFileEvent *pThis, PRUint32 *type);
23571 
23572     nsresult (*GetSource)(IGuestFileEvent *pThis, IEventSource * *source);
23573 
23574     nsresult (*GetWaitable)(IGuestFileEvent *pThis, PRBool *waitable);
23575 
23576     nsresult (*SetProcessed)(IGuestFileEvent *pThis );
23577 
23578     nsresult (*WaitProcessed)(
23579         IGuestFileEvent *pThis,
23580         PRInt32 timeout,
23581         PRBool * result
23582     );
23583 
23584     nsresult (*GetSession)(IGuestFileEvent *pThis, IGuestSession * *session);
23585 
23586     nsresult (*GetFile)(IGuestFileEvent *pThis, IGuestFile * *file);
23587 
23588 };
23589 #    define IGuestFileEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23590 #    define IGuestFileEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23591 #    define IGuestFileEvent_Release(p) ((p)->lpVtbl->Release(p))
23592 #    define IGuestFileEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23593 #    define IGuestFileEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23594 #    define IGuestFileEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23595 #    define IGuestFileEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23596 #    define IGuestFileEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23597 #    define IGuestFileEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23598 #    define IGuestFileEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23599 #    define IGuestFileEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23600 #    define IGuestFileEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23601 #    define IGuestFileEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23602 #    define IGuestFileEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23603 #    define IGuestFileEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23604 #   endif /* VBOX_WITH_GLUE */
23605 
23606 interface IGuestFileEvent
23607 {
23608 #   ifndef VBOX_WITH_GLUE
23609     struct IGuestFileEvent_vtbl *vtbl;
23610 #   else /* VBOX_WITH_GLUE */
23611     CONST_VTBL struct IGuestFileEventVtbl *lpVtbl;
23612 #   endif /* VBOX_WITH_GLUE */
23613 };
23614 /* End of struct IGuestFileEvent declaration */
23615 
23616 
23617 /* Start of struct IGuestFileRegisteredEvent declaration */
23618 #   define IGUESTFILEREGISTEREDEVENT_IID_STR "d0d93830-70a2-487e-895e-d3fc9679f7b3"
23619 #   define IGUESTFILEREGISTEREDEVENT_IID { \
23620     0xd0d93830, 0x70a2, 0x487e, \
23621     { 0x89, 0x5e, 0xd3, 0xfc, 0x96, 0x79, 0xf7, 0xb3 } \
23622 }
23623 /* COM compatibility */
23624 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileRegisteredEvent);
23625 #   ifndef VBOX_WITH_GLUE
23626 struct IGuestFileRegisteredEvent_vtbl
23627 {
23628     struct IGuestFileEvent_vtbl iguestfileevent;
23629 
23630     nsresult (*GetRegistered)(IGuestFileRegisteredEvent *pThis, PRBool *registered);
23631 
23632 };
23633 #   else /* VBOX_WITH_GLUE */
23634 struct IGuestFileRegisteredEventVtbl
23635 {
23636     nsresult (*QueryInterface)(IGuestFileRegisteredEvent *pThis, const nsID *iid, void **resultp);
23637     nsrefcnt (*AddRef)(IGuestFileRegisteredEvent *pThis);
23638     nsrefcnt (*Release)(IGuestFileRegisteredEvent *pThis);
23639     nsresult (*GetType)(IGuestFileRegisteredEvent *pThis, PRUint32 *type);
23640 
23641     nsresult (*GetSource)(IGuestFileRegisteredEvent *pThis, IEventSource * *source);
23642 
23643     nsresult (*GetWaitable)(IGuestFileRegisteredEvent *pThis, PRBool *waitable);
23644 
23645     nsresult (*SetProcessed)(IGuestFileRegisteredEvent *pThis );
23646 
23647     nsresult (*WaitProcessed)(
23648         IGuestFileRegisteredEvent *pThis,
23649         PRInt32 timeout,
23650         PRBool * result
23651     );
23652 
23653     nsresult (*GetSession)(IGuestFileRegisteredEvent *pThis, IGuestSession * *session);
23654 
23655     nsresult (*GetFile)(IGuestFileRegisteredEvent *pThis, IGuestFile * *file);
23656 
23657     nsresult (*GetRegistered)(IGuestFileRegisteredEvent *pThis, PRBool *registered);
23658 
23659 };
23660 #    define IGuestFileRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23661 #    define IGuestFileRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23662 #    define IGuestFileRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
23663 #    define IGuestFileRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23664 #    define IGuestFileRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23665 #    define IGuestFileRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23666 #    define IGuestFileRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23667 #    define IGuestFileRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23668 #    define IGuestFileRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23669 #    define IGuestFileRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23670 #    define IGuestFileRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23671 #    define IGuestFileRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23672 #    define IGuestFileRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23673 #    define IGuestFileRegisteredEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23674 #    define IGuestFileRegisteredEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23675 #    define IGuestFileRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
23676 #    define IGuestFileRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
23677 #   endif /* VBOX_WITH_GLUE */
23678 
23679 interface IGuestFileRegisteredEvent
23680 {
23681 #   ifndef VBOX_WITH_GLUE
23682     struct IGuestFileRegisteredEvent_vtbl *vtbl;
23683 #   else /* VBOX_WITH_GLUE */
23684     CONST_VTBL struct IGuestFileRegisteredEventVtbl *lpVtbl;
23685 #   endif /* VBOX_WITH_GLUE */
23686 };
23687 /* End of struct IGuestFileRegisteredEvent declaration */
23688 
23689 
23690 /* Start of struct IGuestFileStateChangedEvent declaration */
23691 #   define IGUESTFILESTATECHANGEDEVENT_IID_STR "d37fe88f-0979-486c-baa1-3abb144dc82d"
23692 #   define IGUESTFILESTATECHANGEDEVENT_IID { \
23693     0xd37fe88f, 0x0979, 0x486c, \
23694     { 0xba, 0xa1, 0x3a, 0xbb, 0x14, 0x4d, 0xc8, 0x2d } \
23695 }
23696 /* COM compatibility */
23697 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileStateChangedEvent);
23698 #   ifndef VBOX_WITH_GLUE
23699 struct IGuestFileStateChangedEvent_vtbl
23700 {
23701     struct IGuestFileEvent_vtbl iguestfileevent;
23702 
23703     nsresult (*GetStatus)(IGuestFileStateChangedEvent *pThis, PRUint32 *status);
23704 
23705     nsresult (*GetError)(IGuestFileStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
23706 
23707 };
23708 #   else /* VBOX_WITH_GLUE */
23709 struct IGuestFileStateChangedEventVtbl
23710 {
23711     nsresult (*QueryInterface)(IGuestFileStateChangedEvent *pThis, const nsID *iid, void **resultp);
23712     nsrefcnt (*AddRef)(IGuestFileStateChangedEvent *pThis);
23713     nsrefcnt (*Release)(IGuestFileStateChangedEvent *pThis);
23714     nsresult (*GetType)(IGuestFileStateChangedEvent *pThis, PRUint32 *type);
23715 
23716     nsresult (*GetSource)(IGuestFileStateChangedEvent *pThis, IEventSource * *source);
23717 
23718     nsresult (*GetWaitable)(IGuestFileStateChangedEvent *pThis, PRBool *waitable);
23719 
23720     nsresult (*SetProcessed)(IGuestFileStateChangedEvent *pThis );
23721 
23722     nsresult (*WaitProcessed)(
23723         IGuestFileStateChangedEvent *pThis,
23724         PRInt32 timeout,
23725         PRBool * result
23726     );
23727 
23728     nsresult (*GetSession)(IGuestFileStateChangedEvent *pThis, IGuestSession * *session);
23729 
23730     nsresult (*GetFile)(IGuestFileStateChangedEvent *pThis, IGuestFile * *file);
23731 
23732     nsresult (*GetStatus)(IGuestFileStateChangedEvent *pThis, PRUint32 *status);
23733 
23734     nsresult (*GetError)(IGuestFileStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
23735 
23736 };
23737 #    define IGuestFileStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23738 #    define IGuestFileStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23739 #    define IGuestFileStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23740 #    define IGuestFileStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23741 #    define IGuestFileStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23742 #    define IGuestFileStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23743 #    define IGuestFileStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23744 #    define IGuestFileStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23745 #    define IGuestFileStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23746 #    define IGuestFileStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23747 #    define IGuestFileStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23748 #    define IGuestFileStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23749 #    define IGuestFileStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23750 #    define IGuestFileStateChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23751 #    define IGuestFileStateChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23752 #    define IGuestFileStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
23753 #    define IGuestFileStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
23754 #    define IGuestFileStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
23755 #    define IGuestFileStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
23756 #   endif /* VBOX_WITH_GLUE */
23757 
23758 interface IGuestFileStateChangedEvent
23759 {
23760 #   ifndef VBOX_WITH_GLUE
23761     struct IGuestFileStateChangedEvent_vtbl *vtbl;
23762 #   else /* VBOX_WITH_GLUE */
23763     CONST_VTBL struct IGuestFileStateChangedEventVtbl *lpVtbl;
23764 #   endif /* VBOX_WITH_GLUE */
23765 };
23766 /* End of struct IGuestFileStateChangedEvent declaration */
23767 
23768 
23769 /* Start of struct IGuestFileIOEvent declaration */
23770 #   define IGUESTFILEIOEVENT_IID_STR "b5191a7c-9536-4ef8-820e-3b0e17e5bbc8"
23771 #   define IGUESTFILEIOEVENT_IID { \
23772     0xb5191a7c, 0x9536, 0x4ef8, \
23773     { 0x82, 0x0e, 0x3b, 0x0e, 0x17, 0xe5, 0xbb, 0xc8 } \
23774 }
23775 /* COM compatibility */
23776 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileIOEvent);
23777 #   ifndef VBOX_WITH_GLUE
23778 struct IGuestFileIOEvent_vtbl
23779 {
23780     struct IGuestFileEvent_vtbl iguestfileevent;
23781 
23782     nsresult (*GetOffset)(IGuestFileIOEvent *pThis, PRInt64 *offset);
23783 
23784     nsresult (*GetProcessed)(IGuestFileIOEvent *pThis, PRUint32 *processed);
23785 
23786 };
23787 #   else /* VBOX_WITH_GLUE */
23788 struct IGuestFileIOEventVtbl
23789 {
23790     nsresult (*QueryInterface)(IGuestFileIOEvent *pThis, const nsID *iid, void **resultp);
23791     nsrefcnt (*AddRef)(IGuestFileIOEvent *pThis);
23792     nsrefcnt (*Release)(IGuestFileIOEvent *pThis);
23793     nsresult (*GetType)(IGuestFileIOEvent *pThis, PRUint32 *type);
23794 
23795     nsresult (*GetSource)(IGuestFileIOEvent *pThis, IEventSource * *source);
23796 
23797     nsresult (*GetWaitable)(IGuestFileIOEvent *pThis, PRBool *waitable);
23798 
23799     nsresult (*SetProcessed)(IGuestFileIOEvent *pThis );
23800 
23801     nsresult (*WaitProcessed)(
23802         IGuestFileIOEvent *pThis,
23803         PRInt32 timeout,
23804         PRBool * result
23805     );
23806 
23807     nsresult (*GetSession)(IGuestFileIOEvent *pThis, IGuestSession * *session);
23808 
23809     nsresult (*GetFile)(IGuestFileIOEvent *pThis, IGuestFile * *file);
23810 
23811     nsresult (*GetOffset)(IGuestFileIOEvent *pThis, PRInt64 *offset);
23812 
23813     nsresult (*GetProcessed)(IGuestFileIOEvent *pThis, PRUint32 *processed);
23814 
23815 };
23816 #    define IGuestFileIOEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23817 #    define IGuestFileIOEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23818 #    define IGuestFileIOEvent_Release(p) ((p)->lpVtbl->Release(p))
23819 #    define IGuestFileIOEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23820 #    define IGuestFileIOEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23821 #    define IGuestFileIOEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23822 #    define IGuestFileIOEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23823 #    define IGuestFileIOEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23824 #    define IGuestFileIOEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23825 #    define IGuestFileIOEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23826 #    define IGuestFileIOEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23827 #    define IGuestFileIOEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23828 #    define IGuestFileIOEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23829 #    define IGuestFileIOEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23830 #    define IGuestFileIOEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23831 #    define IGuestFileIOEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
23832 #    define IGuestFileIOEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
23833 #    define IGuestFileIOEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23834 #    define IGuestFileIOEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23835 #   endif /* VBOX_WITH_GLUE */
23836 
23837 interface IGuestFileIOEvent
23838 {
23839 #   ifndef VBOX_WITH_GLUE
23840     struct IGuestFileIOEvent_vtbl *vtbl;
23841 #   else /* VBOX_WITH_GLUE */
23842     CONST_VTBL struct IGuestFileIOEventVtbl *lpVtbl;
23843 #   endif /* VBOX_WITH_GLUE */
23844 };
23845 /* End of struct IGuestFileIOEvent declaration */
23846 
23847 
23848 /* Start of struct IGuestFileOffsetChangedEvent declaration */
23849 #   define IGUESTFILEOFFSETCHANGEDEVENT_IID_STR "e8f79a21-1207-4179-94cf-ca250036308f"
23850 #   define IGUESTFILEOFFSETCHANGEDEVENT_IID { \
23851     0xe8f79a21, 0x1207, 0x4179, \
23852     { 0x94, 0xcf, 0xca, 0x25, 0x00, 0x36, 0x30, 0x8f } \
23853 }
23854 /* COM compatibility */
23855 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileOffsetChangedEvent);
23856 #   ifndef VBOX_WITH_GLUE
23857 struct IGuestFileOffsetChangedEvent_vtbl
23858 {
23859     struct IGuestFileIOEvent_vtbl iguestfileioevent;
23860 
23861     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileOffsetChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23862 
23863 };
23864 #   else /* VBOX_WITH_GLUE */
23865 struct IGuestFileOffsetChangedEventVtbl
23866 {
23867     nsresult (*QueryInterface)(IGuestFileOffsetChangedEvent *pThis, const nsID *iid, void **resultp);
23868     nsrefcnt (*AddRef)(IGuestFileOffsetChangedEvent *pThis);
23869     nsrefcnt (*Release)(IGuestFileOffsetChangedEvent *pThis);
23870     nsresult (*GetType)(IGuestFileOffsetChangedEvent *pThis, PRUint32 *type);
23871 
23872     nsresult (*GetSource)(IGuestFileOffsetChangedEvent *pThis, IEventSource * *source);
23873 
23874     nsresult (*GetWaitable)(IGuestFileOffsetChangedEvent *pThis, PRBool *waitable);
23875 
23876     nsresult (*SetProcessed)(IGuestFileOffsetChangedEvent *pThis );
23877 
23878     nsresult (*WaitProcessed)(
23879         IGuestFileOffsetChangedEvent *pThis,
23880         PRInt32 timeout,
23881         PRBool * result
23882     );
23883 
23884     nsresult (*GetSession)(IGuestFileOffsetChangedEvent *pThis, IGuestSession * *session);
23885 
23886     nsresult (*GetFile)(IGuestFileOffsetChangedEvent *pThis, IGuestFile * *file);
23887 
23888     nsresult (*GetOffset)(IGuestFileOffsetChangedEvent *pThis, PRInt64 *offset);
23889 
23890     nsresult (*GetProcessed)(IGuestFileOffsetChangedEvent *pThis, PRUint32 *processed);
23891 
23892     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileOffsetChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
23893 
23894 };
23895 #    define IGuestFileOffsetChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23896 #    define IGuestFileOffsetChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23897 #    define IGuestFileOffsetChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
23898 #    define IGuestFileOffsetChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23899 #    define IGuestFileOffsetChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23900 #    define IGuestFileOffsetChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23901 #    define IGuestFileOffsetChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23902 #    define IGuestFileOffsetChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23903 #    define IGuestFileOffsetChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23904 #    define IGuestFileOffsetChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23905 #    define IGuestFileOffsetChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23906 #    define IGuestFileOffsetChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23907 #    define IGuestFileOffsetChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23908 #    define IGuestFileOffsetChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23909 #    define IGuestFileOffsetChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23910 #    define IGuestFileOffsetChangedEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
23911 #    define IGuestFileOffsetChangedEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
23912 #    define IGuestFileOffsetChangedEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23913 #    define IGuestFileOffsetChangedEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23914 #    define IGuestFileOffsetChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23915 #    define IGuestFileOffsetChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
23916 #   endif /* VBOX_WITH_GLUE */
23917 
23918 interface IGuestFileOffsetChangedEvent
23919 {
23920 #   ifndef VBOX_WITH_GLUE
23921     struct IGuestFileOffsetChangedEvent_vtbl *vtbl;
23922 #   else /* VBOX_WITH_GLUE */
23923     CONST_VTBL struct IGuestFileOffsetChangedEventVtbl *lpVtbl;
23924 #   endif /* VBOX_WITH_GLUE */
23925 };
23926 /* End of struct IGuestFileOffsetChangedEvent declaration */
23927 
23928 
23929 /* Start of struct IGuestFileReadEvent declaration */
23930 #   define IGUESTFILEREADEVENT_IID_STR "4ee3cbcb-486f-40db-9150-deee3fd24189"
23931 #   define IGUESTFILEREADEVENT_IID { \
23932     0x4ee3cbcb, 0x486f, 0x40db, \
23933     { 0x91, 0x50, 0xde, 0xee, 0x3f, 0xd2, 0x41, 0x89 } \
23934 }
23935 /* COM compatibility */
23936 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileReadEvent);
23937 #   ifndef VBOX_WITH_GLUE
23938 struct IGuestFileReadEvent_vtbl
23939 {
23940     struct IGuestFileIOEvent_vtbl iguestfileioevent;
23941 
23942     nsresult (*GetData)(IGuestFileReadEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
23943 
23944 };
23945 #   else /* VBOX_WITH_GLUE */
23946 struct IGuestFileReadEventVtbl
23947 {
23948     nsresult (*QueryInterface)(IGuestFileReadEvent *pThis, const nsID *iid, void **resultp);
23949     nsrefcnt (*AddRef)(IGuestFileReadEvent *pThis);
23950     nsrefcnt (*Release)(IGuestFileReadEvent *pThis);
23951     nsresult (*GetType)(IGuestFileReadEvent *pThis, PRUint32 *type);
23952 
23953     nsresult (*GetSource)(IGuestFileReadEvent *pThis, IEventSource * *source);
23954 
23955     nsresult (*GetWaitable)(IGuestFileReadEvent *pThis, PRBool *waitable);
23956 
23957     nsresult (*SetProcessed)(IGuestFileReadEvent *pThis );
23958 
23959     nsresult (*WaitProcessed)(
23960         IGuestFileReadEvent *pThis,
23961         PRInt32 timeout,
23962         PRBool * result
23963     );
23964 
23965     nsresult (*GetSession)(IGuestFileReadEvent *pThis, IGuestSession * *session);
23966 
23967     nsresult (*GetFile)(IGuestFileReadEvent *pThis, IGuestFile * *file);
23968 
23969     nsresult (*GetOffset)(IGuestFileReadEvent *pThis, PRInt64 *offset);
23970 
23971     nsresult (*GetProcessed)(IGuestFileReadEvent *pThis, PRUint32 *processed);
23972 
23973     nsresult (*GetData)(IGuestFileReadEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
23974 
23975 };
23976 #    define IGuestFileReadEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23977 #    define IGuestFileReadEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
23978 #    define IGuestFileReadEvent_Release(p) ((p)->lpVtbl->Release(p))
23979 #    define IGuestFileReadEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23980 #    define IGuestFileReadEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23981 #    define IGuestFileReadEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23982 #    define IGuestFileReadEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
23983 #    define IGuestFileReadEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23984 #    define IGuestFileReadEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
23985 #    define IGuestFileReadEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
23986 #    define IGuestFileReadEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
23987 #    define IGuestFileReadEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23988 #    define IGuestFileReadEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23989 #    define IGuestFileReadEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23990 #    define IGuestFileReadEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
23991 #    define IGuestFileReadEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
23992 #    define IGuestFileReadEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
23993 #    define IGuestFileReadEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23994 #    define IGuestFileReadEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
23995 #    define IGuestFileReadEvent_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
23996 #    define IGuestFileReadEvent_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
23997 #   endif /* VBOX_WITH_GLUE */
23998 
23999 interface IGuestFileReadEvent
24000 {
24001 #   ifndef VBOX_WITH_GLUE
24002     struct IGuestFileReadEvent_vtbl *vtbl;
24003 #   else /* VBOX_WITH_GLUE */
24004     CONST_VTBL struct IGuestFileReadEventVtbl *lpVtbl;
24005 #   endif /* VBOX_WITH_GLUE */
24006 };
24007 /* End of struct IGuestFileReadEvent declaration */
24008 
24009 
24010 /* Start of struct IGuestFileWriteEvent declaration */
24011 #   define IGUESTFILEWRITEEVENT_IID_STR "e062a915-3cf5-4c0a-bc90-9b8d4cc94d89"
24012 #   define IGUESTFILEWRITEEVENT_IID { \
24013     0xe062a915, 0x3cf5, 0x4c0a, \
24014     { 0xbc, 0x90, 0x9b, 0x8d, 0x4c, 0xc9, 0x4d, 0x89 } \
24015 }
24016 /* COM compatibility */
24017 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileWriteEvent);
24018 #   ifndef VBOX_WITH_GLUE
24019 struct IGuestFileWriteEvent_vtbl
24020 {
24021     struct IGuestFileIOEvent_vtbl iguestfileioevent;
24022 
24023     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileWriteEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24024 
24025 };
24026 #   else /* VBOX_WITH_GLUE */
24027 struct IGuestFileWriteEventVtbl
24028 {
24029     nsresult (*QueryInterface)(IGuestFileWriteEvent *pThis, const nsID *iid, void **resultp);
24030     nsrefcnt (*AddRef)(IGuestFileWriteEvent *pThis);
24031     nsrefcnt (*Release)(IGuestFileWriteEvent *pThis);
24032     nsresult (*GetType)(IGuestFileWriteEvent *pThis, PRUint32 *type);
24033 
24034     nsresult (*GetSource)(IGuestFileWriteEvent *pThis, IEventSource * *source);
24035 
24036     nsresult (*GetWaitable)(IGuestFileWriteEvent *pThis, PRBool *waitable);
24037 
24038     nsresult (*SetProcessed)(IGuestFileWriteEvent *pThis );
24039 
24040     nsresult (*WaitProcessed)(
24041         IGuestFileWriteEvent *pThis,
24042         PRInt32 timeout,
24043         PRBool * result
24044     );
24045 
24046     nsresult (*GetSession)(IGuestFileWriteEvent *pThis, IGuestSession * *session);
24047 
24048     nsresult (*GetFile)(IGuestFileWriteEvent *pThis, IGuestFile * *file);
24049 
24050     nsresult (*GetOffset)(IGuestFileWriteEvent *pThis, PRInt64 *offset);
24051 
24052     nsresult (*GetProcessed)(IGuestFileWriteEvent *pThis, PRUint32 *processed);
24053 
24054     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileWriteEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24055 
24056 };
24057 #    define IGuestFileWriteEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24058 #    define IGuestFileWriteEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24059 #    define IGuestFileWriteEvent_Release(p) ((p)->lpVtbl->Release(p))
24060 #    define IGuestFileWriteEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24061 #    define IGuestFileWriteEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24062 #    define IGuestFileWriteEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24063 #    define IGuestFileWriteEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24064 #    define IGuestFileWriteEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24065 #    define IGuestFileWriteEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24066 #    define IGuestFileWriteEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24067 #    define IGuestFileWriteEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24068 #    define IGuestFileWriteEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24069 #    define IGuestFileWriteEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
24070 #    define IGuestFileWriteEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
24071 #    define IGuestFileWriteEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
24072 #    define IGuestFileWriteEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
24073 #    define IGuestFileWriteEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
24074 #    define IGuestFileWriteEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
24075 #    define IGuestFileWriteEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
24076 #    define IGuestFileWriteEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24077 #    define IGuestFileWriteEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24078 #   endif /* VBOX_WITH_GLUE */
24079 
24080 interface IGuestFileWriteEvent
24081 {
24082 #   ifndef VBOX_WITH_GLUE
24083     struct IGuestFileWriteEvent_vtbl *vtbl;
24084 #   else /* VBOX_WITH_GLUE */
24085     CONST_VTBL struct IGuestFileWriteEventVtbl *lpVtbl;
24086 #   endif /* VBOX_WITH_GLUE */
24087 };
24088 /* End of struct IGuestFileWriteEvent declaration */
24089 
24090 
24091 /* Start of struct IVRDEServerChangedEvent declaration */
24092 #   define IVRDESERVERCHANGEDEVENT_IID_STR "a06fd66a-3188-4c8c-8756-1395e8cb691c"
24093 #   define IVRDESERVERCHANGEDEVENT_IID { \
24094     0xa06fd66a, 0x3188, 0x4c8c, \
24095     { 0x87, 0x56, 0x13, 0x95, 0xe8, 0xcb, 0x69, 0x1c } \
24096 }
24097 /* COM compatibility */
24098 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerChangedEvent);
24099 #   ifndef VBOX_WITH_GLUE
24100 struct IVRDEServerChangedEvent_vtbl
24101 {
24102     struct IEvent_vtbl ievent;
24103 
24104     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24105 
24106 };
24107 #   else /* VBOX_WITH_GLUE */
24108 struct IVRDEServerChangedEventVtbl
24109 {
24110     nsresult (*QueryInterface)(IVRDEServerChangedEvent *pThis, const nsID *iid, void **resultp);
24111     nsrefcnt (*AddRef)(IVRDEServerChangedEvent *pThis);
24112     nsrefcnt (*Release)(IVRDEServerChangedEvent *pThis);
24113     nsresult (*GetType)(IVRDEServerChangedEvent *pThis, PRUint32 *type);
24114 
24115     nsresult (*GetSource)(IVRDEServerChangedEvent *pThis, IEventSource * *source);
24116 
24117     nsresult (*GetWaitable)(IVRDEServerChangedEvent *pThis, PRBool *waitable);
24118 
24119     nsresult (*SetProcessed)(IVRDEServerChangedEvent *pThis );
24120 
24121     nsresult (*WaitProcessed)(
24122         IVRDEServerChangedEvent *pThis,
24123         PRInt32 timeout,
24124         PRBool * result
24125     );
24126 
24127     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24128 
24129 };
24130 #    define IVRDEServerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24131 #    define IVRDEServerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24132 #    define IVRDEServerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24133 #    define IVRDEServerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24134 #    define IVRDEServerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24135 #    define IVRDEServerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24136 #    define IVRDEServerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24137 #    define IVRDEServerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24138 #    define IVRDEServerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24139 #    define IVRDEServerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24140 #    define IVRDEServerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24141 #    define IVRDEServerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24142 #    define IVRDEServerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24143 #   endif /* VBOX_WITH_GLUE */
24144 
24145 interface IVRDEServerChangedEvent
24146 {
24147 #   ifndef VBOX_WITH_GLUE
24148     struct IVRDEServerChangedEvent_vtbl *vtbl;
24149 #   else /* VBOX_WITH_GLUE */
24150     CONST_VTBL struct IVRDEServerChangedEventVtbl *lpVtbl;
24151 #   endif /* VBOX_WITH_GLUE */
24152 };
24153 /* End of struct IVRDEServerChangedEvent declaration */
24154 
24155 
24156 /* Start of struct IVRDEServerInfoChangedEvent declaration */
24157 #   define IVRDESERVERINFOCHANGEDEVENT_IID_STR "dd6a1080-e1b7-4339-a549-f0878115596e"
24158 #   define IVRDESERVERINFOCHANGEDEVENT_IID { \
24159     0xdd6a1080, 0xe1b7, 0x4339, \
24160     { 0xa5, 0x49, 0xf0, 0x87, 0x81, 0x15, 0x59, 0x6e } \
24161 }
24162 /* COM compatibility */
24163 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerInfoChangedEvent);
24164 #   ifndef VBOX_WITH_GLUE
24165 struct IVRDEServerInfoChangedEvent_vtbl
24166 {
24167     struct IEvent_vtbl ievent;
24168 
24169     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerInfoChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24170 
24171 };
24172 #   else /* VBOX_WITH_GLUE */
24173 struct IVRDEServerInfoChangedEventVtbl
24174 {
24175     nsresult (*QueryInterface)(IVRDEServerInfoChangedEvent *pThis, const nsID *iid, void **resultp);
24176     nsrefcnt (*AddRef)(IVRDEServerInfoChangedEvent *pThis);
24177     nsrefcnt (*Release)(IVRDEServerInfoChangedEvent *pThis);
24178     nsresult (*GetType)(IVRDEServerInfoChangedEvent *pThis, PRUint32 *type);
24179 
24180     nsresult (*GetSource)(IVRDEServerInfoChangedEvent *pThis, IEventSource * *source);
24181 
24182     nsresult (*GetWaitable)(IVRDEServerInfoChangedEvent *pThis, PRBool *waitable);
24183 
24184     nsresult (*SetProcessed)(IVRDEServerInfoChangedEvent *pThis );
24185 
24186     nsresult (*WaitProcessed)(
24187         IVRDEServerInfoChangedEvent *pThis,
24188         PRInt32 timeout,
24189         PRBool * result
24190     );
24191 
24192     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerInfoChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24193 
24194 };
24195 #    define IVRDEServerInfoChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24196 #    define IVRDEServerInfoChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24197 #    define IVRDEServerInfoChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24198 #    define IVRDEServerInfoChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24199 #    define IVRDEServerInfoChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24200 #    define IVRDEServerInfoChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24201 #    define IVRDEServerInfoChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24202 #    define IVRDEServerInfoChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24203 #    define IVRDEServerInfoChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24204 #    define IVRDEServerInfoChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24205 #    define IVRDEServerInfoChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24206 #    define IVRDEServerInfoChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24207 #    define IVRDEServerInfoChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24208 #   endif /* VBOX_WITH_GLUE */
24209 
24210 interface IVRDEServerInfoChangedEvent
24211 {
24212 #   ifndef VBOX_WITH_GLUE
24213     struct IVRDEServerInfoChangedEvent_vtbl *vtbl;
24214 #   else /* VBOX_WITH_GLUE */
24215     CONST_VTBL struct IVRDEServerInfoChangedEventVtbl *lpVtbl;
24216 #   endif /* VBOX_WITH_GLUE */
24217 };
24218 /* End of struct IVRDEServerInfoChangedEvent declaration */
24219 
24220 
24221 /* Start of struct IVideoCaptureChangedEvent declaration */
24222 #   define IVIDEOCAPTURECHANGEDEVENT_IID_STR "6215d169-25dd-4719-ab34-c908701efb58"
24223 #   define IVIDEOCAPTURECHANGEDEVENT_IID { \
24224     0x6215d169, 0x25dd, 0x4719, \
24225     { 0xab, 0x34, 0xc9, 0x08, 0x70, 0x1e, 0xfb, 0x58 } \
24226 }
24227 /* COM compatibility */
24228 VBOX_EXTERN_CONST(nsIID, IID_IVideoCaptureChangedEvent);
24229 #   ifndef VBOX_WITH_GLUE
24230 struct IVideoCaptureChangedEvent_vtbl
24231 {
24232     struct IEvent_vtbl ievent;
24233 
24234     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVideoCaptureChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24235 
24236 };
24237 #   else /* VBOX_WITH_GLUE */
24238 struct IVideoCaptureChangedEventVtbl
24239 {
24240     nsresult (*QueryInterface)(IVideoCaptureChangedEvent *pThis, const nsID *iid, void **resultp);
24241     nsrefcnt (*AddRef)(IVideoCaptureChangedEvent *pThis);
24242     nsrefcnt (*Release)(IVideoCaptureChangedEvent *pThis);
24243     nsresult (*GetType)(IVideoCaptureChangedEvent *pThis, PRUint32 *type);
24244 
24245     nsresult (*GetSource)(IVideoCaptureChangedEvent *pThis, IEventSource * *source);
24246 
24247     nsresult (*GetWaitable)(IVideoCaptureChangedEvent *pThis, PRBool *waitable);
24248 
24249     nsresult (*SetProcessed)(IVideoCaptureChangedEvent *pThis );
24250 
24251     nsresult (*WaitProcessed)(
24252         IVideoCaptureChangedEvent *pThis,
24253         PRInt32 timeout,
24254         PRBool * result
24255     );
24256 
24257     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVideoCaptureChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24258 
24259 };
24260 #    define IVideoCaptureChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24261 #    define IVideoCaptureChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24262 #    define IVideoCaptureChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24263 #    define IVideoCaptureChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24264 #    define IVideoCaptureChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24265 #    define IVideoCaptureChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24266 #    define IVideoCaptureChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24267 #    define IVideoCaptureChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24268 #    define IVideoCaptureChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24269 #    define IVideoCaptureChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24270 #    define IVideoCaptureChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24271 #    define IVideoCaptureChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24272 #    define IVideoCaptureChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24273 #   endif /* VBOX_WITH_GLUE */
24274 
24275 interface IVideoCaptureChangedEvent
24276 {
24277 #   ifndef VBOX_WITH_GLUE
24278     struct IVideoCaptureChangedEvent_vtbl *vtbl;
24279 #   else /* VBOX_WITH_GLUE */
24280     CONST_VTBL struct IVideoCaptureChangedEventVtbl *lpVtbl;
24281 #   endif /* VBOX_WITH_GLUE */
24282 };
24283 /* End of struct IVideoCaptureChangedEvent declaration */
24284 
24285 
24286 /* Start of struct IUSBControllerChangedEvent declaration */
24287 #   define IUSBCONTROLLERCHANGEDEVENT_IID_STR "93BADC0C-61D9-4940-A084-E6BB29AF3D83"
24288 #   define IUSBCONTROLLERCHANGEDEVENT_IID { \
24289     0x93BADC0C, 0x61D9, 0x4940, \
24290     { 0xA0, 0x84, 0xE6, 0xBB, 0x29, 0xAF, 0x3D, 0x83 } \
24291 }
24292 /* COM compatibility */
24293 VBOX_EXTERN_CONST(nsIID, IID_IUSBControllerChangedEvent);
24294 #   ifndef VBOX_WITH_GLUE
24295 struct IUSBControllerChangedEvent_vtbl
24296 {
24297     struct IEvent_vtbl ievent;
24298 
24299     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IUSBControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24300 
24301 };
24302 #   else /* VBOX_WITH_GLUE */
24303 struct IUSBControllerChangedEventVtbl
24304 {
24305     nsresult (*QueryInterface)(IUSBControllerChangedEvent *pThis, const nsID *iid, void **resultp);
24306     nsrefcnt (*AddRef)(IUSBControllerChangedEvent *pThis);
24307     nsrefcnt (*Release)(IUSBControllerChangedEvent *pThis);
24308     nsresult (*GetType)(IUSBControllerChangedEvent *pThis, PRUint32 *type);
24309 
24310     nsresult (*GetSource)(IUSBControllerChangedEvent *pThis, IEventSource * *source);
24311 
24312     nsresult (*GetWaitable)(IUSBControllerChangedEvent *pThis, PRBool *waitable);
24313 
24314     nsresult (*SetProcessed)(IUSBControllerChangedEvent *pThis );
24315 
24316     nsresult (*WaitProcessed)(
24317         IUSBControllerChangedEvent *pThis,
24318         PRInt32 timeout,
24319         PRBool * result
24320     );
24321 
24322     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IUSBControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24323 
24324 };
24325 #    define IUSBControllerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24326 #    define IUSBControllerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24327 #    define IUSBControllerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24328 #    define IUSBControllerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24329 #    define IUSBControllerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24330 #    define IUSBControllerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24331 #    define IUSBControllerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24332 #    define IUSBControllerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24333 #    define IUSBControllerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24334 #    define IUSBControllerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24335 #    define IUSBControllerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24336 #    define IUSBControllerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24337 #    define IUSBControllerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24338 #   endif /* VBOX_WITH_GLUE */
24339 
24340 interface IUSBControllerChangedEvent
24341 {
24342 #   ifndef VBOX_WITH_GLUE
24343     struct IUSBControllerChangedEvent_vtbl *vtbl;
24344 #   else /* VBOX_WITH_GLUE */
24345     CONST_VTBL struct IUSBControllerChangedEventVtbl *lpVtbl;
24346 #   endif /* VBOX_WITH_GLUE */
24347 };
24348 /* End of struct IUSBControllerChangedEvent declaration */
24349 
24350 
24351 /* Start of struct IUSBDeviceStateChangedEvent declaration */
24352 #   define IUSBDEVICESTATECHANGEDEVENT_IID_STR "806da61b-6679-422a-b629-51b06b0c6d93"
24353 #   define IUSBDEVICESTATECHANGEDEVENT_IID { \
24354     0x806da61b, 0x6679, 0x422a, \
24355     { 0xb6, 0x29, 0x51, 0xb0, 0x6b, 0x0c, 0x6d, 0x93 } \
24356 }
24357 /* COM compatibility */
24358 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceStateChangedEvent);
24359 #   ifndef VBOX_WITH_GLUE
24360 struct IUSBDeviceStateChangedEvent_vtbl
24361 {
24362     struct IEvent_vtbl ievent;
24363 
24364     nsresult (*GetDevice)(IUSBDeviceStateChangedEvent *pThis, IUSBDevice * *device);
24365 
24366     nsresult (*GetAttached)(IUSBDeviceStateChangedEvent *pThis, PRBool *attached);
24367 
24368     nsresult (*GetError)(IUSBDeviceStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
24369 
24370 };
24371 #   else /* VBOX_WITH_GLUE */
24372 struct IUSBDeviceStateChangedEventVtbl
24373 {
24374     nsresult (*QueryInterface)(IUSBDeviceStateChangedEvent *pThis, const nsID *iid, void **resultp);
24375     nsrefcnt (*AddRef)(IUSBDeviceStateChangedEvent *pThis);
24376     nsrefcnt (*Release)(IUSBDeviceStateChangedEvent *pThis);
24377     nsresult (*GetType)(IUSBDeviceStateChangedEvent *pThis, PRUint32 *type);
24378 
24379     nsresult (*GetSource)(IUSBDeviceStateChangedEvent *pThis, IEventSource * *source);
24380 
24381     nsresult (*GetWaitable)(IUSBDeviceStateChangedEvent *pThis, PRBool *waitable);
24382 
24383     nsresult (*SetProcessed)(IUSBDeviceStateChangedEvent *pThis );
24384 
24385     nsresult (*WaitProcessed)(
24386         IUSBDeviceStateChangedEvent *pThis,
24387         PRInt32 timeout,
24388         PRBool * result
24389     );
24390 
24391     nsresult (*GetDevice)(IUSBDeviceStateChangedEvent *pThis, IUSBDevice * *device);
24392 
24393     nsresult (*GetAttached)(IUSBDeviceStateChangedEvent *pThis, PRBool *attached);
24394 
24395     nsresult (*GetError)(IUSBDeviceStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
24396 
24397 };
24398 #    define IUSBDeviceStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24399 #    define IUSBDeviceStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24400 #    define IUSBDeviceStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24401 #    define IUSBDeviceStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24402 #    define IUSBDeviceStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24403 #    define IUSBDeviceStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24404 #    define IUSBDeviceStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24405 #    define IUSBDeviceStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24406 #    define IUSBDeviceStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24407 #    define IUSBDeviceStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24408 #    define IUSBDeviceStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24409 #    define IUSBDeviceStateChangedEvent_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
24410 #    define IUSBDeviceStateChangedEvent_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
24411 #    define IUSBDeviceStateChangedEvent_get_Attached(p, aAttached) ((p)->lpVtbl->GetAttached(p, aAttached))
24412 #    define IUSBDeviceStateChangedEvent_GetAttached(p, aAttached) ((p)->lpVtbl->GetAttached(p, aAttached))
24413 #    define IUSBDeviceStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
24414 #    define IUSBDeviceStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
24415 #   endif /* VBOX_WITH_GLUE */
24416 
24417 interface IUSBDeviceStateChangedEvent
24418 {
24419 #   ifndef VBOX_WITH_GLUE
24420     struct IUSBDeviceStateChangedEvent_vtbl *vtbl;
24421 #   else /* VBOX_WITH_GLUE */
24422     CONST_VTBL struct IUSBDeviceStateChangedEventVtbl *lpVtbl;
24423 #   endif /* VBOX_WITH_GLUE */
24424 };
24425 /* End of struct IUSBDeviceStateChangedEvent declaration */
24426 
24427 
24428 /* Start of struct ISharedFolderChangedEvent declaration */
24429 #   define ISHAREDFOLDERCHANGEDEVENT_IID_STR "B66349B5-3534-4239-B2DE-8E1535D94C0B"
24430 #   define ISHAREDFOLDERCHANGEDEVENT_IID { \
24431     0xB66349B5, 0x3534, 0x4239, \
24432     { 0xB2, 0xDE, 0x8E, 0x15, 0x35, 0xD9, 0x4C, 0x0B } \
24433 }
24434 /* COM compatibility */
24435 VBOX_EXTERN_CONST(nsIID, IID_ISharedFolderChangedEvent);
24436 #   ifndef VBOX_WITH_GLUE
24437 struct ISharedFolderChangedEvent_vtbl
24438 {
24439     struct IEvent_vtbl ievent;
24440 
24441     nsresult (*GetScope)(ISharedFolderChangedEvent *pThis, PRUint32 *scope);
24442 
24443 };
24444 #   else /* VBOX_WITH_GLUE */
24445 struct ISharedFolderChangedEventVtbl
24446 {
24447     nsresult (*QueryInterface)(ISharedFolderChangedEvent *pThis, const nsID *iid, void **resultp);
24448     nsrefcnt (*AddRef)(ISharedFolderChangedEvent *pThis);
24449     nsrefcnt (*Release)(ISharedFolderChangedEvent *pThis);
24450     nsresult (*GetType)(ISharedFolderChangedEvent *pThis, PRUint32 *type);
24451 
24452     nsresult (*GetSource)(ISharedFolderChangedEvent *pThis, IEventSource * *source);
24453 
24454     nsresult (*GetWaitable)(ISharedFolderChangedEvent *pThis, PRBool *waitable);
24455 
24456     nsresult (*SetProcessed)(ISharedFolderChangedEvent *pThis );
24457 
24458     nsresult (*WaitProcessed)(
24459         ISharedFolderChangedEvent *pThis,
24460         PRInt32 timeout,
24461         PRBool * result
24462     );
24463 
24464     nsresult (*GetScope)(ISharedFolderChangedEvent *pThis, PRUint32 *scope);
24465 
24466 };
24467 #    define ISharedFolderChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24468 #    define ISharedFolderChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24469 #    define ISharedFolderChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24470 #    define ISharedFolderChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24471 #    define ISharedFolderChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24472 #    define ISharedFolderChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24473 #    define ISharedFolderChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24474 #    define ISharedFolderChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24475 #    define ISharedFolderChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24476 #    define ISharedFolderChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24477 #    define ISharedFolderChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24478 #    define ISharedFolderChangedEvent_get_Scope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
24479 #    define ISharedFolderChangedEvent_GetScope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
24480 #   endif /* VBOX_WITH_GLUE */
24481 
24482 interface ISharedFolderChangedEvent
24483 {
24484 #   ifndef VBOX_WITH_GLUE
24485     struct ISharedFolderChangedEvent_vtbl *vtbl;
24486 #   else /* VBOX_WITH_GLUE */
24487     CONST_VTBL struct ISharedFolderChangedEventVtbl *lpVtbl;
24488 #   endif /* VBOX_WITH_GLUE */
24489 };
24490 /* End of struct ISharedFolderChangedEvent declaration */
24491 
24492 
24493 /* Start of struct IRuntimeErrorEvent declaration */
24494 #   define IRUNTIMEERROREVENT_IID_STR "883DD18B-0721-4CDE-867C-1A82ABAF914C"
24495 #   define IRUNTIMEERROREVENT_IID { \
24496     0x883DD18B, 0x0721, 0x4CDE, \
24497     { 0x86, 0x7C, 0x1A, 0x82, 0xAB, 0xAF, 0x91, 0x4C } \
24498 }
24499 /* COM compatibility */
24500 VBOX_EXTERN_CONST(nsIID, IID_IRuntimeErrorEvent);
24501 #   ifndef VBOX_WITH_GLUE
24502 struct IRuntimeErrorEvent_vtbl
24503 {
24504     struct IEvent_vtbl ievent;
24505 
24506     nsresult (*GetFatal)(IRuntimeErrorEvent *pThis, PRBool *fatal);
24507 
24508     nsresult (*GetId)(IRuntimeErrorEvent *pThis, PRUnichar * *id);
24509 
24510     nsresult (*GetMessage)(IRuntimeErrorEvent *pThis, PRUnichar * *message);
24511 
24512 };
24513 #   else /* VBOX_WITH_GLUE */
24514 struct IRuntimeErrorEventVtbl
24515 {
24516     nsresult (*QueryInterface)(IRuntimeErrorEvent *pThis, const nsID *iid, void **resultp);
24517     nsrefcnt (*AddRef)(IRuntimeErrorEvent *pThis);
24518     nsrefcnt (*Release)(IRuntimeErrorEvent *pThis);
24519     nsresult (*GetType)(IRuntimeErrorEvent *pThis, PRUint32 *type);
24520 
24521     nsresult (*GetSource)(IRuntimeErrorEvent *pThis, IEventSource * *source);
24522 
24523     nsresult (*GetWaitable)(IRuntimeErrorEvent *pThis, PRBool *waitable);
24524 
24525     nsresult (*SetProcessed)(IRuntimeErrorEvent *pThis );
24526 
24527     nsresult (*WaitProcessed)(
24528         IRuntimeErrorEvent *pThis,
24529         PRInt32 timeout,
24530         PRBool * result
24531     );
24532 
24533     nsresult (*GetFatal)(IRuntimeErrorEvent *pThis, PRBool *fatal);
24534 
24535     nsresult (*GetId)(IRuntimeErrorEvent *pThis, PRUnichar * *id);
24536 
24537     nsresult (*GetMessage)(IRuntimeErrorEvent *pThis, PRUnichar * *message);
24538 
24539 };
24540 #    define IRuntimeErrorEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24541 #    define IRuntimeErrorEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24542 #    define IRuntimeErrorEvent_Release(p) ((p)->lpVtbl->Release(p))
24543 #    define IRuntimeErrorEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24544 #    define IRuntimeErrorEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24545 #    define IRuntimeErrorEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24546 #    define IRuntimeErrorEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24547 #    define IRuntimeErrorEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24548 #    define IRuntimeErrorEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24549 #    define IRuntimeErrorEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24550 #    define IRuntimeErrorEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24551 #    define IRuntimeErrorEvent_get_Fatal(p, aFatal) ((p)->lpVtbl->GetFatal(p, aFatal))
24552 #    define IRuntimeErrorEvent_GetFatal(p, aFatal) ((p)->lpVtbl->GetFatal(p, aFatal))
24553 #    define IRuntimeErrorEvent_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
24554 #    define IRuntimeErrorEvent_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
24555 #    define IRuntimeErrorEvent_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
24556 #    define IRuntimeErrorEvent_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
24557 #   endif /* VBOX_WITH_GLUE */
24558 
24559 interface IRuntimeErrorEvent
24560 {
24561 #   ifndef VBOX_WITH_GLUE
24562     struct IRuntimeErrorEvent_vtbl *vtbl;
24563 #   else /* VBOX_WITH_GLUE */
24564     CONST_VTBL struct IRuntimeErrorEventVtbl *lpVtbl;
24565 #   endif /* VBOX_WITH_GLUE */
24566 };
24567 /* End of struct IRuntimeErrorEvent declaration */
24568 
24569 
24570 /* Start of struct IEventSourceChangedEvent declaration */
24571 #   define IEVENTSOURCECHANGEDEVENT_IID_STR "e7932cb8-f6d4-4ab6-9cbf-558eb8959a6a"
24572 #   define IEVENTSOURCECHANGEDEVENT_IID { \
24573     0xe7932cb8, 0xf6d4, 0x4ab6, \
24574     { 0x9c, 0xbf, 0x55, 0x8e, 0xb8, 0x95, 0x9a, 0x6a } \
24575 }
24576 /* COM compatibility */
24577 VBOX_EXTERN_CONST(nsIID, IID_IEventSourceChangedEvent);
24578 #   ifndef VBOX_WITH_GLUE
24579 struct IEventSourceChangedEvent_vtbl
24580 {
24581     struct IEvent_vtbl ievent;
24582 
24583     nsresult (*GetListener)(IEventSourceChangedEvent *pThis, IEventListener * *listener);
24584 
24585     nsresult (*GetAdd)(IEventSourceChangedEvent *pThis, PRBool *add);
24586 
24587 };
24588 #   else /* VBOX_WITH_GLUE */
24589 struct IEventSourceChangedEventVtbl
24590 {
24591     nsresult (*QueryInterface)(IEventSourceChangedEvent *pThis, const nsID *iid, void **resultp);
24592     nsrefcnt (*AddRef)(IEventSourceChangedEvent *pThis);
24593     nsrefcnt (*Release)(IEventSourceChangedEvent *pThis);
24594     nsresult (*GetType)(IEventSourceChangedEvent *pThis, PRUint32 *type);
24595 
24596     nsresult (*GetSource)(IEventSourceChangedEvent *pThis, IEventSource * *source);
24597 
24598     nsresult (*GetWaitable)(IEventSourceChangedEvent *pThis, PRBool *waitable);
24599 
24600     nsresult (*SetProcessed)(IEventSourceChangedEvent *pThis );
24601 
24602     nsresult (*WaitProcessed)(
24603         IEventSourceChangedEvent *pThis,
24604         PRInt32 timeout,
24605         PRBool * result
24606     );
24607 
24608     nsresult (*GetListener)(IEventSourceChangedEvent *pThis, IEventListener * *listener);
24609 
24610     nsresult (*GetAdd)(IEventSourceChangedEvent *pThis, PRBool *add);
24611 
24612 };
24613 #    define IEventSourceChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24614 #    define IEventSourceChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24615 #    define IEventSourceChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24616 #    define IEventSourceChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24617 #    define IEventSourceChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24618 #    define IEventSourceChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24619 #    define IEventSourceChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24620 #    define IEventSourceChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24621 #    define IEventSourceChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24622 #    define IEventSourceChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24623 #    define IEventSourceChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24624 #    define IEventSourceChangedEvent_get_Listener(p, aListener) ((p)->lpVtbl->GetListener(p, aListener))
24625 #    define IEventSourceChangedEvent_GetListener(p, aListener) ((p)->lpVtbl->GetListener(p, aListener))
24626 #    define IEventSourceChangedEvent_get_Add(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
24627 #    define IEventSourceChangedEvent_GetAdd(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
24628 #   endif /* VBOX_WITH_GLUE */
24629 
24630 interface IEventSourceChangedEvent
24631 {
24632 #   ifndef VBOX_WITH_GLUE
24633     struct IEventSourceChangedEvent_vtbl *vtbl;
24634 #   else /* VBOX_WITH_GLUE */
24635     CONST_VTBL struct IEventSourceChangedEventVtbl *lpVtbl;
24636 #   endif /* VBOX_WITH_GLUE */
24637 };
24638 /* End of struct IEventSourceChangedEvent declaration */
24639 
24640 
24641 /* Start of struct IExtraDataChangedEvent declaration */
24642 #   define IEXTRADATACHANGEDEVENT_IID_STR "024F00CE-6E0B-492A-A8D0-968472A94DC7"
24643 #   define IEXTRADATACHANGEDEVENT_IID { \
24644     0x024F00CE, 0x6E0B, 0x492A, \
24645     { 0xA8, 0xD0, 0x96, 0x84, 0x72, 0xA9, 0x4D, 0xC7 } \
24646 }
24647 /* COM compatibility */
24648 VBOX_EXTERN_CONST(nsIID, IID_IExtraDataChangedEvent);
24649 #   ifndef VBOX_WITH_GLUE
24650 struct IExtraDataChangedEvent_vtbl
24651 {
24652     struct IEvent_vtbl ievent;
24653 
24654     nsresult (*GetMachineId)(IExtraDataChangedEvent *pThis, PRUnichar * *machineId);
24655 
24656     nsresult (*GetKey)(IExtraDataChangedEvent *pThis, PRUnichar * *key);
24657 
24658     nsresult (*GetValue)(IExtraDataChangedEvent *pThis, PRUnichar * *value);
24659 
24660 };
24661 #   else /* VBOX_WITH_GLUE */
24662 struct IExtraDataChangedEventVtbl
24663 {
24664     nsresult (*QueryInterface)(IExtraDataChangedEvent *pThis, const nsID *iid, void **resultp);
24665     nsrefcnt (*AddRef)(IExtraDataChangedEvent *pThis);
24666     nsrefcnt (*Release)(IExtraDataChangedEvent *pThis);
24667     nsresult (*GetType)(IExtraDataChangedEvent *pThis, PRUint32 *type);
24668 
24669     nsresult (*GetSource)(IExtraDataChangedEvent *pThis, IEventSource * *source);
24670 
24671     nsresult (*GetWaitable)(IExtraDataChangedEvent *pThis, PRBool *waitable);
24672 
24673     nsresult (*SetProcessed)(IExtraDataChangedEvent *pThis );
24674 
24675     nsresult (*WaitProcessed)(
24676         IExtraDataChangedEvent *pThis,
24677         PRInt32 timeout,
24678         PRBool * result
24679     );
24680 
24681     nsresult (*GetMachineId)(IExtraDataChangedEvent *pThis, PRUnichar * *machineId);
24682 
24683     nsresult (*GetKey)(IExtraDataChangedEvent *pThis, PRUnichar * *key);
24684 
24685     nsresult (*GetValue)(IExtraDataChangedEvent *pThis, PRUnichar * *value);
24686 
24687 };
24688 #    define IExtraDataChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24689 #    define IExtraDataChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24690 #    define IExtraDataChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24691 #    define IExtraDataChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24692 #    define IExtraDataChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24693 #    define IExtraDataChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24694 #    define IExtraDataChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24695 #    define IExtraDataChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24696 #    define IExtraDataChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24697 #    define IExtraDataChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24698 #    define IExtraDataChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24699 #    define IExtraDataChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24700 #    define IExtraDataChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24701 #    define IExtraDataChangedEvent_get_Key(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
24702 #    define IExtraDataChangedEvent_GetKey(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
24703 #    define IExtraDataChangedEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
24704 #    define IExtraDataChangedEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
24705 #   endif /* VBOX_WITH_GLUE */
24706 
24707 interface IExtraDataChangedEvent
24708 {
24709 #   ifndef VBOX_WITH_GLUE
24710     struct IExtraDataChangedEvent_vtbl *vtbl;
24711 #   else /* VBOX_WITH_GLUE */
24712     CONST_VTBL struct IExtraDataChangedEventVtbl *lpVtbl;
24713 #   endif /* VBOX_WITH_GLUE */
24714 };
24715 /* End of struct IExtraDataChangedEvent declaration */
24716 
24717 
24718 /* Start of struct IVetoEvent declaration */
24719 #   define IVETOEVENT_IID_STR "7c5e945f-2354-4267-883f-2f417d216519"
24720 #   define IVETOEVENT_IID { \
24721     0x7c5e945f, 0x2354, 0x4267, \
24722     { 0x88, 0x3f, 0x2f, 0x41, 0x7d, 0x21, 0x65, 0x19 } \
24723 }
24724 /* COM compatibility */
24725 VBOX_EXTERN_CONST(nsIID, IID_IVetoEvent);
24726 #   ifndef VBOX_WITH_GLUE
24727 struct IVetoEvent_vtbl
24728 {
24729     struct IEvent_vtbl ievent;
24730 
24731     nsresult (*AddVeto)(
24732         IVetoEvent *pThis,
24733         PRUnichar * reason
24734     );
24735 
24736     nsresult (*IsVetoed)(
24737         IVetoEvent *pThis,
24738         PRBool * result
24739     );
24740 
24741     nsresult (*GetVetos)(
24742         IVetoEvent *pThis,
24743         PRUint32 *resultSize,
24744         PRUnichar *** result
24745     );
24746 
24747     nsresult (*AddApproval)(
24748         IVetoEvent *pThis,
24749         PRUnichar * reason
24750     );
24751 
24752     nsresult (*IsApproved)(
24753         IVetoEvent *pThis,
24754         PRBool * result
24755     );
24756 
24757     nsresult (*GetApprovals)(
24758         IVetoEvent *pThis,
24759         PRUint32 *resultSize,
24760         PRUnichar *** result
24761     );
24762 
24763 };
24764 #   else /* VBOX_WITH_GLUE */
24765 struct IVetoEventVtbl
24766 {
24767     nsresult (*QueryInterface)(IVetoEvent *pThis, const nsID *iid, void **resultp);
24768     nsrefcnt (*AddRef)(IVetoEvent *pThis);
24769     nsrefcnt (*Release)(IVetoEvent *pThis);
24770     nsresult (*GetType)(IVetoEvent *pThis, PRUint32 *type);
24771 
24772     nsresult (*GetSource)(IVetoEvent *pThis, IEventSource * *source);
24773 
24774     nsresult (*GetWaitable)(IVetoEvent *pThis, PRBool *waitable);
24775 
24776     nsresult (*SetProcessed)(IVetoEvent *pThis );
24777 
24778     nsresult (*WaitProcessed)(
24779         IVetoEvent *pThis,
24780         PRInt32 timeout,
24781         PRBool * result
24782     );
24783 
24784     nsresult (*AddVeto)(
24785         IVetoEvent *pThis,
24786         PRUnichar * reason
24787     );
24788 
24789     nsresult (*IsVetoed)(
24790         IVetoEvent *pThis,
24791         PRBool * result
24792     );
24793 
24794     nsresult (*GetVetos)(
24795         IVetoEvent *pThis,
24796         PRUint32 *resultSize,
24797         PRUnichar *** result
24798     );
24799 
24800     nsresult (*AddApproval)(
24801         IVetoEvent *pThis,
24802         PRUnichar * reason
24803     );
24804 
24805     nsresult (*IsApproved)(
24806         IVetoEvent *pThis,
24807         PRBool * result
24808     );
24809 
24810     nsresult (*GetApprovals)(
24811         IVetoEvent *pThis,
24812         PRUint32 *resultSize,
24813         PRUnichar *** result
24814     );
24815 
24816 };
24817 #    define IVetoEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24818 #    define IVetoEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24819 #    define IVetoEvent_Release(p) ((p)->lpVtbl->Release(p))
24820 #    define IVetoEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24821 #    define IVetoEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24822 #    define IVetoEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24823 #    define IVetoEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24824 #    define IVetoEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24825 #    define IVetoEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24826 #    define IVetoEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24827 #    define IVetoEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24828 #    define IVetoEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
24829 #    define IVetoEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
24830 #    define IVetoEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
24831 #    define IVetoEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
24832 #    define IVetoEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
24833 #    define IVetoEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
24834 #   endif /* VBOX_WITH_GLUE */
24835 
24836 interface IVetoEvent
24837 {
24838 #   ifndef VBOX_WITH_GLUE
24839     struct IVetoEvent_vtbl *vtbl;
24840 #   else /* VBOX_WITH_GLUE */
24841     CONST_VTBL struct IVetoEventVtbl *lpVtbl;
24842 #   endif /* VBOX_WITH_GLUE */
24843 };
24844 /* End of struct IVetoEvent declaration */
24845 
24846 
24847 /* Start of struct IExtraDataCanChangeEvent declaration */
24848 #   define IEXTRADATACANCHANGEEVENT_IID_STR "245d88bd-800a-40f8-87a6-170d02249a55"
24849 #   define IEXTRADATACANCHANGEEVENT_IID { \
24850     0x245d88bd, 0x800a, 0x40f8, \
24851     { 0x87, 0xa6, 0x17, 0x0d, 0x02, 0x24, 0x9a, 0x55 } \
24852 }
24853 /* COM compatibility */
24854 VBOX_EXTERN_CONST(nsIID, IID_IExtraDataCanChangeEvent);
24855 #   ifndef VBOX_WITH_GLUE
24856 struct IExtraDataCanChangeEvent_vtbl
24857 {
24858     struct IVetoEvent_vtbl ivetoevent;
24859 
24860     nsresult (*GetMachineId)(IExtraDataCanChangeEvent *pThis, PRUnichar * *machineId);
24861 
24862     nsresult (*GetKey)(IExtraDataCanChangeEvent *pThis, PRUnichar * *key);
24863 
24864     nsresult (*GetValue)(IExtraDataCanChangeEvent *pThis, PRUnichar * *value);
24865 
24866 };
24867 #   else /* VBOX_WITH_GLUE */
24868 struct IExtraDataCanChangeEventVtbl
24869 {
24870     nsresult (*QueryInterface)(IExtraDataCanChangeEvent *pThis, const nsID *iid, void **resultp);
24871     nsrefcnt (*AddRef)(IExtraDataCanChangeEvent *pThis);
24872     nsrefcnt (*Release)(IExtraDataCanChangeEvent *pThis);
24873     nsresult (*GetType)(IExtraDataCanChangeEvent *pThis, PRUint32 *type);
24874 
24875     nsresult (*GetSource)(IExtraDataCanChangeEvent *pThis, IEventSource * *source);
24876 
24877     nsresult (*GetWaitable)(IExtraDataCanChangeEvent *pThis, PRBool *waitable);
24878 
24879     nsresult (*SetProcessed)(IExtraDataCanChangeEvent *pThis );
24880 
24881     nsresult (*WaitProcessed)(
24882         IExtraDataCanChangeEvent *pThis,
24883         PRInt32 timeout,
24884         PRBool * result
24885     );
24886 
24887     nsresult (*AddVeto)(
24888         IExtraDataCanChangeEvent *pThis,
24889         PRUnichar * reason
24890     );
24891 
24892     nsresult (*IsVetoed)(
24893         IExtraDataCanChangeEvent *pThis,
24894         PRBool * result
24895     );
24896 
24897     nsresult (*GetVetos)(
24898         IExtraDataCanChangeEvent *pThis,
24899         PRUint32 *resultSize,
24900         PRUnichar *** result
24901     );
24902 
24903     nsresult (*AddApproval)(
24904         IExtraDataCanChangeEvent *pThis,
24905         PRUnichar * reason
24906     );
24907 
24908     nsresult (*IsApproved)(
24909         IExtraDataCanChangeEvent *pThis,
24910         PRBool * result
24911     );
24912 
24913     nsresult (*GetApprovals)(
24914         IExtraDataCanChangeEvent *pThis,
24915         PRUint32 *resultSize,
24916         PRUnichar *** result
24917     );
24918 
24919     nsresult (*GetMachineId)(IExtraDataCanChangeEvent *pThis, PRUnichar * *machineId);
24920 
24921     nsresult (*GetKey)(IExtraDataCanChangeEvent *pThis, PRUnichar * *key);
24922 
24923     nsresult (*GetValue)(IExtraDataCanChangeEvent *pThis, PRUnichar * *value);
24924 
24925 };
24926 #    define IExtraDataCanChangeEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24927 #    define IExtraDataCanChangeEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24928 #    define IExtraDataCanChangeEvent_Release(p) ((p)->lpVtbl->Release(p))
24929 #    define IExtraDataCanChangeEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24930 #    define IExtraDataCanChangeEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24931 #    define IExtraDataCanChangeEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24932 #    define IExtraDataCanChangeEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24933 #    define IExtraDataCanChangeEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24934 #    define IExtraDataCanChangeEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24935 #    define IExtraDataCanChangeEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24936 #    define IExtraDataCanChangeEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24937 #    define IExtraDataCanChangeEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
24938 #    define IExtraDataCanChangeEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
24939 #    define IExtraDataCanChangeEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
24940 #    define IExtraDataCanChangeEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
24941 #    define IExtraDataCanChangeEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
24942 #    define IExtraDataCanChangeEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
24943 #    define IExtraDataCanChangeEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24944 #    define IExtraDataCanChangeEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24945 #    define IExtraDataCanChangeEvent_get_Key(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
24946 #    define IExtraDataCanChangeEvent_GetKey(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
24947 #    define IExtraDataCanChangeEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
24948 #    define IExtraDataCanChangeEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
24949 #   endif /* VBOX_WITH_GLUE */
24950 
24951 interface IExtraDataCanChangeEvent
24952 {
24953 #   ifndef VBOX_WITH_GLUE
24954     struct IExtraDataCanChangeEvent_vtbl *vtbl;
24955 #   else /* VBOX_WITH_GLUE */
24956     CONST_VTBL struct IExtraDataCanChangeEventVtbl *lpVtbl;
24957 #   endif /* VBOX_WITH_GLUE */
24958 };
24959 /* End of struct IExtraDataCanChangeEvent declaration */
24960 
24961 
24962 /* Start of struct ICanShowWindowEvent declaration */
24963 #   define ICANSHOWWINDOWEVENT_IID_STR "adf292b0-92c9-4a77-9d35-e058b39fe0b9"
24964 #   define ICANSHOWWINDOWEVENT_IID { \
24965     0xadf292b0, 0x92c9, 0x4a77, \
24966     { 0x9d, 0x35, 0xe0, 0x58, 0xb3, 0x9f, 0xe0, 0xb9 } \
24967 }
24968 /* COM compatibility */
24969 VBOX_EXTERN_CONST(nsIID, IID_ICanShowWindowEvent);
24970 #   ifndef VBOX_WITH_GLUE
24971 struct ICanShowWindowEvent_vtbl
24972 {
24973     struct IVetoEvent_vtbl ivetoevent;
24974 
24975     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ICanShowWindowEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24976 
24977 };
24978 #   else /* VBOX_WITH_GLUE */
24979 struct ICanShowWindowEventVtbl
24980 {
24981     nsresult (*QueryInterface)(ICanShowWindowEvent *pThis, const nsID *iid, void **resultp);
24982     nsrefcnt (*AddRef)(ICanShowWindowEvent *pThis);
24983     nsrefcnt (*Release)(ICanShowWindowEvent *pThis);
24984     nsresult (*GetType)(ICanShowWindowEvent *pThis, PRUint32 *type);
24985 
24986     nsresult (*GetSource)(ICanShowWindowEvent *pThis, IEventSource * *source);
24987 
24988     nsresult (*GetWaitable)(ICanShowWindowEvent *pThis, PRBool *waitable);
24989 
24990     nsresult (*SetProcessed)(ICanShowWindowEvent *pThis );
24991 
24992     nsresult (*WaitProcessed)(
24993         ICanShowWindowEvent *pThis,
24994         PRInt32 timeout,
24995         PRBool * result
24996     );
24997 
24998     nsresult (*AddVeto)(
24999         ICanShowWindowEvent *pThis,
25000         PRUnichar * reason
25001     );
25002 
25003     nsresult (*IsVetoed)(
25004         ICanShowWindowEvent *pThis,
25005         PRBool * result
25006     );
25007 
25008     nsresult (*GetVetos)(
25009         ICanShowWindowEvent *pThis,
25010         PRUint32 *resultSize,
25011         PRUnichar *** result
25012     );
25013 
25014     nsresult (*AddApproval)(
25015         ICanShowWindowEvent *pThis,
25016         PRUnichar * reason
25017     );
25018 
25019     nsresult (*IsApproved)(
25020         ICanShowWindowEvent *pThis,
25021         PRBool * result
25022     );
25023 
25024     nsresult (*GetApprovals)(
25025         ICanShowWindowEvent *pThis,
25026         PRUint32 *resultSize,
25027         PRUnichar *** result
25028     );
25029 
25030     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ICanShowWindowEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25031 
25032 };
25033 #    define ICanShowWindowEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25034 #    define ICanShowWindowEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25035 #    define ICanShowWindowEvent_Release(p) ((p)->lpVtbl->Release(p))
25036 #    define ICanShowWindowEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25037 #    define ICanShowWindowEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25038 #    define ICanShowWindowEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25039 #    define ICanShowWindowEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25040 #    define ICanShowWindowEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25041 #    define ICanShowWindowEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25042 #    define ICanShowWindowEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25043 #    define ICanShowWindowEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25044 #    define ICanShowWindowEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
25045 #    define ICanShowWindowEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
25046 #    define ICanShowWindowEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
25047 #    define ICanShowWindowEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
25048 #    define ICanShowWindowEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
25049 #    define ICanShowWindowEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
25050 #    define ICanShowWindowEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25051 #    define ICanShowWindowEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25052 #   endif /* VBOX_WITH_GLUE */
25053 
25054 interface ICanShowWindowEvent
25055 {
25056 #   ifndef VBOX_WITH_GLUE
25057     struct ICanShowWindowEvent_vtbl *vtbl;
25058 #   else /* VBOX_WITH_GLUE */
25059     CONST_VTBL struct ICanShowWindowEventVtbl *lpVtbl;
25060 #   endif /* VBOX_WITH_GLUE */
25061 };
25062 /* End of struct ICanShowWindowEvent declaration */
25063 
25064 
25065 /* Start of struct IShowWindowEvent declaration */
25066 #   define ISHOWWINDOWEVENT_IID_STR "B0A0904D-2F05-4D28-855F-488F96BAD2B2"
25067 #   define ISHOWWINDOWEVENT_IID { \
25068     0xB0A0904D, 0x2F05, 0x4D28, \
25069     { 0x85, 0x5F, 0x48, 0x8F, 0x96, 0xBA, 0xD2, 0xB2 } \
25070 }
25071 /* COM compatibility */
25072 VBOX_EXTERN_CONST(nsIID, IID_IShowWindowEvent);
25073 #   ifndef VBOX_WITH_GLUE
25074 struct IShowWindowEvent_vtbl
25075 {
25076     struct IEvent_vtbl ievent;
25077 
25078     nsresult (*GetWinId)(IShowWindowEvent *pThis, PRInt64 *winId);
25079     nsresult (*SetWinId)(IShowWindowEvent *pThis, PRInt64 winId);
25080 
25081 };
25082 #   else /* VBOX_WITH_GLUE */
25083 struct IShowWindowEventVtbl
25084 {
25085     nsresult (*QueryInterface)(IShowWindowEvent *pThis, const nsID *iid, void **resultp);
25086     nsrefcnt (*AddRef)(IShowWindowEvent *pThis);
25087     nsrefcnt (*Release)(IShowWindowEvent *pThis);
25088     nsresult (*GetType)(IShowWindowEvent *pThis, PRUint32 *type);
25089 
25090     nsresult (*GetSource)(IShowWindowEvent *pThis, IEventSource * *source);
25091 
25092     nsresult (*GetWaitable)(IShowWindowEvent *pThis, PRBool *waitable);
25093 
25094     nsresult (*SetProcessed)(IShowWindowEvent *pThis );
25095 
25096     nsresult (*WaitProcessed)(
25097         IShowWindowEvent *pThis,
25098         PRInt32 timeout,
25099         PRBool * result
25100     );
25101 
25102     nsresult (*GetWinId)(IShowWindowEvent *pThis, PRInt64 *winId);
25103     nsresult (*SetWinId)(IShowWindowEvent *pThis, PRInt64 winId);
25104 
25105 };
25106 #    define IShowWindowEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25107 #    define IShowWindowEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25108 #    define IShowWindowEvent_Release(p) ((p)->lpVtbl->Release(p))
25109 #    define IShowWindowEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25110 #    define IShowWindowEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25111 #    define IShowWindowEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25112 #    define IShowWindowEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25113 #    define IShowWindowEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25114 #    define IShowWindowEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25115 #    define IShowWindowEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25116 #    define IShowWindowEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25117 #    define IShowWindowEvent_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
25118 #    define IShowWindowEvent_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
25119 #    define IShowWindowEvent_put_WinId(p, aWinId) ((p)->lpVtbl->SetWinId(p, aWinId))
25120 #    define IShowWindowEvent_SetWinId(p, aWinId) ((p)->lpVtbl->SetWinId(p, aWinId))
25121 #   endif /* VBOX_WITH_GLUE */
25122 
25123 interface IShowWindowEvent
25124 {
25125 #   ifndef VBOX_WITH_GLUE
25126     struct IShowWindowEvent_vtbl *vtbl;
25127 #   else /* VBOX_WITH_GLUE */
25128     CONST_VTBL struct IShowWindowEventVtbl *lpVtbl;
25129 #   endif /* VBOX_WITH_GLUE */
25130 };
25131 /* End of struct IShowWindowEvent declaration */
25132 
25133 
25134 /* Start of struct INATRedirectEvent declaration */
25135 #   define INATREDIRECTEVENT_IID_STR "24eef068-c380-4510-bc7c-19314a7352f1"
25136 #   define INATREDIRECTEVENT_IID { \
25137     0x24eef068, 0xc380, 0x4510, \
25138     { 0xbc, 0x7c, 0x19, 0x31, 0x4a, 0x73, 0x52, 0xf1 } \
25139 }
25140 /* COM compatibility */
25141 VBOX_EXTERN_CONST(nsIID, IID_INATRedirectEvent);
25142 #   ifndef VBOX_WITH_GLUE
25143 struct INATRedirectEvent_vtbl
25144 {
25145     struct IMachineEvent_vtbl imachineevent;
25146 
25147     nsresult (*GetSlot)(INATRedirectEvent *pThis, PRUint32 *slot);
25148 
25149     nsresult (*GetRemove)(INATRedirectEvent *pThis, PRBool *remove);
25150 
25151     nsresult (*GetName)(INATRedirectEvent *pThis, PRUnichar * *name);
25152 
25153     nsresult (*GetProto)(INATRedirectEvent *pThis, PRUint32 *proto);
25154 
25155     nsresult (*GetHostIP)(INATRedirectEvent *pThis, PRUnichar * *hostIP);
25156 
25157     nsresult (*GetHostPort)(INATRedirectEvent *pThis, PRInt32 *hostPort);
25158 
25159     nsresult (*GetGuestIP)(INATRedirectEvent *pThis, PRUnichar * *guestIP);
25160 
25161     nsresult (*GetGuestPort)(INATRedirectEvent *pThis, PRInt32 *guestPort);
25162 
25163 };
25164 #   else /* VBOX_WITH_GLUE */
25165 struct INATRedirectEventVtbl
25166 {
25167     nsresult (*QueryInterface)(INATRedirectEvent *pThis, const nsID *iid, void **resultp);
25168     nsrefcnt (*AddRef)(INATRedirectEvent *pThis);
25169     nsrefcnt (*Release)(INATRedirectEvent *pThis);
25170     nsresult (*GetType)(INATRedirectEvent *pThis, PRUint32 *type);
25171 
25172     nsresult (*GetSource)(INATRedirectEvent *pThis, IEventSource * *source);
25173 
25174     nsresult (*GetWaitable)(INATRedirectEvent *pThis, PRBool *waitable);
25175 
25176     nsresult (*SetProcessed)(INATRedirectEvent *pThis );
25177 
25178     nsresult (*WaitProcessed)(
25179         INATRedirectEvent *pThis,
25180         PRInt32 timeout,
25181         PRBool * result
25182     );
25183 
25184     nsresult (*GetMachineId)(INATRedirectEvent *pThis, PRUnichar * *machineId);
25185 
25186     nsresult (*GetSlot)(INATRedirectEvent *pThis, PRUint32 *slot);
25187 
25188     nsresult (*GetRemove)(INATRedirectEvent *pThis, PRBool *remove);
25189 
25190     nsresult (*GetName)(INATRedirectEvent *pThis, PRUnichar * *name);
25191 
25192     nsresult (*GetProto)(INATRedirectEvent *pThis, PRUint32 *proto);
25193 
25194     nsresult (*GetHostIP)(INATRedirectEvent *pThis, PRUnichar * *hostIP);
25195 
25196     nsresult (*GetHostPort)(INATRedirectEvent *pThis, PRInt32 *hostPort);
25197 
25198     nsresult (*GetGuestIP)(INATRedirectEvent *pThis, PRUnichar * *guestIP);
25199 
25200     nsresult (*GetGuestPort)(INATRedirectEvent *pThis, PRInt32 *guestPort);
25201 
25202 };
25203 #    define INATRedirectEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25204 #    define INATRedirectEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25205 #    define INATRedirectEvent_Release(p) ((p)->lpVtbl->Release(p))
25206 #    define INATRedirectEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25207 #    define INATRedirectEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25208 #    define INATRedirectEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25209 #    define INATRedirectEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25210 #    define INATRedirectEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25211 #    define INATRedirectEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25212 #    define INATRedirectEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25213 #    define INATRedirectEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25214 #    define INATRedirectEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25215 #    define INATRedirectEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25216 #    define INATRedirectEvent_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
25217 #    define INATRedirectEvent_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
25218 #    define INATRedirectEvent_get_Remove(p, aRemove) ((p)->lpVtbl->GetRemove(p, aRemove))
25219 #    define INATRedirectEvent_GetRemove(p, aRemove) ((p)->lpVtbl->GetRemove(p, aRemove))
25220 #    define INATRedirectEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
25221 #    define INATRedirectEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
25222 #    define INATRedirectEvent_get_Proto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
25223 #    define INATRedirectEvent_GetProto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
25224 #    define INATRedirectEvent_get_HostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
25225 #    define INATRedirectEvent_GetHostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
25226 #    define INATRedirectEvent_get_HostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
25227 #    define INATRedirectEvent_GetHostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
25228 #    define INATRedirectEvent_get_GuestIP(p, aGuestIP) ((p)->lpVtbl->GetGuestIP(p, aGuestIP))
25229 #    define INATRedirectEvent_GetGuestIP(p, aGuestIP) ((p)->lpVtbl->GetGuestIP(p, aGuestIP))
25230 #    define INATRedirectEvent_get_GuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
25231 #    define INATRedirectEvent_GetGuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
25232 #   endif /* VBOX_WITH_GLUE */
25233 
25234 interface INATRedirectEvent
25235 {
25236 #   ifndef VBOX_WITH_GLUE
25237     struct INATRedirectEvent_vtbl *vtbl;
25238 #   else /* VBOX_WITH_GLUE */
25239     CONST_VTBL struct INATRedirectEventVtbl *lpVtbl;
25240 #   endif /* VBOX_WITH_GLUE */
25241 };
25242 /* End of struct INATRedirectEvent declaration */
25243 
25244 
25245 /* Start of struct IHostPCIDevicePlugEvent declaration */
25246 #   define IHOSTPCIDEVICEPLUGEVENT_IID_STR "a0bad6df-d612-47d3-89d4-db3992533948"
25247 #   define IHOSTPCIDEVICEPLUGEVENT_IID { \
25248     0xa0bad6df, 0xd612, 0x47d3, \
25249     { 0x89, 0xd4, 0xdb, 0x39, 0x92, 0x53, 0x39, 0x48 } \
25250 }
25251 /* COM compatibility */
25252 VBOX_EXTERN_CONST(nsIID, IID_IHostPCIDevicePlugEvent);
25253 #   ifndef VBOX_WITH_GLUE
25254 struct IHostPCIDevicePlugEvent_vtbl
25255 {
25256     struct IMachineEvent_vtbl imachineevent;
25257 
25258     nsresult (*GetPlugged)(IHostPCIDevicePlugEvent *pThis, PRBool *plugged);
25259 
25260     nsresult (*GetSuccess)(IHostPCIDevicePlugEvent *pThis, PRBool *success);
25261 
25262     nsresult (*GetAttachment)(IHostPCIDevicePlugEvent *pThis, IPCIDeviceAttachment * *attachment);
25263 
25264     nsresult (*GetMessage)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *message);
25265 
25266 };
25267 #   else /* VBOX_WITH_GLUE */
25268 struct IHostPCIDevicePlugEventVtbl
25269 {
25270     nsresult (*QueryInterface)(IHostPCIDevicePlugEvent *pThis, const nsID *iid, void **resultp);
25271     nsrefcnt (*AddRef)(IHostPCIDevicePlugEvent *pThis);
25272     nsrefcnt (*Release)(IHostPCIDevicePlugEvent *pThis);
25273     nsresult (*GetType)(IHostPCIDevicePlugEvent *pThis, PRUint32 *type);
25274 
25275     nsresult (*GetSource)(IHostPCIDevicePlugEvent *pThis, IEventSource * *source);
25276 
25277     nsresult (*GetWaitable)(IHostPCIDevicePlugEvent *pThis, PRBool *waitable);
25278 
25279     nsresult (*SetProcessed)(IHostPCIDevicePlugEvent *pThis );
25280 
25281     nsresult (*WaitProcessed)(
25282         IHostPCIDevicePlugEvent *pThis,
25283         PRInt32 timeout,
25284         PRBool * result
25285     );
25286 
25287     nsresult (*GetMachineId)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *machineId);
25288 
25289     nsresult (*GetPlugged)(IHostPCIDevicePlugEvent *pThis, PRBool *plugged);
25290 
25291     nsresult (*GetSuccess)(IHostPCIDevicePlugEvent *pThis, PRBool *success);
25292 
25293     nsresult (*GetAttachment)(IHostPCIDevicePlugEvent *pThis, IPCIDeviceAttachment * *attachment);
25294 
25295     nsresult (*GetMessage)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *message);
25296 
25297 };
25298 #    define IHostPCIDevicePlugEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25299 #    define IHostPCIDevicePlugEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25300 #    define IHostPCIDevicePlugEvent_Release(p) ((p)->lpVtbl->Release(p))
25301 #    define IHostPCIDevicePlugEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25302 #    define IHostPCIDevicePlugEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25303 #    define IHostPCIDevicePlugEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25304 #    define IHostPCIDevicePlugEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25305 #    define IHostPCIDevicePlugEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25306 #    define IHostPCIDevicePlugEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25307 #    define IHostPCIDevicePlugEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25308 #    define IHostPCIDevicePlugEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25309 #    define IHostPCIDevicePlugEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25310 #    define IHostPCIDevicePlugEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25311 #    define IHostPCIDevicePlugEvent_get_Plugged(p, aPlugged) ((p)->lpVtbl->GetPlugged(p, aPlugged))
25312 #    define IHostPCIDevicePlugEvent_GetPlugged(p, aPlugged) ((p)->lpVtbl->GetPlugged(p, aPlugged))
25313 #    define IHostPCIDevicePlugEvent_get_Success(p, aSuccess) ((p)->lpVtbl->GetSuccess(p, aSuccess))
25314 #    define IHostPCIDevicePlugEvent_GetSuccess(p, aSuccess) ((p)->lpVtbl->GetSuccess(p, aSuccess))
25315 #    define IHostPCIDevicePlugEvent_get_Attachment(p, aAttachment) ((p)->lpVtbl->GetAttachment(p, aAttachment))
25316 #    define IHostPCIDevicePlugEvent_GetAttachment(p, aAttachment) ((p)->lpVtbl->GetAttachment(p, aAttachment))
25317 #    define IHostPCIDevicePlugEvent_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
25318 #    define IHostPCIDevicePlugEvent_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
25319 #   endif /* VBOX_WITH_GLUE */
25320 
25321 interface IHostPCIDevicePlugEvent
25322 {
25323 #   ifndef VBOX_WITH_GLUE
25324     struct IHostPCIDevicePlugEvent_vtbl *vtbl;
25325 #   else /* VBOX_WITH_GLUE */
25326     CONST_VTBL struct IHostPCIDevicePlugEventVtbl *lpVtbl;
25327 #   endif /* VBOX_WITH_GLUE */
25328 };
25329 /* End of struct IHostPCIDevicePlugEvent declaration */
25330 
25331 
25332 /* Start of struct IVBoxSVCAvailabilityChangedEvent declaration */
25333 #   define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID_STR "97c78fcd-d4fc-485f-8613-5af88bfcfcdc"
25334 #   define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID { \
25335     0x97c78fcd, 0xd4fc, 0x485f, \
25336     { 0x86, 0x13, 0x5a, 0xf8, 0x8b, 0xfc, 0xfc, 0xdc } \
25337 }
25338 /* COM compatibility */
25339 VBOX_EXTERN_CONST(nsIID, IID_IVBoxSVCAvailabilityChangedEvent);
25340 #   ifndef VBOX_WITH_GLUE
25341 struct IVBoxSVCAvailabilityChangedEvent_vtbl
25342 {
25343     struct IEvent_vtbl ievent;
25344 
25345     nsresult (*GetAvailable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *available);
25346 
25347 };
25348 #   else /* VBOX_WITH_GLUE */
25349 struct IVBoxSVCAvailabilityChangedEventVtbl
25350 {
25351     nsresult (*QueryInterface)(IVBoxSVCAvailabilityChangedEvent *pThis, const nsID *iid, void **resultp);
25352     nsrefcnt (*AddRef)(IVBoxSVCAvailabilityChangedEvent *pThis);
25353     nsrefcnt (*Release)(IVBoxSVCAvailabilityChangedEvent *pThis);
25354     nsresult (*GetType)(IVBoxSVCAvailabilityChangedEvent *pThis, PRUint32 *type);
25355 
25356     nsresult (*GetSource)(IVBoxSVCAvailabilityChangedEvent *pThis, IEventSource * *source);
25357 
25358     nsresult (*GetWaitable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *waitable);
25359 
25360     nsresult (*SetProcessed)(IVBoxSVCAvailabilityChangedEvent *pThis );
25361 
25362     nsresult (*WaitProcessed)(
25363         IVBoxSVCAvailabilityChangedEvent *pThis,
25364         PRInt32 timeout,
25365         PRBool * result
25366     );
25367 
25368     nsresult (*GetAvailable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *available);
25369 
25370 };
25371 #    define IVBoxSVCAvailabilityChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25372 #    define IVBoxSVCAvailabilityChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25373 #    define IVBoxSVCAvailabilityChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25374 #    define IVBoxSVCAvailabilityChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25375 #    define IVBoxSVCAvailabilityChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25376 #    define IVBoxSVCAvailabilityChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25377 #    define IVBoxSVCAvailabilityChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25378 #    define IVBoxSVCAvailabilityChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25379 #    define IVBoxSVCAvailabilityChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25380 #    define IVBoxSVCAvailabilityChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25381 #    define IVBoxSVCAvailabilityChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25382 #    define IVBoxSVCAvailabilityChangedEvent_get_Available(p, aAvailable) ((p)->lpVtbl->GetAvailable(p, aAvailable))
25383 #    define IVBoxSVCAvailabilityChangedEvent_GetAvailable(p, aAvailable) ((p)->lpVtbl->GetAvailable(p, aAvailable))
25384 #   endif /* VBOX_WITH_GLUE */
25385 
25386 interface IVBoxSVCAvailabilityChangedEvent
25387 {
25388 #   ifndef VBOX_WITH_GLUE
25389     struct IVBoxSVCAvailabilityChangedEvent_vtbl *vtbl;
25390 #   else /* VBOX_WITH_GLUE */
25391     CONST_VTBL struct IVBoxSVCAvailabilityChangedEventVtbl *lpVtbl;
25392 #   endif /* VBOX_WITH_GLUE */
25393 };
25394 /* End of struct IVBoxSVCAvailabilityChangedEvent declaration */
25395 
25396 
25397 /* Start of struct IBandwidthGroupChangedEvent declaration */
25398 #   define IBANDWIDTHGROUPCHANGEDEVENT_IID_STR "334df94a-7556-4cbc-8c04-043096b02d82"
25399 #   define IBANDWIDTHGROUPCHANGEDEVENT_IID { \
25400     0x334df94a, 0x7556, 0x4cbc, \
25401     { 0x8c, 0x04, 0x04, 0x30, 0x96, 0xb0, 0x2d, 0x82 } \
25402 }
25403 /* COM compatibility */
25404 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthGroupChangedEvent);
25405 #   ifndef VBOX_WITH_GLUE
25406 struct IBandwidthGroupChangedEvent_vtbl
25407 {
25408     struct IEvent_vtbl ievent;
25409 
25410     nsresult (*GetBandwidthGroup)(IBandwidthGroupChangedEvent *pThis, IBandwidthGroup * *bandwidthGroup);
25411 
25412 };
25413 #   else /* VBOX_WITH_GLUE */
25414 struct IBandwidthGroupChangedEventVtbl
25415 {
25416     nsresult (*QueryInterface)(IBandwidthGroupChangedEvent *pThis, const nsID *iid, void **resultp);
25417     nsrefcnt (*AddRef)(IBandwidthGroupChangedEvent *pThis);
25418     nsrefcnt (*Release)(IBandwidthGroupChangedEvent *pThis);
25419     nsresult (*GetType)(IBandwidthGroupChangedEvent *pThis, PRUint32 *type);
25420 
25421     nsresult (*GetSource)(IBandwidthGroupChangedEvent *pThis, IEventSource * *source);
25422 
25423     nsresult (*GetWaitable)(IBandwidthGroupChangedEvent *pThis, PRBool *waitable);
25424 
25425     nsresult (*SetProcessed)(IBandwidthGroupChangedEvent *pThis );
25426 
25427     nsresult (*WaitProcessed)(
25428         IBandwidthGroupChangedEvent *pThis,
25429         PRInt32 timeout,
25430         PRBool * result
25431     );
25432 
25433     nsresult (*GetBandwidthGroup)(IBandwidthGroupChangedEvent *pThis, IBandwidthGroup * *bandwidthGroup);
25434 
25435 };
25436 #    define IBandwidthGroupChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25437 #    define IBandwidthGroupChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25438 #    define IBandwidthGroupChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25439 #    define IBandwidthGroupChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25440 #    define IBandwidthGroupChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25441 #    define IBandwidthGroupChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25442 #    define IBandwidthGroupChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25443 #    define IBandwidthGroupChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25444 #    define IBandwidthGroupChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25445 #    define IBandwidthGroupChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25446 #    define IBandwidthGroupChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25447 #    define IBandwidthGroupChangedEvent_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
25448 #    define IBandwidthGroupChangedEvent_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
25449 #   endif /* VBOX_WITH_GLUE */
25450 
25451 interface IBandwidthGroupChangedEvent
25452 {
25453 #   ifndef VBOX_WITH_GLUE
25454     struct IBandwidthGroupChangedEvent_vtbl *vtbl;
25455 #   else /* VBOX_WITH_GLUE */
25456     CONST_VTBL struct IBandwidthGroupChangedEventVtbl *lpVtbl;
25457 #   endif /* VBOX_WITH_GLUE */
25458 };
25459 /* End of struct IBandwidthGroupChangedEvent declaration */
25460 
25461 
25462 /* Start of struct IGuestMonitorChangedEvent declaration */
25463 #   define IGUESTMONITORCHANGEDEVENT_IID_STR "0f7b8a22-c71f-4a36-8e5f-a77d01d76090"
25464 #   define IGUESTMONITORCHANGEDEVENT_IID { \
25465     0x0f7b8a22, 0xc71f, 0x4a36, \
25466     { 0x8e, 0x5f, 0xa7, 0x7d, 0x01, 0xd7, 0x60, 0x90 } \
25467 }
25468 /* COM compatibility */
25469 VBOX_EXTERN_CONST(nsIID, IID_IGuestMonitorChangedEvent);
25470 #   ifndef VBOX_WITH_GLUE
25471 struct IGuestMonitorChangedEvent_vtbl
25472 {
25473     struct IEvent_vtbl ievent;
25474 
25475     nsresult (*GetChangeType)(IGuestMonitorChangedEvent *pThis, PRUint32 *changeType);
25476 
25477     nsresult (*GetScreenId)(IGuestMonitorChangedEvent *pThis, PRUint32 *screenId);
25478 
25479     nsresult (*GetOriginX)(IGuestMonitorChangedEvent *pThis, PRUint32 *originX);
25480 
25481     nsresult (*GetOriginY)(IGuestMonitorChangedEvent *pThis, PRUint32 *originY);
25482 
25483     nsresult (*GetWidth)(IGuestMonitorChangedEvent *pThis, PRUint32 *width);
25484 
25485     nsresult (*GetHeight)(IGuestMonitorChangedEvent *pThis, PRUint32 *height);
25486 
25487 };
25488 #   else /* VBOX_WITH_GLUE */
25489 struct IGuestMonitorChangedEventVtbl
25490 {
25491     nsresult (*QueryInterface)(IGuestMonitorChangedEvent *pThis, const nsID *iid, void **resultp);
25492     nsrefcnt (*AddRef)(IGuestMonitorChangedEvent *pThis);
25493     nsrefcnt (*Release)(IGuestMonitorChangedEvent *pThis);
25494     nsresult (*GetType)(IGuestMonitorChangedEvent *pThis, PRUint32 *type);
25495 
25496     nsresult (*GetSource)(IGuestMonitorChangedEvent *pThis, IEventSource * *source);
25497 
25498     nsresult (*GetWaitable)(IGuestMonitorChangedEvent *pThis, PRBool *waitable);
25499 
25500     nsresult (*SetProcessed)(IGuestMonitorChangedEvent *pThis );
25501 
25502     nsresult (*WaitProcessed)(
25503         IGuestMonitorChangedEvent *pThis,
25504         PRInt32 timeout,
25505         PRBool * result
25506     );
25507 
25508     nsresult (*GetChangeType)(IGuestMonitorChangedEvent *pThis, PRUint32 *changeType);
25509 
25510     nsresult (*GetScreenId)(IGuestMonitorChangedEvent *pThis, PRUint32 *screenId);
25511 
25512     nsresult (*GetOriginX)(IGuestMonitorChangedEvent *pThis, PRUint32 *originX);
25513 
25514     nsresult (*GetOriginY)(IGuestMonitorChangedEvent *pThis, PRUint32 *originY);
25515 
25516     nsresult (*GetWidth)(IGuestMonitorChangedEvent *pThis, PRUint32 *width);
25517 
25518     nsresult (*GetHeight)(IGuestMonitorChangedEvent *pThis, PRUint32 *height);
25519 
25520 };
25521 #    define IGuestMonitorChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25522 #    define IGuestMonitorChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25523 #    define IGuestMonitorChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25524 #    define IGuestMonitorChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25525 #    define IGuestMonitorChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25526 #    define IGuestMonitorChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25527 #    define IGuestMonitorChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25528 #    define IGuestMonitorChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25529 #    define IGuestMonitorChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25530 #    define IGuestMonitorChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25531 #    define IGuestMonitorChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25532 #    define IGuestMonitorChangedEvent_get_ChangeType(p, aChangeType) ((p)->lpVtbl->GetChangeType(p, aChangeType))
25533 #    define IGuestMonitorChangedEvent_GetChangeType(p, aChangeType) ((p)->lpVtbl->GetChangeType(p, aChangeType))
25534 #    define IGuestMonitorChangedEvent_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
25535 #    define IGuestMonitorChangedEvent_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
25536 #    define IGuestMonitorChangedEvent_get_OriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
25537 #    define IGuestMonitorChangedEvent_GetOriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
25538 #    define IGuestMonitorChangedEvent_get_OriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
25539 #    define IGuestMonitorChangedEvent_GetOriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
25540 #    define IGuestMonitorChangedEvent_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
25541 #    define IGuestMonitorChangedEvent_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
25542 #    define IGuestMonitorChangedEvent_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
25543 #    define IGuestMonitorChangedEvent_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
25544 #   endif /* VBOX_WITH_GLUE */
25545 
25546 interface IGuestMonitorChangedEvent
25547 {
25548 #   ifndef VBOX_WITH_GLUE
25549     struct IGuestMonitorChangedEvent_vtbl *vtbl;
25550 #   else /* VBOX_WITH_GLUE */
25551     CONST_VTBL struct IGuestMonitorChangedEventVtbl *lpVtbl;
25552 #   endif /* VBOX_WITH_GLUE */
25553 };
25554 /* End of struct IGuestMonitorChangedEvent declaration */
25555 
25556 
25557 /* Start of struct IGuestUserStateChangedEvent declaration */
25558 #   define IGUESTUSERSTATECHANGEDEVENT_IID_STR "39b4e759-1ec0-4c0f-857f-fbe2a737a256"
25559 #   define IGUESTUSERSTATECHANGEDEVENT_IID { \
25560     0x39b4e759, 0x1ec0, 0x4c0f, \
25561     { 0x85, 0x7f, 0xfb, 0xe2, 0xa7, 0x37, 0xa2, 0x56 } \
25562 }
25563 /* COM compatibility */
25564 VBOX_EXTERN_CONST(nsIID, IID_IGuestUserStateChangedEvent);
25565 #   ifndef VBOX_WITH_GLUE
25566 struct IGuestUserStateChangedEvent_vtbl
25567 {
25568     struct IEvent_vtbl ievent;
25569 
25570     nsresult (*GetName)(IGuestUserStateChangedEvent *pThis, PRUnichar * *name);
25571 
25572     nsresult (*GetDomain)(IGuestUserStateChangedEvent *pThis, PRUnichar * *domain);
25573 
25574     nsresult (*GetState)(IGuestUserStateChangedEvent *pThis, PRUint32 *state);
25575 
25576     nsresult (*GetStateDetails)(IGuestUserStateChangedEvent *pThis, PRUnichar * *stateDetails);
25577 
25578 };
25579 #   else /* VBOX_WITH_GLUE */
25580 struct IGuestUserStateChangedEventVtbl
25581 {
25582     nsresult (*QueryInterface)(IGuestUserStateChangedEvent *pThis, const nsID *iid, void **resultp);
25583     nsrefcnt (*AddRef)(IGuestUserStateChangedEvent *pThis);
25584     nsrefcnt (*Release)(IGuestUserStateChangedEvent *pThis);
25585     nsresult (*GetType)(IGuestUserStateChangedEvent *pThis, PRUint32 *type);
25586 
25587     nsresult (*GetSource)(IGuestUserStateChangedEvent *pThis, IEventSource * *source);
25588 
25589     nsresult (*GetWaitable)(IGuestUserStateChangedEvent *pThis, PRBool *waitable);
25590 
25591     nsresult (*SetProcessed)(IGuestUserStateChangedEvent *pThis );
25592 
25593     nsresult (*WaitProcessed)(
25594         IGuestUserStateChangedEvent *pThis,
25595         PRInt32 timeout,
25596         PRBool * result
25597     );
25598 
25599     nsresult (*GetName)(IGuestUserStateChangedEvent *pThis, PRUnichar * *name);
25600 
25601     nsresult (*GetDomain)(IGuestUserStateChangedEvent *pThis, PRUnichar * *domain);
25602 
25603     nsresult (*GetState)(IGuestUserStateChangedEvent *pThis, PRUint32 *state);
25604 
25605     nsresult (*GetStateDetails)(IGuestUserStateChangedEvent *pThis, PRUnichar * *stateDetails);
25606 
25607 };
25608 #    define IGuestUserStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25609 #    define IGuestUserStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25610 #    define IGuestUserStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25611 #    define IGuestUserStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25612 #    define IGuestUserStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25613 #    define IGuestUserStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25614 #    define IGuestUserStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25615 #    define IGuestUserStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25616 #    define IGuestUserStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25617 #    define IGuestUserStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25618 #    define IGuestUserStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25619 #    define IGuestUserStateChangedEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
25620 #    define IGuestUserStateChangedEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
25621 #    define IGuestUserStateChangedEvent_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
25622 #    define IGuestUserStateChangedEvent_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
25623 #    define IGuestUserStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
25624 #    define IGuestUserStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
25625 #    define IGuestUserStateChangedEvent_get_StateDetails(p, aStateDetails) ((p)->lpVtbl->GetStateDetails(p, aStateDetails))
25626 #    define IGuestUserStateChangedEvent_GetStateDetails(p, aStateDetails) ((p)->lpVtbl->GetStateDetails(p, aStateDetails))
25627 #   endif /* VBOX_WITH_GLUE */
25628 
25629 interface IGuestUserStateChangedEvent
25630 {
25631 #   ifndef VBOX_WITH_GLUE
25632     struct IGuestUserStateChangedEvent_vtbl *vtbl;
25633 #   else /* VBOX_WITH_GLUE */
25634     CONST_VTBL struct IGuestUserStateChangedEventVtbl *lpVtbl;
25635 #   endif /* VBOX_WITH_GLUE */
25636 };
25637 /* End of struct IGuestUserStateChangedEvent declaration */
25638 
25639 
25640 /* Start of struct IStorageDeviceChangedEvent declaration */
25641 #   define ISTORAGEDEVICECHANGEDEVENT_IID_STR "232e9151-ae84-4b8e-b0f3-5c20c35caac9"
25642 #   define ISTORAGEDEVICECHANGEDEVENT_IID { \
25643     0x232e9151, 0xae84, 0x4b8e, \
25644     { 0xb0, 0xf3, 0x5c, 0x20, 0xc3, 0x5c, 0xaa, 0xc9 } \
25645 }
25646 /* COM compatibility */
25647 VBOX_EXTERN_CONST(nsIID, IID_IStorageDeviceChangedEvent);
25648 #   ifndef VBOX_WITH_GLUE
25649 struct IStorageDeviceChangedEvent_vtbl
25650 {
25651     struct IEvent_vtbl ievent;
25652 
25653     nsresult (*GetStorageDevice)(IStorageDeviceChangedEvent *pThis, IMediumAttachment * *storageDevice);
25654 
25655     nsresult (*GetRemoved)(IStorageDeviceChangedEvent *pThis, PRBool *removed);
25656 
25657     nsresult (*GetSilent)(IStorageDeviceChangedEvent *pThis, PRBool *silent);
25658 
25659 };
25660 #   else /* VBOX_WITH_GLUE */
25661 struct IStorageDeviceChangedEventVtbl
25662 {
25663     nsresult (*QueryInterface)(IStorageDeviceChangedEvent *pThis, const nsID *iid, void **resultp);
25664     nsrefcnt (*AddRef)(IStorageDeviceChangedEvent *pThis);
25665     nsrefcnt (*Release)(IStorageDeviceChangedEvent *pThis);
25666     nsresult (*GetType)(IStorageDeviceChangedEvent *pThis, PRUint32 *type);
25667 
25668     nsresult (*GetSource)(IStorageDeviceChangedEvent *pThis, IEventSource * *source);
25669 
25670     nsresult (*GetWaitable)(IStorageDeviceChangedEvent *pThis, PRBool *waitable);
25671 
25672     nsresult (*SetProcessed)(IStorageDeviceChangedEvent *pThis );
25673 
25674     nsresult (*WaitProcessed)(
25675         IStorageDeviceChangedEvent *pThis,
25676         PRInt32 timeout,
25677         PRBool * result
25678     );
25679 
25680     nsresult (*GetStorageDevice)(IStorageDeviceChangedEvent *pThis, IMediumAttachment * *storageDevice);
25681 
25682     nsresult (*GetRemoved)(IStorageDeviceChangedEvent *pThis, PRBool *removed);
25683 
25684     nsresult (*GetSilent)(IStorageDeviceChangedEvent *pThis, PRBool *silent);
25685 
25686 };
25687 #    define IStorageDeviceChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25688 #    define IStorageDeviceChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25689 #    define IStorageDeviceChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25690 #    define IStorageDeviceChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25691 #    define IStorageDeviceChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25692 #    define IStorageDeviceChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25693 #    define IStorageDeviceChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25694 #    define IStorageDeviceChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25695 #    define IStorageDeviceChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25696 #    define IStorageDeviceChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25697 #    define IStorageDeviceChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25698 #    define IStorageDeviceChangedEvent_get_StorageDevice(p, aStorageDevice) ((p)->lpVtbl->GetStorageDevice(p, aStorageDevice))
25699 #    define IStorageDeviceChangedEvent_GetStorageDevice(p, aStorageDevice) ((p)->lpVtbl->GetStorageDevice(p, aStorageDevice))
25700 #    define IStorageDeviceChangedEvent_get_Removed(p, aRemoved) ((p)->lpVtbl->GetRemoved(p, aRemoved))
25701 #    define IStorageDeviceChangedEvent_GetRemoved(p, aRemoved) ((p)->lpVtbl->GetRemoved(p, aRemoved))
25702 #    define IStorageDeviceChangedEvent_get_Silent(p, aSilent) ((p)->lpVtbl->GetSilent(p, aSilent))
25703 #    define IStorageDeviceChangedEvent_GetSilent(p, aSilent) ((p)->lpVtbl->GetSilent(p, aSilent))
25704 #   endif /* VBOX_WITH_GLUE */
25705 
25706 interface IStorageDeviceChangedEvent
25707 {
25708 #   ifndef VBOX_WITH_GLUE
25709     struct IStorageDeviceChangedEvent_vtbl *vtbl;
25710 #   else /* VBOX_WITH_GLUE */
25711     CONST_VTBL struct IStorageDeviceChangedEventVtbl *lpVtbl;
25712 #   endif /* VBOX_WITH_GLUE */
25713 };
25714 /* End of struct IStorageDeviceChangedEvent declaration */
25715 
25716 
25717 /* Start of struct INATNetworkChangedEvent declaration */
25718 #   define INATNETWORKCHANGEDEVENT_IID_STR "101ae042-1a29-4a19-92cf-02285773f3b5"
25719 #   define INATNETWORKCHANGEDEVENT_IID { \
25720     0x101ae042, 0x1a29, 0x4a19, \
25721     { 0x92, 0xcf, 0x02, 0x28, 0x57, 0x73, 0xf3, 0xb5 } \
25722 }
25723 /* COM compatibility */
25724 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkChangedEvent);
25725 #   ifndef VBOX_WITH_GLUE
25726 struct INATNetworkChangedEvent_vtbl
25727 {
25728     struct IEvent_vtbl ievent;
25729 
25730     nsresult (*GetNetworkName)(INATNetworkChangedEvent *pThis, PRUnichar * *networkName);
25731 
25732 };
25733 #   else /* VBOX_WITH_GLUE */
25734 struct INATNetworkChangedEventVtbl
25735 {
25736     nsresult (*QueryInterface)(INATNetworkChangedEvent *pThis, const nsID *iid, void **resultp);
25737     nsrefcnt (*AddRef)(INATNetworkChangedEvent *pThis);
25738     nsrefcnt (*Release)(INATNetworkChangedEvent *pThis);
25739     nsresult (*GetType)(INATNetworkChangedEvent *pThis, PRUint32 *type);
25740 
25741     nsresult (*GetSource)(INATNetworkChangedEvent *pThis, IEventSource * *source);
25742 
25743     nsresult (*GetWaitable)(INATNetworkChangedEvent *pThis, PRBool *waitable);
25744 
25745     nsresult (*SetProcessed)(INATNetworkChangedEvent *pThis );
25746 
25747     nsresult (*WaitProcessed)(
25748         INATNetworkChangedEvent *pThis,
25749         PRInt32 timeout,
25750         PRBool * result
25751     );
25752 
25753     nsresult (*GetNetworkName)(INATNetworkChangedEvent *pThis, PRUnichar * *networkName);
25754 
25755 };
25756 #    define INATNetworkChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25757 #    define INATNetworkChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25758 #    define INATNetworkChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25759 #    define INATNetworkChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25760 #    define INATNetworkChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25761 #    define INATNetworkChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25762 #    define INATNetworkChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25763 #    define INATNetworkChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25764 #    define INATNetworkChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25765 #    define INATNetworkChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25766 #    define INATNetworkChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25767 #    define INATNetworkChangedEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25768 #    define INATNetworkChangedEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25769 #   endif /* VBOX_WITH_GLUE */
25770 
25771 interface INATNetworkChangedEvent
25772 {
25773 #   ifndef VBOX_WITH_GLUE
25774     struct INATNetworkChangedEvent_vtbl *vtbl;
25775 #   else /* VBOX_WITH_GLUE */
25776     CONST_VTBL struct INATNetworkChangedEventVtbl *lpVtbl;
25777 #   endif /* VBOX_WITH_GLUE */
25778 };
25779 /* End of struct INATNetworkChangedEvent declaration */
25780 
25781 
25782 /* Start of struct INATNetworkStartStopEvent declaration */
25783 #   define INATNETWORKSTARTSTOPEVENT_IID_STR "269d8f6b-fa1e-4cee-91c7-6d8496bea3c1"
25784 #   define INATNETWORKSTARTSTOPEVENT_IID { \
25785     0x269d8f6b, 0xfa1e, 0x4cee, \
25786     { 0x91, 0xc7, 0x6d, 0x84, 0x96, 0xbe, 0xa3, 0xc1 } \
25787 }
25788 /* COM compatibility */
25789 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkStartStopEvent);
25790 #   ifndef VBOX_WITH_GLUE
25791 struct INATNetworkStartStopEvent_vtbl
25792 {
25793     struct INATNetworkChangedEvent_vtbl inatnetworkchangedevent;
25794 
25795     nsresult (*GetStartEvent)(INATNetworkStartStopEvent *pThis, PRBool *startEvent);
25796 
25797 };
25798 #   else /* VBOX_WITH_GLUE */
25799 struct INATNetworkStartStopEventVtbl
25800 {
25801     nsresult (*QueryInterface)(INATNetworkStartStopEvent *pThis, const nsID *iid, void **resultp);
25802     nsrefcnt (*AddRef)(INATNetworkStartStopEvent *pThis);
25803     nsrefcnt (*Release)(INATNetworkStartStopEvent *pThis);
25804     nsresult (*GetType)(INATNetworkStartStopEvent *pThis, PRUint32 *type);
25805 
25806     nsresult (*GetSource)(INATNetworkStartStopEvent *pThis, IEventSource * *source);
25807 
25808     nsresult (*GetWaitable)(INATNetworkStartStopEvent *pThis, PRBool *waitable);
25809 
25810     nsresult (*SetProcessed)(INATNetworkStartStopEvent *pThis );
25811 
25812     nsresult (*WaitProcessed)(
25813         INATNetworkStartStopEvent *pThis,
25814         PRInt32 timeout,
25815         PRBool * result
25816     );
25817 
25818     nsresult (*GetNetworkName)(INATNetworkStartStopEvent *pThis, PRUnichar * *networkName);
25819 
25820     nsresult (*GetStartEvent)(INATNetworkStartStopEvent *pThis, PRBool *startEvent);
25821 
25822 };
25823 #    define INATNetworkStartStopEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25824 #    define INATNetworkStartStopEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25825 #    define INATNetworkStartStopEvent_Release(p) ((p)->lpVtbl->Release(p))
25826 #    define INATNetworkStartStopEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25827 #    define INATNetworkStartStopEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25828 #    define INATNetworkStartStopEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25829 #    define INATNetworkStartStopEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25830 #    define INATNetworkStartStopEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25831 #    define INATNetworkStartStopEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25832 #    define INATNetworkStartStopEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25833 #    define INATNetworkStartStopEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25834 #    define INATNetworkStartStopEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25835 #    define INATNetworkStartStopEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25836 #    define INATNetworkStartStopEvent_get_StartEvent(p, aStartEvent) ((p)->lpVtbl->GetStartEvent(p, aStartEvent))
25837 #    define INATNetworkStartStopEvent_GetStartEvent(p, aStartEvent) ((p)->lpVtbl->GetStartEvent(p, aStartEvent))
25838 #   endif /* VBOX_WITH_GLUE */
25839 
25840 interface INATNetworkStartStopEvent
25841 {
25842 #   ifndef VBOX_WITH_GLUE
25843     struct INATNetworkStartStopEvent_vtbl *vtbl;
25844 #   else /* VBOX_WITH_GLUE */
25845     CONST_VTBL struct INATNetworkStartStopEventVtbl *lpVtbl;
25846 #   endif /* VBOX_WITH_GLUE */
25847 };
25848 /* End of struct INATNetworkStartStopEvent declaration */
25849 
25850 
25851 /* Start of struct INATNetworkAlterEvent declaration */
25852 #   define INATNETWORKALTEREVENT_IID_STR "d947adf5-4022-dc80-5535-6fb116815604"
25853 #   define INATNETWORKALTEREVENT_IID { \
25854     0xd947adf5, 0x4022, 0xdc80, \
25855     { 0x55, 0x35, 0x6f, 0xb1, 0x16, 0x81, 0x56, 0x04 } \
25856 }
25857 /* COM compatibility */
25858 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkAlterEvent);
25859 #   ifndef VBOX_WITH_GLUE
25860 struct INATNetworkAlterEvent_vtbl
25861 {
25862     struct INATNetworkChangedEvent_vtbl inatnetworkchangedevent;
25863 
25864     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkAlterEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25865 
25866 };
25867 #   else /* VBOX_WITH_GLUE */
25868 struct INATNetworkAlterEventVtbl
25869 {
25870     nsresult (*QueryInterface)(INATNetworkAlterEvent *pThis, const nsID *iid, void **resultp);
25871     nsrefcnt (*AddRef)(INATNetworkAlterEvent *pThis);
25872     nsrefcnt (*Release)(INATNetworkAlterEvent *pThis);
25873     nsresult (*GetType)(INATNetworkAlterEvent *pThis, PRUint32 *type);
25874 
25875     nsresult (*GetSource)(INATNetworkAlterEvent *pThis, IEventSource * *source);
25876 
25877     nsresult (*GetWaitable)(INATNetworkAlterEvent *pThis, PRBool *waitable);
25878 
25879     nsresult (*SetProcessed)(INATNetworkAlterEvent *pThis );
25880 
25881     nsresult (*WaitProcessed)(
25882         INATNetworkAlterEvent *pThis,
25883         PRInt32 timeout,
25884         PRBool * result
25885     );
25886 
25887     nsresult (*GetNetworkName)(INATNetworkAlterEvent *pThis, PRUnichar * *networkName);
25888 
25889     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkAlterEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25890 
25891 };
25892 #    define INATNetworkAlterEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25893 #    define INATNetworkAlterEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25894 #    define INATNetworkAlterEvent_Release(p) ((p)->lpVtbl->Release(p))
25895 #    define INATNetworkAlterEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25896 #    define INATNetworkAlterEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25897 #    define INATNetworkAlterEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25898 #    define INATNetworkAlterEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25899 #    define INATNetworkAlterEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25900 #    define INATNetworkAlterEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25901 #    define INATNetworkAlterEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25902 #    define INATNetworkAlterEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25903 #    define INATNetworkAlterEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25904 #    define INATNetworkAlterEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25905 #    define INATNetworkAlterEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25906 #    define INATNetworkAlterEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25907 #   endif /* VBOX_WITH_GLUE */
25908 
25909 interface INATNetworkAlterEvent
25910 {
25911 #   ifndef VBOX_WITH_GLUE
25912     struct INATNetworkAlterEvent_vtbl *vtbl;
25913 #   else /* VBOX_WITH_GLUE */
25914     CONST_VTBL struct INATNetworkAlterEventVtbl *lpVtbl;
25915 #   endif /* VBOX_WITH_GLUE */
25916 };
25917 /* End of struct INATNetworkAlterEvent declaration */
25918 
25919 
25920 /* Start of struct INATNetworkCreationDeletionEvent declaration */
25921 #   define INATNETWORKCREATIONDELETIONEVENT_IID_STR "8d984a7e-b855-40b8-ab0c-44d3515b4528"
25922 #   define INATNETWORKCREATIONDELETIONEVENT_IID { \
25923     0x8d984a7e, 0xb855, 0x40b8, \
25924     { 0xab, 0x0c, 0x44, 0xd3, 0x51, 0x5b, 0x45, 0x28 } \
25925 }
25926 /* COM compatibility */
25927 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkCreationDeletionEvent);
25928 #   ifndef VBOX_WITH_GLUE
25929 struct INATNetworkCreationDeletionEvent_vtbl
25930 {
25931     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
25932 
25933     nsresult (*GetCreationEvent)(INATNetworkCreationDeletionEvent *pThis, PRBool *creationEvent);
25934 
25935 };
25936 #   else /* VBOX_WITH_GLUE */
25937 struct INATNetworkCreationDeletionEventVtbl
25938 {
25939     nsresult (*QueryInterface)(INATNetworkCreationDeletionEvent *pThis, const nsID *iid, void **resultp);
25940     nsrefcnt (*AddRef)(INATNetworkCreationDeletionEvent *pThis);
25941     nsrefcnt (*Release)(INATNetworkCreationDeletionEvent *pThis);
25942     nsresult (*GetType)(INATNetworkCreationDeletionEvent *pThis, PRUint32 *type);
25943 
25944     nsresult (*GetSource)(INATNetworkCreationDeletionEvent *pThis, IEventSource * *source);
25945 
25946     nsresult (*GetWaitable)(INATNetworkCreationDeletionEvent *pThis, PRBool *waitable);
25947 
25948     nsresult (*SetProcessed)(INATNetworkCreationDeletionEvent *pThis );
25949 
25950     nsresult (*WaitProcessed)(
25951         INATNetworkCreationDeletionEvent *pThis,
25952         PRInt32 timeout,
25953         PRBool * result
25954     );
25955 
25956     nsresult (*GetNetworkName)(INATNetworkCreationDeletionEvent *pThis, PRUnichar * *networkName);
25957 
25958     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkCreationDeletionEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25959 
25960     nsresult (*GetCreationEvent)(INATNetworkCreationDeletionEvent *pThis, PRBool *creationEvent);
25961 
25962 };
25963 #    define INATNetworkCreationDeletionEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25964 #    define INATNetworkCreationDeletionEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25965 #    define INATNetworkCreationDeletionEvent_Release(p) ((p)->lpVtbl->Release(p))
25966 #    define INATNetworkCreationDeletionEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25967 #    define INATNetworkCreationDeletionEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25968 #    define INATNetworkCreationDeletionEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25969 #    define INATNetworkCreationDeletionEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25970 #    define INATNetworkCreationDeletionEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25971 #    define INATNetworkCreationDeletionEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25972 #    define INATNetworkCreationDeletionEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25973 #    define INATNetworkCreationDeletionEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25974 #    define INATNetworkCreationDeletionEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25975 #    define INATNetworkCreationDeletionEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
25976 #    define INATNetworkCreationDeletionEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25977 #    define INATNetworkCreationDeletionEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25978 #    define INATNetworkCreationDeletionEvent_get_CreationEvent(p, aCreationEvent) ((p)->lpVtbl->GetCreationEvent(p, aCreationEvent))
25979 #    define INATNetworkCreationDeletionEvent_GetCreationEvent(p, aCreationEvent) ((p)->lpVtbl->GetCreationEvent(p, aCreationEvent))
25980 #   endif /* VBOX_WITH_GLUE */
25981 
25982 interface INATNetworkCreationDeletionEvent
25983 {
25984 #   ifndef VBOX_WITH_GLUE
25985     struct INATNetworkCreationDeletionEvent_vtbl *vtbl;
25986 #   else /* VBOX_WITH_GLUE */
25987     CONST_VTBL struct INATNetworkCreationDeletionEventVtbl *lpVtbl;
25988 #   endif /* VBOX_WITH_GLUE */
25989 };
25990 /* End of struct INATNetworkCreationDeletionEvent declaration */
25991 
25992 
25993 /* Start of struct INATNetworkSettingEvent declaration */
25994 #   define INATNETWORKSETTINGEVENT_IID_STR "9db3a9e6-7f29-4aae-a627-5a282c83092c"
25995 #   define INATNETWORKSETTINGEVENT_IID { \
25996     0x9db3a9e6, 0x7f29, 0x4aae, \
25997     { 0xa6, 0x27, 0x5a, 0x28, 0x2c, 0x83, 0x09, 0x2c } \
25998 }
25999 /* COM compatibility */
26000 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkSettingEvent);
26001 #   ifndef VBOX_WITH_GLUE
26002 struct INATNetworkSettingEvent_vtbl
26003 {
26004     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
26005 
26006     nsresult (*GetEnabled)(INATNetworkSettingEvent *pThis, PRBool *enabled);
26007 
26008     nsresult (*GetNetwork)(INATNetworkSettingEvent *pThis, PRUnichar * *network);
26009 
26010     nsresult (*GetGateway)(INATNetworkSettingEvent *pThis, PRUnichar * *gateway);
26011 
26012     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetworkSettingEvent *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
26013 
26014     nsresult (*GetNeedDhcpServer)(INATNetworkSettingEvent *pThis, PRBool *needDhcpServer);
26015 
26016 };
26017 #   else /* VBOX_WITH_GLUE */
26018 struct INATNetworkSettingEventVtbl
26019 {
26020     nsresult (*QueryInterface)(INATNetworkSettingEvent *pThis, const nsID *iid, void **resultp);
26021     nsrefcnt (*AddRef)(INATNetworkSettingEvent *pThis);
26022     nsrefcnt (*Release)(INATNetworkSettingEvent *pThis);
26023     nsresult (*GetType)(INATNetworkSettingEvent *pThis, PRUint32 *type);
26024 
26025     nsresult (*GetSource)(INATNetworkSettingEvent *pThis, IEventSource * *source);
26026 
26027     nsresult (*GetWaitable)(INATNetworkSettingEvent *pThis, PRBool *waitable);
26028 
26029     nsresult (*SetProcessed)(INATNetworkSettingEvent *pThis );
26030 
26031     nsresult (*WaitProcessed)(
26032         INATNetworkSettingEvent *pThis,
26033         PRInt32 timeout,
26034         PRBool * result
26035     );
26036 
26037     nsresult (*GetNetworkName)(INATNetworkSettingEvent *pThis, PRUnichar * *networkName);
26038 
26039     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkSettingEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26040 
26041     nsresult (*GetEnabled)(INATNetworkSettingEvent *pThis, PRBool *enabled);
26042 
26043     nsresult (*GetNetwork)(INATNetworkSettingEvent *pThis, PRUnichar * *network);
26044 
26045     nsresult (*GetGateway)(INATNetworkSettingEvent *pThis, PRUnichar * *gateway);
26046 
26047     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetworkSettingEvent *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
26048 
26049     nsresult (*GetNeedDhcpServer)(INATNetworkSettingEvent *pThis, PRBool *needDhcpServer);
26050 
26051 };
26052 #    define INATNetworkSettingEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26053 #    define INATNetworkSettingEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26054 #    define INATNetworkSettingEvent_Release(p) ((p)->lpVtbl->Release(p))
26055 #    define INATNetworkSettingEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26056 #    define INATNetworkSettingEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26057 #    define INATNetworkSettingEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26058 #    define INATNetworkSettingEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26059 #    define INATNetworkSettingEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26060 #    define INATNetworkSettingEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26061 #    define INATNetworkSettingEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26062 #    define INATNetworkSettingEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26063 #    define INATNetworkSettingEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
26064 #    define INATNetworkSettingEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
26065 #    define INATNetworkSettingEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26066 #    define INATNetworkSettingEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26067 #    define INATNetworkSettingEvent_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
26068 #    define INATNetworkSettingEvent_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
26069 #    define INATNetworkSettingEvent_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
26070 #    define INATNetworkSettingEvent_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
26071 #    define INATNetworkSettingEvent_get_Gateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
26072 #    define INATNetworkSettingEvent_GetGateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
26073 #    define INATNetworkSettingEvent_get_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
26074 #    define INATNetworkSettingEvent_GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
26075 #    define INATNetworkSettingEvent_get_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
26076 #    define INATNetworkSettingEvent_GetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
26077 #   endif /* VBOX_WITH_GLUE */
26078 
26079 interface INATNetworkSettingEvent
26080 {
26081 #   ifndef VBOX_WITH_GLUE
26082     struct INATNetworkSettingEvent_vtbl *vtbl;
26083 #   else /* VBOX_WITH_GLUE */
26084     CONST_VTBL struct INATNetworkSettingEventVtbl *lpVtbl;
26085 #   endif /* VBOX_WITH_GLUE */
26086 };
26087 /* End of struct INATNetworkSettingEvent declaration */
26088 
26089 
26090 /* Start of struct INATNetworkPortForwardEvent declaration */
26091 #   define INATNETWORKPORTFORWARDEVENT_IID_STR "2514881b-23d0-430a-a7ff-7ed7f05534bc"
26092 #   define INATNETWORKPORTFORWARDEVENT_IID { \
26093     0x2514881b, 0x23d0, 0x430a, \
26094     { 0xa7, 0xff, 0x7e, 0xd7, 0xf0, 0x55, 0x34, 0xbc } \
26095 }
26096 /* COM compatibility */
26097 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkPortForwardEvent);
26098 #   ifndef VBOX_WITH_GLUE
26099 struct INATNetworkPortForwardEvent_vtbl
26100 {
26101     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
26102 
26103     nsresult (*GetCreate)(INATNetworkPortForwardEvent *pThis, PRBool *create);
26104 
26105     nsresult (*GetIpv6)(INATNetworkPortForwardEvent *pThis, PRBool *ipv6);
26106 
26107     nsresult (*GetName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *name);
26108 
26109     nsresult (*GetProto)(INATNetworkPortForwardEvent *pThis, PRUint32 *proto);
26110 
26111     nsresult (*GetHostIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *hostIp);
26112 
26113     nsresult (*GetHostPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *hostPort);
26114 
26115     nsresult (*GetGuestIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *guestIp);
26116 
26117     nsresult (*GetGuestPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *guestPort);
26118 
26119 };
26120 #   else /* VBOX_WITH_GLUE */
26121 struct INATNetworkPortForwardEventVtbl
26122 {
26123     nsresult (*QueryInterface)(INATNetworkPortForwardEvent *pThis, const nsID *iid, void **resultp);
26124     nsrefcnt (*AddRef)(INATNetworkPortForwardEvent *pThis);
26125     nsrefcnt (*Release)(INATNetworkPortForwardEvent *pThis);
26126     nsresult (*GetType)(INATNetworkPortForwardEvent *pThis, PRUint32 *type);
26127 
26128     nsresult (*GetSource)(INATNetworkPortForwardEvent *pThis, IEventSource * *source);
26129 
26130     nsresult (*GetWaitable)(INATNetworkPortForwardEvent *pThis, PRBool *waitable);
26131 
26132     nsresult (*SetProcessed)(INATNetworkPortForwardEvent *pThis );
26133 
26134     nsresult (*WaitProcessed)(
26135         INATNetworkPortForwardEvent *pThis,
26136         PRInt32 timeout,
26137         PRBool * result
26138     );
26139 
26140     nsresult (*GetNetworkName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *networkName);
26141 
26142     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkPortForwardEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26143 
26144     nsresult (*GetCreate)(INATNetworkPortForwardEvent *pThis, PRBool *create);
26145 
26146     nsresult (*GetIpv6)(INATNetworkPortForwardEvent *pThis, PRBool *ipv6);
26147 
26148     nsresult (*GetName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *name);
26149 
26150     nsresult (*GetProto)(INATNetworkPortForwardEvent *pThis, PRUint32 *proto);
26151 
26152     nsresult (*GetHostIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *hostIp);
26153 
26154     nsresult (*GetHostPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *hostPort);
26155 
26156     nsresult (*GetGuestIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *guestIp);
26157 
26158     nsresult (*GetGuestPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *guestPort);
26159 
26160 };
26161 #    define INATNetworkPortForwardEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26162 #    define INATNetworkPortForwardEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26163 #    define INATNetworkPortForwardEvent_Release(p) ((p)->lpVtbl->Release(p))
26164 #    define INATNetworkPortForwardEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26165 #    define INATNetworkPortForwardEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26166 #    define INATNetworkPortForwardEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26167 #    define INATNetworkPortForwardEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26168 #    define INATNetworkPortForwardEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26169 #    define INATNetworkPortForwardEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26170 #    define INATNetworkPortForwardEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26171 #    define INATNetworkPortForwardEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26172 #    define INATNetworkPortForwardEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
26173 #    define INATNetworkPortForwardEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
26174 #    define INATNetworkPortForwardEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26175 #    define INATNetworkPortForwardEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26176 #    define INATNetworkPortForwardEvent_get_Create(p, aCreate) ((p)->lpVtbl->GetCreate(p, aCreate))
26177 #    define INATNetworkPortForwardEvent_GetCreate(p, aCreate) ((p)->lpVtbl->GetCreate(p, aCreate))
26178 #    define INATNetworkPortForwardEvent_get_Ipv6(p, aIpv6) ((p)->lpVtbl->GetIpv6(p, aIpv6))
26179 #    define INATNetworkPortForwardEvent_GetIpv6(p, aIpv6) ((p)->lpVtbl->GetIpv6(p, aIpv6))
26180 #    define INATNetworkPortForwardEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
26181 #    define INATNetworkPortForwardEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
26182 #    define INATNetworkPortForwardEvent_get_Proto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
26183 #    define INATNetworkPortForwardEvent_GetProto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
26184 #    define INATNetworkPortForwardEvent_get_HostIp(p, aHostIp) ((p)->lpVtbl->GetHostIp(p, aHostIp))
26185 #    define INATNetworkPortForwardEvent_GetHostIp(p, aHostIp) ((p)->lpVtbl->GetHostIp(p, aHostIp))
26186 #    define INATNetworkPortForwardEvent_get_HostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
26187 #    define INATNetworkPortForwardEvent_GetHostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
26188 #    define INATNetworkPortForwardEvent_get_GuestIp(p, aGuestIp) ((p)->lpVtbl->GetGuestIp(p, aGuestIp))
26189 #    define INATNetworkPortForwardEvent_GetGuestIp(p, aGuestIp) ((p)->lpVtbl->GetGuestIp(p, aGuestIp))
26190 #    define INATNetworkPortForwardEvent_get_GuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
26191 #    define INATNetworkPortForwardEvent_GetGuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
26192 #   endif /* VBOX_WITH_GLUE */
26193 
26194 interface INATNetworkPortForwardEvent
26195 {
26196 #   ifndef VBOX_WITH_GLUE
26197     struct INATNetworkPortForwardEvent_vtbl *vtbl;
26198 #   else /* VBOX_WITH_GLUE */
26199     CONST_VTBL struct INATNetworkPortForwardEventVtbl *lpVtbl;
26200 #   endif /* VBOX_WITH_GLUE */
26201 };
26202 /* End of struct INATNetworkPortForwardEvent declaration */
26203 
26204 
26205 /* Start of struct IHostNameResolutionConfigurationChangeEvent declaration */
26206 #   define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID_STR "f9b9e1cf-cb63-47a1-84fb-02c4894b89a9"
26207 #   define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID { \
26208     0xf9b9e1cf, 0xcb63, 0x47a1, \
26209     { 0x84, 0xfb, 0x02, 0xc4, 0x89, 0x4b, 0x89, 0xa9 } \
26210 }
26211 /* COM compatibility */
26212 VBOX_EXTERN_CONST(nsIID, IID_IHostNameResolutionConfigurationChangeEvent);
26213 #   ifndef VBOX_WITH_GLUE
26214 struct IHostNameResolutionConfigurationChangeEvent_vtbl
26215 {
26216     struct IEvent_vtbl ievent;
26217 
26218     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26219 
26220 };
26221 #   else /* VBOX_WITH_GLUE */
26222 struct IHostNameResolutionConfigurationChangeEventVtbl
26223 {
26224     nsresult (*QueryInterface)(IHostNameResolutionConfigurationChangeEvent *pThis, const nsID *iid, void **resultp);
26225     nsrefcnt (*AddRef)(IHostNameResolutionConfigurationChangeEvent *pThis);
26226     nsrefcnt (*Release)(IHostNameResolutionConfigurationChangeEvent *pThis);
26227     nsresult (*GetType)(IHostNameResolutionConfigurationChangeEvent *pThis, PRUint32 *type);
26228 
26229     nsresult (*GetSource)(IHostNameResolutionConfigurationChangeEvent *pThis, IEventSource * *source);
26230 
26231     nsresult (*GetWaitable)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *waitable);
26232 
26233     nsresult (*SetProcessed)(IHostNameResolutionConfigurationChangeEvent *pThis );
26234 
26235     nsresult (*WaitProcessed)(
26236         IHostNameResolutionConfigurationChangeEvent *pThis,
26237         PRInt32 timeout,
26238         PRBool * result
26239     );
26240 
26241     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26242 
26243 };
26244 #    define IHostNameResolutionConfigurationChangeEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26245 #    define IHostNameResolutionConfigurationChangeEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26246 #    define IHostNameResolutionConfigurationChangeEvent_Release(p) ((p)->lpVtbl->Release(p))
26247 #    define IHostNameResolutionConfigurationChangeEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26248 #    define IHostNameResolutionConfigurationChangeEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26249 #    define IHostNameResolutionConfigurationChangeEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26250 #    define IHostNameResolutionConfigurationChangeEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26251 #    define IHostNameResolutionConfigurationChangeEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26252 #    define IHostNameResolutionConfigurationChangeEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26253 #    define IHostNameResolutionConfigurationChangeEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26254 #    define IHostNameResolutionConfigurationChangeEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26255 #    define IHostNameResolutionConfigurationChangeEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26256 #    define IHostNameResolutionConfigurationChangeEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26257 #   endif /* VBOX_WITH_GLUE */
26258 
26259 interface IHostNameResolutionConfigurationChangeEvent
26260 {
26261 #   ifndef VBOX_WITH_GLUE
26262     struct IHostNameResolutionConfigurationChangeEvent_vtbl *vtbl;
26263 #   else /* VBOX_WITH_GLUE */
26264     CONST_VTBL struct IHostNameResolutionConfigurationChangeEventVtbl *lpVtbl;
26265 #   endif /* VBOX_WITH_GLUE */
26266 };
26267 /* End of struct IHostNameResolutionConfigurationChangeEvent declaration */
26268 
26269 
26270 /* Start of struct IProgressEvent declaration */
26271 #   define IPROGRESSEVENT_IID_STR "daaf9016-1f04-4191-aa2f-1fac9646ae4c"
26272 #   define IPROGRESSEVENT_IID { \
26273     0xdaaf9016, 0x1f04, 0x4191, \
26274     { 0xaa, 0x2f, 0x1f, 0xac, 0x96, 0x46, 0xae, 0x4c } \
26275 }
26276 /* COM compatibility */
26277 VBOX_EXTERN_CONST(nsIID, IID_IProgressEvent);
26278 #   ifndef VBOX_WITH_GLUE
26279 struct IProgressEvent_vtbl
26280 {
26281     struct IEvent_vtbl ievent;
26282 
26283     nsresult (*GetProgressId)(IProgressEvent *pThis, PRUnichar * *progressId);
26284 
26285 };
26286 #   else /* VBOX_WITH_GLUE */
26287 struct IProgressEventVtbl
26288 {
26289     nsresult (*QueryInterface)(IProgressEvent *pThis, const nsID *iid, void **resultp);
26290     nsrefcnt (*AddRef)(IProgressEvent *pThis);
26291     nsrefcnt (*Release)(IProgressEvent *pThis);
26292     nsresult (*GetType)(IProgressEvent *pThis, PRUint32 *type);
26293 
26294     nsresult (*GetSource)(IProgressEvent *pThis, IEventSource * *source);
26295 
26296     nsresult (*GetWaitable)(IProgressEvent *pThis, PRBool *waitable);
26297 
26298     nsresult (*SetProcessed)(IProgressEvent *pThis );
26299 
26300     nsresult (*WaitProcessed)(
26301         IProgressEvent *pThis,
26302         PRInt32 timeout,
26303         PRBool * result
26304     );
26305 
26306     nsresult (*GetProgressId)(IProgressEvent *pThis, PRUnichar * *progressId);
26307 
26308 };
26309 #    define IProgressEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26310 #    define IProgressEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26311 #    define IProgressEvent_Release(p) ((p)->lpVtbl->Release(p))
26312 #    define IProgressEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26313 #    define IProgressEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26314 #    define IProgressEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26315 #    define IProgressEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26316 #    define IProgressEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26317 #    define IProgressEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26318 #    define IProgressEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26319 #    define IProgressEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26320 #    define IProgressEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
26321 #    define IProgressEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
26322 #   endif /* VBOX_WITH_GLUE */
26323 
26324 interface IProgressEvent
26325 {
26326 #   ifndef VBOX_WITH_GLUE
26327     struct IProgressEvent_vtbl *vtbl;
26328 #   else /* VBOX_WITH_GLUE */
26329     CONST_VTBL struct IProgressEventVtbl *lpVtbl;
26330 #   endif /* VBOX_WITH_GLUE */
26331 };
26332 /* End of struct IProgressEvent declaration */
26333 
26334 
26335 /* Start of struct IProgressPercentageChangedEvent declaration */
26336 #   define IPROGRESSPERCENTAGECHANGEDEVENT_IID_STR "f05d7e60-1bcf-4218-9807-04e036cc70f1"
26337 #   define IPROGRESSPERCENTAGECHANGEDEVENT_IID { \
26338     0xf05d7e60, 0x1bcf, 0x4218, \
26339     { 0x98, 0x07, 0x04, 0xe0, 0x36, 0xcc, 0x70, 0xf1 } \
26340 }
26341 /* COM compatibility */
26342 VBOX_EXTERN_CONST(nsIID, IID_IProgressPercentageChangedEvent);
26343 #   ifndef VBOX_WITH_GLUE
26344 struct IProgressPercentageChangedEvent_vtbl
26345 {
26346     struct IProgressEvent_vtbl iprogressevent;
26347 
26348     nsresult (*GetPercent)(IProgressPercentageChangedEvent *pThis, PRInt32 *percent);
26349 
26350 };
26351 #   else /* VBOX_WITH_GLUE */
26352 struct IProgressPercentageChangedEventVtbl
26353 {
26354     nsresult (*QueryInterface)(IProgressPercentageChangedEvent *pThis, const nsID *iid, void **resultp);
26355     nsrefcnt (*AddRef)(IProgressPercentageChangedEvent *pThis);
26356     nsrefcnt (*Release)(IProgressPercentageChangedEvent *pThis);
26357     nsresult (*GetType)(IProgressPercentageChangedEvent *pThis, PRUint32 *type);
26358 
26359     nsresult (*GetSource)(IProgressPercentageChangedEvent *pThis, IEventSource * *source);
26360 
26361     nsresult (*GetWaitable)(IProgressPercentageChangedEvent *pThis, PRBool *waitable);
26362 
26363     nsresult (*SetProcessed)(IProgressPercentageChangedEvent *pThis );
26364 
26365     nsresult (*WaitProcessed)(
26366         IProgressPercentageChangedEvent *pThis,
26367         PRInt32 timeout,
26368         PRBool * result
26369     );
26370 
26371     nsresult (*GetProgressId)(IProgressPercentageChangedEvent *pThis, PRUnichar * *progressId);
26372 
26373     nsresult (*GetPercent)(IProgressPercentageChangedEvent *pThis, PRInt32 *percent);
26374 
26375 };
26376 #    define IProgressPercentageChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26377 #    define IProgressPercentageChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26378 #    define IProgressPercentageChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26379 #    define IProgressPercentageChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26380 #    define IProgressPercentageChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26381 #    define IProgressPercentageChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26382 #    define IProgressPercentageChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26383 #    define IProgressPercentageChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26384 #    define IProgressPercentageChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26385 #    define IProgressPercentageChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26386 #    define IProgressPercentageChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26387 #    define IProgressPercentageChangedEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
26388 #    define IProgressPercentageChangedEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
26389 #    define IProgressPercentageChangedEvent_get_Percent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
26390 #    define IProgressPercentageChangedEvent_GetPercent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
26391 #   endif /* VBOX_WITH_GLUE */
26392 
26393 interface IProgressPercentageChangedEvent
26394 {
26395 #   ifndef VBOX_WITH_GLUE
26396     struct IProgressPercentageChangedEvent_vtbl *vtbl;
26397 #   else /* VBOX_WITH_GLUE */
26398     CONST_VTBL struct IProgressPercentageChangedEventVtbl *lpVtbl;
26399 #   endif /* VBOX_WITH_GLUE */
26400 };
26401 /* End of struct IProgressPercentageChangedEvent declaration */
26402 
26403 
26404 /* Start of struct IProgressTaskCompletedEvent declaration */
26405 #   define IPROGRESSTASKCOMPLETEDEVENT_IID_STR "a5bbdb7d-8ce7-469f-a4c2-6476f581ff72"
26406 #   define IPROGRESSTASKCOMPLETEDEVENT_IID { \
26407     0xa5bbdb7d, 0x8ce7, 0x469f, \
26408     { 0xa4, 0xc2, 0x64, 0x76, 0xf5, 0x81, 0xff, 0x72 } \
26409 }
26410 /* COM compatibility */
26411 VBOX_EXTERN_CONST(nsIID, IID_IProgressTaskCompletedEvent);
26412 #   ifndef VBOX_WITH_GLUE
26413 struct IProgressTaskCompletedEvent_vtbl
26414 {
26415     struct IProgressEvent_vtbl iprogressevent;
26416 
26417     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IProgressTaskCompletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26418 
26419 };
26420 #   else /* VBOX_WITH_GLUE */
26421 struct IProgressTaskCompletedEventVtbl
26422 {
26423     nsresult (*QueryInterface)(IProgressTaskCompletedEvent *pThis, const nsID *iid, void **resultp);
26424     nsrefcnt (*AddRef)(IProgressTaskCompletedEvent *pThis);
26425     nsrefcnt (*Release)(IProgressTaskCompletedEvent *pThis);
26426     nsresult (*GetType)(IProgressTaskCompletedEvent *pThis, PRUint32 *type);
26427 
26428     nsresult (*GetSource)(IProgressTaskCompletedEvent *pThis, IEventSource * *source);
26429 
26430     nsresult (*GetWaitable)(IProgressTaskCompletedEvent *pThis, PRBool *waitable);
26431 
26432     nsresult (*SetProcessed)(IProgressTaskCompletedEvent *pThis );
26433 
26434     nsresult (*WaitProcessed)(
26435         IProgressTaskCompletedEvent *pThis,
26436         PRInt32 timeout,
26437         PRBool * result
26438     );
26439 
26440     nsresult (*GetProgressId)(IProgressTaskCompletedEvent *pThis, PRUnichar * *progressId);
26441 
26442     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IProgressTaskCompletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
26443 
26444 };
26445 #    define IProgressTaskCompletedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26446 #    define IProgressTaskCompletedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26447 #    define IProgressTaskCompletedEvent_Release(p) ((p)->lpVtbl->Release(p))
26448 #    define IProgressTaskCompletedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26449 #    define IProgressTaskCompletedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26450 #    define IProgressTaskCompletedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26451 #    define IProgressTaskCompletedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26452 #    define IProgressTaskCompletedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26453 #    define IProgressTaskCompletedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26454 #    define IProgressTaskCompletedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26455 #    define IProgressTaskCompletedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26456 #    define IProgressTaskCompletedEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
26457 #    define IProgressTaskCompletedEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
26458 #    define IProgressTaskCompletedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26459 #    define IProgressTaskCompletedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
26460 #   endif /* VBOX_WITH_GLUE */
26461 
26462 interface IProgressTaskCompletedEvent
26463 {
26464 #   ifndef VBOX_WITH_GLUE
26465     struct IProgressTaskCompletedEvent_vtbl *vtbl;
26466 #   else /* VBOX_WITH_GLUE */
26467     CONST_VTBL struct IProgressTaskCompletedEventVtbl *lpVtbl;
26468 #   endif /* VBOX_WITH_GLUE */
26469 };
26470 /* End of struct IProgressTaskCompletedEvent declaration */
26471 
26472 
26473 
26474 #   define NS_VIRTUALBOX_CID { \
26475     0xB1A7A4F2, 0x47B9, 0x4A1E, \
26476     { 0x82, 0xB2, 0x07, 0xCC, 0xD5, 0x32, 0x3C, 0x3F } \
26477 }
26478 #   define NS_VIRTUALBOX_CONTRACTID "@virtualbox.org/VirtualBox;1"
26479 /* COM compatibility */
26480 VBOX_EXTERN_CONST(nsCID, CLSID_VirtualBox);
26481 
26482 
26483 
26484 #   define NS_VIRTUALBOXCLIENT_CID { \
26485     0xdd3fc71d, 0x26c0, 0x4fe1, \
26486     { 0xbf, 0x6f, 0x67, 0xf6, 0x33, 0x26, 0x5b, 0xba } \
26487 }
26488 #   define NS_VIRTUALBOXCLIENT_CONTRACTID "@virtualbox.org/VirtualBoxClient;1"
26489 /* COM compatibility */
26490 VBOX_EXTERN_CONST(nsCID, CLSID_VirtualBoxClient);
26491 
26492 
26493 
26494 #   define NS_SESSION_CID { \
26495     0x3C02F46D, 0xC9D2, 0x4F11, \
26496     { 0xA3, 0x84, 0x53, 0xF0, 0xCF, 0x91, 0x72, 0x14 } \
26497 }
26498 #   define NS_SESSION_CONTRACTID "@virtualbox.org/Session;1"
26499 /* COM compatibility */
26500 VBOX_EXTERN_CONST(nsCID, CLSID_Session);
26501 
26502 
26503 
26504 
26505 #  endif /* __cplusplus */
26506 
26507 # endif /* !WIN32 */
26508 
26509 # ifdef __cplusplus
26510 extern "C"
26511 {
26512 # endif /* __cplusplus */
26513 
26514 
26515 /**
26516  * Function table for dynamic linking.
26517  * Use VBoxGetCAPIFunctions() to obtain the pointer to it.
26518  */
26519 typedef struct VBOXCAPI
26520 {
26521     /** The size of the structure. */
26522     unsigned cb;
26523     /** The structure version. */
26524     unsigned uVersion;
26525 
26526     /** Gets the VirtualBox version, major * 1000000 + minor * 1000 + patch. */
26527     unsigned int (*pfnGetVersion)(void);
26528 
26529     /** Gets the VirtualBox API version, major * 1000 + minor, e.g. 4003. */
26530     unsigned int (*pfnGetAPIVersion)(void);
26531 
26532     /**
26533      * New and preferred way to initialize the C bindings for an API client.
26534      *
26535      * This way is much more flexible, as it can easily handle multiple
26536      * sessions (important with more complicated API clients, including
26537      * multithreaded ones), and even VBoxSVC crashes can be detected and
26538      * processed appropriately by listening for events from the associated
26539      * event source in VirtualBoxClient. It is completely up to the client
26540      * to decide what to do (terminate or continue after getting new
26541      * object references to server-side objects). Must be called in the
26542      * primary thread of the client, later API use can be done in any
26543      * thread.
26544      *
26545      * Note that the returned reference is owned by the caller, and thus it's
26546      * the caller's responsibility to handle the reference count appropriately.
26547      *
26548      * @param pszVirtualBoxClientIID    pass IVIRTUALBOXCLIENT_IID_STR
26549      * @param ppVirtualBoxClient        output parameter for VirtualBoxClient
26550      *              reference, handled as usual with COM/XPCOM.
26551      * @returns COM/XPCOM error code
26552      */
26553     HRESULT (*pfnClientInitialize)(const char *pszVirtualBoxClientIID,
26554                                    IVirtualBoxClient **ppVirtualBoxClient);
26555     /**
26556      * Initialize the use of the C bindings in a non-primary thread.
26557      *
26558      * Must be called on any newly created thread which wants to use the
26559      * VirtualBox API.
26560      *
26561      * @returns COM/XPCOM error code
26562      */
26563     HRESULT (*pfnClientThreadInitialize)(void);
26564     /**
26565      * Uninitialize the use of the C bindings in a non-primary thread.
26566      *
26567      * Should be called before terminating the thread which initialized the
26568      * C bindings using pfnClientThreadInitialize.
26569      *
26570      * @returns COM/XPCOM error code
26571      */
26572     HRESULT (*pfnClientThreadUninitialize)(void);
26573     /**
26574      * Uninitialize the C bindings for an API client.
26575      *
26576      * Should be called when the API client is about to terminate and does
26577      * not want to use the C bindings any more. It will invalidate all
26578      * object references. It is possible, however, to change one's mind,
26579      * and call pfnClientInitialize again to continue using the API, as long
26580      * as none of the object references from before the re-initialization
26581      * are used. Must be called from the primary thread of the client.
26582      */
26583     void (*pfnClientUninitialize)(void);
26584 
26585     /**
26586      * Deprecated way to initialize the C bindings and getting important
26587      * object references. Kept for backwards compatibility.
26588      *
26589      * If any returned reference is NULL then the initialization failed.
26590      * Note that the returned references are owned by the C bindings. The
26591      * number of calls to Release in the client code must match the number
26592      * of calls to AddRef, and additionally at no point in time there can
26593      * be more Release calls than AddRef calls.
26594      *
26595      * @param pszVirtualBoxIID      pass IVIRTUALBOX_IID_STR
26596      * @param ppVirtualBox          output parameter for VirtualBox reference,
26597      *          owned by C bindings
26598      * @param pszSessionIID         pass ISESSION_IID_STR
26599      * @param ppSession             output parameter for Session reference,
26600      *          owned by C bindings
26601      */
26602     void (*pfnComInitialize)(const char *pszVirtualBoxIID,
26603                              IVirtualBox **ppVirtualBox,
26604                              const char *pszSessionIID,
26605                              ISession **ppSession);
26606     /**
26607      * Deprecated way to uninitialize the C bindings for an API client.
26608      * Kept for backwards compatibility and must be used if the C bindings
26609      * were initialized using pfnComInitialize. */
26610     void (*pfnComUninitialize)(void);
26611 
26612     /**
26613      * Free string managed by COM/XPCOM.
26614      *
26615      * @param pwsz          pointer to string to be freed
26616      */
26617     void (*pfnComUnallocString)(BSTR pwsz);
26618 # ifndef WIN32
26619     /** Legacy function, was always for freeing strings only. */
26620 #  define pfnComUnallocMem(pv) pfnComUnallocString((BSTR)(pv))
26621 # endif /* !WIN32 */
26622 
26623     /**
26624      * Convert string from UTF-16 encoding to UTF-8 encoding.
26625      *
26626      * @param pwszString    input string
26627      * @param ppszString    output string
26628      * @returns IPRT status code
26629      */
26630     int (*pfnUtf16ToUtf8)(CBSTR pwszString, char **ppszString);
26631     /**
26632      * Convert string from UTF-8 encoding to UTF-16 encoding.
26633      *
26634      * @param pszString     input string
26635      * @param ppwszString   output string
26636      * @returns IPRT status code
26637      */
26638     int (*pfnUtf8ToUtf16)(const char *pszString, BSTR *ppwszString);
26639     /**
26640      * Free memory returned by pfnUtf16ToUtf8. Do not use for anything else.
26641      *
26642      * @param pszString     string to be freed.
26643      */
26644     void (*pfnUtf8Free)(char *pszString);
26645     /**
26646      * Free memory returned by pfnUtf8ToUtf16. Do not use for anything else.
26647      *
26648      * @param pwszString    string to be freed.
26649      */
26650     void (*pfnUtf16Free)(BSTR pwszString);
26651 
26652     /**
26653      * Create a safearray (used for passing arrays to COM/XPCOM)
26654      *
26655      * Must be freed by pfnSafeArrayDestroy.
26656      *
26657      * @param vt            variant type, defines the size of the elements
26658      * @param lLbound       lower bound of the index, should be 0
26659      * @param cElements     number of elements
26660      * @returns pointer to safearray
26661      */
26662     SAFEARRAY *(*pfnSafeArrayCreateVector)(VARTYPE vt, LONG lLbound, ULONG cElements);
26663     /**
26664      * Pre-allocate a safearray to be used by an out safearray parameter
26665      *
26666      * Must be freed by pfnSafeArrayDestroy.
26667      *
26668      * @returns pointer to safearray (system dependent, may be NULL if
26669      *    there is no need to pre-allocate a safearray)
26670      */
26671     SAFEARRAY *(*pfnSafeArrayOutParamAlloc)(void);
26672     /**
26673      * Copy a C array into a safearray (for passing as an input parameter)
26674      *
26675      * @param psa           pointer to already created safearray.
26676      * @param pv            pointer to memory block to copy into safearray.
26677      * @param cb            number of bytes to copy.
26678      * @returns COM/XPCOM error code
26679      */
26680     HRESULT (*pfnSafeArrayCopyInParamHelper)(SAFEARRAY *psa, const void *pv, ULONG cb);
26681     /**
26682      * Copy a safearray into a C array (for getting an output parameter)
26683      *
26684      * @param ppv           output pointer to newly created array, which has to
26685      *          be freed with pfnArrayOutFree.
26686      * @param pcb           number of bytes in the output buffer.
26687      * @param vt            variant type, defines the size of the elements
26688      * @param psa           pointer to safearray for getting the data
26689      * @returns COM/XPCOM error code
26690      */
26691     HRESULT (*pfnSafeArrayCopyOutParamHelper)(void **ppv, ULONG *pcb, VARTYPE vt, SAFEARRAY *psa);
26692     /**
26693      * Copy a safearray into a C array (special variant for interface pointers)
26694      *
26695      * @param ppaObj        output pointer to newly created array, which has
26696      *          to be freed with pfnArrayOutFree. Note that it's the caller's
26697      *          responsibility to call Release() on each non-NULL interface
26698      *          pointer before freeing.
26699      * @param pcObj         number of pointers in the output buffer.
26700      * @param psa           pointer to safearray for getting the data
26701      * @returns COM/XPCOM error code
26702      */
26703     HRESULT (*pfnSafeArrayCopyOutIfaceParamHelper)(IUnknown ***ppaObj, ULONG *pcObj, SAFEARRAY *psa);
26704     /**
26705      * Free a safearray
26706      *
26707      * @param psa           pointer to safearray
26708      * @returns COM/XPCOM error code
26709      */
26710     HRESULT (*pfnSafeArrayDestroy)(SAFEARRAY *psa);
26711     /**
26712      * Free an out array created by pfnSafeArrayCopyOutParamHelper or
26713      * pdnSafeArrayCopyOutIfaceParamHelper.
26714      *
26715      * @param psa           pointer to memory block
26716      * @returns COM/XPCOM error code
26717      */
26718     HRESULT (*pfnArrayOutFree)(void *pv);
26719 
26720 # ifndef WIN32
26721     /**
26722      * Get XPCOM event queue. Deprecated!
26723      *
26724      * @param ppEventQueue      output parameter for nsIEventQueue reference,
26725      *              owned by C bindings.
26726      */
26727     void (*pfnGetEventQueue)(nsIEventQueue **ppEventQueue);
26728 # endif /* !WIN32 */
26729 
26730     /**
26731      * Get current COM/XPCOM exception.
26732      *
26733      * @param ppException       output parameter for exception info reference,
26734      *              may be @c NULL if no exception object has been created by
26735      *              a previous COM/XPCOM call.
26736      * @returns COM/XPCOM error code
26737      */
26738     HRESULT (*pfnGetException)(IErrorInfo **ppException);
26739     /**
26740      * Clears current COM/XPCOM exception.
26741      *
26742      * @returns COM/XPCOM error code
26743      */
26744     HRESULT (*pfnClearException)(void);
26745 
26746     /**
26747      * Process the event queue for a given amount of time.
26748      *
26749      * Must be called on the primary thread. Typical timeouts are from 200 to
26750      * 5000 msecs, to allow for checking a volatile variable if the event queue
26751      * processing should be terminated (,
26752      * or 0 if only the pending events should be processed, without waiting.
26753      *
26754      * @param iTimeoutMS        how long to process the event queue, -1 means
26755      *              infinitely long
26756      * @returns status code
26757      * @retval 0 if at least one event has been processed
26758      * @retval 1 if any signal interrupted the native system call (or returned
26759      *      otherwise)
26760      * @retval 2 if the event queue was explicitly interrupted
26761      * @retval 3 if the timeout expired
26762      * @retval 4 if the function was called from the wrong thread
26763      * @retval 5 for all other (unexpected) errors
26764      */
26765     int (*pfnProcessEventQueue)(LONG64 iTimeoutMS);
26766     /**
26767      * Interrupt event queue processing.
26768      *
26769      * Can be called on any thread. Note that this function is not async-signal
26770      * safe, so never use it in such a context, instead use a volatile global
26771      * variable and a sensible timeout.
26772      * @returns 0 if successful, 1 otherwise.
26773      */
26774     int (*pfnInterruptEventQueueProcessing)(void);
26775 
26776     /**
26777      * Clear memory used by a UTF-8 string. Must be zero terminated.
26778      * Can be used for any UTF-8 or ASCII/ANSI string.
26779      *
26780      * @param pszString     input/output string
26781      */
26782     void (*pfnUtf8Clear)(char *pszString);
26783     /**
26784      * Clear memory used by a UTF-16 string. Must be zero terminated.
26785      * Can be used for any UTF-16 or UCS-2 string.
26786      *
26787      * @param pwszString    input/output string
26788      */
26789      void (*pfnUtf16Clear)(BSTR pwszString);
26790 
26791     /** Tail version, same as uVersion.
26792      *
26793      * This should only be accessed if for some reason an API client needs
26794      * exactly the version it requested, or if cb is used to calculate the
26795      * address of this field. It may move as the structure before this is
26796      * allowed to grow as long as all the data from earlier minor versions
26797      * remains at the same place.
26798      */
26799     unsigned uEndVersion;
26800 } VBOXCAPI;
26801 /** Pointer to a const VBOXCAPI function table. */
26802 typedef VBOXCAPI const *PCVBOXCAPI;
26803 # ifndef WIN32
26804 /** Backwards compatibility: Pointer to a const VBOXCAPI function table.
26805  * Use PCVBOXCAPI instead. */
26806 typedef VBOXCAPI const *PCVBOXXPCOM;
26807 # endif /* !WIN32 */
26808 
26809 # ifndef WIN32
26810 /** Backwards compatibility: make sure old code using VBOXXPCOMC still compiles.
26811  * Use VBOXCAPI instead. */
26812 #  define VBOXXPCOMC VBOXCAPI
26813 # endif /* !WIN32 */
26814 
26815 /** Extract the C API style major version.
26816  * Useful for comparing the interface version in VBOXCAPI::uVersion. */
26817 # define VBOX_CAPI_MAJOR(x) (((x) & 0xffff0000U) >> 16)
26818 
26819 /** Extract the C API style major version.
26820  * Useful for comparing the interface version in VBOXCAPI::uVersion. */
26821 # define VBOX_CAPI_MINOR(x) ((x) & 0x0000ffffU)
26822 
26823 /** The current interface version.
26824  * For use with VBoxGetCAPIFunctions and to be found in VBOXCAPI::uVersion. */
26825 # define VBOX_CAPI_VERSION 0x00040001U
26826 
26827 # ifndef WIN32
26828 /** Backwards compatibility: The current interface version.
26829  * Use VBOX_CAPI_VERSION instead. */
26830 #  define VBOX_XPCOMC_VERSION VBOX_CAPI_VERSION
26831 # endif /* !WIN32 */
26832 
26833 /** VBoxGetCAPIFunctions. */
26834 VBOXCAPI_DECL(PCVBOXCAPI) VBoxGetCAPIFunctions(unsigned uVersion);
26835 # ifndef WIN32
26836 /** Backwards compatibility: VBoxGetXPCOMCFunctions.
26837  * Use VBoxGetCAPIFunctions instead. */
26838 VBOXCAPI_DECL(PCVBOXCAPI) VBoxGetXPCOMCFunctions(unsigned uVersion);
26839 # endif /* !WIN32 */
26840 
26841 /** Typedef for VBoxGetCAPIFunctions. */
26842 typedef PCVBOXCAPI (*PFNVBOXGETCAPIFUNCTIONS)(unsigned uVersion);
26843 # ifndef WIN32
26844 /** Backwards compatibility: Typedef for VBoxGetXPCOMCFunctions.
26845  * Use PFNVBOXGETCAPIFUNCTIONS instead. */
26846 typedef PCVBOXCAPI (*PFNVBOXGETXPCOMCFUNCTIONS)(unsigned uVersion);
26847 # endif /* !WIN32 */
26848 
26849 /** The symbol name of VBoxGetCAPIFunctions. */
26850 # ifdef __OS2__
26851 #  define VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME "_VBoxGetCAPIFunctions"
26852 # else /* !__OS2__ */
26853 #  define VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME "VBoxGetCAPIFunctions"
26854 # endif /* !__OS2__ */
26855 # ifndef WIN32
26856 /** Backwards compatibility: The symbol name of VBoxGetXPCOMCFunctions.
26857  * Use VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME instead. */
26858 #  ifdef __OS2__
26859 #   define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "_VBoxGetXPCOMCFunctions"
26860 #  else /* !__OS2__ */
26861 #   define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "VBoxGetXPCOMCFunctions"
26862 #  endif /* !__OS2__ */
26863 # endif /* !WIN32 */
26864 
26865 
26866 # ifdef __cplusplus
26867 }
26868 # endif /* __cplusplus */
26869 
26870 #endif /* !___VirtualBox_CAPI_h */
26871