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-2020 Oracle Corporation
29  *
30  * This file is part of a free software library; you can redistribute
31  * it and/or modify it under the terms of the GNU Lesser General
32  * Public License version 2.1 as published by the Free Software
33  * Foundation and shipped in the "COPYING.LESSER" file with this library.
34  * The library is distributed in the hope that it will be useful,
35  * but WITHOUT ANY WARRANTY of any kind.
36  *
37  * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if
38  * any license choice other than GPL or LGPL is available it will
39  * apply instead, Oracle elects to use only the Lesser General Public
40  * License version 2.1 (LGPLv2) at this time for any software where
41  * a choice of LGPL license versions is made available with the
42  * language indicating that LGPLv2 or any later version may be used,
43  * or where a choice of which version of the LGPL is applied is
44  * otherwise unspecified.
45  */
46 
47 #ifndef ___VirtualBox_CXPCOM_h
48 # define ___VirtualBox_CXPCOM_h
49 
50 # ifdef _WIN32
51 #  pragma warning(push)
52 #  pragma warning(disable:4668 4255) /* -Wall and windows.h */
53 #  if _MSC_VER >= 1800 /*RT_MSC_VER_VC120*/
54 #   pragma warning(disable:4005) /* sdk/v7.1/include/sal_supp.h(57) : warning C4005: '__useHeader' : macro redefinition */
55 #  endif
56 #  undef COBJMACROS
57 #  define COBJMACROS
58 #  include "Windows.h"
59 #  pragma warning(pop)
60 # endif /* _WIN32 */
61 
62 # ifdef WIN32
63 #  ifdef IN_VBOXCAPI
64 #   define VBOXCAPI_DECL(type) extern __declspec(dllexport) type
65 #  else /* !IN_VBOXCAPI */
66 #   define VBOXCAPI_DECL(type) __declspec(dllimport) type
67 #  endif /* !IN_VBOXCAPI */
68 # endif /* WIN32 */
69 
70 # ifdef __cplusplus
71 /* The C++ treatment in this file is not meant for SDK users, it only exists
72  * so that this file can be used to produce the VBoxCAPI shared library which
73  * has to use C++ as it does all the conversion magic. */
74 #  ifdef IN_VBOXCAPI
75 #   include "VBox/com/VirtualBox.h"
76 #   ifndef WIN32
77 #    include "nsIEventQueue.h"
78 #   endif /* !WIN32 */
79 #  else /* !IN_VBOXCAPI */
80 #   error Do not include this header file from C++ code
81 #  endif /* !IN_VBOXCAPI */
82 # endif /* __cplusplus */
83 
84 # ifdef __GNUC__
85 #  define VBOX_EXTERN_CONST(type, name) extern const type name __attribute__((nocommon))
86 # else /* !__GNUC__ */
87 #  define VBOX_EXTERN_CONST(type, name) extern const type name
88 # endif /* !__GNUC__ */
89 
90 /* Treat WIN32 completely separately, as on Windows VirtualBox uses COM, not
91  * XPCOM like on all other platforms. While the code below would also compile
92  * on Windows, we need to switch to the native C support provided by the header
93  * files produced by the COM IDL compiler. */
94 # ifdef WIN32
95 #  include "ObjBase.h"
96 #  include "oaidl.h"
97 #  include "VirtualBox.h"
98 
99 #  ifndef __cplusplus
100 /* Skip this in the C++ case as there's already a definition for CBSTR. */
101 typedef const BSTR CBSTR;
102 #  endif /* !__cplusplus */
103 
104 #  define VBOX_WINAPI WINAPI
105 
106 #  define ComSafeArrayAsInParam(f) (f)
107 #  define ComSafeArrayAsOutParam(f) (&(f))
108 #  define ComSafeArrayAsOutTypeParam(f,t) (&(f))
109 #  define ComSafeArrayAsOutIfaceParam(f,t) (&(f))
110 
111 # else /* !WIN32 */
112 
113 #  include <stddef.h>
114 #  include "wchar.h"
115 
116 #  ifdef IN_VBOXCAPI
117 #   define VBOXCAPI_DECL(type) PR_EXPORT(type)
118 #  else /* !IN_VBOXCAPI */
119 #   define VBOXCAPI_DECL(type) PR_IMPORT(type)
120 #  endif /* !IN_VBOXCAPI */
121 
122 #  ifndef __cplusplus
123 
124 #   if defined(WIN32)
125 
126 #    define PR_EXPORT(__type) extern __declspec(dllexport) __type
127 #    define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
128 #    define PR_IMPORT(__type) __declspec(dllimport) __type
129 #    define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
130 
131 #    define PR_EXTERN(__type) extern __declspec(dllexport) __type
132 #    define PR_IMPLEMENT(__type) __declspec(dllexport) __type
133 #    define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
134 #    define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
135 
136 #    define PR_CALLBACK
137 #    define PR_CALLBACK_DECL
138 #    define PR_STATIC_CALLBACK(__x) static __x
139 
140 #   elif defined(XP_BEOS)
141 
142 #    define PR_EXPORT(__type) extern __declspec(dllexport) __type
143 #    define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
144 #    define PR_IMPORT(__type) extern __declspec(dllexport) __type
145 #    define PR_IMPORT_DATA(__type) extern __declspec(dllexport) __type
146 
147 #    define PR_EXTERN(__type) extern __declspec(dllexport) __type
148 #    define PR_IMPLEMENT(__type) __declspec(dllexport) __type
149 #    define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
150 #    define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
151 
152 #    define PR_CALLBACK
153 #    define PR_CALLBACK_DECL
154 #    define PR_STATIC_CALLBACK(__x) static __x
155 
156 #   elif defined(WIN16)
157 
158 #    define PR_CALLBACK_DECL        __cdecl
159 
160 #    if defined(_WINDLL)
161 #     define PR_EXPORT(__type) extern __type _cdecl _export _loadds
162 #     define PR_IMPORT(__type) extern __type _cdecl _export _loadds
163 #     define PR_EXPORT_DATA(__type) extern __type _export
164 #     define PR_IMPORT_DATA(__type) extern __type _export
165 
166 #     define PR_EXTERN(__type) extern __type _cdecl _export _loadds
167 #     define PR_IMPLEMENT(__type) __type _cdecl _export _loadds
168 #     define PR_EXTERN_DATA(__type) extern __type _export
169 #     define PR_IMPLEMENT_DATA(__type) __type _export
170 
171 #     define PR_CALLBACK             __cdecl __loadds
172 #     define PR_STATIC_CALLBACK(__x) static __x PR_CALLBACK
173 
174 #    else /* this must be .EXE */
175 #     define PR_EXPORT(__type) extern __type _cdecl _export
176 #     define PR_IMPORT(__type) extern __type _cdecl _export
177 #     define PR_EXPORT_DATA(__type) extern __type _export
178 #     define PR_IMPORT_DATA(__type) extern __type _export
179 
180 #     define PR_EXTERN(__type) extern __type _cdecl _export
181 #     define PR_IMPLEMENT(__type) __type _cdecl _export
182 #     define PR_EXTERN_DATA(__type) extern __type _export
183 #     define PR_IMPLEMENT_DATA(__type) __type _export
184 
185 #     define PR_CALLBACK             __cdecl __loadds
186 #     define PR_STATIC_CALLBACK(__x) __x PR_CALLBACK
187 #    endif /* _WINDLL */
188 
189 #   elif defined(XP_MAC)
190 
191 #    define PR_EXPORT(__type) extern __declspec(export) __type
192 #    define PR_EXPORT_DATA(__type) extern __declspec(export) __type
193 #    define PR_IMPORT(__type) extern __declspec(export) __type
194 #    define PR_IMPORT_DATA(__type) extern __declspec(export) __type
195 
196 #    define PR_EXTERN(__type) extern __declspec(export) __type
197 #    define PR_IMPLEMENT(__type) __declspec(export) __type
198 #    define PR_EXTERN_DATA(__type) extern __declspec(export) __type
199 #    define PR_IMPLEMENT_DATA(__type) __declspec(export) __type
200 
201 #    define PR_CALLBACK
202 #    define PR_CALLBACK_DECL
203 #    define PR_STATIC_CALLBACK(__x) static __x
204 
205 #   elif defined(XP_OS2) && defined(__declspec)
206 
207 #    define PR_EXPORT(__type) extern __declspec(dllexport) __type
208 #    define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
209 #    define PR_IMPORT(__type) __declspec(dllimport) __type
210 #    define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
211 
212 #    define PR_EXTERN(__type) extern __declspec(dllexport) __type
213 #    define PR_IMPLEMENT(__type) __declspec(dllexport) __type
214 #    define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
215 #    define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
216 
217 #    define PR_CALLBACK
218 #    define PR_CALLBACK_DECL
219 #    define PR_STATIC_CALLBACK(__x) static __x
220 
221 #   elif defined(XP_OS2_VACPP)
222 
223 #    define PR_EXPORT(__type) extern __type
224 #    define PR_EXPORT_DATA(__type) extern __type
225 #    define PR_IMPORT(__type) extern __type
226 #    define PR_IMPORT_DATA(__type) extern __type
227 
228 #    define PR_EXTERN(__type) extern __type
229 #    define PR_IMPLEMENT(__type) __type
230 #    define PR_EXTERN_DATA(__type) extern __type
231 #    define PR_IMPLEMENT_DATA(__type) __type
232 #    define PR_CALLBACK _Optlink
233 #    define PR_CALLBACK_DECL
234 #    define PR_STATIC_CALLBACK(__x) static __x PR_CALLBACK
235 
236 #   else /* Unix */
237 
238 #    ifdef VBOX_HAVE_VISIBILITY_HIDDEN
239 #     define PR_EXPORT(__type) __attribute__((visibility("default"))) extern __type
240 #     define PR_EXPORT_DATA(__type) __attribute__((visibility("default"))) extern __type
241 #     define PR_IMPORT(__type) extern __type
242 #     define PR_IMPORT_DATA(__type) extern __type
243 #     define PR_EXTERN(__type) __attribute__((visibility("default"))) extern __type
244 #     define PR_IMPLEMENT(__type) __attribute__((visibility("default"))) __type
245 #     define PR_EXTERN_DATA(__type) __attribute__((visibility("default"))) extern __type
246 #     define PR_IMPLEMENT_DATA(__type) __attribute__((visibility("default"))) __type
247 #     define PR_CALLBACK
248 #     define PR_CALLBACK_DECL
249 #     define PR_STATIC_CALLBACK(__x) static __x
250 #    else
251 #     define PR_EXPORT(__type) extern __type
252 #     define PR_EXPORT_DATA(__type) extern __type
253 #     define PR_IMPORT(__type) extern __type
254 #     define PR_IMPORT_DATA(__type) extern __type
255 #     define PR_EXTERN(__type) extern __type
256 #     define PR_IMPLEMENT(__type) __type
257 #     define PR_EXTERN_DATA(__type) extern __type
258 #     define PR_IMPLEMENT_DATA(__type) __type
259 #     define PR_CALLBACK
260 #     define PR_CALLBACK_DECL
261 #     define PR_STATIC_CALLBACK(__x) static __x
262 #    endif
263 #   endif
264 
265 #   if defined(_NSPR_BUILD_)
266 #    define NSPR_API(__type) PR_EXPORT(__type)
267 #    define NSPR_DATA_API(__type) PR_EXPORT_DATA(__type)
268 #   else
269 #    define NSPR_API(__type) PR_IMPORT(__type)
270 #    define NSPR_DATA_API(__type) PR_IMPORT_DATA(__type)
271 #   endif
272 
273 typedef unsigned char PRUint8;
274 #   if (defined(HPUX) && defined(__cplusplus) \
275         && !defined(__GNUC__) && __cplusplus < 199707L) \
276     || (defined(SCO) && defined(__cplusplus) \
277         && !defined(__GNUC__) && __cplusplus == 1L)
278 typedef char PRInt8;
279 #   else
280 typedef signed char PRInt8;
281 #   endif
282 
283 #   define PR_INT8_MAX 127
284 #   define PR_INT8_MIN (-128)
285 #   define PR_UINT8_MAX 255U
286 
287 typedef unsigned short PRUint16;
288 typedef short PRInt16;
289 
290 #   define PR_INT16_MAX 32767
291 #   define PR_INT16_MIN (-32768)
292 #   define PR_UINT16_MAX 65535U
293 
294 typedef unsigned int PRUint32;
295 typedef int PRInt32;
296 #   define PR_INT32(x)  x
297 #   define PR_UINT32(x) x ## U
298 
299 #   define PR_INT32_MAX PR_INT32(2147483647)
300 #   define PR_INT32_MIN (-PR_INT32_MAX - 1)
301 #   define PR_UINT32_MAX PR_UINT32(4294967295)
302 
303 typedef long PRInt64;
304 typedef unsigned long PRUint64;
305 typedef int PRIntn;
306 typedef unsigned int PRUintn;
307 
308 typedef double          PRFloat64;
309 typedef size_t PRSize;
310 
311 typedef ptrdiff_t PRPtrdiff;
312 
313 typedef unsigned long PRUptrdiff;
314 
315 typedef PRIntn PRBool;
316 
317 #   define PR_TRUE 1
318 #   define PR_FALSE 0
319 
320 typedef PRUint8 PRPackedBool;
321 
322 /*
323 ** Status code used by some routines that have a single point of failure or
324 ** special status return.
325 */
326 typedef enum { PR_FAILURE = -1, PR_SUCCESS = 0 } PRStatus;
327 
328 #   ifndef __PRUNICHAR__
329 #    define __PRUNICHAR__
330 #    if defined(WIN32) || defined(XP_MAC)
331 typedef wchar_t PRUnichar;
332 #    else
333 typedef PRUint16 PRUnichar;
334 #    endif
335 typedef PRUnichar *BSTR;
336 typedef const PRUnichar *CBSTR;
337 #   endif
338 
339 typedef long PRWord;
340 typedef unsigned long PRUword;
341 
342 #   define nsnull 0
343 typedef PRUint32 nsresult;
344 
345 #   if defined(__GNUC__) && (__GNUC__ > 2)
346 #    define NS_LIKELY(x)    (__builtin_expect((x), 1))
347 #    define NS_UNLIKELY(x)  (__builtin_expect((x), 0))
348 #   else
349 #    define NS_LIKELY(x)    (x)
350 #    define NS_UNLIKELY(x)  (x)
351 #   endif
352 
353 #   define NS_FAILED(_nsresult) (NS_UNLIKELY((_nsresult) & 0x80000000))
354 #   define NS_SUCCEEDED(_nsresult) (NS_LIKELY(!((_nsresult) & 0x80000000)))
355 
356 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
357 #    define PR_IntervalNow VBoxNsprPR_IntervalNow
358 #    define PR_TicksPerSecond VBoxNsprPR_TicksPerSecond
359 #    define PR_SecondsToInterval VBoxNsprPR_SecondsToInterval
360 #    define PR_MillisecondsToInterval VBoxNsprPR_MillisecondsToInterval
361 #    define PR_MicrosecondsToInterval VBoxNsprPR_MicrosecondsToInterval
362 #    define PR_IntervalToSeconds VBoxNsprPR_IntervalToSeconds
363 #    define PR_IntervalToMilliseconds VBoxNsprPR_IntervalToMilliseconds
364 #    define PR_IntervalToMicroseconds VBoxNsprPR_IntervalToMicroseconds
365 #    define PR_EnterMonitor VBoxNsprPR_EnterMonitor
366 #    define PR_ExitMonitor VBoxNsprPR_ExitMonitor
367 #    define PR_Notify VBoxNsprPR_Notify
368 #    define PR_NotifyAll VBoxNsprPR_NotifyAll
369 #    define PR_Wait VBoxNsprPR_Wait
370 #    define PR_NewMonitor VBoxNsprPR_NewMonitor
371 #    define PR_DestroyMonitor VBoxNsprPR_DestroyMonitor
372 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
373 
374 typedef PRUint32 PRIntervalTime;
375 
376 #   define PR_INTERVAL_MIN 1000UL
377 #   define PR_INTERVAL_MAX 100000UL
378 #   define PR_INTERVAL_NO_WAIT 0UL
379 #   define PR_INTERVAL_NO_TIMEOUT 0xffffffffUL
380 
381 NSPR_API(PRIntervalTime) PR_IntervalNow(void);
382 NSPR_API(PRUint32) PR_TicksPerSecond(void);
383 NSPR_API(PRIntervalTime) PR_SecondsToInterval(PRUint32 seconds);
384 NSPR_API(PRIntervalTime) PR_MillisecondsToInterval(PRUint32 milli);
385 NSPR_API(PRIntervalTime) PR_MicrosecondsToInterval(PRUint32 micro);
386 NSPR_API(PRUint32) PR_IntervalToSeconds(PRIntervalTime ticks);
387 NSPR_API(PRUint32) PR_IntervalToMilliseconds(PRIntervalTime ticks);
388 NSPR_API(PRUint32) PR_IntervalToMicroseconds(PRIntervalTime ticks);
389 
390 typedef struct PRMonitor PRMonitor;
391 
392 NSPR_API(PRMonitor*) PR_NewMonitor(void);
393 NSPR_API(void) PR_DestroyMonitor(PRMonitor *mon);
394 NSPR_API(void) PR_EnterMonitor(PRMonitor *mon);
395 NSPR_API(PRStatus) PR_ExitMonitor(PRMonitor *mon);
396 NSPR_API(PRStatus) PR_Wait(PRMonitor *mon, PRIntervalTime ticks);
397 NSPR_API(PRStatus) PR_Notify(PRMonitor *mon);
398 NSPR_API(PRStatus) PR_NotifyAll(PRMonitor *mon);
399 
400 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
401 #    define PR_CreateThread VBoxNsprPR_CreateThread
402 #    define PR_JoinThread VBoxNsprPR_JoinThread
403 #    define PR_Sleep VBoxNsprPR_Sleep
404 #    define PR_GetCurrentThread VBoxNsprPR_GetCurrentThread
405 #    define PR_GetThreadState VBoxNsprPR_GetThreadState
406 #    define PR_SetThreadPrivate VBoxNsprPR_SetThreadPrivate
407 #    define PR_GetThreadPrivate VBoxNsprPR_GetThreadPrivate
408 #    define PR_NewThreadPrivateIndex VBoxNsprPR_NewThreadPrivateIndex
409 #    define PR_GetThreadPriority VBoxNsprPR_GetThreadPriority
410 #    define PR_SetThreadPriority VBoxNsprPR_SetThreadPriority
411 #    define PR_Interrupt VBoxNsprPR_Interrupt
412 #    define PR_ClearInterrupt VBoxNsprPR_ClearInterrupt
413 #    define PR_BlockInterrupt VBoxNsprPR_BlockInterrupt
414 #    define PR_UnblockInterrupt VBoxNsprPR_UnblockInterrupt
415 #    define PR_GetThreadScope VBoxNsprPR_GetThreadScope
416 #    define PR_GetThreadType VBoxNsprPR_GetThreadType
417 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
418 
419 typedef struct PRThread PRThread;
420 typedef struct PRThreadStack PRThreadStack;
421 
422 typedef enum PRThreadType {
423     PR_USER_THREAD,
424     PR_SYSTEM_THREAD
425 } PRThreadType;
426 
427 typedef enum PRThreadScope {
428     PR_LOCAL_THREAD,
429     PR_GLOBAL_THREAD,
430     PR_GLOBAL_BOUND_THREAD
431 } PRThreadScope;
432 
433 typedef enum PRThreadState {
434     PR_JOINABLE_THREAD,
435     PR_UNJOINABLE_THREAD
436 } PRThreadState;
437 
438 typedef enum PRThreadPriority
439 {
440     PR_PRIORITY_FIRST = 0,      /* just a placeholder */
441     PR_PRIORITY_LOW = 0,        /* the lowest possible priority */
442     PR_PRIORITY_NORMAL = 1,     /* most common expected priority */
443     PR_PRIORITY_HIGH = 2,       /* slightly more aggressive scheduling */
444     PR_PRIORITY_URGENT = 3,     /* it does little good to have more than one */
445     PR_PRIORITY_LAST = 3        /* this is just a placeholder */
446 } PRThreadPriority;
447 
448 NSPR_API(PRThread*) PR_CreateThread(PRThreadType type,
449                      void (PR_CALLBACK *start)(void *arg),
450                      void *arg,
451                      PRThreadPriority priority,
452                      PRThreadScope scope,
453                      PRThreadState state,
454                      PRUint32 stackSize);
455 NSPR_API(PRStatus) PR_JoinThread(PRThread *thread);
456 NSPR_API(PRThread*) PR_GetCurrentThread(void);
457 #   ifndef NO_NSPR_10_SUPPORT
458 #    define PR_CurrentThread() PR_GetCurrentThread() /* for nspr1.0 compat. */
459 #   endif /* NO_NSPR_10_SUPPORT */
460 NSPR_API(PRThreadPriority) PR_GetThreadPriority(const PRThread *thread);
461 NSPR_API(void) PR_SetThreadPriority(PRThread *thread, PRThreadPriority priority);
462 
463 typedef void (PR_CALLBACK *PRThreadPrivateDTOR)(void *priv);
464 
465 NSPR_API(PRStatus) PR_NewThreadPrivateIndex(
466     PRUintn *newIndex, PRThreadPrivateDTOR destructor);
467 NSPR_API(PRStatus) PR_SetThreadPrivate(PRUintn tpdIndex, void *priv);
468 NSPR_API(void*) PR_GetThreadPrivate(PRUintn tpdIndex);
469 NSPR_API(PRStatus) PR_Interrupt(PRThread *thread);
470 NSPR_API(void) PR_ClearInterrupt(void);
471 NSPR_API(void) PR_BlockInterrupt(void);
472 NSPR_API(void) PR_UnblockInterrupt(void);
473 NSPR_API(PRStatus) PR_Sleep(PRIntervalTime ticks);
474 NSPR_API(PRThreadScope) PR_GetThreadScope(const PRThread *thread);
475 NSPR_API(PRThreadType) PR_GetThreadType(const PRThread *thread);
476 NSPR_API(PRThreadState) PR_GetThreadState(const PRThread *thread);
477 
478 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
479 #    define PR_DestroyLock VBoxNsprPR_DestroyLock
480 #    define PR_Lock VBoxNsprPR_Lock
481 #    define PR_NewLock VBoxNsprPR_NewLock
482 #    define PR_Unlock VBoxNsprPR_Unlock
483 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
484 
485 typedef struct PRLock PRLock;
486 
487 NSPR_API(PRLock*) PR_NewLock(void);
488 NSPR_API(void) PR_DestroyLock(PRLock *lock);
489 NSPR_API(void) PR_Lock(PRLock *lock);
490 NSPR_API(PRStatus) PR_Unlock(PRLock *lock);
491 
492 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
493 #    define PR_NewCondVar VBoxNsprPR_NewCondVar
494 #    define PR_DestroyCondVar VBoxNsprPR_DestroyCondVar
495 #    define PR_WaitCondVar VBoxNsprPR_WaitCondVar
496 #    define PR_NotifyCondVar VBoxNsprPR_NotifyCondVar
497 #    define PR_NotifyAllCondVar VBoxNsprPR_NotifyAllCondVar
498 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
499 
500 typedef struct PRCondVar PRCondVar;
501 
502 NSPR_API(PRCondVar*) PR_NewCondVar(PRLock *lock);
503 NSPR_API(void) PR_DestroyCondVar(PRCondVar *cvar);
504 NSPR_API(PRStatus) PR_WaitCondVar(PRCondVar *cvar, PRIntervalTime timeout);
505 NSPR_API(PRStatus) PR_NotifyCondVar(PRCondVar *cvar);
506 NSPR_API(PRStatus) PR_NotifyAllCondVar(PRCondVar *cvar);
507 
508 typedef struct PRCListStr PRCList;
509 
510 struct PRCListStr {
511     PRCList *next;
512     PRCList *prev;
513 };
514 
515 #   ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
516 #    define PL_DestroyEvent VBoxNsplPL_DestroyEvent
517 #    define PL_HandleEvent VBoxNsplPL_HandleEvent
518 #    define PL_InitEvent VBoxNsplPL_InitEvent
519 #    define PL_CreateEventQueue VBoxNsplPL_CreateEventQueue
520 #    define PL_CreateMonitoredEventQueue VBoxNsplPL_CreateMonitoredEventQueue
521 #    define PL_CreateNativeEventQueue VBoxNsplPL_CreateNativeEventQueue
522 #    define PL_DequeueEvent VBoxNsplPL_DequeueEvent
523 #    define PL_DestroyEventQueue VBoxNsplPL_DestroyEventQueue
524 #    define PL_EventAvailable VBoxNsplPL_EventAvailable
525 #    define PL_EventLoop VBoxNsplPL_EventLoop
526 #    define PL_GetEvent VBoxNsplPL_GetEvent
527 #    define PL_GetEventOwner VBoxNsplPL_GetEventOwner
528 #    define PL_GetEventQueueMonitor VBoxNsplPL_GetEventQueueMonitor
529 #    define PL_GetEventQueueSelectFD VBoxNsplPL_GetEventQueueSelectFD
530 #    define PL_MapEvents VBoxNsplPL_MapEvents
531 #    define PL_PostEvent VBoxNsplPL_PostEvent
532 #    define PL_PostSynchronousEvent VBoxNsplPL_PostSynchronousEvent
533 #    define PL_ProcessEventsBeforeID VBoxNsplPL_ProcessEventsBeforeID
534 #    define PL_ProcessPendingEvents VBoxNsplPL_ProcessPendingEvents
535 #    define PL_RegisterEventIDFunc VBoxNsplPL_RegisterEventIDFunc
536 #    define PL_RevokeEvents VBoxNsplPL_RevokeEvents
537 #    define PL_UnregisterEventIDFunc VBoxNsplPL_UnregisterEventIDFunc
538 #    define PL_WaitForEvent VBoxNsplPL_WaitForEvent
539 #    define PL_IsQueueNative VBoxNsplPL_IsQueueNative
540 #    define PL_IsQueueOnCurrentThread VBoxNsplPL_IsQueueOnCurrentThread
541 #    define PL_FavorPerformanceHint VBoxNsplPL_FavorPerformanceHint
542 #   endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
543 
544 typedef struct PLEvent PLEvent;
545 typedef struct PLEventQueue PLEventQueue;
546 
547 PR_EXTERN(PLEventQueue*)
548 PL_CreateEventQueue(const char* name, PRThread* handlerThread);
549 PR_EXTERN(PLEventQueue *)
550     PL_CreateNativeEventQueue(
551         const char *name,
552         PRThread *handlerThread
553     );
554 PR_EXTERN(PLEventQueue *)
555     PL_CreateMonitoredEventQueue(
556         const char *name,
557         PRThread *handlerThread
558     );
559 PR_EXTERN(void)
560 PL_DestroyEventQueue(PLEventQueue* self);
561 PR_EXTERN(PRMonitor*)
562 PL_GetEventQueueMonitor(PLEventQueue* self);
563 
564 #   define PL_ENTER_EVENT_QUEUE_MONITOR(queue) \
565     PR_EnterMonitor(PL_GetEventQueueMonitor(queue))
566 
567 #   define PL_EXIT_EVENT_QUEUE_MONITOR(queue) \
568     PR_ExitMonitor(PL_GetEventQueueMonitor(queue))
569 
570 PR_EXTERN(PRStatus) PL_PostEvent(PLEventQueue* self, PLEvent* event);
571 PR_EXTERN(void*) PL_PostSynchronousEvent(PLEventQueue* self, PLEvent* event);
572 PR_EXTERN(PLEvent*) PL_GetEvent(PLEventQueue* self);
573 PR_EXTERN(PRBool) PL_EventAvailable(PLEventQueue* self);
574 
575 typedef void (PR_CALLBACK *PLEventFunProc)(PLEvent* event, void* data, PLEventQueue* queue);
576 
577 PR_EXTERN(void) PL_MapEvents(PLEventQueue* self, PLEventFunProc fun, void* data);
578 PR_EXTERN(void) PL_RevokeEvents(PLEventQueue* self, void* owner);
579 PR_EXTERN(void) PL_ProcessPendingEvents(PLEventQueue* self);
580 PR_EXTERN(PLEvent*) PL_WaitForEvent(PLEventQueue* self);
581 PR_EXTERN(void) PL_EventLoop(PLEventQueue* self);
582 PR_EXTERN(PRInt32) PL_GetEventQueueSelectFD(PLEventQueue* self);
583 PR_EXTERN(PRBool) PL_IsQueueOnCurrentThread( PLEventQueue *queue );
584 PR_EXTERN(PRBool) PL_IsQueueNative(PLEventQueue *queue);
585 
586 typedef void* (PR_CALLBACK *PLHandleEventProc)(PLEvent* self);
587 typedef void (PR_CALLBACK *PLDestroyEventProc)(PLEvent* self);
588 PR_EXTERN(void)
589 PL_InitEvent(PLEvent* self, void* owner,
590              PLHandleEventProc handler,
591              PLDestroyEventProc destructor);
592 PR_EXTERN(void*) PL_GetEventOwner(PLEvent* self);
593 PR_EXTERN(void) PL_HandleEvent(PLEvent* self);
594 PR_EXTERN(void) PL_DestroyEvent(PLEvent* self);
595 PR_EXTERN(void) PL_DequeueEvent(PLEvent* self, PLEventQueue* queue);
596 PR_EXTERN(void) PL_FavorPerformanceHint(PRBool favorPerformanceOverEventStarvation, PRUint32 starvationDelay);
597 
598 struct PLEvent {
599     PRCList             link;
600     PLHandleEventProc   handler;
601     PLDestroyEventProc  destructor;
602     void*               owner;
603     void*               synchronousResult;
604     PRLock*             lock;
605     PRCondVar*          condVar;
606     PRBool              handled;
607 #   ifdef PL_POST_TIMINGS
608     PRIntervalTime      postTime;
609 #   endif
610 #   ifdef XP_UNIX
611     unsigned long       id;
612 #   endif /* XP_UNIX */
613     /* other fields follow... */
614 };
615 
616 #   if defined(XP_WIN) || defined(XP_OS2)
617 
618 PR_EXTERN(HWND)
619     PL_GetNativeEventReceiverWindow(
620         PLEventQueue *eqp
621     );
622 #   endif /* XP_WIN || XP_OS2 */
623 
624 #   ifdef XP_UNIX
625 
626 PR_EXTERN(PRInt32)
627 PL_ProcessEventsBeforeID(PLEventQueue *aSelf, unsigned long aID);
628 
629 typedef unsigned long (PR_CALLBACK *PLGetEventIDFunc)(void *aClosure);
630 
631 PR_EXTERN(void)
632 PL_RegisterEventIDFunc(PLEventQueue *aSelf, PLGetEventIDFunc aFunc,
633                        void *aClosure);
634 PR_EXTERN(void) PL_UnregisterEventIDFunc(PLEventQueue *aSelf);
635 
636 #   endif /* XP_UNIX */
637 
638 /* Standard "it worked" return value */
639 #   define NS_OK                              0
640 
641 #   define NS_ERROR_BASE                      ((nsresult) 0xC1F30000)
642 
643 /* Returned when an instance is not initialized */
644 #   define NS_ERROR_NOT_INITIALIZED           (NS_ERROR_BASE + 1)
645 
646 /* Returned when an instance is already initialized */
647 #   define NS_ERROR_ALREADY_INITIALIZED       (NS_ERROR_BASE + 2)
648 
649 /* Returned by a not implemented function */
650 #   define NS_ERROR_NOT_IMPLEMENTED           ((nsresult) 0x80004001L)
651 
652 /* Returned when a given interface is not supported. */
653 #   define NS_NOINTERFACE                     ((nsresult) 0x80004002L)
654 #   define NS_ERROR_NO_INTERFACE              NS_NOINTERFACE
655 
656 #   define NS_ERROR_INVALID_POINTER           ((nsresult) 0x80004003L)
657 #   define NS_ERROR_NULL_POINTER              NS_ERROR_INVALID_POINTER
658 
659 /* Returned when a function aborts */
660 #   define NS_ERROR_ABORT                     ((nsresult) 0x80004004L)
661 
662 /* Returned when a function fails */
663 #   define NS_ERROR_FAILURE                   ((nsresult) 0x80004005L)
664 
665 /* Returned when an unexpected error occurs */
666 #   define NS_ERROR_UNEXPECTED                ((nsresult) 0x8000ffffL)
667 
668 /* Returned when a memory allocation fails */
669 #   define NS_ERROR_OUT_OF_MEMORY             ((nsresult) 0x8007000eL)
670 
671 /* Returned when an illegal value is passed */
672 #   define NS_ERROR_ILLEGAL_VALUE             ((nsresult) 0x80070057L)
673 #   define NS_ERROR_INVALID_ARG               NS_ERROR_ILLEGAL_VALUE
674 
675 /* Returned when a class doesn't allow aggregation */
676 #   define NS_ERROR_NO_AGGREGATION            ((nsresult) 0x80040110L)
677 
678 /* Returned when an operation can't complete due to an unavailable resource */
679 #   define NS_ERROR_NOT_AVAILABLE             ((nsresult) 0x80040111L)
680 
681 /* Returned when a class is not registered */
682 #   define NS_ERROR_FACTORY_NOT_REGISTERED    ((nsresult) 0x80040154L)
683 
684 /* Returned when a class cannot be registered, but may be tried again later */
685 #   define NS_ERROR_FACTORY_REGISTER_AGAIN    ((nsresult) 0x80040155L)
686 
687 /* Returned when a dynamically loaded factory couldn't be found */
688 #   define NS_ERROR_FACTORY_NOT_LOADED        ((nsresult) 0x800401f8L)
689 
690 /* Returned when a factory doesn't support signatures */
691 #   define NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT \
692                                            (NS_ERROR_BASE + 0x101)
693 
694 /* Returned when a factory already is registered */
695 #   define NS_ERROR_FACTORY_EXISTS            (NS_ERROR_BASE + 0x100)
696 
697 /**
698  * An "interface id" which can be used to uniquely identify a given
699  * interface.
700  * A "unique identifier". This is modeled after OSF DCE UUIDs.
701  */
702 
703 struct nsID {
704     PRUint32 m0;
705     PRUint16 m1;
706     PRUint16 m2;
707     PRUint8 m3[8];
708 };
709 
710 typedef struct nsID nsID;
711 typedef nsID nsIID;
712 typedef nsID nsCID;
713 
714 #  endif /* __cplusplus */
715 
716 #  define VBOX_WINAPI
717 
718 /* Various COM types defined by their XPCOM equivalent */
719 typedef PRInt64 LONG64;
720 typedef PRInt32 LONG;
721 typedef PRInt32 DWORD;
722 typedef PRInt16 SHORT;
723 typedef PRUint64 ULONG64;
724 typedef PRUint32 ULONG;
725 typedef PRUint16 USHORT;
726 
727 typedef PRBool BOOL;
728 
729 #  ifndef FALSE
730 #   define FALSE 0
731 #   define TRUE 1
732 #  endif
733 
734 #  define HRESULT nsresult
735 #  define SUCCEEDED NS_SUCCEEDED
736 #  define FAILED NS_FAILED
737 
738 /* OLE error codes */
739 #  define S_OK                ((nsresult)NS_OK)
740 #  define E_UNEXPECTED        NS_ERROR_UNEXPECTED
741 #  define E_NOTIMPL           NS_ERROR_NOT_IMPLEMENTED
742 #  define E_OUTOFMEMORY       NS_ERROR_OUT_OF_MEMORY
743 #  define E_INVALIDARG        NS_ERROR_INVALID_ARG
744 #  define E_NOINTERFACE       NS_ERROR_NO_INTERFACE
745 #  define E_POINTER           NS_ERROR_NULL_POINTER
746 #  define E_ABORT             NS_ERROR_ABORT
747 #  define E_FAIL              NS_ERROR_FAILURE
748 /* Note: a better analog for E_ACCESSDENIED would probably be
749  * NS_ERROR_NOT_AVAILABLE, but we want binary compatibility for now. */
750 #  define E_ACCESSDENIED      ((nsresult)0x80070005L)
751 
752 /* Basic vartype for COM compatibility. */
753 typedef enum VARTYPE
754 {
755     VT_I2 = 2,
756     VT_I4 = 3,
757     VT_BSTR = 8,
758     VT_DISPATCH = 9,
759     VT_BOOL = 11,
760     VT_UNKNOWN = 13,
761     VT_I1 = 16,
762     VT_UI1 = 17,
763     VT_UI2 = 18,
764     VT_UI4 = 19,
765     VT_I8 = 20,
766     VT_UI8 = 21,
767     VT_HRESULT = 25
768 } VARTYPE;
769 
770 /* Basic safearray type for COM compatibility. */
771 typedef struct SAFEARRAY
772 {
773     void *pv;
774     ULONG c;
775 } SAFEARRAY;
776 
777 #  define ComSafeArrayAsInParam(f) ((f) ? (f)->c : 0), ((f) ? (f)->pv : NULL)
778 #  define ComSafeArrayAsOutParam(f) (&((f)->c)), (&((f)->pv))
779 #  define ComSafeArrayAsOutTypeParam(f,t) (&((f)->c)), (t**)(&((f)->pv))
780 #  define ComSafeArrayAsOutIfaceParam(f,t) (&((f)->c)), (t**)(&((f)->pv))
781 
782 /* Glossing over differences between COM and XPCOM */
783 #  define IErrorInfo nsIException
784 #  define IUnknown nsISupports
785 #  define IDispatch nsISupports
786 
787 /* Make things as COM compatible as possible */
788 #  define interface struct
789 #  ifdef CONST_VTABLE
790 #   define CONST_VTBL const
791 #  else /* !CONST_VTABLE */
792 #   define CONST_VTBL
793 #  endif /* !CONST_VTABLE */
794 
795 #  ifndef __cplusplus
796 
797 /** @todo this first batch of forward declarations (and the corresponding ones
798  * generated for each interface) are 100% redundant, remove eventually. */
799 interface nsISupports;   /* forward declaration */
800 interface nsIException;  /* forward declaration */
801 interface nsIStackFrame; /* forward declaration */
802 interface nsIEventTarget;/* forward declaration */
803 interface nsIEventQueue; /* forward declaration */
804 
805 typedef interface nsISupports nsISupports;     /* forward declaration */
806 typedef interface nsIException nsIException;   /* forward declaration */
807 typedef interface nsIStackFrame nsIStackFrame; /* forward declaration */
808 typedef interface nsIEventTarget nsIEventTarget;/* forward declaration */
809 typedef interface nsIEventQueue nsIEventQueue; /* forward declaration */
810 
811 /* starting interface:    nsISupports */
812 #   define NS_ISUPPORTS_IID_STR "00000000-0000-0000-c000-000000000046"
813 
814 #   define NS_ISUPPORTS_IID \
815     { 0x00000000, 0x0000, 0x0000, \
816       {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} }
817 
818 /**
819  * Reference count values
820  *
821  * This is the return type for AddRef() and Release() in nsISupports.
822  * IUnknown of COM returns an unsigned long from equivalent functions.
823  * The following ifdef exists to maintain binary compatibility with
824  * IUnknown.
825  */
826 #   if defined(XP_WIN) && PR_BYTES_PER_LONG == 4
827 typedef unsigned long nsrefcnt;
828 #   else
829 typedef PRUint32 nsrefcnt;
830 #   endif
831 
832 /**
833  * Basic component object model interface. Objects which implement
834  * this interface support runtime interface discovery (QueryInterface)
835  * and a reference counted memory model (AddRef/Release). This is
836  * modelled after the win32 IUnknown API.
837  */
838 #   ifndef VBOX_WITH_GLUE
839 struct nsISupports_vtbl
840 {
841     nsresult (*QueryInterface)(nsISupports *pThis, const nsID *iid, void **resultp);
842     nsrefcnt (*AddRef)(nsISupports *pThis);
843     nsrefcnt (*Release)(nsISupports *pThis);
844 };
845 #   else /* !VBOX_WITH_GLUE */
846 struct nsISupportsVtbl
847 {
848     nsresult (*QueryInterface)(nsISupports *pThis, const nsID *iid, void **resultp);
849     nsrefcnt (*AddRef)(nsISupports *pThis);
850     nsrefcnt (*Release)(nsISupports *pThis);
851 };
852 #    define nsISupports_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
853 #    define nsISupports_AddRef(p) ((p)->lpVtbl->AddRef(p))
854 #    define nsISupports_Release(p) ((p)->lpVtbl->Release(p))
855 #    define IUnknown_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
856 #    define IUnknown_AddRef(p) ((p)->lpVtbl->AddRef(p))
857 #    define IUnknown_Release(p) ((p)->lpVtbl->Release(p))
858 #    define IDispatch_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
859 #    define IDispatch_AddRef(p) ((p)->lpVtbl->AddRef(p))
860 #    define IDispatch_Release(p) ((p)->lpVtbl->Release(p))
861 #   endif /* !VBOX_WITH_GLUE */
862 
863 interface nsISupports
864 {
865 #   ifndef VBOX_WITH_GLUE
866     struct nsISupports_vtbl *vtbl;
867 #   else /* !VBOX_WITH_GLUE */
868     CONST_VTBL struct nsISupportsVtbl *lpVtbl;
869 #   endif /* !VBOX_WITH_GLUE */
870 };
871 
872 /* starting interface:    nsIException */
873 #   define NS_IEXCEPTION_IID_STR "f3a8d3b4-c424-4edc-8bf6-8974c983ba78"
874 
875 #   define NS_IEXCEPTION_IID \
876     {0xf3a8d3b4, 0xc424, 0x4edc, \
877       { 0x8b, 0xf6, 0x89, 0x74, 0xc9, 0x83, 0xba, 0x78 }}
878 
879 #   ifndef VBOX_WITH_GLUE
880 struct nsIException_vtbl
881 {
882     /* Methods from the interface nsISupports */
883     struct nsISupports_vtbl nsisupports;
884 
885     nsresult (*GetMessage)(nsIException *pThis, PRUnichar * *aMessage);
886     nsresult (*GetResult)(nsIException *pThis, nsresult *aResult);
887     nsresult (*GetName)(nsIException *pThis, PRUnichar * *aName);
888     nsresult (*GetFilename)(nsIException *pThis, PRUnichar * *aFilename);
889     nsresult (*GetLineNumber)(nsIException *pThis, PRUint32 *aLineNumber);
890     nsresult (*GetColumnNumber)(nsIException *pThis, PRUint32 *aColumnNumber);
891     nsresult (*GetLocation)(nsIException *pThis, nsIStackFrame * *aLocation);
892     nsresult (*GetInner)(nsIException *pThis, nsIException * *aInner);
893     nsresult (*GetData)(nsIException *pThis, nsISupports * *aData);
894     nsresult (*ToString)(nsIException *pThis, PRUnichar **_retval);
895 };
896 #   else /* !VBOX_WITH_GLUE */
897 struct nsIExceptionVtbl
898 {
899     nsresult (*QueryInterface)(nsIException *pThis, const nsID *iid, void **resultp);
900     nsrefcnt (*AddRef)(nsIException *pThis);
901     nsrefcnt (*Release)(nsIException *pThis);
902 
903     nsresult (*GetMessage)(nsIException *pThis, PRUnichar * *aMessage);
904     nsresult (*GetResult)(nsIException *pThis, nsresult *aResult);
905     nsresult (*GetName)(nsIException *pThis, PRUnichar * *aName);
906     nsresult (*GetFilename)(nsIException *pThis, PRUnichar * *aFilename);
907     nsresult (*GetLineNumber)(nsIException *pThis, PRUint32 *aLineNumber);
908     nsresult (*GetColumnNumber)(nsIException *pThis, PRUint32 *aColumnNumber);
909     nsresult (*GetLocation)(nsIException *pThis, nsIStackFrame * *aLocation);
910     nsresult (*GetInner)(nsIException *pThis, nsIException * *aInner);
911     nsresult (*GetData)(nsIException *pThis, nsISupports * *aData);
912     nsresult (*ToString)(nsIException *pThis, PRUnichar **_retval);
913 };
914 #    define nsIException_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
915 #    define nsIException_AddRef(p) ((p)->lpVtbl->AddRef(p))
916 #    define nsIException_Release(p) ((p)->lpVtbl->Release(p))
917 #    define nsIException_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
918 #    define nsIException_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
919 #    define nsIException_get_Result(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
920 #    define nsIException_GetResult(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
921 #    define nsIException_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
922 #    define nsIException_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
923 #    define nsIException_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
924 #    define nsIException_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
925 #    define nsIException_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
926 #    define nsIException_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
927 #    define nsIException_get_ColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
928 #    define nsIException_GetColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
929 #    define nsIException_get_Inner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
930 #    define nsIException_GetInner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
931 #    define nsIException_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
932 #    define nsIException_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
933 #    define nsIException_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
934 #    define IErrorInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
935 #    define IErrorInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
936 #    define IErrorInfo_Release(p) ((p)->lpVtbl->Release(p))
937 #    define IErrorInfo_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
938 #    define IErrorInfo_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
939 #    define IErrorInfo_get_Result(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
940 #    define IErrorInfo_GetResult(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
941 #    define IErrorInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
942 #    define IErrorInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
943 #    define IErrorInfo_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
944 #    define IErrorInfo_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
945 #    define IErrorInfo_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
946 #    define IErrorInfo_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
947 #    define IErrorInfo_get_ColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
948 #    define IErrorInfo_GetColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
949 #    define IErrorInfo_get_Inner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
950 #    define IErrorInfo_GetInner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
951 #    define IErrorInfo_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
952 #    define IErrorInfo_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
953 #    define IErrorInfo_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
954 #   endif /* !VBOX_WITH_GLUE */
955 
956 interface nsIException
957 {
958 #   ifndef VBOX_WITH_GLUE
959     struct nsIException_vtbl *vtbl;
960 #   else /* !VBOX_WITH_GLUE */
961     CONST_VTBL struct nsIExceptionVtbl *lpVtbl;
962 #   endif /* !VBOX_WITH_GLUE */
963 };
964 
965 /* starting interface:    nsIStackFrame */
966 #   define NS_ISTACKFRAME_IID_STR "91d82105-7c62-4f8b-9779-154277c0ee90"
967 
968 #   define NS_ISTACKFRAME_IID \
969     {0x91d82105, 0x7c62, 0x4f8b, \
970       { 0x97, 0x79, 0x15, 0x42, 0x77, 0xc0, 0xee, 0x90 }}
971 
972 #   ifndef VBOX_WITH_GLUE
973 struct nsIStackFrame_vtbl
974 {
975     /* Methods from the interface nsISupports */
976     struct nsISupports_vtbl nsisupports;
977 
978     nsresult (*GetLanguage)(nsIStackFrame *pThis, PRUint32 *aLanguage);
979     nsresult (*GetLanguageName)(nsIStackFrame *pThis, PRUnichar * *aLanguageName);
980     nsresult (*GetFilename)(nsIStackFrame *pThis, PRUnichar * *aFilename);
981     nsresult (*GetName)(nsIStackFrame *pThis, PRUnichar * *aName);
982     nsresult (*GetLineNumber)(nsIStackFrame *pThis, PRInt32 *aLineNumber);
983     nsresult (*GetSourceLine)(nsIStackFrame *pThis, PRUnichar * *aSourceLine);
984     nsresult (*GetCaller)(nsIStackFrame *pThis, nsIStackFrame * *aCaller);
985     nsresult (*ToString)(nsIStackFrame *pThis, PRUnichar **_retval);
986 };
987 #   else /* !VBOX_WITH_GLUE */
988 struct nsIStackFrameVtbl
989 {
990     nsresult (*QueryInterface)(nsIStackFrame *pThis, const nsID *iid, void **resultp);
991     nsrefcnt (*AddRef)(nsIStackFrame *pThis);
992     nsrefcnt (*Release)(nsIStackFrame *pThis);
993 
994     nsresult (*GetLanguage)(nsIStackFrame *pThis, PRUint32 *aLanguage);
995     nsresult (*GetLanguageName)(nsIStackFrame *pThis, PRUnichar * *aLanguageName);
996     nsresult (*GetFilename)(nsIStackFrame *pThis, PRUnichar * *aFilename);
997     nsresult (*GetName)(nsIStackFrame *pThis, PRUnichar * *aName);
998     nsresult (*GetLineNumber)(nsIStackFrame *pThis, PRInt32 *aLineNumber);
999     nsresult (*GetSourceLine)(nsIStackFrame *pThis, PRUnichar * *aSourceLine);
1000     nsresult (*GetCaller)(nsIStackFrame *pThis, nsIStackFrame * *aCaller);
1001     nsresult (*ToString)(nsIStackFrame *pThis, PRUnichar **_retval);
1002 };
1003 #    define nsIStackFrame_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
1004 #    define nsIStackFrame_AddRef(p) ((p)->lpVtbl->AddRef(p))
1005 #    define nsIStackFrame_Release(p) ((p)->lpVtbl->Release(p))
1006 #    define nsIStackFrame_get_Language(p, aLanguage) ((p)->lpVtbl->GetLanguge(p, aLanguage))
1007 #    define nsIStackFrame_GetLanguage(p, aLanguage) ((p)->lpVtbl->GetLanguge(p, aLanguage))
1008 #    define nsIStackFrame_get_LanguageName(p, aLanguageName) ((p)->lpVtbl->GetLanguageName(p, aLanguageName))
1009 #    define nsIStackFrame_GetLanguageName(p, aLanguageName) ((p)->lpVtbl->GetLanguageName(p, aLanguageName))
1010 #    define nsIStackFrame_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
1011 #    define nsIStackFrame_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
1012 #    define nsIStackFrame_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
1013 #    define nsIStackFrame_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
1014 #    define nsIStackFrame_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
1015 #    define nsIStackFrame_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
1016 #    define nsIStackFrame_get_SourceLine(p, aSourceLine) ((p)->lpVtbl->GetSourceLine(p, aSourceLine))
1017 #    define nsIStackFrame_GetSourceLine(p, aSourceLine) ((p)->lpVtbl->GetSourceLine(p, aSourceLine))
1018 #    define nsIStackFrame_get_Caller(p, aCaller) ((p)->lpVtbl->GetCaller(p, aCaller))
1019 #    define nsIStackFrame_GetCaller(p, aCaller) ((p)->lpVtbl->GetCaller(p, aCaller))
1020 #    define nsIStackFrame_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
1021 #   endif /* !VBOX_WITH_GLUE */
1022 
1023 interface nsIStackFrame
1024 {
1025 #   ifndef VBOX_WITH_GLUE
1026     struct nsIStackFrame_vtbl *vtbl;
1027 #   else /* !VBOX_WITH_GLUE */
1028     CONST_VTBL struct nsIStackFrameVtbl *lpVtbl;
1029 #   endif /* !VBOX_WITH_GLUE */
1030 };
1031 
1032 /* starting interface:    nsIEventTarget */
1033 #   define NS_IEVENTTARGET_IID_STR "ea99ad5b-cc67-4efb-97c9-2ef620a59f2a"
1034 
1035 #   define NS_IEVENTTARGET_IID \
1036     {0xea99ad5b, 0xcc67, 0x4efb, \
1037       { 0x97, 0xc9, 0x2e, 0xf6, 0x20, 0xa5, 0x9f, 0x2a }}
1038 
1039 #   ifndef VBOX_WITH_GLUE
1040 struct nsIEventTarget_vtbl
1041 {
1042     struct nsISupports_vtbl nsisupports;
1043 
1044     nsresult (*PostEvent)(nsIEventTarget *pThis, PLEvent * aEvent);
1045     nsresult (*IsOnCurrentThread)(nsIEventTarget *pThis, PRBool *_retval);
1046 };
1047 #   else /* !VBOX_WITH_GLUE */
1048 struct nsIEventTargetVtbl
1049 {
1050     nsresult (*QueryInterface)(nsIEventTarget *pThis, const nsID *iid, void **resultp);
1051     nsrefcnt (*AddRef)(nsIEventTarget *pThis);
1052     nsrefcnt (*Release)(nsIEventTarget *pThis);
1053 
1054     nsresult (*PostEvent)(nsIEventTarget *pThis, PLEvent * aEvent);
1055     nsresult (*IsOnCurrentThread)(nsIEventTarget *pThis, PRBool *_retval);
1056 };
1057 #    define nsIEventTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
1058 #    define nsIEventTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
1059 #    define nsIEventTarget_Release(p) ((p)->lpVtbl->Release(p))
1060 #    define nsIEventTarget_PostEvent(p, aEvent) ((p)->lpVtbl->PostEvent(p, aEvent))
1061 #    define nsIEventTarget_IsOnCurrentThread(p, retval) ((p)->lpVtbl->IsOnCurrentThread(p, retval))
1062 #   endif /* !VBOX_WITH_GLUE */
1063 
1064 interface nsIEventTarget
1065 {
1066 #   ifndef VBOX_WITH_GLUE
1067     struct nsIEventTarget_vtbl *vtbl;
1068 #   else /* !VBOX_WITH_GLUE */
1069     CONST_VTBL struct nsIEventTargetVtbl *lpVtbl;
1070 #   endif /* !VBOX_WITH_GLUE */
1071 };
1072 
1073 /* starting interface:    nsIEventQueue */
1074 #   define NS_IEVENTQUEUE_IID_STR "176afb41-00a4-11d3-9f2a-00400553eef0"
1075 
1076 #   define NS_IEVENTQUEUE_IID \
1077   {0x176afb41, 0x00a4, 0x11d3, \
1078     { 0x9f, 0x2a, 0x00, 0x40, 0x05, 0x53, 0xee, 0xf0 }}
1079 
1080 #   ifndef VBOX_WITH_GLUE
1081 struct nsIEventQueue_vtbl
1082 {
1083     struct nsIEventTarget_vtbl nsieventtarget;
1084 
1085     nsresult (*InitEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * owner, PLHandleEventProc handler, PLDestroyEventProc destructor);
1086     nsresult (*PostSynchronousEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * *aResult);
1087     nsresult (*PendingEvents)(nsIEventQueue *pThis, PRBool *_retval);
1088     nsresult (*ProcessPendingEvents)(nsIEventQueue *pThis);
1089     nsresult (*EventLoop)(nsIEventQueue *pThis);
1090     nsresult (*EventAvailable)(nsIEventQueue *pThis, PRBool *aResult);
1091     nsresult (*GetEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1092     nsresult (*HandleEvent)(nsIEventQueue *pThis, PLEvent * aEvent);
1093     nsresult (*WaitForEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1094     PRInt32 (*GetEventQueueSelectFD)(nsIEventQueue *pThis);
1095     nsresult (*Init)(nsIEventQueue *pThis, PRBool aNative);
1096     nsresult (*InitFromPRThread)(nsIEventQueue *pThis, PRThread * thread, PRBool aNative);
1097     nsresult (*InitFromPLQueue)(nsIEventQueue *pThis, PLEventQueue * aQueue);
1098     nsresult (*EnterMonitor)(nsIEventQueue *pThis);
1099     nsresult (*ExitMonitor)(nsIEventQueue *pThis);
1100     nsresult (*RevokeEvents)(nsIEventQueue *pThis, void * owner);
1101     nsresult (*GetPLEventQueue)(nsIEventQueue *pThis, PLEventQueue * *_retval);
1102     nsresult (*IsQueueNative)(nsIEventQueue *pThis, PRBool *_retval);
1103     nsresult (*StopAcceptingEvents)(nsIEventQueue *pThis);
1104 };
1105 #   else /* !VBOX_WITH_GLUE */
1106 struct nsIEventQueueVtbl
1107 {
1108     nsresult (*QueryInterface)(nsIEventQueue *pThis, const nsID *iid, void **resultp);
1109     nsrefcnt (*AddRef)(nsIEventQueue *pThis);
1110     nsrefcnt (*Release)(nsIEventQueue *pThis);
1111 
1112     nsresult (*PostEvent)(nsIEventQueue *pThis, PLEvent * aEvent);
1113     nsresult (*IsOnCurrentThread)(nsIEventQueue *pThis, PRBool *_retval);
1114 
1115     nsresult (*InitEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * owner, PLHandleEventProc handler, PLDestroyEventProc destructor);
1116     nsresult (*PostSynchronousEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * *aResult);
1117     nsresult (*PendingEvents)(nsIEventQueue *pThis, PRBool *_retval);
1118     nsresult (*ProcessPendingEvents)(nsIEventQueue *pThis);
1119     nsresult (*EventLoop)(nsIEventQueue *pThis);
1120     nsresult (*EventAvailable)(nsIEventQueue *pThis, PRBool *aResult);
1121     nsresult (*GetEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1122     nsresult (*HandleEvent)(nsIEventQueue *pThis, PLEvent * aEvent);
1123     nsresult (*WaitForEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
1124     PRInt32 (*GetEventQueueSelectFD)(nsIEventQueue *pThis);
1125     nsresult (*Init)(nsIEventQueue *pThis, PRBool aNative);
1126     nsresult (*InitFromPRThread)(nsIEventQueue *pThis, PRThread * thread, PRBool aNative);
1127     nsresult (*InitFromPLQueue)(nsIEventQueue *pThis, PLEventQueue * aQueue);
1128     nsresult (*EnterMonitor)(nsIEventQueue *pThis);
1129     nsresult (*ExitMonitor)(nsIEventQueue *pThis);
1130     nsresult (*RevokeEvents)(nsIEventQueue *pThis, void * owner);
1131     nsresult (*GetPLEventQueue)(nsIEventQueue *pThis, PLEventQueue * *_retval);
1132     nsresult (*IsQueueNative)(nsIEventQueue *pThis, PRBool *_retval);
1133     nsresult (*StopAcceptingEvents)(nsIEventQueue *pThis);
1134 };
1135 #    define nsIEventQueue_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
1136 #    define nsIEventQueue_AddRef(p) ((p)->lpVtbl->AddRef(p))
1137 #    define nsIEventQueue_Release(p) ((p)->lpVtbl->Release(p))
1138 #    define nsIEventQueue_PostEvent(p, aEvent) ((p)->lpVtbl->PostEvent(p, aEvent))
1139 #    define nsIEventQueue_IsOnCurrentThread(p, retval) ((p)->lpVtbl->IsOnCurrentThread(p, retval))
1140 #    define nsIEventQueue_InitEvent(p, aEvent, owner, handler, destructor) ((p)->lpVtbl->InitEvent(p, aEvent, owner, handler, destructor))
1141 #    define nsIEventQueue_PostSynchronousEvent(p, aEvent, aResult) ((p)->lpVtbl->PostSynchronousEvent(p, aEvent, aResult))
1142 #    define nsIEventQueue_ProcessPendingEvents(p) ((p)->lpVtbl->ProcessPendingEvents(p))
1143 #    define nsIEventQueue_EventLoop(p) ((p)->lpVtbl->EventLoop(p))
1144 #    define nsIEventQueue_EventAvailable(p, aResult) ((p)->lpVtbl->EventAvailable(p, aResult))
1145 #    define nsIEventQueue_get_Event(p, aEvent) ((p)->lpVtbl->GetEvent(p, aEvent))
1146 #    define nsIEventQueue_GetEvent(p, aEvent) ((p)->lpVtbl->GetEvent(p, aEvent))
1147 #    define nsIEventQueue_HandleEvent(p, aEvent) ((p)->lpVtbl->HandleEvent(p, aEvent))
1148 #    define nsIEventQueue_WaitForEvent(p, aEvent) ((p)->lpVtbl->WaitForEvent(p, aEvent))
1149 #    define nsIEventQueue_GetEventQueueSelectFD(p) ((p)->lpVtbl->GetEventQueueSelectFD(p))
1150 #    define nsIEventQueue_Init(p, aNative) ((p)->lpVtbl->Init(p, aNative))
1151 #    define nsIEventQueue_InitFromPLQueue(p, aQueue) ((p)->lpVtbl->InitFromPLQueue(p, aQueue))
1152 #    define nsIEventQueue_EnterMonitor(p) ((p)->lpVtbl->EnterMonitor(p))
1153 #    define nsIEventQueue_ExitMonitor(p) ((p)->lpVtbl->ExitMonitor(p))
1154 #    define nsIEventQueue_RevokeEvents(p, owner) ((p)->lpVtbl->RevokeEvents(p, owner))
1155 #    define nsIEventQueue_GetPLEventQueue(p, retval) ((p)->lpVtbl->GetPLEventQueue(p, retval))
1156 #    define nsIEventQueue_IsQueueNative(p, retval) ((p)->lpVtbl->IsQueueNative(p, retval))
1157 #    define nsIEventQueue_StopAcceptingEvents(p) ((p)->lpVtbl->StopAcceptingEvents(p))
1158 #   endif /* !VBOX_WITH_GLUE */
1159 
1160 interface nsIEventQueue
1161 {
1162 #   ifndef VBOX_WITH_GLUE
1163     struct nsIEventQueue_vtbl *vtbl;
1164 #   else /* !VBOX_WITH_GLUE */
1165     CONST_VTBL struct nsIEventQueueVtbl *lpVtbl;
1166 #   endif /* !VBOX_WITH_GLUE */
1167 };
1168 
1169 
1170 #   define VBOX_E_OBJECT_NOT_FOUND ((HRESULT)0x80BB0001)
1171 #   define VBOX_E_INVALID_VM_STATE ((HRESULT)0x80BB0002)
1172 #   define VBOX_E_VM_ERROR ((HRESULT)0x80BB0003)
1173 #   define VBOX_E_FILE_ERROR ((HRESULT)0x80BB0004)
1174 #   define VBOX_E_IPRT_ERROR ((HRESULT)0x80BB0005)
1175 #   define VBOX_E_PDM_ERROR ((HRESULT)0x80BB0006)
1176 #   define VBOX_E_INVALID_OBJECT_STATE ((HRESULT)0x80BB0007)
1177 #   define VBOX_E_HOST_ERROR ((HRESULT)0x80BB0008)
1178 #   define VBOX_E_NOT_SUPPORTED ((HRESULT)0x80BB0009)
1179 #   define VBOX_E_XML_ERROR ((HRESULT)0x80BB000A)
1180 #   define VBOX_E_INVALID_SESSION_STATE ((HRESULT)0x80BB000B)
1181 #   define VBOX_E_OBJECT_IN_USE ((HRESULT)0x80BB000C)
1182 #   define VBOX_E_PASSWORD_INCORRECT ((HRESULT)0x80BB000D)
1183 #   define VBOX_E_MAXIMUM_REACHED ((HRESULT)0x80BB000E)
1184 #   define VBOX_E_GSTCTL_GUEST_ERROR ((HRESULT)0x80BB000F)
1185 #   define VBOX_E_TIMEOUT ((HRESULT)0x80BB0010)
1186 
1187 
1188 interface IVirtualBoxErrorInfo;
1189 interface INATNetwork;
1190 interface ICloudNetwork;
1191 interface IDHCPServer;
1192 interface IDHCPConfig;
1193 interface IDHCPGlobalConfig;
1194 interface IDHCPGroupCondition;
1195 interface IDHCPGroupConfig;
1196 interface IDHCPIndividualConfig;
1197 interface IVirtualBox;
1198 interface IVFSExplorer;
1199 interface ICertificate;
1200 interface IAppliance;
1201 interface IVirtualSystemDescription;
1202 interface IUnattended;
1203 interface IGraphicsAdapter;
1204 interface IBIOSSettings;
1205 interface IRecordingScreenSettings;
1206 interface IRecordingSettings;
1207 interface IPCIAddress;
1208 interface IPCIDeviceAttachment;
1209 interface IMachine;
1210 interface IEmulatedUSB;
1211 interface IVRDEServerInfo;
1212 interface IConsole;
1213 interface IHostNetworkInterface;
1214 interface IHostVideoInputDevice;
1215 interface IHostUpdate;
1216 interface IHost;
1217 interface ISystemProperties;
1218 interface IGuestOSType;
1219 interface IAdditionsFacility;
1220 interface IDnDBase;
1221 interface IDnDSource;
1222 interface IGuestDnDSource;
1223 interface IDnDTarget;
1224 interface IGuestDnDTarget;
1225 interface IGuestSession;
1226 interface IProcess;
1227 interface IGuestProcess;
1228 interface IDirectory;
1229 interface IGuestDirectory;
1230 interface IFile;
1231 interface IGuestFile;
1232 interface IFsObjInfo;
1233 interface IGuestFsObjInfo;
1234 interface IGuest;
1235 interface IProgress;
1236 interface ISnapshot;
1237 interface IMediumAttachment;
1238 interface IMedium;
1239 interface IMediumFormat;
1240 interface IDataStream;
1241 interface IMediumIO;
1242 interface IToken;
1243 interface IKeyboard;
1244 interface IMousePointerShape;
1245 interface IMouse;
1246 interface IDisplaySourceBitmap;
1247 interface IFramebuffer;
1248 interface IFramebufferOverlay;
1249 interface IGuestScreenInfo;
1250 interface IDisplay;
1251 interface INetworkAdapter;
1252 interface ISerialPort;
1253 interface IParallelPort;
1254 interface IMachineDebugger;
1255 interface IUSBDeviceFilters;
1256 interface IUSBController;
1257 interface IUSBDevice;
1258 interface IUSBDeviceFilter;
1259 interface IHostUSBDevice;
1260 interface IHostUSBDeviceFilter;
1261 interface IUSBProxyBackend;
1262 interface IAudioAdapter;
1263 interface IVRDEServer;
1264 interface ISharedFolder;
1265 interface ISession;
1266 interface IStorageController;
1267 interface IPerformanceMetric;
1268 interface IPerformanceCollector;
1269 interface INATEngine;
1270 interface IExtPackPlugIn;
1271 interface IExtPackBase;
1272 interface IExtPack;
1273 interface IExtPackFile;
1274 interface IExtPackManager;
1275 interface IBandwidthGroup;
1276 interface IBandwidthControl;
1277 interface IVirtualBoxClient;
1278 interface IEventSource;
1279 interface IEventListener;
1280 interface IEvent;
1281 interface IReusableEvent;
1282 interface IMachineEvent;
1283 interface IMachineStateChangedEvent;
1284 interface IMachineDataChangedEvent;
1285 interface IMediumRegisteredEvent;
1286 interface IMediumConfigChangedEvent;
1287 interface IMachineRegisteredEvent;
1288 interface ISessionStateChangedEvent;
1289 interface IGuestPropertyChangedEvent;
1290 interface ISnapshotEvent;
1291 interface ISnapshotTakenEvent;
1292 interface ISnapshotDeletedEvent;
1293 interface ISnapshotRestoredEvent;
1294 interface ISnapshotChangedEvent;
1295 interface IMousePointerShapeChangedEvent;
1296 interface IMouseCapabilityChangedEvent;
1297 interface IKeyboardLedsChangedEvent;
1298 interface IStateChangedEvent;
1299 interface IAdditionsStateChangedEvent;
1300 interface INetworkAdapterChangedEvent;
1301 interface IAudioAdapterChangedEvent;
1302 interface ISerialPortChangedEvent;
1303 interface IParallelPortChangedEvent;
1304 interface IStorageControllerChangedEvent;
1305 interface IMediumChangedEvent;
1306 interface IClipboardModeChangedEvent;
1307 interface IClipboardFileTransferModeChangedEvent;
1308 interface IDnDModeChangedEvent;
1309 interface ICPUChangedEvent;
1310 interface ICPUExecutionCapChangedEvent;
1311 interface IGuestKeyboardEvent;
1312 interface IGuestMouseEvent;
1313 interface IGuestMultiTouchEvent;
1314 interface IGuestSessionEvent;
1315 interface IGuestSessionStateChangedEvent;
1316 interface IGuestSessionRegisteredEvent;
1317 interface IGuestProcessEvent;
1318 interface IGuestProcessRegisteredEvent;
1319 interface IGuestProcessStateChangedEvent;
1320 interface IGuestProcessIOEvent;
1321 interface IGuestProcessInputNotifyEvent;
1322 interface IGuestProcessOutputEvent;
1323 interface IGuestFileEvent;
1324 interface IGuestFileRegisteredEvent;
1325 interface IGuestFileStateChangedEvent;
1326 interface IGuestFileIOEvent;
1327 interface IGuestFileOffsetChangedEvent;
1328 interface IGuestFileSizeChangedEvent;
1329 interface IGuestFileReadEvent;
1330 interface IGuestFileWriteEvent;
1331 interface IVRDEServerChangedEvent;
1332 interface IVRDEServerInfoChangedEvent;
1333 interface IRecordingChangedEvent;
1334 interface IUSBControllerChangedEvent;
1335 interface IUSBDeviceStateChangedEvent;
1336 interface ISharedFolderChangedEvent;
1337 interface IRuntimeErrorEvent;
1338 interface IEventSourceChangedEvent;
1339 interface IExtraDataChangedEvent;
1340 interface IVetoEvent;
1341 interface IExtraDataCanChangeEvent;
1342 interface ICanShowWindowEvent;
1343 interface IShowWindowEvent;
1344 interface INATRedirectEvent;
1345 interface IHostPCIDevicePlugEvent;
1346 interface IVBoxSVCAvailabilityChangedEvent;
1347 interface IBandwidthGroupChangedEvent;
1348 interface IGuestMonitorChangedEvent;
1349 interface IGuestUserStateChangedEvent;
1350 interface IStorageDeviceChangedEvent;
1351 interface INATNetworkChangedEvent;
1352 interface INATNetworkStartStopEvent;
1353 interface INATNetworkAlterEvent;
1354 interface INATNetworkCreationDeletionEvent;
1355 interface INATNetworkSettingEvent;
1356 interface INATNetworkPortForwardEvent;
1357 interface IHostNameResolutionConfigurationChangeEvent;
1358 interface IProgressEvent;
1359 interface IProgressPercentageChangedEvent;
1360 interface IProgressTaskCompletedEvent;
1361 interface ICursorPositionChangedEvent;
1362 interface IGuestAdditionsStatusChangedEvent;
1363 interface IGuestMonitorInfoChangedEvent;
1364 interface IStringArray;
1365 interface IFormValue;
1366 interface IBooleanFormValue;
1367 interface IRangedIntegerFormValue;
1368 interface IStringFormValue;
1369 interface IChoiceFormValue;
1370 interface IForm;
1371 interface IVirtualSystemDescriptionForm;
1372 interface ICloudNetworkGatewayInfo;
1373 interface ICloudClient;
1374 interface ICloudProfile;
1375 interface ICloudProvider;
1376 interface ICloudProviderManager;
1377 
1378 typedef interface IVirtualBoxErrorInfo IVirtualBoxErrorInfo;
1379 typedef interface INATNetwork INATNetwork;
1380 typedef interface ICloudNetwork ICloudNetwork;
1381 typedef interface IDHCPServer IDHCPServer;
1382 typedef interface IDHCPConfig IDHCPConfig;
1383 typedef interface IDHCPGlobalConfig IDHCPGlobalConfig;
1384 typedef interface IDHCPGroupCondition IDHCPGroupCondition;
1385 typedef interface IDHCPGroupConfig IDHCPGroupConfig;
1386 typedef interface IDHCPIndividualConfig IDHCPIndividualConfig;
1387 typedef interface IVirtualBox IVirtualBox;
1388 typedef interface IVFSExplorer IVFSExplorer;
1389 typedef interface ICertificate ICertificate;
1390 typedef interface IAppliance IAppliance;
1391 typedef interface IVirtualSystemDescription IVirtualSystemDescription;
1392 typedef interface IUnattended IUnattended;
1393 typedef interface IGraphicsAdapter IGraphicsAdapter;
1394 typedef interface IBIOSSettings IBIOSSettings;
1395 typedef interface IRecordingScreenSettings IRecordingScreenSettings;
1396 typedef interface IRecordingSettings IRecordingSettings;
1397 typedef interface IPCIAddress IPCIAddress;
1398 typedef interface IPCIDeviceAttachment IPCIDeviceAttachment;
1399 typedef interface IMachine IMachine;
1400 typedef interface IEmulatedUSB IEmulatedUSB;
1401 typedef interface IVRDEServerInfo IVRDEServerInfo;
1402 typedef interface IConsole IConsole;
1403 typedef interface IHostNetworkInterface IHostNetworkInterface;
1404 typedef interface IHostVideoInputDevice IHostVideoInputDevice;
1405 typedef interface IHostUpdate IHostUpdate;
1406 typedef interface IHost IHost;
1407 typedef interface ISystemProperties ISystemProperties;
1408 typedef interface IGuestOSType IGuestOSType;
1409 typedef interface IAdditionsFacility IAdditionsFacility;
1410 typedef interface IDnDBase IDnDBase;
1411 typedef interface IDnDSource IDnDSource;
1412 typedef interface IGuestDnDSource IGuestDnDSource;
1413 typedef interface IDnDTarget IDnDTarget;
1414 typedef interface IGuestDnDTarget IGuestDnDTarget;
1415 typedef interface IGuestSession IGuestSession;
1416 typedef interface IProcess IProcess;
1417 typedef interface IGuestProcess IGuestProcess;
1418 typedef interface IDirectory IDirectory;
1419 typedef interface IGuestDirectory IGuestDirectory;
1420 typedef interface IFile IFile;
1421 typedef interface IGuestFile IGuestFile;
1422 typedef interface IFsObjInfo IFsObjInfo;
1423 typedef interface IGuestFsObjInfo IGuestFsObjInfo;
1424 typedef interface IGuest IGuest;
1425 typedef interface IProgress IProgress;
1426 typedef interface ISnapshot ISnapshot;
1427 typedef interface IMediumAttachment IMediumAttachment;
1428 typedef interface IMedium IMedium;
1429 typedef interface IMediumFormat IMediumFormat;
1430 typedef interface IDataStream IDataStream;
1431 typedef interface IMediumIO IMediumIO;
1432 typedef interface IToken IToken;
1433 typedef interface IKeyboard IKeyboard;
1434 typedef interface IMousePointerShape IMousePointerShape;
1435 typedef interface IMouse IMouse;
1436 typedef interface IDisplaySourceBitmap IDisplaySourceBitmap;
1437 typedef interface IFramebuffer IFramebuffer;
1438 typedef interface IFramebufferOverlay IFramebufferOverlay;
1439 typedef interface IGuestScreenInfo IGuestScreenInfo;
1440 typedef interface IDisplay IDisplay;
1441 typedef interface INetworkAdapter INetworkAdapter;
1442 typedef interface ISerialPort ISerialPort;
1443 typedef interface IParallelPort IParallelPort;
1444 typedef interface IMachineDebugger IMachineDebugger;
1445 typedef interface IUSBDeviceFilters IUSBDeviceFilters;
1446 typedef interface IUSBController IUSBController;
1447 typedef interface IUSBDevice IUSBDevice;
1448 typedef interface IUSBDeviceFilter IUSBDeviceFilter;
1449 typedef interface IHostUSBDevice IHostUSBDevice;
1450 typedef interface IHostUSBDeviceFilter IHostUSBDeviceFilter;
1451 typedef interface IUSBProxyBackend IUSBProxyBackend;
1452 typedef interface IAudioAdapter IAudioAdapter;
1453 typedef interface IVRDEServer IVRDEServer;
1454 typedef interface ISharedFolder ISharedFolder;
1455 typedef interface ISession ISession;
1456 typedef interface IStorageController IStorageController;
1457 typedef interface IPerformanceMetric IPerformanceMetric;
1458 typedef interface IPerformanceCollector IPerformanceCollector;
1459 typedef interface INATEngine INATEngine;
1460 typedef interface IExtPackPlugIn IExtPackPlugIn;
1461 typedef interface IExtPackBase IExtPackBase;
1462 typedef interface IExtPack IExtPack;
1463 typedef interface IExtPackFile IExtPackFile;
1464 typedef interface IExtPackManager IExtPackManager;
1465 typedef interface IBandwidthGroup IBandwidthGroup;
1466 typedef interface IBandwidthControl IBandwidthControl;
1467 typedef interface IVirtualBoxClient IVirtualBoxClient;
1468 typedef interface IEventSource IEventSource;
1469 typedef interface IEventListener IEventListener;
1470 typedef interface IEvent IEvent;
1471 typedef interface IReusableEvent IReusableEvent;
1472 typedef interface IMachineEvent IMachineEvent;
1473 typedef interface IMachineStateChangedEvent IMachineStateChangedEvent;
1474 typedef interface IMachineDataChangedEvent IMachineDataChangedEvent;
1475 typedef interface IMediumRegisteredEvent IMediumRegisteredEvent;
1476 typedef interface IMediumConfigChangedEvent IMediumConfigChangedEvent;
1477 typedef interface IMachineRegisteredEvent IMachineRegisteredEvent;
1478 typedef interface ISessionStateChangedEvent ISessionStateChangedEvent;
1479 typedef interface IGuestPropertyChangedEvent IGuestPropertyChangedEvent;
1480 typedef interface ISnapshotEvent ISnapshotEvent;
1481 typedef interface ISnapshotTakenEvent ISnapshotTakenEvent;
1482 typedef interface ISnapshotDeletedEvent ISnapshotDeletedEvent;
1483 typedef interface ISnapshotRestoredEvent ISnapshotRestoredEvent;
1484 typedef interface ISnapshotChangedEvent ISnapshotChangedEvent;
1485 typedef interface IMousePointerShapeChangedEvent IMousePointerShapeChangedEvent;
1486 typedef interface IMouseCapabilityChangedEvent IMouseCapabilityChangedEvent;
1487 typedef interface IKeyboardLedsChangedEvent IKeyboardLedsChangedEvent;
1488 typedef interface IStateChangedEvent IStateChangedEvent;
1489 typedef interface IAdditionsStateChangedEvent IAdditionsStateChangedEvent;
1490 typedef interface INetworkAdapterChangedEvent INetworkAdapterChangedEvent;
1491 typedef interface IAudioAdapterChangedEvent IAudioAdapterChangedEvent;
1492 typedef interface ISerialPortChangedEvent ISerialPortChangedEvent;
1493 typedef interface IParallelPortChangedEvent IParallelPortChangedEvent;
1494 typedef interface IStorageControllerChangedEvent IStorageControllerChangedEvent;
1495 typedef interface IMediumChangedEvent IMediumChangedEvent;
1496 typedef interface IClipboardModeChangedEvent IClipboardModeChangedEvent;
1497 typedef interface IClipboardFileTransferModeChangedEvent IClipboardFileTransferModeChangedEvent;
1498 typedef interface IDnDModeChangedEvent IDnDModeChangedEvent;
1499 typedef interface ICPUChangedEvent ICPUChangedEvent;
1500 typedef interface ICPUExecutionCapChangedEvent ICPUExecutionCapChangedEvent;
1501 typedef interface IGuestKeyboardEvent IGuestKeyboardEvent;
1502 typedef interface IGuestMouseEvent IGuestMouseEvent;
1503 typedef interface IGuestMultiTouchEvent IGuestMultiTouchEvent;
1504 typedef interface IGuestSessionEvent IGuestSessionEvent;
1505 typedef interface IGuestSessionStateChangedEvent IGuestSessionStateChangedEvent;
1506 typedef interface IGuestSessionRegisteredEvent IGuestSessionRegisteredEvent;
1507 typedef interface IGuestProcessEvent IGuestProcessEvent;
1508 typedef interface IGuestProcessRegisteredEvent IGuestProcessRegisteredEvent;
1509 typedef interface IGuestProcessStateChangedEvent IGuestProcessStateChangedEvent;
1510 typedef interface IGuestProcessIOEvent IGuestProcessIOEvent;
1511 typedef interface IGuestProcessInputNotifyEvent IGuestProcessInputNotifyEvent;
1512 typedef interface IGuestProcessOutputEvent IGuestProcessOutputEvent;
1513 typedef interface IGuestFileEvent IGuestFileEvent;
1514 typedef interface IGuestFileRegisteredEvent IGuestFileRegisteredEvent;
1515 typedef interface IGuestFileStateChangedEvent IGuestFileStateChangedEvent;
1516 typedef interface IGuestFileIOEvent IGuestFileIOEvent;
1517 typedef interface IGuestFileOffsetChangedEvent IGuestFileOffsetChangedEvent;
1518 typedef interface IGuestFileSizeChangedEvent IGuestFileSizeChangedEvent;
1519 typedef interface IGuestFileReadEvent IGuestFileReadEvent;
1520 typedef interface IGuestFileWriteEvent IGuestFileWriteEvent;
1521 typedef interface IVRDEServerChangedEvent IVRDEServerChangedEvent;
1522 typedef interface IVRDEServerInfoChangedEvent IVRDEServerInfoChangedEvent;
1523 typedef interface IRecordingChangedEvent IRecordingChangedEvent;
1524 typedef interface IUSBControllerChangedEvent IUSBControllerChangedEvent;
1525 typedef interface IUSBDeviceStateChangedEvent IUSBDeviceStateChangedEvent;
1526 typedef interface ISharedFolderChangedEvent ISharedFolderChangedEvent;
1527 typedef interface IRuntimeErrorEvent IRuntimeErrorEvent;
1528 typedef interface IEventSourceChangedEvent IEventSourceChangedEvent;
1529 typedef interface IExtraDataChangedEvent IExtraDataChangedEvent;
1530 typedef interface IVetoEvent IVetoEvent;
1531 typedef interface IExtraDataCanChangeEvent IExtraDataCanChangeEvent;
1532 typedef interface ICanShowWindowEvent ICanShowWindowEvent;
1533 typedef interface IShowWindowEvent IShowWindowEvent;
1534 typedef interface INATRedirectEvent INATRedirectEvent;
1535 typedef interface IHostPCIDevicePlugEvent IHostPCIDevicePlugEvent;
1536 typedef interface IVBoxSVCAvailabilityChangedEvent IVBoxSVCAvailabilityChangedEvent;
1537 typedef interface IBandwidthGroupChangedEvent IBandwidthGroupChangedEvent;
1538 typedef interface IGuestMonitorChangedEvent IGuestMonitorChangedEvent;
1539 typedef interface IGuestUserStateChangedEvent IGuestUserStateChangedEvent;
1540 typedef interface IStorageDeviceChangedEvent IStorageDeviceChangedEvent;
1541 typedef interface INATNetworkChangedEvent INATNetworkChangedEvent;
1542 typedef interface INATNetworkStartStopEvent INATNetworkStartStopEvent;
1543 typedef interface INATNetworkAlterEvent INATNetworkAlterEvent;
1544 typedef interface INATNetworkCreationDeletionEvent INATNetworkCreationDeletionEvent;
1545 typedef interface INATNetworkSettingEvent INATNetworkSettingEvent;
1546 typedef interface INATNetworkPortForwardEvent INATNetworkPortForwardEvent;
1547 typedef interface IHostNameResolutionConfigurationChangeEvent IHostNameResolutionConfigurationChangeEvent;
1548 typedef interface IProgressEvent IProgressEvent;
1549 typedef interface IProgressPercentageChangedEvent IProgressPercentageChangedEvent;
1550 typedef interface IProgressTaskCompletedEvent IProgressTaskCompletedEvent;
1551 typedef interface ICursorPositionChangedEvent ICursorPositionChangedEvent;
1552 typedef interface IGuestAdditionsStatusChangedEvent IGuestAdditionsStatusChangedEvent;
1553 typedef interface IGuestMonitorInfoChangedEvent IGuestMonitorInfoChangedEvent;
1554 typedef interface IStringArray IStringArray;
1555 typedef interface IFormValue IFormValue;
1556 typedef interface IBooleanFormValue IBooleanFormValue;
1557 typedef interface IRangedIntegerFormValue IRangedIntegerFormValue;
1558 typedef interface IStringFormValue IStringFormValue;
1559 typedef interface IChoiceFormValue IChoiceFormValue;
1560 typedef interface IForm IForm;
1561 typedef interface IVirtualSystemDescriptionForm IVirtualSystemDescriptionForm;
1562 typedef interface ICloudNetworkGatewayInfo ICloudNetworkGatewayInfo;
1563 typedef interface ICloudClient ICloudClient;
1564 typedef interface ICloudProfile ICloudProfile;
1565 typedef interface ICloudProvider ICloudProvider;
1566 typedef interface ICloudProviderManager ICloudProviderManager;
1567 
1568 /* Start of enum SettingsVersion declaration */
1569 #   define SETTINGSVERSION_IID_STR "b4cc23c2-96f2-419d-830b-bd13c1135dfb"
1570 #   define SETTINGSVERSION_IID { \
1571     0xb4cc23c2, 0x96f2, 0x419d, \
1572     { 0x83, 0x0b, 0xbd, 0x13, 0xc1, 0x13, 0x5d, 0xfb } \
1573 }
1574 typedef enum SettingsVersion
1575 {
1576     SettingsVersion_Null = 0,
1577     SettingsVersion_v1_0 = 1,
1578     SettingsVersion_v1_1 = 2,
1579     SettingsVersion_v1_2 = 3,
1580     SettingsVersion_v1_3pre = 4,
1581     SettingsVersion_v1_3 = 5,
1582     SettingsVersion_v1_4 = 6,
1583     SettingsVersion_v1_5 = 7,
1584     SettingsVersion_v1_6 = 8,
1585     SettingsVersion_v1_7 = 9,
1586     SettingsVersion_v1_8 = 10,
1587     SettingsVersion_v1_9 = 11,
1588     SettingsVersion_v1_10 = 12,
1589     SettingsVersion_v1_11 = 13,
1590     SettingsVersion_v1_12 = 14,
1591     SettingsVersion_v1_13 = 15,
1592     SettingsVersion_v1_14 = 16,
1593     SettingsVersion_v1_15 = 17,
1594     SettingsVersion_v1_16 = 18,
1595     SettingsVersion_v1_17 = 19,
1596     SettingsVersion_v1_18 = 20,
1597     SettingsVersion_Future = 99999
1598 } SettingsVersion;
1599 /* End of enum SettingsVersion declaration */
1600 #   define SettingsVersion_T PRUint32
1601 
1602 
1603 /* Start of enum AccessMode declaration */
1604 #   define ACCESSMODE_IID_STR "1da0007c-ddf7-4be8-bcac-d84a1558785f"
1605 #   define ACCESSMODE_IID { \
1606     0x1da0007c, 0xddf7, 0x4be8, \
1607     { 0xbc, 0xac, 0xd8, 0x4a, 0x15, 0x58, 0x78, 0x5f } \
1608 }
1609 typedef enum AccessMode
1610 {
1611     AccessMode_ReadOnly = 1,
1612     AccessMode_ReadWrite = 2
1613 } AccessMode;
1614 /* End of enum AccessMode declaration */
1615 #   define AccessMode_T PRUint32
1616 
1617 
1618 /* Start of enum MachineState declaration */
1619 #   define MACHINESTATE_IID_STR "00bc01b5-00a4-48db-000a-9061008357aa"
1620 #   define MACHINESTATE_IID { \
1621     0x00bc01b5, 0x00a4, 0x48db, \
1622     { 0x00, 0x0a, 0x90, 0x61, 0x00, 0x83, 0x57, 0xaa } \
1623 }
1624 typedef enum MachineState
1625 {
1626     MachineState_Null = 0,
1627     MachineState_PoweredOff = 1,
1628     MachineState_Saved = 2,
1629     MachineState_Teleported = 3,
1630     MachineState_Aborted = 4,
1631     MachineState_Running = 5,
1632     MachineState_Paused = 6,
1633     MachineState_Stuck = 7,
1634     MachineState_Teleporting = 8,
1635     MachineState_LiveSnapshotting = 9,
1636     MachineState_Starting = 10,
1637     MachineState_Stopping = 11,
1638     MachineState_Saving = 12,
1639     MachineState_Restoring = 13,
1640     MachineState_TeleportingPausedVM = 14,
1641     MachineState_TeleportingIn = 15,
1642     MachineState_DeletingSnapshotOnline = 16,
1643     MachineState_DeletingSnapshotPaused = 17,
1644     MachineState_OnlineSnapshotting = 18,
1645     MachineState_RestoringSnapshot = 19,
1646     MachineState_DeletingSnapshot = 20,
1647     MachineState_SettingUp = 21,
1648     MachineState_Snapshotting = 22,
1649     MachineState_FirstOnline = 5,
1650     MachineState_LastOnline = 18,
1651     MachineState_FirstTransient = 8,
1652     MachineState_LastTransient = 22
1653 } MachineState;
1654 /* End of enum MachineState declaration */
1655 #   define MachineState_T PRUint32
1656 
1657 
1658 /* Start of enum SessionState declaration */
1659 #   define SESSIONSTATE_IID_STR "cf2700c0-ea4b-47ae-9725-7810114b94d8"
1660 #   define SESSIONSTATE_IID { \
1661     0xcf2700c0, 0xea4b, 0x47ae, \
1662     { 0x97, 0x25, 0x78, 0x10, 0x11, 0x4b, 0x94, 0xd8 } \
1663 }
1664 typedef enum SessionState
1665 {
1666     SessionState_Null = 0,
1667     SessionState_Unlocked = 1,
1668     SessionState_Locked = 2,
1669     SessionState_Spawning = 3,
1670     SessionState_Unlocking = 4
1671 } SessionState;
1672 /* End of enum SessionState declaration */
1673 #   define SessionState_T PRUint32
1674 
1675 
1676 /* Start of enum CPUPropertyType declaration */
1677 #   define CPUPROPERTYTYPE_IID_STR "3fcfe589-ca66-468f-e313-656f9d0b2eb6"
1678 #   define CPUPROPERTYTYPE_IID { \
1679     0x3fcfe589, 0xca66, 0x468f, \
1680     { 0xe3, 0x13, 0x65, 0x6f, 0x9d, 0x0b, 0x2e, 0xb6 } \
1681 }
1682 typedef enum CPUPropertyType
1683 {
1684     CPUPropertyType_Null = 0,
1685     CPUPropertyType_PAE = 1,
1686     CPUPropertyType_LongMode = 2,
1687     CPUPropertyType_TripleFaultReset = 3,
1688     CPUPropertyType_APIC = 4,
1689     CPUPropertyType_X2APIC = 5,
1690     CPUPropertyType_IBPBOnVMExit = 6,
1691     CPUPropertyType_IBPBOnVMEntry = 7,
1692     CPUPropertyType_HWVirt = 8,
1693     CPUPropertyType_SpecCtrl = 9,
1694     CPUPropertyType_SpecCtrlByHost = 10,
1695     CPUPropertyType_L1DFlushOnEMTScheduling = 11,
1696     CPUPropertyType_L1DFlushOnVMEntry = 12,
1697     CPUPropertyType_MDSClearOnEMTScheduling = 13,
1698     CPUPropertyType_MDSClearOnVMEntry = 14
1699 } CPUPropertyType;
1700 /* End of enum CPUPropertyType declaration */
1701 #   define CPUPropertyType_T PRUint32
1702 
1703 
1704 /* Start of enum HWVirtExPropertyType declaration */
1705 #   define HWVIRTEXPROPERTYTYPE_IID_STR "bc05551e-e288-467e-1ea3-233de08e4480"
1706 #   define HWVIRTEXPROPERTYTYPE_IID { \
1707     0xbc05551e, 0xe288, 0x467e, \
1708     { 0x1e, 0xa3, 0x23, 0x3d, 0xe0, 0x8e, 0x44, 0x80 } \
1709 }
1710 typedef enum HWVirtExPropertyType
1711 {
1712     HWVirtExPropertyType_Null = 0,
1713     HWVirtExPropertyType_Enabled = 1,
1714     HWVirtExPropertyType_VPID = 2,
1715     HWVirtExPropertyType_NestedPaging = 3,
1716     HWVirtExPropertyType_UnrestrictedExecution = 4,
1717     HWVirtExPropertyType_LargePages = 5,
1718     HWVirtExPropertyType_Force = 6,
1719     HWVirtExPropertyType_UseNativeApi = 7
1720 } HWVirtExPropertyType;
1721 /* End of enum HWVirtExPropertyType declaration */
1722 #   define HWVirtExPropertyType_T PRUint32
1723 
1724 
1725 /* Start of enum ParavirtProvider declaration */
1726 #   define PARAVIRTPROVIDER_IID_STR "696453ec-3742-4a05-bead-658ccbf2c944"
1727 #   define PARAVIRTPROVIDER_IID { \
1728     0x696453ec, 0x3742, 0x4a05, \
1729     { 0xbe, 0xad, 0x65, 0x8c, 0xcb, 0xf2, 0xc9, 0x44 } \
1730 }
1731 typedef enum ParavirtProvider
1732 {
1733     ParavirtProvider_None = 0,
1734     ParavirtProvider_Default = 1,
1735     ParavirtProvider_Legacy = 2,
1736     ParavirtProvider_Minimal = 3,
1737     ParavirtProvider_HyperV = 4,
1738     ParavirtProvider_KVM = 5
1739 } ParavirtProvider;
1740 /* End of enum ParavirtProvider declaration */
1741 #   define ParavirtProvider_T PRUint32
1742 
1743 
1744 /* Start of enum LockType declaration */
1745 #   define LOCKTYPE_IID_STR "678aaf14-2815-4c3e-b20a-e86ed0216498"
1746 #   define LOCKTYPE_IID { \
1747     0x678aaf14, 0x2815, 0x4c3e, \
1748     { 0xb2, 0x0a, 0xe8, 0x6e, 0xd0, 0x21, 0x64, 0x98 } \
1749 }
1750 typedef enum LockType
1751 {
1752     LockType_Null = 0,
1753     LockType_Shared = 1,
1754     LockType_Write = 2,
1755     LockType_VM = 3
1756 } LockType;
1757 /* End of enum LockType declaration */
1758 #   define LockType_T PRUint32
1759 
1760 
1761 /* Start of enum SessionType declaration */
1762 #   define SESSIONTYPE_IID_STR "A13C02CB-0C2C-421E-8317-AC0E8AAA153A"
1763 #   define SESSIONTYPE_IID { \
1764     0xA13C02CB, 0x0C2C, 0x421E, \
1765     { 0x83, 0x17, 0xAC, 0x0E, 0x8A, 0xAA, 0x15, 0x3A } \
1766 }
1767 typedef enum SessionType
1768 {
1769     SessionType_Null = 0,
1770     SessionType_WriteLock = 1,
1771     SessionType_Remote = 2,
1772     SessionType_Shared = 3
1773 } SessionType;
1774 /* End of enum SessionType declaration */
1775 #   define SessionType_T PRUint32
1776 
1777 
1778 /* Start of enum DeviceType declaration */
1779 #   define DEVICETYPE_IID_STR "cb977be1-d1fb-41f8-ad7e-951736c6cb3e"
1780 #   define DEVICETYPE_IID { \
1781     0xcb977be1, 0xd1fb, 0x41f8, \
1782     { 0xad, 0x7e, 0x95, 0x17, 0x36, 0xc6, 0xcb, 0x3e } \
1783 }
1784 typedef enum DeviceType
1785 {
1786     DeviceType_Null = 0,
1787     DeviceType_Floppy = 1,
1788     DeviceType_DVD = 2,
1789     DeviceType_HardDisk = 3,
1790     DeviceType_Network = 4,
1791     DeviceType_USB = 5,
1792     DeviceType_SharedFolder = 6,
1793     DeviceType_Graphics3D = 7
1794 } DeviceType;
1795 /* End of enum DeviceType declaration */
1796 #   define DeviceType_T PRUint32
1797 
1798 
1799 /* Start of enum DeviceActivity declaration */
1800 #   define DEVICEACTIVITY_IID_STR "6FC8AEAA-130A-4eb5-8954-3F921422D707"
1801 #   define DEVICEACTIVITY_IID { \
1802     0x6FC8AEAA, 0x130A, 0x4eb5, \
1803     { 0x89, 0x54, 0x3F, 0x92, 0x14, 0x22, 0xD7, 0x07 } \
1804 }
1805 typedef enum DeviceActivity
1806 {
1807     DeviceActivity_Null = 0,
1808     DeviceActivity_Idle = 1,
1809     DeviceActivity_Reading = 2,
1810     DeviceActivity_Writing = 3
1811 } DeviceActivity;
1812 /* End of enum DeviceActivity declaration */
1813 #   define DeviceActivity_T PRUint32
1814 
1815 
1816 /* Start of enum ClipboardMode declaration */
1817 #   define CLIPBOARDMODE_IID_STR "33364716-4008-4701-8f14-be0fa3d62950"
1818 #   define CLIPBOARDMODE_IID { \
1819     0x33364716, 0x4008, 0x4701, \
1820     { 0x8f, 0x14, 0xbe, 0x0f, 0xa3, 0xd6, 0x29, 0x50 } \
1821 }
1822 typedef enum ClipboardMode
1823 {
1824     ClipboardMode_Disabled = 0,
1825     ClipboardMode_HostToGuest = 1,
1826     ClipboardMode_GuestToHost = 2,
1827     ClipboardMode_Bidirectional = 3
1828 } ClipboardMode;
1829 /* End of enum ClipboardMode declaration */
1830 #   define ClipboardMode_T PRUint32
1831 
1832 
1833 /* Start of enum DnDMode declaration */
1834 #   define DNDMODE_IID_STR "07af8800-f936-4b33-9172-cd400e83c148"
1835 #   define DNDMODE_IID { \
1836     0x07af8800, 0xf936, 0x4b33, \
1837     { 0x91, 0x72, 0xcd, 0x40, 0x0e, 0x83, 0xc1, 0x48 } \
1838 }
1839 typedef enum DnDMode
1840 {
1841     DnDMode_Disabled = 0,
1842     DnDMode_HostToGuest = 1,
1843     DnDMode_GuestToHost = 2,
1844     DnDMode_Bidirectional = 3
1845 } DnDMode;
1846 /* End of enum DnDMode declaration */
1847 #   define DnDMode_T PRUint32
1848 
1849 
1850 /* Start of enum Scope declaration */
1851 #   define SCOPE_IID_STR "7c91096e-499e-4eca-9f9b-9001438d7855"
1852 #   define SCOPE_IID { \
1853     0x7c91096e, 0x499e, 0x4eca, \
1854     { 0x9f, 0x9b, 0x90, 0x01, 0x43, 0x8d, 0x78, 0x55 } \
1855 }
1856 typedef enum Scope
1857 {
1858     Scope_Global = 0,
1859     Scope_Machine = 1,
1860     Scope_Session = 2
1861 } Scope;
1862 /* End of enum Scope declaration */
1863 #   define Scope_T PRUint32
1864 
1865 
1866 /* Start of enum BIOSBootMenuMode declaration */
1867 #   define BIOSBOOTMENUMODE_IID_STR "ae4fb9f7-29d2-45b4-b2c7-d579603135d5"
1868 #   define BIOSBOOTMENUMODE_IID { \
1869     0xae4fb9f7, 0x29d2, 0x45b4, \
1870     { 0xb2, 0xc7, 0xd5, 0x79, 0x60, 0x31, 0x35, 0xd5 } \
1871 }
1872 typedef enum BIOSBootMenuMode
1873 {
1874     BIOSBootMenuMode_Disabled = 0,
1875     BIOSBootMenuMode_MenuOnly = 1,
1876     BIOSBootMenuMode_MessageAndMenu = 2
1877 } BIOSBootMenuMode;
1878 /* End of enum BIOSBootMenuMode declaration */
1879 #   define BIOSBootMenuMode_T PRUint32
1880 
1881 
1882 /* Start of enum APICMode declaration */
1883 #   define APICMODE_IID_STR "c6884ba5-3cc4-4a92-a7f6-4410f9fd894e"
1884 #   define APICMODE_IID { \
1885     0xc6884ba5, 0x3cc4, 0x4a92, \
1886     { 0xa7, 0xf6, 0x44, 0x10, 0xf9, 0xfd, 0x89, 0x4e } \
1887 }
1888 typedef enum APICMode
1889 {
1890     APICMode_Disabled = 0,
1891     APICMode_APIC = 1,
1892     APICMode_X2APIC = 2
1893 } APICMode;
1894 /* End of enum APICMode declaration */
1895 #   define APICMode_T PRUint32
1896 
1897 
1898 /* Start of enum ProcessorFeature declaration */
1899 #   define PROCESSORFEATURE_IID_STR "fed0e385-dc5a-4cef-b9e2-66bafb6af6aa"
1900 #   define PROCESSORFEATURE_IID { \
1901     0xfed0e385, 0xdc5a, 0x4cef, \
1902     { 0xb9, 0xe2, 0x66, 0xba, 0xfb, 0x6a, 0xf6, 0xaa } \
1903 }
1904 typedef enum ProcessorFeature
1905 {
1906     ProcessorFeature_HWVirtEx = 0,
1907     ProcessorFeature_PAE = 1,
1908     ProcessorFeature_LongMode = 2,
1909     ProcessorFeature_NestedPaging = 3,
1910     ProcessorFeature_UnrestrictedGuest = 4,
1911     ProcessorFeature_NestedHWVirt = 5
1912 } ProcessorFeature;
1913 /* End of enum ProcessorFeature declaration */
1914 #   define ProcessorFeature_T PRUint32
1915 
1916 
1917 /* Start of enum FirmwareType declaration */
1918 #   define FIRMWARETYPE_IID_STR "b903f264-c230-483e-ac74-2b37ce60d371"
1919 #   define FIRMWARETYPE_IID { \
1920     0xb903f264, 0xc230, 0x483e, \
1921     { 0xac, 0x74, 0x2b, 0x37, 0xce, 0x60, 0xd3, 0x71 } \
1922 }
1923 typedef enum FirmwareType
1924 {
1925     FirmwareType_BIOS = 1,
1926     FirmwareType_EFI = 2,
1927     FirmwareType_EFI32 = 3,
1928     FirmwareType_EFI64 = 4,
1929     FirmwareType_EFIDUAL = 5
1930 } FirmwareType;
1931 /* End of enum FirmwareType declaration */
1932 #   define FirmwareType_T PRUint32
1933 
1934 
1935 /* Start of enum PointingHIDType declaration */
1936 #   define POINTINGHIDTYPE_IID_STR "19964e93-0050-45c4-9382-a7bccc53e666"
1937 #   define POINTINGHIDTYPE_IID { \
1938     0x19964e93, 0x0050, 0x45c4, \
1939     { 0x93, 0x82, 0xa7, 0xbc, 0xcc, 0x53, 0xe6, 0x66 } \
1940 }
1941 typedef enum PointingHIDType
1942 {
1943     PointingHIDType_None = 1,
1944     PointingHIDType_PS2Mouse = 2,
1945     PointingHIDType_USBMouse = 3,
1946     PointingHIDType_USBTablet = 4,
1947     PointingHIDType_ComboMouse = 5,
1948     PointingHIDType_USBMultiTouch = 6
1949 } PointingHIDType;
1950 /* End of enum PointingHIDType declaration */
1951 #   define PointingHIDType_T PRUint32
1952 
1953 
1954 /* Start of enum KeyboardHIDType declaration */
1955 #   define KEYBOARDHIDTYPE_IID_STR "383e43d7-5c7c-4ec8-9cb8-eda1bccd6699"
1956 #   define KEYBOARDHIDTYPE_IID { \
1957     0x383e43d7, 0x5c7c, 0x4ec8, \
1958     { 0x9c, 0xb8, 0xed, 0xa1, 0xbc, 0xcd, 0x66, 0x99 } \
1959 }
1960 typedef enum KeyboardHIDType
1961 {
1962     KeyboardHIDType_None = 1,
1963     KeyboardHIDType_PS2Keyboard = 2,
1964     KeyboardHIDType_USBKeyboard = 3,
1965     KeyboardHIDType_ComboKeyboard = 4
1966 } KeyboardHIDType;
1967 /* End of enum KeyboardHIDType declaration */
1968 #   define KeyboardHIDType_T PRUint32
1969 
1970 
1971 /* Start of enum BitmapFormat declaration */
1972 #   define BITMAPFORMAT_IID_STR "afb2bf39-8b1e-4f9f-8948-d1b887f83eb0"
1973 #   define BITMAPFORMAT_IID { \
1974     0xafb2bf39, 0x8b1e, 0x4f9f, \
1975     { 0x89, 0x48, 0xd1, 0xb8, 0x87, 0xf8, 0x3e, 0xb0 } \
1976 }
1977 typedef enum BitmapFormat
1978 {
1979     BitmapFormat_Opaque = 0,
1980     BitmapFormat_BGR = 0x20524742,
1981     BitmapFormat_BGR0 = 0x30524742,
1982     BitmapFormat_BGRA = 0x41524742,
1983     BitmapFormat_RGBA = 0x41424752,
1984     BitmapFormat_PNG = 0x20474E50,
1985     BitmapFormat_JPEG = 0x4745504A
1986 } BitmapFormat;
1987 /* End of enum BitmapFormat declaration */
1988 #   define BitmapFormat_T PRUint32
1989 
1990 
1991 /* Start of enum DHCPOption declaration */
1992 #   define DHCPOPTION_IID_STR "00f5b10f-0021-4513-00f7-5bf4000982bf"
1993 #   define DHCPOPTION_IID { \
1994     0x00f5b10f, 0x0021, 0x4513, \
1995     { 0x00, 0xf7, 0x5b, 0xf4, 0x00, 0x09, 0x82, 0xbf } \
1996 }
1997 typedef enum DHCPOption
1998 {
1999     DHCPOption_SubnetMask = 1,
2000     DHCPOption_TimeOffset = 2,
2001     DHCPOption_Routers = 3,
2002     DHCPOption_TimeServers = 4,
2003     DHCPOption_NameServers = 5,
2004     DHCPOption_DomainNameServers = 6,
2005     DHCPOption_LogServers = 7,
2006     DHCPOption_CookieServers = 8,
2007     DHCPOption_LPRServers = 9,
2008     DHCPOption_ImpressServers = 10,
2009     DHCPOption_ResourseLocationServers = 11,
2010     DHCPOption_HostName = 12,
2011     DHCPOption_BootFileSize = 13,
2012     DHCPOption_MeritDumpFile = 14,
2013     DHCPOption_DomainName = 15,
2014     DHCPOption_SwapServer = 16,
2015     DHCPOption_RootPath = 17,
2016     DHCPOption_ExtensionPath = 18,
2017     DHCPOption_IPForwarding = 19,
2018     DHCPOption_OptNonLocalSourceRouting = 20,
2019     DHCPOption_PolicyFilter = 21,
2020     DHCPOption_MaxDgramReassemblySize = 22,
2021     DHCPOption_DefaultIPTTL = 23,
2022     DHCPOption_PathMTUAgingTimeout = 24,
2023     DHCPOption_PathMTUPlateauTable = 25,
2024     DHCPOption_InterfaceMTU = 26,
2025     DHCPOption_AllSubnetsAreLocal = 27,
2026     DHCPOption_BroadcastAddress = 28,
2027     DHCPOption_PerformMaskDiscovery = 29,
2028     DHCPOption_MaskSupplier = 30,
2029     DHCPOption_PerformRouterDiscovery = 31,
2030     DHCPOption_RouterSolicitationAddress = 32,
2031     DHCPOption_StaticRoute = 33,
2032     DHCPOption_TrailerEncapsulation = 34,
2033     DHCPOption_ARPCacheTimeout = 35,
2034     DHCPOption_EthernetEncapsulation = 36,
2035     DHCPOption_TCPDefaultTTL = 37,
2036     DHCPOption_TCPKeepaliveInterval = 38,
2037     DHCPOption_TCPKeepaliveGarbage = 39,
2038     DHCPOption_NISDomain = 40,
2039     DHCPOption_NISServers = 41,
2040     DHCPOption_NTPServers = 42,
2041     DHCPOption_VendorSpecificInfo = 43,
2042     DHCPOption_NetBIOSNameServers = 44,
2043     DHCPOption_NetBIOSDatagramServers = 45,
2044     DHCPOption_NetBIOSNodeType = 46,
2045     DHCPOption_NetBIOSScope = 47,
2046     DHCPOption_XWindowsFontServers = 48,
2047     DHCPOption_XWindowsDisplayManager = 49,
2048     DHCPOption_NetWareIPDomainName = 62,
2049     DHCPOption_NetWareIPInformation = 63,
2050     DHCPOption_NISPlusDomain = 64,
2051     DHCPOption_NISPlusServers = 65,
2052     DHCPOption_TFTPServerName = 66,
2053     DHCPOption_BootfileName = 67,
2054     DHCPOption_MobileIPHomeAgents = 68,
2055     DHCPOption_SMTPServers = 69,
2056     DHCPOption_POP3Servers = 70,
2057     DHCPOption_NNTPServers = 71,
2058     DHCPOption_WWWServers = 72,
2059     DHCPOption_FingerServers = 73,
2060     DHCPOption_IRCServers = 74,
2061     DHCPOption_StreetTalkServers = 75,
2062     DHCPOption_STDAServers = 76,
2063     DHCPOption_SLPDirectoryAgent = 78,
2064     DHCPOption_SLPServiceScope = 79,
2065     DHCPOption_DomainSearch = 119
2066 } DHCPOption;
2067 /* End of enum DHCPOption declaration */
2068 #   define DHCPOption_T PRUint32
2069 
2070 
2071 /* Start of enum DHCPOptionEncoding declaration */
2072 #   define DHCPOPTIONENCODING_IID_STR "84b6d460-2838-4682-c0d6-ef5b573ef28a"
2073 #   define DHCPOPTIONENCODING_IID { \
2074     0x84b6d460, 0x2838, 0x4682, \
2075     { 0xc0, 0xd6, 0xef, 0x5b, 0x57, 0x3e, 0xf2, 0x8a } \
2076 }
2077 typedef enum DHCPOptionEncoding
2078 {
2079     DHCPOptionEncoding_Normal = 0,
2080     DHCPOptionEncoding_Hex = 1
2081 } DHCPOptionEncoding;
2082 /* End of enum DHCPOptionEncoding declaration */
2083 #   define DHCPOptionEncoding_T PRUint32
2084 
2085 
2086 /* Start of enum DHCPConfigScope declaration */
2087 #   define DHCPCONFIGSCOPE_IID_STR "469c42e4-b9ec-43f2-bdcb-9e9d1eb434ae"
2088 #   define DHCPCONFIGSCOPE_IID { \
2089     0x469c42e4, 0xb9ec, 0x43f2, \
2090     { 0xbd, 0xcb, 0x9e, 0x9d, 0x1e, 0xb4, 0x34, 0xae } \
2091 }
2092 typedef enum DHCPConfigScope
2093 {
2094     DHCPConfigScope_Global = 0,
2095     DHCPConfigScope_Group = 1,
2096     DHCPConfigScope_MachineNIC = 2,
2097     DHCPConfigScope_MAC = 3
2098 } DHCPConfigScope;
2099 /* End of enum DHCPConfigScope declaration */
2100 #   define DHCPConfigScope_T PRUint32
2101 
2102 
2103 /* Start of enum DHCPGroupConditionType declaration */
2104 #   define DHCPGROUPCONDITIONTYPE_IID_STR "2cb9280f-ada2-4194-dee8-bfb8ad77119d"
2105 #   define DHCPGROUPCONDITIONTYPE_IID { \
2106     0x2cb9280f, 0xada2, 0x4194, \
2107     { 0xde, 0xe8, 0xbf, 0xb8, 0xad, 0x77, 0x11, 0x9d } \
2108 }
2109 typedef enum DHCPGroupConditionType
2110 {
2111     DHCPGroupConditionType_MAC = 0,
2112     DHCPGroupConditionType_MACWildcard = 1,
2113     DHCPGroupConditionType_vendorClassID = 2,
2114     DHCPGroupConditionType_vendorClassIDWildcard = 3,
2115     DHCPGroupConditionType_userClassID = 4,
2116     DHCPGroupConditionType_userClassIDWildcard = 5
2117 } DHCPGroupConditionType;
2118 /* End of enum DHCPGroupConditionType declaration */
2119 #   define DHCPGroupConditionType_T PRUint32
2120 
2121 
2122 /* Start of enum VFSType declaration */
2123 #   define VFSTYPE_IID_STR "813999ba-b949-48a8-9230-aadc6285e2f2"
2124 #   define VFSTYPE_IID { \
2125     0x813999ba, 0xb949, 0x48a8, \
2126     { 0x92, 0x30, 0xaa, 0xdc, 0x62, 0x85, 0xe2, 0xf2 } \
2127 }
2128 typedef enum VFSType
2129 {
2130     VFSType_File = 1,
2131     VFSType_Cloud = 2,
2132     VFSType_S3 = 3,
2133     VFSType_WebDav = 4
2134 } VFSType;
2135 /* End of enum VFSType declaration */
2136 #   define VFSType_T PRUint32
2137 
2138 
2139 /* Start of enum ImportOptions declaration */
2140 #   define IMPORTOPTIONS_IID_STR "0a981523-3b20-4004-8ee3-dfd322202ace"
2141 #   define IMPORTOPTIONS_IID { \
2142     0x0a981523, 0x3b20, 0x4004, \
2143     { 0x8e, 0xe3, 0xdf, 0xd3, 0x22, 0x20, 0x2a, 0xce } \
2144 }
2145 typedef enum ImportOptions
2146 {
2147     ImportOptions_KeepAllMACs = 1,
2148     ImportOptions_KeepNATMACs = 2,
2149     ImportOptions_ImportToVDI = 3
2150 } ImportOptions;
2151 /* End of enum ImportOptions declaration */
2152 #   define ImportOptions_T PRUint32
2153 
2154 
2155 /* Start of enum ExportOptions declaration */
2156 #   define EXPORTOPTIONS_IID_STR "8f45eb08-fd34-41ee-af95-a880bdee5554"
2157 #   define EXPORTOPTIONS_IID { \
2158     0x8f45eb08, 0xfd34, 0x41ee, \
2159     { 0xaf, 0x95, 0xa8, 0x80, 0xbd, 0xee, 0x55, 0x54 } \
2160 }
2161 typedef enum ExportOptions
2162 {
2163     ExportOptions_CreateManifest = 1,
2164     ExportOptions_ExportDVDImages = 2,
2165     ExportOptions_StripAllMACs = 3,
2166     ExportOptions_StripAllNonNATMACs = 4
2167 } ExportOptions;
2168 /* End of enum ExportOptions declaration */
2169 #   define ExportOptions_T PRUint32
2170 
2171 
2172 /* Start of enum CertificateVersion declaration */
2173 #   define CERTIFICATEVERSION_IID_STR "9e232a99-51d0-4dbd-96a0-ffac4bc3e2a8"
2174 #   define CERTIFICATEVERSION_IID { \
2175     0x9e232a99, 0x51d0, 0x4dbd, \
2176     { 0x96, 0xa0, 0xff, 0xac, 0x4b, 0xc3, 0xe2, 0xa8 } \
2177 }
2178 typedef enum CertificateVersion
2179 {
2180     CertificateVersion_V1 = 1,
2181     CertificateVersion_V2 = 2,
2182     CertificateVersion_V3 = 3,
2183     CertificateVersion_Unknown = 99
2184 } CertificateVersion;
2185 /* End of enum CertificateVersion declaration */
2186 #   define CertificateVersion_T PRUint32
2187 
2188 
2189 /* Start of enum VirtualSystemDescriptionType declaration */
2190 #   define VIRTUALSYSTEMDESCRIPTIONTYPE_IID_STR "9078595f-74cf-4454-8787-34a8f72beed5"
2191 #   define VIRTUALSYSTEMDESCRIPTIONTYPE_IID { \
2192     0x9078595f, 0x74cf, 0x4454, \
2193     { 0x87, 0x87, 0x34, 0xa8, 0xf7, 0x2b, 0xee, 0xd5 } \
2194 }
2195 typedef enum VirtualSystemDescriptionType
2196 {
2197     VirtualSystemDescriptionType_Ignore = 1,
2198     VirtualSystemDescriptionType_OS = 2,
2199     VirtualSystemDescriptionType_Name = 3,
2200     VirtualSystemDescriptionType_Product = 4,
2201     VirtualSystemDescriptionType_Vendor = 5,
2202     VirtualSystemDescriptionType_Version = 6,
2203     VirtualSystemDescriptionType_ProductUrl = 7,
2204     VirtualSystemDescriptionType_VendorUrl = 8,
2205     VirtualSystemDescriptionType_Description = 9,
2206     VirtualSystemDescriptionType_License = 10,
2207     VirtualSystemDescriptionType_Miscellaneous = 11,
2208     VirtualSystemDescriptionType_CPU = 12,
2209     VirtualSystemDescriptionType_Memory = 13,
2210     VirtualSystemDescriptionType_HardDiskControllerIDE = 14,
2211     VirtualSystemDescriptionType_HardDiskControllerSATA = 15,
2212     VirtualSystemDescriptionType_HardDiskControllerSCSI = 16,
2213     VirtualSystemDescriptionType_HardDiskControllerSAS = 17,
2214     VirtualSystemDescriptionType_HardDiskImage = 18,
2215     VirtualSystemDescriptionType_Floppy = 19,
2216     VirtualSystemDescriptionType_CDROM = 20,
2217     VirtualSystemDescriptionType_NetworkAdapter = 21,
2218     VirtualSystemDescriptionType_USBController = 22,
2219     VirtualSystemDescriptionType_SoundCard = 23,
2220     VirtualSystemDescriptionType_SettingsFile = 24,
2221     VirtualSystemDescriptionType_BaseFolder = 25,
2222     VirtualSystemDescriptionType_PrimaryGroup = 26,
2223     VirtualSystemDescriptionType_CloudInstanceShape = 27,
2224     VirtualSystemDescriptionType_CloudDomain = 28,
2225     VirtualSystemDescriptionType_CloudBootDiskSize = 29,
2226     VirtualSystemDescriptionType_CloudBucket = 30,
2227     VirtualSystemDescriptionType_CloudOCIVCN = 31,
2228     VirtualSystemDescriptionType_CloudPublicIP = 32,
2229     VirtualSystemDescriptionType_CloudProfileName = 33,
2230     VirtualSystemDescriptionType_CloudOCISubnet = 34,
2231     VirtualSystemDescriptionType_CloudKeepObject = 35,
2232     VirtualSystemDescriptionType_CloudLaunchInstance = 36,
2233     VirtualSystemDescriptionType_CloudInstanceId = 37,
2234     VirtualSystemDescriptionType_CloudImageId = 38,
2235     VirtualSystemDescriptionType_CloudInstanceState = 39,
2236     VirtualSystemDescriptionType_CloudImageState = 40,
2237     VirtualSystemDescriptionType_CloudInstanceDisplayName = 41,
2238     VirtualSystemDescriptionType_CloudImageDisplayName = 42,
2239     VirtualSystemDescriptionType_CloudOCILaunchMode = 43,
2240     VirtualSystemDescriptionType_CloudPrivateIP = 44,
2241     VirtualSystemDescriptionType_CloudBootVolumeId = 45,
2242     VirtualSystemDescriptionType_CloudOCIVCNCompartment = 46,
2243     VirtualSystemDescriptionType_CloudOCISubnetCompartment = 47,
2244     VirtualSystemDescriptionType_CloudPublicSSHKey = 48,
2245     VirtualSystemDescriptionType_BootingFirmware = 49
2246 } VirtualSystemDescriptionType;
2247 /* End of enum VirtualSystemDescriptionType declaration */
2248 #   define VirtualSystemDescriptionType_T PRUint32
2249 
2250 
2251 /* Start of enum VirtualSystemDescriptionValueType declaration */
2252 #   define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID_STR "56d9403f-3425-4118-9919-36f2a9b8c77c"
2253 #   define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID { \
2254     0x56d9403f, 0x3425, 0x4118, \
2255     { 0x99, 0x19, 0x36, 0xf2, 0xa9, 0xb8, 0xc7, 0x7c } \
2256 }
2257 typedef enum VirtualSystemDescriptionValueType
2258 {
2259     VirtualSystemDescriptionValueType_Reference = 1,
2260     VirtualSystemDescriptionValueType_Original = 2,
2261     VirtualSystemDescriptionValueType_Auto = 3,
2262     VirtualSystemDescriptionValueType_ExtraConfig = 4
2263 } VirtualSystemDescriptionValueType;
2264 /* End of enum VirtualSystemDescriptionValueType declaration */
2265 #   define VirtualSystemDescriptionValueType_T PRUint32
2266 
2267 
2268 /* Start of enum RecordingDestination declaration */
2269 #   define RECORDINGDESTINATION_IID_STR "11E3F06B-DEC1-48B9-BDC4-1E618D72893C"
2270 #   define RECORDINGDESTINATION_IID { \
2271     0x11E3F06B, 0xDEC1, 0x48B9, \
2272     { 0xBD, 0xC4, 0x1E, 0x61, 0x8D, 0x72, 0x89, 0x3C } \
2273 }
2274 typedef enum RecordingDestination
2275 {
2276     RecordingDestination_None = 0,
2277     RecordingDestination_File = 1
2278 } RecordingDestination;
2279 /* End of enum RecordingDestination declaration */
2280 #   define RecordingDestination_T PRUint32
2281 
2282 
2283 /* Start of enum RecordingFeature declaration */
2284 #   define RECORDINGFEATURE_IID_STR "A7DDC6A5-DAA8-4485-B860-E9F2E98A7794"
2285 #   define RECORDINGFEATURE_IID { \
2286     0xA7DDC6A5, 0xDAA8, 0x4485, \
2287     { 0xB8, 0x60, 0xE9, 0xF2, 0xE9, 0x8A, 0x77, 0x94 } \
2288 }
2289 typedef enum RecordingFeature
2290 {
2291     RecordingFeature_None = 0,
2292     RecordingFeature_Video = 1,
2293     RecordingFeature_Audio = 2
2294 } RecordingFeature;
2295 /* End of enum RecordingFeature declaration */
2296 #   define RecordingFeature_T PRUint32
2297 
2298 
2299 /* Start of enum RecordingAudioCodec declaration */
2300 #   define RECORDINGAUDIOCODEC_IID_STR "0AEFF775-053A-42F8-9C00-E445107DBED8"
2301 #   define RECORDINGAUDIOCODEC_IID { \
2302     0x0AEFF775, 0x053A, 0x42F8, \
2303     { 0x9C, 0x00, 0xE4, 0x45, 0x10, 0x7D, 0xBE, 0xD8 } \
2304 }
2305 typedef enum RecordingAudioCodec
2306 {
2307     RecordingAudioCodec_None = 0,
2308     RecordingAudioCodec_WavPCM = 1,
2309     RecordingAudioCodec_Opus = 2
2310 } RecordingAudioCodec;
2311 /* End of enum RecordingAudioCodec declaration */
2312 #   define RecordingAudioCodec_T PRUint32
2313 
2314 
2315 /* Start of enum RecordingVideoCodec declaration */
2316 #   define RECORDINGVIDEOCODEC_IID_STR "663BFC39-AFFF-49FA-98DD-322A857E877B"
2317 #   define RECORDINGVIDEOCODEC_IID { \
2318     0x663BFC39, 0xAFFF, 0x49FA, \
2319     { 0x98, 0xDD, 0x32, 0x2A, 0x85, 0x7E, 0x87, 0x7B } \
2320 }
2321 typedef enum RecordingVideoCodec
2322 {
2323     RecordingVideoCodec_None = 0,
2324     RecordingVideoCodec_VP8 = 1,
2325     RecordingVideoCodec_VP9 = 2,
2326     RecordingVideoCodec_AV1 = 3
2327 } RecordingVideoCodec;
2328 /* End of enum RecordingVideoCodec declaration */
2329 #   define RecordingVideoCodec_T PRUint32
2330 
2331 
2332 /* Start of enum RecordingVideoScalingMethod declaration */
2333 #   define RECORDINGVIDEOSCALINGMETHOD_IID_STR "5576D890-48EE-449A-A81B-B776233598B7"
2334 #   define RECORDINGVIDEOSCALINGMETHOD_IID { \
2335     0x5576D890, 0x48EE, 0x449A, \
2336     { 0xA8, 0x1B, 0xB7, 0x76, 0x23, 0x35, 0x98, 0xB7 } \
2337 }
2338 typedef enum RecordingVideoScalingMethod
2339 {
2340     RecordingVideoScalingMethod_None = 0,
2341     RecordingVideoScalingMethod_NearestNeighbor = 1,
2342     RecordingVideoScalingMethod_Bilinear = 2,
2343     RecordingVideoScalingMethod_Bicubic = 3
2344 } RecordingVideoScalingMethod;
2345 /* End of enum RecordingVideoScalingMethod declaration */
2346 #   define RecordingVideoScalingMethod_T PRUint32
2347 
2348 
2349 /* Start of enum RecordingVideoRateControlMode declaration */
2350 #   define RECORDINGVIDEORATECONTROLMODE_IID_STR "D4EFB692-9F98-4112-88D3-A16FBE2BF6A8"
2351 #   define RECORDINGVIDEORATECONTROLMODE_IID { \
2352     0xD4EFB692, 0x9F98, 0x4112, \
2353     { 0x88, 0xD3, 0xA1, 0x6F, 0xBE, 0x2B, 0xF6, 0xA8 } \
2354 }
2355 typedef enum RecordingVideoRateControlMode
2356 {
2357     RecordingVideoRateControlMode_CBR = 0,
2358     RecordingVideoRateControlMode_VBR = 1
2359 } RecordingVideoRateControlMode;
2360 /* End of enum RecordingVideoRateControlMode declaration */
2361 #   define RecordingVideoRateControlMode_T PRUint32
2362 
2363 
2364 /* Start of enum GraphicsControllerType declaration */
2365 #   define GRAPHICSCONTROLLERTYPE_IID_STR "3e009bb0-2b57-4283-a39b-4c363d4f0808"
2366 #   define GRAPHICSCONTROLLERTYPE_IID { \
2367     0x3e009bb0, 0x2b57, 0x4283, \
2368     { 0xa3, 0x9b, 0x4c, 0x36, 0x3d, 0x4f, 0x08, 0x08 } \
2369 }
2370 typedef enum GraphicsControllerType
2371 {
2372     GraphicsControllerType_Null = 0,
2373     GraphicsControllerType_VBoxVGA = 1,
2374     GraphicsControllerType_VMSVGA = 2,
2375     GraphicsControllerType_VBoxSVGA = 3
2376 } GraphicsControllerType;
2377 /* End of enum GraphicsControllerType declaration */
2378 #   define GraphicsControllerType_T PRUint32
2379 
2380 
2381 /* Start of enum CleanupMode declaration */
2382 #   define CLEANUPMODE_IID_STR "67897c50-7cca-47a9-83f6-ce8fd8eb5441"
2383 #   define CLEANUPMODE_IID { \
2384     0x67897c50, 0x7cca, 0x47a9, \
2385     { 0x83, 0xf6, 0xce, 0x8f, 0xd8, 0xeb, 0x54, 0x41 } \
2386 }
2387 typedef enum CleanupMode
2388 {
2389     CleanupMode_UnregisterOnly = 1,
2390     CleanupMode_DetachAllReturnNone = 2,
2391     CleanupMode_DetachAllReturnHardDisksOnly = 3,
2392     CleanupMode_Full = 4
2393 } CleanupMode;
2394 /* End of enum CleanupMode declaration */
2395 #   define CleanupMode_T PRUint32
2396 
2397 
2398 /* Start of enum CloneMode declaration */
2399 #   define CLONEMODE_IID_STR "A7A159FE-5096-4B8D-8C3C-D033CB0B35A8"
2400 #   define CLONEMODE_IID { \
2401     0xA7A159FE, 0x5096, 0x4B8D, \
2402     { 0x8C, 0x3C, 0xD0, 0x33, 0xCB, 0x0B, 0x35, 0xA8 } \
2403 }
2404 typedef enum CloneMode
2405 {
2406     CloneMode_MachineState = 1,
2407     CloneMode_MachineAndChildStates = 2,
2408     CloneMode_AllStates = 3
2409 } CloneMode;
2410 /* End of enum CloneMode declaration */
2411 #   define CloneMode_T PRUint32
2412 
2413 
2414 /* Start of enum CloneOptions declaration */
2415 #   define CLONEOPTIONS_IID_STR "22243f8e-96ab-497c-8cf0-f40a566c630b"
2416 #   define CLONEOPTIONS_IID { \
2417     0x22243f8e, 0x96ab, 0x497c, \
2418     { 0x8c, 0xf0, 0xf4, 0x0a, 0x56, 0x6c, 0x63, 0x0b } \
2419 }
2420 typedef enum CloneOptions
2421 {
2422     CloneOptions_Link = 1,
2423     CloneOptions_KeepAllMACs = 2,
2424     CloneOptions_KeepNATMACs = 3,
2425     CloneOptions_KeepDiskNames = 4,
2426     CloneOptions_KeepHwUUIDs = 5
2427 } CloneOptions;
2428 /* End of enum CloneOptions declaration */
2429 #   define CloneOptions_T PRUint32
2430 
2431 
2432 /* Start of enum AutostopType declaration */
2433 #   define AUTOSTOPTYPE_IID_STR "6bb96740-cf34-470d-aab2-2cd48ea2e10e"
2434 #   define AUTOSTOPTYPE_IID { \
2435     0x6bb96740, 0xcf34, 0x470d, \
2436     { 0xaa, 0xb2, 0x2c, 0xd4, 0x8e, 0xa2, 0xe1, 0x0e } \
2437 }
2438 typedef enum AutostopType
2439 {
2440     AutostopType_Disabled = 1,
2441     AutostopType_SaveState = 2,
2442     AutostopType_PowerOff = 3,
2443     AutostopType_AcpiShutdown = 4
2444 } AutostopType;
2445 /* End of enum AutostopType declaration */
2446 #   define AutostopType_T PRUint32
2447 
2448 
2449 /* Start of enum VMProcPriority declaration */
2450 #   define VMPROCPRIORITY_IID_STR "6fa72dd5-19b7-46ba-bc52-f223c98c7d80"
2451 #   define VMPROCPRIORITY_IID { \
2452     0x6fa72dd5, 0x19b7, 0x46ba, \
2453     { 0xbc, 0x52, 0xf2, 0x23, 0xc9, 0x8c, 0x7d, 0x80 } \
2454 }
2455 typedef enum VMProcPriority
2456 {
2457     VMProcPriority_Invalid = 0,
2458     VMProcPriority_Default = 1,
2459     VMProcPriority_Flat = 2,
2460     VMProcPriority_Low = 3,
2461     VMProcPriority_Normal = 5,
2462     VMProcPriority_High = 6
2463 } VMProcPriority;
2464 /* End of enum VMProcPriority declaration */
2465 #   define VMProcPriority_T PRUint32
2466 
2467 
2468 /* Start of enum HostNetworkInterfaceMediumType declaration */
2469 #   define HOSTNETWORKINTERFACEMEDIUMTYPE_IID_STR "1aa54aaf-2497-45a2-bfb1-8eb225e93d5b"
2470 #   define HOSTNETWORKINTERFACEMEDIUMTYPE_IID { \
2471     0x1aa54aaf, 0x2497, 0x45a2, \
2472     { 0xbf, 0xb1, 0x8e, 0xb2, 0x25, 0xe9, 0x3d, 0x5b } \
2473 }
2474 typedef enum HostNetworkInterfaceMediumType
2475 {
2476     HostNetworkInterfaceMediumType_Unknown = 0,
2477     HostNetworkInterfaceMediumType_Ethernet = 1,
2478     HostNetworkInterfaceMediumType_PPP = 2,
2479     HostNetworkInterfaceMediumType_SLIP = 3
2480 } HostNetworkInterfaceMediumType;
2481 /* End of enum HostNetworkInterfaceMediumType declaration */
2482 #   define HostNetworkInterfaceMediumType_T PRUint32
2483 
2484 
2485 /* Start of enum HostNetworkInterfaceStatus declaration */
2486 #   define HOSTNETWORKINTERFACESTATUS_IID_STR "CC474A69-2710-434B-8D99-C38E5D5A6F41"
2487 #   define HOSTNETWORKINTERFACESTATUS_IID { \
2488     0xCC474A69, 0x2710, 0x434B, \
2489     { 0x8D, 0x99, 0xC3, 0x8E, 0x5D, 0x5A, 0x6F, 0x41 } \
2490 }
2491 typedef enum HostNetworkInterfaceStatus
2492 {
2493     HostNetworkInterfaceStatus_Unknown = 0,
2494     HostNetworkInterfaceStatus_Up = 1,
2495     HostNetworkInterfaceStatus_Down = 2
2496 } HostNetworkInterfaceStatus;
2497 /* End of enum HostNetworkInterfaceStatus declaration */
2498 #   define HostNetworkInterfaceStatus_T PRUint32
2499 
2500 
2501 /* Start of enum HostNetworkInterfaceType declaration */
2502 #   define HOSTNETWORKINTERFACETYPE_IID_STR "67431b00-9946-48a2-bc02-b25c5919f4f3"
2503 #   define HOSTNETWORKINTERFACETYPE_IID { \
2504     0x67431b00, 0x9946, 0x48a2, \
2505     { 0xbc, 0x02, 0xb2, 0x5c, 0x59, 0x19, 0xf4, 0xf3 } \
2506 }
2507 typedef enum HostNetworkInterfaceType
2508 {
2509     HostNetworkInterfaceType_Bridged = 1,
2510     HostNetworkInterfaceType_HostOnly = 2
2511 } HostNetworkInterfaceType;
2512 /* End of enum HostNetworkInterfaceType declaration */
2513 #   define HostNetworkInterfaceType_T PRUint32
2514 
2515 
2516 /* Start of enum ProxyMode declaration */
2517 #   define PROXYMODE_IID_STR "885264b3-b517-40fc-ce46-36e3bae895a4"
2518 #   define PROXYMODE_IID { \
2519     0x885264b3, 0xb517, 0x40fc, \
2520     { 0xce, 0x46, 0x36, 0xe3, 0xba, 0xe8, 0x95, 0xa4 } \
2521 }
2522 typedef enum ProxyMode
2523 {
2524     ProxyMode_System = 0,
2525     ProxyMode_NoProxy = 1,
2526     ProxyMode_Manual = 2
2527 } ProxyMode;
2528 /* End of enum ProxyMode declaration */
2529 #   define ProxyMode_T PRUint32
2530 
2531 
2532 /* Start of enum AdditionsFacilityType declaration */
2533 #   define ADDITIONSFACILITYTYPE_IID_STR "c4b10d74-dd48-4ff4-9a40-785a2a389ade"
2534 #   define ADDITIONSFACILITYTYPE_IID { \
2535     0xc4b10d74, 0xdd48, 0x4ff4, \
2536     { 0x9a, 0x40, 0x78, 0x5a, 0x2a, 0x38, 0x9a, 0xde } \
2537 }
2538 typedef enum AdditionsFacilityType
2539 {
2540     AdditionsFacilityType_None = 0,
2541     AdditionsFacilityType_VBoxGuestDriver = 20,
2542     AdditionsFacilityType_AutoLogon = 90,
2543     AdditionsFacilityType_VBoxService = 100,
2544     AdditionsFacilityType_VBoxTrayClient = 101,
2545     AdditionsFacilityType_Seamless = 1000,
2546     AdditionsFacilityType_Graphics = 1100,
2547     AdditionsFacilityType_MonitorAttach = 1101,
2548     AdditionsFacilityType_All = 2147483646
2549 } AdditionsFacilityType;
2550 /* End of enum AdditionsFacilityType declaration */
2551 #   define AdditionsFacilityType_T PRUint32
2552 
2553 
2554 /* Start of enum AdditionsFacilityClass declaration */
2555 #   define ADDITIONSFACILITYCLASS_IID_STR "446451b2-c88d-4e5d-84c9-91bc7f533f5f"
2556 #   define ADDITIONSFACILITYCLASS_IID { \
2557     0x446451b2, 0xc88d, 0x4e5d, \
2558     { 0x84, 0xc9, 0x91, 0xbc, 0x7f, 0x53, 0x3f, 0x5f } \
2559 }
2560 typedef enum AdditionsFacilityClass
2561 {
2562     AdditionsFacilityClass_None = 0,
2563     AdditionsFacilityClass_Driver = 10,
2564     AdditionsFacilityClass_Service = 30,
2565     AdditionsFacilityClass_Program = 50,
2566     AdditionsFacilityClass_Feature = 100,
2567     AdditionsFacilityClass_ThirdParty = 999,
2568     AdditionsFacilityClass_All = 2147483646
2569 } AdditionsFacilityClass;
2570 /* End of enum AdditionsFacilityClass declaration */
2571 #   define AdditionsFacilityClass_T PRUint32
2572 
2573 
2574 /* Start of enum AdditionsFacilityStatus declaration */
2575 #   define ADDITIONSFACILITYSTATUS_IID_STR "ce06f9e1-394e-4fe9-9368-5a88c567dbde"
2576 #   define ADDITIONSFACILITYSTATUS_IID { \
2577     0xce06f9e1, 0x394e, 0x4fe9, \
2578     { 0x93, 0x68, 0x5a, 0x88, 0xc5, 0x67, 0xdb, 0xde } \
2579 }
2580 typedef enum AdditionsFacilityStatus
2581 {
2582     AdditionsFacilityStatus_Inactive = 0,
2583     AdditionsFacilityStatus_Paused = 1,
2584     AdditionsFacilityStatus_PreInit = 20,
2585     AdditionsFacilityStatus_Init = 30,
2586     AdditionsFacilityStatus_Active = 50,
2587     AdditionsFacilityStatus_Terminating = 100,
2588     AdditionsFacilityStatus_Terminated = 101,
2589     AdditionsFacilityStatus_Failed = 800,
2590     AdditionsFacilityStatus_Unknown = 999
2591 } AdditionsFacilityStatus;
2592 /* End of enum AdditionsFacilityStatus declaration */
2593 #   define AdditionsFacilityStatus_T PRUint32
2594 
2595 
2596 /* Start of enum AdditionsRunLevelType declaration */
2597 #   define ADDITIONSRUNLEVELTYPE_IID_STR "a25417ee-a9dd-4f5b-b0dc-377860087754"
2598 #   define ADDITIONSRUNLEVELTYPE_IID { \
2599     0xa25417ee, 0xa9dd, 0x4f5b, \
2600     { 0xb0, 0xdc, 0x37, 0x78, 0x60, 0x08, 0x77, 0x54 } \
2601 }
2602 typedef enum AdditionsRunLevelType
2603 {
2604     AdditionsRunLevelType_None = 0,
2605     AdditionsRunLevelType_System = 1,
2606     AdditionsRunLevelType_Userland = 2,
2607     AdditionsRunLevelType_Desktop = 3
2608 } AdditionsRunLevelType;
2609 /* End of enum AdditionsRunLevelType declaration */
2610 #   define AdditionsRunLevelType_T PRUint32
2611 
2612 
2613 /* Start of enum AdditionsUpdateFlag declaration */
2614 #   define ADDITIONSUPDATEFLAG_IID_STR "726a818d-18d6-4389-94e8-3e9e6826171a"
2615 #   define ADDITIONSUPDATEFLAG_IID { \
2616     0x726a818d, 0x18d6, 0x4389, \
2617     { 0x94, 0xe8, 0x3e, 0x9e, 0x68, 0x26, 0x17, 0x1a } \
2618 }
2619 typedef enum AdditionsUpdateFlag
2620 {
2621     AdditionsUpdateFlag_None = 0,
2622     AdditionsUpdateFlag_WaitForUpdateStartOnly = 1
2623 } AdditionsUpdateFlag;
2624 /* End of enum AdditionsUpdateFlag declaration */
2625 #   define AdditionsUpdateFlag_T PRUint32
2626 
2627 
2628 /* Start of enum GuestSessionStatus declaration */
2629 #   define GUESTSESSIONSTATUS_IID_STR "ac2669da-4624-44f2-85b5-0b0bfb8d8673"
2630 #   define GUESTSESSIONSTATUS_IID { \
2631     0xac2669da, 0x4624, 0x44f2, \
2632     { 0x85, 0xb5, 0x0b, 0x0b, 0xfb, 0x8d, 0x86, 0x73 } \
2633 }
2634 typedef enum GuestSessionStatus
2635 {
2636     GuestSessionStatus_Undefined = 0,
2637     GuestSessionStatus_Starting = 10,
2638     GuestSessionStatus_Started = 100,
2639     GuestSessionStatus_Terminating = 480,
2640     GuestSessionStatus_Terminated = 500,
2641     GuestSessionStatus_TimedOutKilled = 512,
2642     GuestSessionStatus_TimedOutAbnormally = 513,
2643     GuestSessionStatus_Down = 600,
2644     GuestSessionStatus_Error = 800
2645 } GuestSessionStatus;
2646 /* End of enum GuestSessionStatus declaration */
2647 #   define GuestSessionStatus_T PRUint32
2648 
2649 
2650 /* Start of enum GuestSessionWaitForFlag declaration */
2651 #   define GUESTSESSIONWAITFORFLAG_IID_STR "bb7a372a-f635-4e11-a81a-e707f3a52ef5"
2652 #   define GUESTSESSIONWAITFORFLAG_IID { \
2653     0xbb7a372a, 0xf635, 0x4e11, \
2654     { 0xa8, 0x1a, 0xe7, 0x07, 0xf3, 0xa5, 0x2e, 0xf5 } \
2655 }
2656 typedef enum GuestSessionWaitForFlag
2657 {
2658     GuestSessionWaitForFlag_None = 0,
2659     GuestSessionWaitForFlag_Start = 1,
2660     GuestSessionWaitForFlag_Terminate = 2,
2661     GuestSessionWaitForFlag_Status = 4
2662 } GuestSessionWaitForFlag;
2663 /* End of enum GuestSessionWaitForFlag declaration */
2664 #   define GuestSessionWaitForFlag_T PRUint32
2665 
2666 
2667 /* Start of enum GuestSessionWaitResult declaration */
2668 #   define GUESTSESSIONWAITRESULT_IID_STR "c0f6a8a5-fdb6-42bf-a582-56c6f82bcd2d"
2669 #   define GUESTSESSIONWAITRESULT_IID { \
2670     0xc0f6a8a5, 0xfdb6, 0x42bf, \
2671     { 0xa5, 0x82, 0x56, 0xc6, 0xf8, 0x2b, 0xcd, 0x2d } \
2672 }
2673 typedef enum GuestSessionWaitResult
2674 {
2675     GuestSessionWaitResult_None = 0,
2676     GuestSessionWaitResult_Start = 1,
2677     GuestSessionWaitResult_Terminate = 2,
2678     GuestSessionWaitResult_Status = 3,
2679     GuestSessionWaitResult_Error = 4,
2680     GuestSessionWaitResult_Timeout = 5,
2681     GuestSessionWaitResult_WaitFlagNotSupported = 6
2682 } GuestSessionWaitResult;
2683 /* End of enum GuestSessionWaitResult declaration */
2684 #   define GuestSessionWaitResult_T PRUint32
2685 
2686 
2687 /* Start of enum GuestUserState declaration */
2688 #   define GUESTUSERSTATE_IID_STR "b2a82b02-fd3d-4fc2-ba84-6ba5ac8be198"
2689 #   define GUESTUSERSTATE_IID { \
2690     0xb2a82b02, 0xfd3d, 0x4fc2, \
2691     { 0xba, 0x84, 0x6b, 0xa5, 0xac, 0x8b, 0xe1, 0x98 } \
2692 }
2693 typedef enum GuestUserState
2694 {
2695     GuestUserState_Unknown = 0,
2696     GuestUserState_LoggedIn = 1,
2697     GuestUserState_LoggedOut = 2,
2698     GuestUserState_Locked = 3,
2699     GuestUserState_Unlocked = 4,
2700     GuestUserState_Disabled = 5,
2701     GuestUserState_Idle = 6,
2702     GuestUserState_InUse = 7,
2703     GuestUserState_Created = 8,
2704     GuestUserState_Deleted = 9,
2705     GuestUserState_SessionChanged = 10,
2706     GuestUserState_CredentialsChanged = 11,
2707     GuestUserState_RoleChanged = 12,
2708     GuestUserState_GroupAdded = 13,
2709     GuestUserState_GroupRemoved = 14,
2710     GuestUserState_Elevated = 15
2711 } GuestUserState;
2712 /* End of enum GuestUserState declaration */
2713 #   define GuestUserState_T PRUint32
2714 
2715 
2716 /* Start of enum FileSeekOrigin declaration */
2717 #   define FILESEEKORIGIN_IID_STR "ad32f789-4279-4530-979c-f16892e1c263"
2718 #   define FILESEEKORIGIN_IID { \
2719     0xad32f789, 0x4279, 0x4530, \
2720     { 0x97, 0x9c, 0xf1, 0x68, 0x92, 0xe1, 0xc2, 0x63 } \
2721 }
2722 typedef enum FileSeekOrigin
2723 {
2724     FileSeekOrigin_Begin = 0,
2725     FileSeekOrigin_Current = 1,
2726     FileSeekOrigin_End = 2
2727 } FileSeekOrigin;
2728 /* End of enum FileSeekOrigin declaration */
2729 #   define FileSeekOrigin_T PRUint32
2730 
2731 
2732 /* Start of enum ProcessInputFlag declaration */
2733 #   define PROCESSINPUTFLAG_IID_STR "5d38c1dd-2604-4ddf-92e5-0c0cdd3bdbd5"
2734 #   define PROCESSINPUTFLAG_IID { \
2735     0x5d38c1dd, 0x2604, 0x4ddf, \
2736     { 0x92, 0xe5, 0x0c, 0x0c, 0xdd, 0x3b, 0xdb, 0xd5 } \
2737 }
2738 typedef enum ProcessInputFlag
2739 {
2740     ProcessInputFlag_None = 0,
2741     ProcessInputFlag_EndOfFile = 1
2742 } ProcessInputFlag;
2743 /* End of enum ProcessInputFlag declaration */
2744 #   define ProcessInputFlag_T PRUint32
2745 
2746 
2747 /* Start of enum ProcessOutputFlag declaration */
2748 #   define PROCESSOUTPUTFLAG_IID_STR "9979e85a-52bb-40b7-870c-57115e27e0f1"
2749 #   define PROCESSOUTPUTFLAG_IID { \
2750     0x9979e85a, 0x52bb, 0x40b7, \
2751     { 0x87, 0x0c, 0x57, 0x11, 0x5e, 0x27, 0xe0, 0xf1 } \
2752 }
2753 typedef enum ProcessOutputFlag
2754 {
2755     ProcessOutputFlag_None = 0,
2756     ProcessOutputFlag_StdErr = 1
2757 } ProcessOutputFlag;
2758 /* End of enum ProcessOutputFlag declaration */
2759 #   define ProcessOutputFlag_T PRUint32
2760 
2761 
2762 /* Start of enum ProcessWaitForFlag declaration */
2763 #   define PROCESSWAITFORFLAG_IID_STR "23b550c7-78e1-437e-98f0-65fd9757bcd2"
2764 #   define PROCESSWAITFORFLAG_IID { \
2765     0x23b550c7, 0x78e1, 0x437e, \
2766     { 0x98, 0xf0, 0x65, 0xfd, 0x97, 0x57, 0xbc, 0xd2 } \
2767 }
2768 typedef enum ProcessWaitForFlag
2769 {
2770     ProcessWaitForFlag_None = 0,
2771     ProcessWaitForFlag_Start = 1,
2772     ProcessWaitForFlag_Terminate = 2,
2773     ProcessWaitForFlag_StdIn = 4,
2774     ProcessWaitForFlag_StdOut = 8,
2775     ProcessWaitForFlag_StdErr = 16
2776 } ProcessWaitForFlag;
2777 /* End of enum ProcessWaitForFlag declaration */
2778 #   define ProcessWaitForFlag_T PRUint32
2779 
2780 
2781 /* Start of enum ProcessWaitResult declaration */
2782 #   define PROCESSWAITRESULT_IID_STR "40719cbe-f192-4fe9-a231-6697b3c8e2b4"
2783 #   define PROCESSWAITRESULT_IID { \
2784     0x40719cbe, 0xf192, 0x4fe9, \
2785     { 0xa2, 0x31, 0x66, 0x97, 0xb3, 0xc8, 0xe2, 0xb4 } \
2786 }
2787 typedef enum ProcessWaitResult
2788 {
2789     ProcessWaitResult_None = 0,
2790     ProcessWaitResult_Start = 1,
2791     ProcessWaitResult_Terminate = 2,
2792     ProcessWaitResult_Status = 3,
2793     ProcessWaitResult_Error = 4,
2794     ProcessWaitResult_Timeout = 5,
2795     ProcessWaitResult_StdIn = 6,
2796     ProcessWaitResult_StdOut = 7,
2797     ProcessWaitResult_StdErr = 8,
2798     ProcessWaitResult_WaitFlagNotSupported = 9
2799 } ProcessWaitResult;
2800 /* End of enum ProcessWaitResult declaration */
2801 #   define ProcessWaitResult_T PRUint32
2802 
2803 
2804 /* Start of enum FileCopyFlag declaration */
2805 #   define FILECOPYFLAG_IID_STR "791909d7-4c64-2fa4-4303-adb10658d347"
2806 #   define FILECOPYFLAG_IID { \
2807     0x791909d7, 0x4c64, 0x2fa4, \
2808     { 0x43, 0x03, 0xad, 0xb1, 0x06, 0x58, 0xd3, 0x47 } \
2809 }
2810 typedef enum FileCopyFlag
2811 {
2812     FileCopyFlag_None = 0,
2813     FileCopyFlag_NoReplace = 1,
2814     FileCopyFlag_FollowLinks = 2,
2815     FileCopyFlag_Update = 4
2816 } FileCopyFlag;
2817 /* End of enum FileCopyFlag declaration */
2818 #   define FileCopyFlag_T PRUint32
2819 
2820 
2821 /* Start of enum FsObjMoveFlag declaration */
2822 #   define FSOBJMOVEFLAG_IID_STR "2450a05d-80c6-4c96-9a17-94d73293ff86"
2823 #   define FSOBJMOVEFLAG_IID { \
2824     0x2450a05d, 0x80c6, 0x4c96, \
2825     { 0x9a, 0x17, 0x94, 0xd7, 0x32, 0x93, 0xff, 0x86 } \
2826 }
2827 typedef enum FsObjMoveFlag
2828 {
2829     FsObjMoveFlag_None = 0,
2830     FsObjMoveFlag_Replace = 1,
2831     FsObjMoveFlag_FollowLinks = 2,
2832     FsObjMoveFlag_AllowDirectoryMoves = 4
2833 } FsObjMoveFlag;
2834 /* End of enum FsObjMoveFlag declaration */
2835 #   define FsObjMoveFlag_T PRUint32
2836 
2837 
2838 /* Start of enum DirectoryCreateFlag declaration */
2839 #   define DIRECTORYCREATEFLAG_IID_STR "bd721b0e-ced5-4f79-b368-249897c32a36"
2840 #   define DIRECTORYCREATEFLAG_IID { \
2841     0xbd721b0e, 0xced5, 0x4f79, \
2842     { 0xb3, 0x68, 0x24, 0x98, 0x97, 0xc3, 0x2a, 0x36 } \
2843 }
2844 typedef enum DirectoryCreateFlag
2845 {
2846     DirectoryCreateFlag_None = 0,
2847     DirectoryCreateFlag_Parents = 1
2848 } DirectoryCreateFlag;
2849 /* End of enum DirectoryCreateFlag declaration */
2850 #   define DirectoryCreateFlag_T PRUint32
2851 
2852 
2853 /* Start of enum DirectoryCopyFlag declaration */
2854 #   define DIRECTORYCOPYFLAG_IID_STR "b5901856-d064-4fbc-ab06-2909ba106154"
2855 #   define DIRECTORYCOPYFLAG_IID { \
2856     0xb5901856, 0xd064, 0x4fbc, \
2857     { 0xab, 0x06, 0x29, 0x09, 0xba, 0x10, 0x61, 0x54 } \
2858 }
2859 typedef enum DirectoryCopyFlag
2860 {
2861     DirectoryCopyFlag_None = 0,
2862     DirectoryCopyFlag_CopyIntoExisting = 1
2863 } DirectoryCopyFlag;
2864 /* End of enum DirectoryCopyFlag declaration */
2865 #   define DirectoryCopyFlag_T PRUint32
2866 
2867 
2868 /* Start of enum DirectoryRemoveRecFlag declaration */
2869 #   define DIRECTORYREMOVERECFLAG_IID_STR "455aabf0-7692-48f6-9061-f21579b65769"
2870 #   define DIRECTORYREMOVERECFLAG_IID { \
2871     0x455aabf0, 0x7692, 0x48f6, \
2872     { 0x90, 0x61, 0xf2, 0x15, 0x79, 0xb6, 0x57, 0x69 } \
2873 }
2874 typedef enum DirectoryRemoveRecFlag
2875 {
2876     DirectoryRemoveRecFlag_None = 0,
2877     DirectoryRemoveRecFlag_ContentAndDir = 1,
2878     DirectoryRemoveRecFlag_ContentOnly = 2
2879 } DirectoryRemoveRecFlag;
2880 /* End of enum DirectoryRemoveRecFlag declaration */
2881 #   define DirectoryRemoveRecFlag_T PRUint32
2882 
2883 
2884 /* Start of enum FsObjRenameFlag declaration */
2885 #   define FSOBJRENAMEFLAG_IID_STR "59bbf3a1-4e23-d7cf-05d5-ccae32080ed2"
2886 #   define FSOBJRENAMEFLAG_IID { \
2887     0x59bbf3a1, 0x4e23, 0xd7cf, \
2888     { 0x05, 0xd5, 0xcc, 0xae, 0x32, 0x08, 0x0e, 0xd2 } \
2889 }
2890 typedef enum FsObjRenameFlag
2891 {
2892     FsObjRenameFlag_NoReplace = 0,
2893     FsObjRenameFlag_Replace = 1
2894 } FsObjRenameFlag;
2895 /* End of enum FsObjRenameFlag declaration */
2896 #   define FsObjRenameFlag_T PRUint32
2897 
2898 
2899 /* Start of enum ProcessCreateFlag declaration */
2900 #   define PROCESSCREATEFLAG_IID_STR "C544CD2B-F02D-4886-9901-71C523DB8DC5"
2901 #   define PROCESSCREATEFLAG_IID { \
2902     0xC544CD2B, 0xF02D, 0x4886, \
2903     { 0x99, 0x01, 0x71, 0xC5, 0x23, 0xDB, 0x8D, 0xC5 } \
2904 }
2905 typedef enum ProcessCreateFlag
2906 {
2907     ProcessCreateFlag_None = 0,
2908     ProcessCreateFlag_WaitForProcessStartOnly = 1,
2909     ProcessCreateFlag_IgnoreOrphanedProcesses = 2,
2910     ProcessCreateFlag_Hidden = 4,
2911     ProcessCreateFlag_Profile = 8,
2912     ProcessCreateFlag_WaitForStdOut = 16,
2913     ProcessCreateFlag_WaitForStdErr = 32,
2914     ProcessCreateFlag_ExpandArguments = 64,
2915     ProcessCreateFlag_UnquotedArguments = 128
2916 } ProcessCreateFlag;
2917 /* End of enum ProcessCreateFlag declaration */
2918 #   define ProcessCreateFlag_T PRUint32
2919 
2920 
2921 /* Start of enum ProcessPriority declaration */
2922 #   define PROCESSPRIORITY_IID_STR "ee8cac50-e232-49fe-806b-d1214d9c2e49"
2923 #   define PROCESSPRIORITY_IID { \
2924     0xee8cac50, 0xe232, 0x49fe, \
2925     { 0x80, 0x6b, 0xd1, 0x21, 0x4d, 0x9c, 0x2e, 0x49 } \
2926 }
2927 typedef enum ProcessPriority
2928 {
2929     ProcessPriority_Invalid = 0,
2930     ProcessPriority_Default = 1
2931 } ProcessPriority;
2932 /* End of enum ProcessPriority declaration */
2933 #   define ProcessPriority_T PRUint32
2934 
2935 
2936 /* Start of enum SymlinkType declaration */
2937 #   define SYMLINKTYPE_IID_STR "37794668-f8f1-4714-98a5-6f8fa2ed0118"
2938 #   define SYMLINKTYPE_IID { \
2939     0x37794668, 0xf8f1, 0x4714, \
2940     { 0x98, 0xa5, 0x6f, 0x8f, 0xa2, 0xed, 0x01, 0x18 } \
2941 }
2942 typedef enum SymlinkType
2943 {
2944     SymlinkType_Unknown = 0,
2945     SymlinkType_Directory = 1,
2946     SymlinkType_File = 2
2947 } SymlinkType;
2948 /* End of enum SymlinkType declaration */
2949 #   define SymlinkType_T PRUint32
2950 
2951 
2952 /* Start of enum SymlinkReadFlag declaration */
2953 #   define SYMLINKREADFLAG_IID_STR "b7fe2b9d-790e-4b25-8adf-1ca33026931f"
2954 #   define SYMLINKREADFLAG_IID { \
2955     0xb7fe2b9d, 0x790e, 0x4b25, \
2956     { 0x8a, 0xdf, 0x1c, 0xa3, 0x30, 0x26, 0x93, 0x1f } \
2957 }
2958 typedef enum SymlinkReadFlag
2959 {
2960     SymlinkReadFlag_None = 0,
2961     SymlinkReadFlag_NoSymlinks = 1
2962 } SymlinkReadFlag;
2963 /* End of enum SymlinkReadFlag declaration */
2964 #   define SymlinkReadFlag_T PRUint32
2965 
2966 
2967 /* Start of enum ProcessStatus declaration */
2968 #   define PROCESSSTATUS_IID_STR "4d52368f-5b48-4bfe-b486-acf89139b52f"
2969 #   define PROCESSSTATUS_IID { \
2970     0x4d52368f, 0x5b48, 0x4bfe, \
2971     { 0xb4, 0x86, 0xac, 0xf8, 0x91, 0x39, 0xb5, 0x2f } \
2972 }
2973 typedef enum ProcessStatus
2974 {
2975     ProcessStatus_Undefined = 0,
2976     ProcessStatus_Starting = 10,
2977     ProcessStatus_Started = 100,
2978     ProcessStatus_Paused = 110,
2979     ProcessStatus_Terminating = 480,
2980     ProcessStatus_TerminatedNormally = 500,
2981     ProcessStatus_TerminatedSignal = 510,
2982     ProcessStatus_TerminatedAbnormally = 511,
2983     ProcessStatus_TimedOutKilled = 512,
2984     ProcessStatus_TimedOutAbnormally = 513,
2985     ProcessStatus_Down = 600,
2986     ProcessStatus_Error = 800
2987 } ProcessStatus;
2988 /* End of enum ProcessStatus declaration */
2989 #   define ProcessStatus_T PRUint32
2990 
2991 
2992 /* Start of enum ProcessInputStatus declaration */
2993 #   define PROCESSINPUTSTATUS_IID_STR "a4a0ef9c-29cc-4805-9803-c8215ae9da6c"
2994 #   define PROCESSINPUTSTATUS_IID { \
2995     0xa4a0ef9c, 0x29cc, 0x4805, \
2996     { 0x98, 0x03, 0xc8, 0x21, 0x5a, 0xe9, 0xda, 0x6c } \
2997 }
2998 typedef enum ProcessInputStatus
2999 {
3000     ProcessInputStatus_Undefined = 0,
3001     ProcessInputStatus_Broken = 1,
3002     ProcessInputStatus_Available = 10,
3003     ProcessInputStatus_Written = 50,
3004     ProcessInputStatus_Overflow = 100
3005 } ProcessInputStatus;
3006 /* End of enum ProcessInputStatus declaration */
3007 #   define ProcessInputStatus_T PRUint32
3008 
3009 
3010 /* Start of enum PathStyle declaration */
3011 #   define PATHSTYLE_IID_STR "97303a5b-42e8-0a55-d16f-d2a92c295261"
3012 #   define PATHSTYLE_IID { \
3013     0x97303a5b, 0x42e8, 0x0a55, \
3014     { 0xd1, 0x6f, 0xd2, 0xa9, 0x2c, 0x29, 0x52, 0x61 } \
3015 }
3016 typedef enum PathStyle
3017 {
3018     PathStyle_DOS = 1,
3019     PathStyle_UNIX = 2,
3020     PathStyle_Unknown = 8
3021 } PathStyle;
3022 /* End of enum PathStyle declaration */
3023 #   define PathStyle_T PRUint32
3024 
3025 
3026 /* Start of enum FileAccessMode declaration */
3027 #   define FILEACCESSMODE_IID_STR "231a578f-47fb-ea30-3b3e-8489558227f0"
3028 #   define FILEACCESSMODE_IID { \
3029     0x231a578f, 0x47fb, 0xea30, \
3030     { 0x3b, 0x3e, 0x84, 0x89, 0x55, 0x82, 0x27, 0xf0 } \
3031 }
3032 typedef enum FileAccessMode
3033 {
3034     FileAccessMode_ReadOnly = 1,
3035     FileAccessMode_WriteOnly = 2,
3036     FileAccessMode_ReadWrite = 3,
3037     FileAccessMode_AppendOnly = 4,
3038     FileAccessMode_AppendRead = 5
3039 } FileAccessMode;
3040 /* End of enum FileAccessMode declaration */
3041 #   define FileAccessMode_T PRUint32
3042 
3043 
3044 /* Start of enum FileOpenAction declaration */
3045 #   define FILEOPENACTION_IID_STR "12bc97e2-4fc6-a8b4-4f84-0cbf4ab970d2"
3046 #   define FILEOPENACTION_IID { \
3047     0x12bc97e2, 0x4fc6, 0xa8b4, \
3048     { 0x4f, 0x84, 0x0c, 0xbf, 0x4a, 0xb9, 0x70, 0xd2 } \
3049 }
3050 typedef enum FileOpenAction
3051 {
3052     FileOpenAction_OpenExisting = 1,
3053     FileOpenAction_OpenOrCreate = 2,
3054     FileOpenAction_CreateNew = 3,
3055     FileOpenAction_CreateOrReplace = 4,
3056     FileOpenAction_OpenExistingTruncated = 5,
3057     FileOpenAction_AppendOrCreate = 99
3058 } FileOpenAction;
3059 /* End of enum FileOpenAction declaration */
3060 #   define FileOpenAction_T PRUint32
3061 
3062 
3063 /* Start of enum FileSharingMode declaration */
3064 #   define FILESHARINGMODE_IID_STR "f87dfe58-425b-c5ba-7d6d-22adeea25de1"
3065 #   define FILESHARINGMODE_IID { \
3066     0xf87dfe58, 0x425b, 0xc5ba, \
3067     { 0x7d, 0x6d, 0x22, 0xad, 0xee, 0xa2, 0x5d, 0xe1 } \
3068 }
3069 typedef enum FileSharingMode
3070 {
3071     FileSharingMode_Read = 1,
3072     FileSharingMode_Write = 2,
3073     FileSharingMode_ReadWrite = 3,
3074     FileSharingMode_Delete = 4,
3075     FileSharingMode_ReadDelete = 5,
3076     FileSharingMode_WriteDelete = 6,
3077     FileSharingMode_All = 7
3078 } FileSharingMode;
3079 /* End of enum FileSharingMode declaration */
3080 #   define FileSharingMode_T PRUint32
3081 
3082 
3083 /* Start of enum FileOpenExFlag declaration */
3084 #   define FILEOPENEXFLAG_IID_STR "4671abd4-f70c-42aa-8542-6c169cb87a5c"
3085 #   define FILEOPENEXFLAG_IID { \
3086     0x4671abd4, 0xf70c, 0x42aa, \
3087     { 0x85, 0x42, 0x6c, 0x16, 0x9c, 0xb8, 0x7a, 0x5c } \
3088 }
3089 typedef enum FileOpenExFlag
3090 {
3091     FileOpenExFlag_None = 0
3092 } FileOpenExFlag;
3093 /* End of enum FileOpenExFlag declaration */
3094 #   define FileOpenExFlag_T PRUint32
3095 
3096 
3097 /* Start of enum FileStatus declaration */
3098 #   define FILESTATUS_IID_STR "8c86468b-b97b-4080-8914-e29f5b0abd2c"
3099 #   define FILESTATUS_IID { \
3100     0x8c86468b, 0xb97b, 0x4080, \
3101     { 0x89, 0x14, 0xe2, 0x9f, 0x5b, 0x0a, 0xbd, 0x2c } \
3102 }
3103 typedef enum FileStatus
3104 {
3105     FileStatus_Undefined = 0,
3106     FileStatus_Opening = 10,
3107     FileStatus_Open = 100,
3108     FileStatus_Closing = 150,
3109     FileStatus_Closed = 200,
3110     FileStatus_Down = 600,
3111     FileStatus_Error = 800
3112 } FileStatus;
3113 /* End of enum FileStatus declaration */
3114 #   define FileStatus_T PRUint32
3115 
3116 
3117 /* Start of enum FsObjType declaration */
3118 #   define FSOBJTYPE_IID_STR "34a0d1aa-491e-e209-e150-84964d6cee5f"
3119 #   define FSOBJTYPE_IID { \
3120     0x34a0d1aa, 0x491e, 0xe209, \
3121     { 0xe1, 0x50, 0x84, 0x96, 0x4d, 0x6c, 0xee, 0x5f } \
3122 }
3123 typedef enum FsObjType
3124 {
3125     FsObjType_Unknown = 1,
3126     FsObjType_Fifo = 2,
3127     FsObjType_DevChar = 3,
3128     FsObjType_Directory = 4,
3129     FsObjType_DevBlock = 5,
3130     FsObjType_File = 6,
3131     FsObjType_Symlink = 7,
3132     FsObjType_Socket = 8,
3133     FsObjType_WhiteOut = 9
3134 } FsObjType;
3135 /* End of enum FsObjType declaration */
3136 #   define FsObjType_T PRUint32
3137 
3138 
3139 /* Start of enum DnDAction declaration */
3140 #   define DNDACTION_IID_STR "17609e74-778e-4d0e-8827-35f5230f287b"
3141 #   define DNDACTION_IID { \
3142     0x17609e74, 0x778e, 0x4d0e, \
3143     { 0x88, 0x27, 0x35, 0xf5, 0x23, 0x0f, 0x28, 0x7b } \
3144 }
3145 typedef enum DnDAction
3146 {
3147     DnDAction_Ignore = 0,
3148     DnDAction_Copy = 1,
3149     DnDAction_Move = 2,
3150     DnDAction_Link = 3
3151 } DnDAction;
3152 /* End of enum DnDAction declaration */
3153 #   define DnDAction_T PRUint32
3154 
3155 
3156 /* Start of enum DirectoryOpenFlag declaration */
3157 #   define DIRECTORYOPENFLAG_IID_STR "5138837a-8fd2-4194-a1b0-08f7bc3949d0"
3158 #   define DIRECTORYOPENFLAG_IID { \
3159     0x5138837a, 0x8fd2, 0x4194, \
3160     { 0xa1, 0xb0, 0x08, 0xf7, 0xbc, 0x39, 0x49, 0xd0 } \
3161 }
3162 typedef enum DirectoryOpenFlag
3163 {
3164     DirectoryOpenFlag_None = 0,
3165     DirectoryOpenFlag_NoSymlinks = 1
3166 } DirectoryOpenFlag;
3167 /* End of enum DirectoryOpenFlag declaration */
3168 #   define DirectoryOpenFlag_T PRUint32
3169 
3170 
3171 /* Start of enum MediumState declaration */
3172 #   define MEDIUMSTATE_IID_STR "ef41e980-e012-43cd-9dea-479d4ef14d13"
3173 #   define MEDIUMSTATE_IID { \
3174     0xef41e980, 0xe012, 0x43cd, \
3175     { 0x9d, 0xea, 0x47, 0x9d, 0x4e, 0xf1, 0x4d, 0x13 } \
3176 }
3177 typedef enum MediumState
3178 {
3179     MediumState_NotCreated = 0,
3180     MediumState_Created = 1,
3181     MediumState_LockedRead = 2,
3182     MediumState_LockedWrite = 3,
3183     MediumState_Inaccessible = 4,
3184     MediumState_Creating = 5,
3185     MediumState_Deleting = 6
3186 } MediumState;
3187 /* End of enum MediumState declaration */
3188 #   define MediumState_T PRUint32
3189 
3190 
3191 /* Start of enum MediumType declaration */
3192 #   define MEDIUMTYPE_IID_STR "fe663fb5-c244-4e1b-9d81-c628b417dd04"
3193 #   define MEDIUMTYPE_IID { \
3194     0xfe663fb5, 0xc244, 0x4e1b, \
3195     { 0x9d, 0x81, 0xc6, 0x28, 0xb4, 0x17, 0xdd, 0x04 } \
3196 }
3197 typedef enum MediumType
3198 {
3199     MediumType_Normal = 0,
3200     MediumType_Immutable = 1,
3201     MediumType_Writethrough = 2,
3202     MediumType_Shareable = 3,
3203     MediumType_Readonly = 4,
3204     MediumType_MultiAttach = 5
3205 } MediumType;
3206 /* End of enum MediumType declaration */
3207 #   define MediumType_T PRUint32
3208 
3209 
3210 /* Start of enum MediumVariant declaration */
3211 #   define MEDIUMVARIANT_IID_STR "0282e97f-4ef3-4411-a8e0-47c384803cb6"
3212 #   define MEDIUMVARIANT_IID { \
3213     0x0282e97f, 0x4ef3, 0x4411, \
3214     { 0xa8, 0xe0, 0x47, 0xc3, 0x84, 0x80, 0x3c, 0xb6 } \
3215 }
3216 typedef enum MediumVariant
3217 {
3218     MediumVariant_Standard = 0,
3219     MediumVariant_VmdkSplit2G = 0x01,
3220     MediumVariant_VmdkRawDisk = 0x02,
3221     MediumVariant_VmdkStreamOptimized = 0x04,
3222     MediumVariant_VmdkESX = 0x08,
3223     MediumVariant_VdiZeroExpand = 0x100,
3224     MediumVariant_Fixed = 0x10000,
3225     MediumVariant_Diff = 0x20000,
3226     MediumVariant_Formatted = 0x20000000,
3227     MediumVariant_NoCreateDir = 0x40000000
3228 } MediumVariant;
3229 /* End of enum MediumVariant declaration */
3230 #   define MediumVariant_T PRUint32
3231 
3232 
3233 /* Start of enum DataType declaration */
3234 #   define DATATYPE_IID_STR "d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7"
3235 #   define DATATYPE_IID { \
3236     0xd90ea51e, 0xa3f1, 0x4a01, \
3237     { 0xbe, 0xb1, 0xc1, 0x72, 0x3c, 0x0d, 0x3b, 0xa7 } \
3238 }
3239 typedef enum DataType
3240 {
3241     DataType_Int32 = 0,
3242     DataType_Int8 = 1,
3243     DataType_String = 2
3244 } DataType;
3245 /* End of enum DataType declaration */
3246 #   define DataType_T PRUint32
3247 
3248 
3249 /* Start of enum DataFlags declaration */
3250 #   define DATAFLAGS_IID_STR "86884dcf-1d6b-4f1b-b4bf-f5aa44959d60"
3251 #   define DATAFLAGS_IID { \
3252     0x86884dcf, 0x1d6b, 0x4f1b, \
3253     { 0xb4, 0xbf, 0xf5, 0xaa, 0x44, 0x95, 0x9d, 0x60 } \
3254 }
3255 typedef enum DataFlags
3256 {
3257     DataFlags_None = 0x00,
3258     DataFlags_Mandatory = 0x01,
3259     DataFlags_Expert = 0x02,
3260     DataFlags_Array = 0x04,
3261     DataFlags_FlagMask = 0x07
3262 } DataFlags;
3263 /* End of enum DataFlags declaration */
3264 #   define DataFlags_T PRUint32
3265 
3266 
3267 /* Start of enum MediumFormatCapabilities declaration */
3268 #   define MEDIUMFORMATCAPABILITIES_IID_STR "7342ba79-7ce0-4d94-8f86-5ed5a185d9bd"
3269 #   define MEDIUMFORMATCAPABILITIES_IID { \
3270     0x7342ba79, 0x7ce0, 0x4d94, \
3271     { 0x8f, 0x86, 0x5e, 0xd5, 0xa1, 0x85, 0xd9, 0xbd } \
3272 }
3273 typedef enum MediumFormatCapabilities
3274 {
3275     MediumFormatCapabilities_Uuid = 0x01,
3276     MediumFormatCapabilities_CreateFixed = 0x02,
3277     MediumFormatCapabilities_CreateDynamic = 0x04,
3278     MediumFormatCapabilities_CreateSplit2G = 0x08,
3279     MediumFormatCapabilities_Differencing = 0x10,
3280     MediumFormatCapabilities_Asynchronous = 0x20,
3281     MediumFormatCapabilities_File = 0x40,
3282     MediumFormatCapabilities_Properties = 0x80,
3283     MediumFormatCapabilities_TcpNetworking = 0x100,
3284     MediumFormatCapabilities_VFS = 0x200,
3285     MediumFormatCapabilities_Discard = 0x400,
3286     MediumFormatCapabilities_Preferred = 0x800,
3287     MediumFormatCapabilities_CapabilityMask = 0xFFF
3288 } MediumFormatCapabilities;
3289 /* End of enum MediumFormatCapabilities declaration */
3290 #   define MediumFormatCapabilities_T PRUint32
3291 
3292 
3293 /* Start of enum PartitionTableType declaration */
3294 #   define PARTITIONTABLETYPE_IID_STR "360066eb-d19e-4fa1-57ef-fed434fbe2a9"
3295 #   define PARTITIONTABLETYPE_IID { \
3296     0x360066eb, 0xd19e, 0x4fa1, \
3297     { 0x57, 0xef, 0xfe, 0xd4, 0x34, 0xfb, 0xe2, 0xa9 } \
3298 }
3299 typedef enum PartitionTableType
3300 {
3301     PartitionTableType_MBR = 1,
3302     PartitionTableType_GPT = 2
3303 } PartitionTableType;
3304 /* End of enum PartitionTableType declaration */
3305 #   define PartitionTableType_T PRUint32
3306 
3307 
3308 /* Start of enum KeyboardLED declaration */
3309 #   define KEYBOARDLED_IID_STR "ef29ea38-409b-49c7-a817-c858d426dfba"
3310 #   define KEYBOARDLED_IID { \
3311     0xef29ea38, 0x409b, 0x49c7, \
3312     { 0xa8, 0x17, 0xc8, 0x58, 0xd4, 0x26, 0xdf, 0xba } \
3313 }
3314 typedef enum KeyboardLED
3315 {
3316     KeyboardLED_NumLock = 0x01,
3317     KeyboardLED_CapsLock = 0x02,
3318     KeyboardLED_ScrollLock = 0x04
3319 } KeyboardLED;
3320 /* End of enum KeyboardLED declaration */
3321 #   define KeyboardLED_T PRUint32
3322 
3323 
3324 /* Start of enum MouseButtonState declaration */
3325 #   define MOUSEBUTTONSTATE_IID_STR "9ee094b8-b28a-4d56-a166-973cb588d7f8"
3326 #   define MOUSEBUTTONSTATE_IID { \
3327     0x9ee094b8, 0xb28a, 0x4d56, \
3328     { 0xa1, 0x66, 0x97, 0x3c, 0xb5, 0x88, 0xd7, 0xf8 } \
3329 }
3330 typedef enum MouseButtonState
3331 {
3332     MouseButtonState_LeftButton = 0x01,
3333     MouseButtonState_RightButton = 0x02,
3334     MouseButtonState_MiddleButton = 0x04,
3335     MouseButtonState_WheelUp = 0x08,
3336     MouseButtonState_WheelDown = 0x10,
3337     MouseButtonState_XButton1 = 0x20,
3338     MouseButtonState_XButton2 = 0x40,
3339     MouseButtonState_MouseStateMask = 0x7F
3340 } MouseButtonState;
3341 /* End of enum MouseButtonState declaration */
3342 #   define MouseButtonState_T PRUint32
3343 
3344 
3345 /* Start of enum TouchContactState declaration */
3346 #   define TOUCHCONTACTSTATE_IID_STR "3f942686-2506-421c-927c-90d4b45f4a38"
3347 #   define TOUCHCONTACTSTATE_IID { \
3348     0x3f942686, 0x2506, 0x421c, \
3349     { 0x92, 0x7c, 0x90, 0xd4, 0xb4, 0x5f, 0x4a, 0x38 } \
3350 }
3351 typedef enum TouchContactState
3352 {
3353     TouchContactState_None = 0x00,
3354     TouchContactState_InContact = 0x01,
3355     TouchContactState_InRange = 0x02,
3356     TouchContactState_ContactStateMask = 0x03
3357 } TouchContactState;
3358 /* End of enum TouchContactState declaration */
3359 #   define TouchContactState_T PRUint32
3360 
3361 
3362 /* Start of enum FramebufferCapabilities declaration */
3363 #   define FRAMEBUFFERCAPABILITIES_IID_STR "cc395839-30fa-4ca5-ae65-e6360e3edd7a"
3364 #   define FRAMEBUFFERCAPABILITIES_IID { \
3365     0xcc395839, 0x30fa, 0x4ca5, \
3366     { 0xae, 0x65, 0xe6, 0x36, 0x0e, 0x3e, 0xdd, 0x7a } \
3367 }
3368 typedef enum FramebufferCapabilities
3369 {
3370     FramebufferCapabilities_UpdateImage = 0x01,
3371     FramebufferCapabilities_VHWA = 0x02,
3372     FramebufferCapabilities_VisibleRegion = 0x04,
3373     FramebufferCapabilities_RenderCursor = 0x08,
3374     FramebufferCapabilities_MoveCursor = 0x10
3375 } FramebufferCapabilities;
3376 /* End of enum FramebufferCapabilities declaration */
3377 #   define FramebufferCapabilities_T PRUint32
3378 
3379 
3380 /* Start of enum GuestMonitorStatus declaration */
3381 #   define GUESTMONITORSTATUS_IID_STR "6b8d3f71-39cb-459e-a916-48917ed43e19"
3382 #   define GUESTMONITORSTATUS_IID { \
3383     0x6b8d3f71, 0x39cb, 0x459e, \
3384     { 0xa9, 0x16, 0x48, 0x91, 0x7e, 0xd4, 0x3e, 0x19 } \
3385 }
3386 typedef enum GuestMonitorStatus
3387 {
3388     GuestMonitorStatus_Disabled = 0,
3389     GuestMonitorStatus_Enabled = 1,
3390     GuestMonitorStatus_Blank = 2
3391 } GuestMonitorStatus;
3392 /* End of enum GuestMonitorStatus declaration */
3393 #   define GuestMonitorStatus_T PRUint32
3394 
3395 
3396 /* Start of enum ScreenLayoutMode declaration */
3397 #   define SCREENLAYOUTMODE_IID_STR "8fa1964c-8774-11e9-ae5d-1f419105e68d"
3398 #   define SCREENLAYOUTMODE_IID { \
3399     0x8fa1964c, 0x8774, 0x11e9, \
3400     { 0xae, 0x5d, 0x1f, 0x41, 0x91, 0x05, 0xe6, 0x8d } \
3401 }
3402 typedef enum ScreenLayoutMode
3403 {
3404     ScreenLayoutMode_Apply = 0,
3405     ScreenLayoutMode_Reset = 1,
3406     ScreenLayoutMode_Attach = 2,
3407     ScreenLayoutMode_Silent = 3
3408 } ScreenLayoutMode;
3409 /* End of enum ScreenLayoutMode declaration */
3410 #   define ScreenLayoutMode_T PRUint32
3411 
3412 
3413 /* Start of enum NetworkAttachmentType declaration */
3414 #   define NETWORKATTACHMENTTYPE_IID_STR "524a8f9d-4b86-4b51-877d-1aa27c4ebeac"
3415 #   define NETWORKATTACHMENTTYPE_IID { \
3416     0x524a8f9d, 0x4b86, 0x4b51, \
3417     { 0x87, 0x7d, 0x1a, 0xa2, 0x7c, 0x4e, 0xbe, 0xac } \
3418 }
3419 typedef enum NetworkAttachmentType
3420 {
3421     NetworkAttachmentType_Null = 0,
3422     NetworkAttachmentType_NAT = 1,
3423     NetworkAttachmentType_Bridged = 2,
3424     NetworkAttachmentType_Internal = 3,
3425     NetworkAttachmentType_HostOnly = 4,
3426     NetworkAttachmentType_Generic = 5,
3427     NetworkAttachmentType_NATNetwork = 6,
3428     NetworkAttachmentType_Cloud = 7
3429 } NetworkAttachmentType;
3430 /* End of enum NetworkAttachmentType declaration */
3431 #   define NetworkAttachmentType_T PRUint32
3432 
3433 
3434 /* Start of enum NetworkAdapterType declaration */
3435 #   define NETWORKADAPTERTYPE_IID_STR "3c2281e4-d952-4e87-8c7d-24379cb6a81c"
3436 #   define NETWORKADAPTERTYPE_IID { \
3437     0x3c2281e4, 0xd952, 0x4e87, \
3438     { 0x8c, 0x7d, 0x24, 0x37, 0x9c, 0xb6, 0xa8, 0x1c } \
3439 }
3440 typedef enum NetworkAdapterType
3441 {
3442     NetworkAdapterType_Null = 0,
3443     NetworkAdapterType_Am79C970A = 1,
3444     NetworkAdapterType_Am79C973 = 2,
3445     NetworkAdapterType_I82540EM = 3,
3446     NetworkAdapterType_I82543GC = 4,
3447     NetworkAdapterType_I82545EM = 5,
3448     NetworkAdapterType_Virtio = 6,
3449     NetworkAdapterType_Am79C960 = 7,
3450     NetworkAdapterType_Virtio_1_0 = 8
3451 } NetworkAdapterType;
3452 /* End of enum NetworkAdapterType declaration */
3453 #   define NetworkAdapterType_T PRUint32
3454 
3455 
3456 /* Start of enum NetworkAdapterPromiscModePolicy declaration */
3457 #   define NETWORKADAPTERPROMISCMODEPOLICY_IID_STR "c963768a-376f-4c85-8d84-d8ced4b7269e"
3458 #   define NETWORKADAPTERPROMISCMODEPOLICY_IID { \
3459     0xc963768a, 0x376f, 0x4c85, \
3460     { 0x8d, 0x84, 0xd8, 0xce, 0xd4, 0xb7, 0x26, 0x9e } \
3461 }
3462 typedef enum NetworkAdapterPromiscModePolicy
3463 {
3464     NetworkAdapterPromiscModePolicy_Deny = 1,
3465     NetworkAdapterPromiscModePolicy_AllowNetwork = 2,
3466     NetworkAdapterPromiscModePolicy_AllowAll = 3
3467 } NetworkAdapterPromiscModePolicy;
3468 /* End of enum NetworkAdapterPromiscModePolicy declaration */
3469 #   define NetworkAdapterPromiscModePolicy_T PRUint32
3470 
3471 
3472 /* Start of enum PortMode declaration */
3473 #   define PORTMODE_IID_STR "7485fcfd-d603-470a-87af-26d33beb7de9"
3474 #   define PORTMODE_IID { \
3475     0x7485fcfd, 0xd603, 0x470a, \
3476     { 0x87, 0xaf, 0x26, 0xd3, 0x3b, 0xeb, 0x7d, 0xe9 } \
3477 }
3478 typedef enum PortMode
3479 {
3480     PortMode_Disconnected = 0,
3481     PortMode_HostPipe = 1,
3482     PortMode_HostDevice = 2,
3483     PortMode_RawFile = 3,
3484     PortMode_TCP = 4
3485 } PortMode;
3486 /* End of enum PortMode declaration */
3487 #   define PortMode_T PRUint32
3488 
3489 
3490 /* Start of enum UartType declaration */
3491 #   define UARTTYPE_IID_STR "c8899d39-0b90-4265-9d02-1e38bd4d1b39"
3492 #   define UARTTYPE_IID { \
3493     0xc8899d39, 0x0b90, 0x4265, \
3494     { 0x9d, 0x02, 0x1e, 0x38, 0xbd, 0x4d, 0x1b, 0x39 } \
3495 }
3496 typedef enum UartType
3497 {
3498     UartType_U16450 = 0,
3499     UartType_U16550A = 1,
3500     UartType_U16750 = 2
3501 } UartType;
3502 /* End of enum UartType declaration */
3503 #   define UartType_T PRUint32
3504 
3505 
3506 /* Start of enum VMExecutionEngine declaration */
3507 #   define VMEXECUTIONENGINE_IID_STR "56029577-31f7-44d2-3334-7ecbf95294b6"
3508 #   define VMEXECUTIONENGINE_IID { \
3509     0x56029577, 0x31f7, 0x44d2, \
3510     { 0x33, 0x34, 0x7e, 0xcb, 0xf9, 0x52, 0x94, 0xb6 } \
3511 }
3512 typedef enum VMExecutionEngine
3513 {
3514     VMExecutionEngine_NotSet = 0,
3515     VMExecutionEngine_RawMode = 1,
3516     VMExecutionEngine_HwVirt = 2,
3517     VMExecutionEngine_NativeApi = 3
3518 } VMExecutionEngine;
3519 /* End of enum VMExecutionEngine declaration */
3520 #   define VMExecutionEngine_T PRUint32
3521 
3522 
3523 /* Start of enum USBControllerType declaration */
3524 #   define USBCONTROLLERTYPE_IID_STR "8fdd1c6a-5412-41da-ab07-7baed7d6e18e"
3525 #   define USBCONTROLLERTYPE_IID { \
3526     0x8fdd1c6a, 0x5412, 0x41da, \
3527     { 0xab, 0x07, 0x7b, 0xae, 0xd7, 0xd6, 0xe1, 0x8e } \
3528 }
3529 typedef enum USBControllerType
3530 {
3531     USBControllerType_Null = 0,
3532     USBControllerType_OHCI = 1,
3533     USBControllerType_EHCI = 2,
3534     USBControllerType_XHCI = 3,
3535     USBControllerType_Last = 4
3536 } USBControllerType;
3537 /* End of enum USBControllerType declaration */
3538 #   define USBControllerType_T PRUint32
3539 
3540 
3541 /* Start of enum USBConnectionSpeed declaration */
3542 #   define USBCONNECTIONSPEED_IID_STR "d2915840-ea26-4fb4-b72a-21eaf6b888ff"
3543 #   define USBCONNECTIONSPEED_IID { \
3544     0xd2915840, 0xea26, 0x4fb4, \
3545     { 0xb7, 0x2a, 0x21, 0xea, 0xf6, 0xb8, 0x88, 0xff } \
3546 }
3547 typedef enum USBConnectionSpeed
3548 {
3549     USBConnectionSpeed_Null = 0,
3550     USBConnectionSpeed_Low = 1,
3551     USBConnectionSpeed_Full = 2,
3552     USBConnectionSpeed_High = 3,
3553     USBConnectionSpeed_Super = 4,
3554     USBConnectionSpeed_SuperPlus = 5
3555 } USBConnectionSpeed;
3556 /* End of enum USBConnectionSpeed declaration */
3557 #   define USBConnectionSpeed_T PRUint32
3558 
3559 
3560 /* Start of enum USBDeviceState declaration */
3561 #   define USBDEVICESTATE_IID_STR "b99a2e65-67fb-4882-82fd-f3e5e8193ab4"
3562 #   define USBDEVICESTATE_IID { \
3563     0xb99a2e65, 0x67fb, 0x4882, \
3564     { 0x82, 0xfd, 0xf3, 0xe5, 0xe8, 0x19, 0x3a, 0xb4 } \
3565 }
3566 typedef enum USBDeviceState
3567 {
3568     USBDeviceState_NotSupported = 0,
3569     USBDeviceState_Unavailable = 1,
3570     USBDeviceState_Busy = 2,
3571     USBDeviceState_Available = 3,
3572     USBDeviceState_Held = 4,
3573     USBDeviceState_Captured = 5
3574 } USBDeviceState;
3575 /* End of enum USBDeviceState declaration */
3576 #   define USBDeviceState_T PRUint32
3577 
3578 
3579 /* Start of enum USBDeviceFilterAction declaration */
3580 #   define USBDEVICEFILTERACTION_IID_STR "cbc30a49-2f4e-43b5-9da6-121320475933"
3581 #   define USBDEVICEFILTERACTION_IID { \
3582     0xcbc30a49, 0x2f4e, 0x43b5, \
3583     { 0x9d, 0xa6, 0x12, 0x13, 0x20, 0x47, 0x59, 0x33 } \
3584 }
3585 typedef enum USBDeviceFilterAction
3586 {
3587     USBDeviceFilterAction_Null = 0,
3588     USBDeviceFilterAction_Ignore = 1,
3589     USBDeviceFilterAction_Hold = 2
3590 } USBDeviceFilterAction;
3591 /* End of enum USBDeviceFilterAction declaration */
3592 #   define USBDeviceFilterAction_T PRUint32
3593 
3594 
3595 /* Start of enum AudioDriverType declaration */
3596 #   define AUDIODRIVERTYPE_IID_STR "4bcc3d73-c2fe-40db-b72f-0c2ca9d68496"
3597 #   define AUDIODRIVERTYPE_IID { \
3598     0x4bcc3d73, 0xc2fe, 0x40db, \
3599     { 0xb7, 0x2f, 0x0c, 0x2c, 0xa9, 0xd6, 0x84, 0x96 } \
3600 }
3601 typedef enum AudioDriverType
3602 {
3603     AudioDriverType_Null = 0,
3604     AudioDriverType_WinMM = 1,
3605     AudioDriverType_OSS = 2,
3606     AudioDriverType_ALSA = 3,
3607     AudioDriverType_DirectSound = 4,
3608     AudioDriverType_CoreAudio = 5,
3609     AudioDriverType_MMPM = 6,
3610     AudioDriverType_Pulse = 7,
3611     AudioDriverType_SolAudio = 8
3612 } AudioDriverType;
3613 /* End of enum AudioDriverType declaration */
3614 #   define AudioDriverType_T PRUint32
3615 
3616 
3617 /* Start of enum AudioControllerType declaration */
3618 #   define AUDIOCONTROLLERTYPE_IID_STR "7afd395c-42c3-444e-8788-3ce80292f36c"
3619 #   define AUDIOCONTROLLERTYPE_IID { \
3620     0x7afd395c, 0x42c3, 0x444e, \
3621     { 0x87, 0x88, 0x3c, 0xe8, 0x02, 0x92, 0xf3, 0x6c } \
3622 }
3623 typedef enum AudioControllerType
3624 {
3625     AudioControllerType_AC97 = 0,
3626     AudioControllerType_SB16 = 1,
3627     AudioControllerType_HDA = 2
3628 } AudioControllerType;
3629 /* End of enum AudioControllerType declaration */
3630 #   define AudioControllerType_T PRUint32
3631 
3632 
3633 /* Start of enum AudioCodecType declaration */
3634 #   define AUDIOCODECTYPE_IID_STR "7b406301-f520-420c-9805-8ce11c086370"
3635 #   define AUDIOCODECTYPE_IID { \
3636     0x7b406301, 0xf520, 0x420c, \
3637     { 0x98, 0x05, 0x8c, 0xe1, 0x1c, 0x08, 0x63, 0x70 } \
3638 }
3639 typedef enum AudioCodecType
3640 {
3641     AudioCodecType_Null = 0,
3642     AudioCodecType_SB16 = 1,
3643     AudioCodecType_STAC9700 = 2,
3644     AudioCodecType_AD1980 = 3,
3645     AudioCodecType_STAC9221 = 4
3646 } AudioCodecType;
3647 /* End of enum AudioCodecType declaration */
3648 #   define AudioCodecType_T PRUint32
3649 
3650 
3651 /* Start of enum AuthType declaration */
3652 #   define AUTHTYPE_IID_STR "7eef6ef6-98c2-4dc2-ab35-10d2b292028d"
3653 #   define AUTHTYPE_IID { \
3654     0x7eef6ef6, 0x98c2, 0x4dc2, \
3655     { 0xab, 0x35, 0x10, 0xd2, 0xb2, 0x92, 0x02, 0x8d } \
3656 }
3657 typedef enum AuthType
3658 {
3659     AuthType_Null = 0,
3660     AuthType_External = 1,
3661     AuthType_Guest = 2
3662 } AuthType;
3663 /* End of enum AuthType declaration */
3664 #   define AuthType_T PRUint32
3665 
3666 
3667 /* Start of enum Reason declaration */
3668 #   define REASON_IID_STR "e7e8e097-299d-4e98-8bbc-c31c2d47d0cc"
3669 #   define REASON_IID { \
3670     0xe7e8e097, 0x299d, 0x4e98, \
3671     { 0x8b, 0xbc, 0xc3, 0x1c, 0x2d, 0x47, 0xd0, 0xcc } \
3672 }
3673 typedef enum Reason
3674 {
3675     Reason_Unspecified = 0,
3676     Reason_HostSuspend = 1,
3677     Reason_HostResume = 2,
3678     Reason_HostBatteryLow = 3,
3679     Reason_Snapshot = 4
3680 } Reason;
3681 /* End of enum Reason declaration */
3682 #   define Reason_T PRUint32
3683 
3684 
3685 /* Start of enum StorageBus declaration */
3686 #   define STORAGEBUS_IID_STR "f9510869-7d07-46ba-96a6-6728fbf4adee"
3687 #   define STORAGEBUS_IID { \
3688     0xf9510869, 0x7d07, 0x46ba, \
3689     { 0x96, 0xa6, 0x67, 0x28, 0xfb, 0xf4, 0xad, 0xee } \
3690 }
3691 typedef enum StorageBus
3692 {
3693     StorageBus_Null = 0,
3694     StorageBus_IDE = 1,
3695     StorageBus_SATA = 2,
3696     StorageBus_SCSI = 3,
3697     StorageBus_Floppy = 4,
3698     StorageBus_SAS = 5,
3699     StorageBus_USB = 6,
3700     StorageBus_PCIe = 7,
3701     StorageBus_VirtioSCSI = 8
3702 } StorageBus;
3703 /* End of enum StorageBus declaration */
3704 #   define StorageBus_T PRUint32
3705 
3706 
3707 /* Start of enum StorageControllerType declaration */
3708 #   define STORAGECONTROLLERTYPE_IID_STR "a77d457d-66a3-4368-b24c-293d0f562a9f"
3709 #   define STORAGECONTROLLERTYPE_IID { \
3710     0xa77d457d, 0x66a3, 0x4368, \
3711     { 0xb2, 0x4c, 0x29, 0x3d, 0x0f, 0x56, 0x2a, 0x9f } \
3712 }
3713 typedef enum StorageControllerType
3714 {
3715     StorageControllerType_Null = 0,
3716     StorageControllerType_LsiLogic = 1,
3717     StorageControllerType_BusLogic = 2,
3718     StorageControllerType_IntelAhci = 3,
3719     StorageControllerType_PIIX3 = 4,
3720     StorageControllerType_PIIX4 = 5,
3721     StorageControllerType_ICH6 = 6,
3722     StorageControllerType_I82078 = 7,
3723     StorageControllerType_LsiLogicSas = 8,
3724     StorageControllerType_USB = 9,
3725     StorageControllerType_NVMe = 10,
3726     StorageControllerType_VirtioSCSI = 11
3727 } StorageControllerType;
3728 /* End of enum StorageControllerType declaration */
3729 #   define StorageControllerType_T PRUint32
3730 
3731 
3732 /* Start of enum ChipsetType declaration */
3733 #   define CHIPSETTYPE_IID_STR "8b4096a8-a7c3-4d3b-bbb1-05a0a51ec394"
3734 #   define CHIPSETTYPE_IID { \
3735     0x8b4096a8, 0xa7c3, 0x4d3b, \
3736     { 0xbb, 0xb1, 0x05, 0xa0, 0xa5, 0x1e, 0xc3, 0x94 } \
3737 }
3738 typedef enum ChipsetType
3739 {
3740     ChipsetType_Null = 0,
3741     ChipsetType_PIIX3 = 1,
3742     ChipsetType_ICH9 = 2
3743 } ChipsetType;
3744 /* End of enum ChipsetType declaration */
3745 #   define ChipsetType_T PRUint32
3746 
3747 
3748 /* Start of enum NATAliasMode declaration */
3749 #   define NATALIASMODE_IID_STR "67772168-50d9-11df-9669-7fb714ee4fa1"
3750 #   define NATALIASMODE_IID { \
3751     0x67772168, 0x50d9, 0x11df, \
3752     { 0x96, 0x69, 0x7f, 0xb7, 0x14, 0xee, 0x4f, 0xa1 } \
3753 }
3754 typedef enum NATAliasMode
3755 {
3756     NATAliasMode_AliasLog = 0x1,
3757     NATAliasMode_AliasProxyOnly = 0x02,
3758     NATAliasMode_AliasUseSamePorts = 0x04
3759 } NATAliasMode;
3760 /* End of enum NATAliasMode declaration */
3761 #   define NATAliasMode_T PRUint32
3762 
3763 
3764 /* Start of enum NATProtocol declaration */
3765 #   define NATPROTOCOL_IID_STR "e90164be-eb03-11de-94af-fff9b1c1b19f"
3766 #   define NATPROTOCOL_IID { \
3767     0xe90164be, 0xeb03, 0x11de, \
3768     { 0x94, 0xaf, 0xff, 0xf9, 0xb1, 0xc1, 0xb1, 0x9f } \
3769 }
3770 typedef enum NATProtocol
3771 {
3772     NATProtocol_UDP = 0,
3773     NATProtocol_TCP = 1
3774 } NATProtocol;
3775 /* End of enum NATProtocol declaration */
3776 #   define NATProtocol_T PRUint32
3777 
3778 
3779 /* Start of enum BandwidthGroupType declaration */
3780 #   define BANDWIDTHGROUPTYPE_IID_STR "1d92b67d-dc69-4be9-ad4c-93a01e1e0c8e"
3781 #   define BANDWIDTHGROUPTYPE_IID { \
3782     0x1d92b67d, 0xdc69, 0x4be9, \
3783     { 0xad, 0x4c, 0x93, 0xa0, 0x1e, 0x1e, 0x0c, 0x8e } \
3784 }
3785 typedef enum BandwidthGroupType
3786 {
3787     BandwidthGroupType_Null = 0,
3788     BandwidthGroupType_Disk = 1,
3789     BandwidthGroupType_Network = 2
3790 } BandwidthGroupType;
3791 /* End of enum BandwidthGroupType declaration */
3792 #   define BandwidthGroupType_T PRUint32
3793 
3794 
3795 /* Start of enum VBoxEventType declaration */
3796 #   define VBOXEVENTTYPE_IID_STR "d5d15e38-808d-11e9-aaac-4bc5d973ca37"
3797 #   define VBOXEVENTTYPE_IID { \
3798     0xd5d15e38, 0x808d, 0x11e9, \
3799     { 0xaa, 0xac, 0x4b, 0xc5, 0xd9, 0x73, 0xca, 0x37 } \
3800 }
3801 typedef enum VBoxEventType
3802 {
3803     VBoxEventType_Invalid = 0,
3804     VBoxEventType_Any = 1,
3805     VBoxEventType_Vetoable = 2,
3806     VBoxEventType_MachineEvent = 3,
3807     VBoxEventType_SnapshotEvent = 4,
3808     VBoxEventType_InputEvent = 5,
3809     VBoxEventType_LastWildcard = 31,
3810     VBoxEventType_OnMachineStateChanged = 32,
3811     VBoxEventType_OnMachineDataChanged = 33,
3812     VBoxEventType_OnExtraDataChanged = 34,
3813     VBoxEventType_OnExtraDataCanChange = 35,
3814     VBoxEventType_OnMediumRegistered = 36,
3815     VBoxEventType_OnMachineRegistered = 37,
3816     VBoxEventType_OnSessionStateChanged = 38,
3817     VBoxEventType_OnSnapshotTaken = 39,
3818     VBoxEventType_OnSnapshotDeleted = 40,
3819     VBoxEventType_OnSnapshotChanged = 41,
3820     VBoxEventType_OnGuestPropertyChanged = 42,
3821     VBoxEventType_OnMousePointerShapeChanged = 43,
3822     VBoxEventType_OnMouseCapabilityChanged = 44,
3823     VBoxEventType_OnKeyboardLedsChanged = 45,
3824     VBoxEventType_OnStateChanged = 46,
3825     VBoxEventType_OnAdditionsStateChanged = 47,
3826     VBoxEventType_OnNetworkAdapterChanged = 48,
3827     VBoxEventType_OnSerialPortChanged = 49,
3828     VBoxEventType_OnParallelPortChanged = 50,
3829     VBoxEventType_OnStorageControllerChanged = 51,
3830     VBoxEventType_OnMediumChanged = 52,
3831     VBoxEventType_OnVRDEServerChanged = 53,
3832     VBoxEventType_OnUSBControllerChanged = 54,
3833     VBoxEventType_OnUSBDeviceStateChanged = 55,
3834     VBoxEventType_OnSharedFolderChanged = 56,
3835     VBoxEventType_OnRuntimeError = 57,
3836     VBoxEventType_OnCanShowWindow = 58,
3837     VBoxEventType_OnShowWindow = 59,
3838     VBoxEventType_OnCPUChanged = 60,
3839     VBoxEventType_OnVRDEServerInfoChanged = 61,
3840     VBoxEventType_OnEventSourceChanged = 62,
3841     VBoxEventType_OnCPUExecutionCapChanged = 63,
3842     VBoxEventType_OnGuestKeyboard = 64,
3843     VBoxEventType_OnGuestMouse = 65,
3844     VBoxEventType_OnNATRedirect = 66,
3845     VBoxEventType_OnHostPCIDevicePlug = 67,
3846     VBoxEventType_OnVBoxSVCAvailabilityChanged = 68,
3847     VBoxEventType_OnBandwidthGroupChanged = 69,
3848     VBoxEventType_OnGuestMonitorChanged = 70,
3849     VBoxEventType_OnStorageDeviceChanged = 71,
3850     VBoxEventType_OnClipboardModeChanged = 72,
3851     VBoxEventType_OnDnDModeChanged = 73,
3852     VBoxEventType_OnNATNetworkChanged = 74,
3853     VBoxEventType_OnNATNetworkStartStop = 75,
3854     VBoxEventType_OnNATNetworkAlter = 76,
3855     VBoxEventType_OnNATNetworkCreationDeletion = 77,
3856     VBoxEventType_OnNATNetworkSetting = 78,
3857     VBoxEventType_OnNATNetworkPortForward = 79,
3858     VBoxEventType_OnGuestSessionStateChanged = 80,
3859     VBoxEventType_OnGuestSessionRegistered = 81,
3860     VBoxEventType_OnGuestProcessRegistered = 82,
3861     VBoxEventType_OnGuestProcessStateChanged = 83,
3862     VBoxEventType_OnGuestProcessInputNotify = 84,
3863     VBoxEventType_OnGuestProcessOutput = 85,
3864     VBoxEventType_OnGuestFileRegistered = 86,
3865     VBoxEventType_OnGuestFileStateChanged = 87,
3866     VBoxEventType_OnGuestFileOffsetChanged = 88,
3867     VBoxEventType_OnGuestFileRead = 89,
3868     VBoxEventType_OnGuestFileWrite = 90,
3869     VBoxEventType_OnRecordingChanged = 91,
3870     VBoxEventType_OnGuestUserStateChanged = 92,
3871     VBoxEventType_OnGuestMultiTouch = 93,
3872     VBoxEventType_OnHostNameResolutionConfigurationChange = 94,
3873     VBoxEventType_OnSnapshotRestored = 95,
3874     VBoxEventType_OnMediumConfigChanged = 96,
3875     VBoxEventType_OnAudioAdapterChanged = 97,
3876     VBoxEventType_OnProgressPercentageChanged = 98,
3877     VBoxEventType_OnProgressTaskCompleted = 99,
3878     VBoxEventType_OnCursorPositionChanged = 100,
3879     VBoxEventType_OnGuestAdditionsStatusChanged = 101,
3880     VBoxEventType_OnGuestMonitorInfoChanged = 102,
3881     VBoxEventType_OnGuestFileSizeChanged = 103,
3882     VBoxEventType_OnClipboardFileTransferModeChanged = 104,
3883     VBoxEventType_Last = 105
3884 } VBoxEventType;
3885 /* End of enum VBoxEventType declaration */
3886 #   define VBoxEventType_T PRUint32
3887 
3888 
3889 /* Start of enum GuestMouseEventMode declaration */
3890 #   define GUESTMOUSEEVENTMODE_IID_STR "4b500146-ebba-4b7c-bc29-69c2d57a5caf"
3891 #   define GUESTMOUSEEVENTMODE_IID { \
3892     0x4b500146, 0xebba, 0x4b7c, \
3893     { 0xbc, 0x29, 0x69, 0xc2, 0xd5, 0x7a, 0x5c, 0xaf } \
3894 }
3895 typedef enum GuestMouseEventMode
3896 {
3897     GuestMouseEventMode_Relative = 0,
3898     GuestMouseEventMode_Absolute = 1
3899 } GuestMouseEventMode;
3900 /* End of enum GuestMouseEventMode declaration */
3901 #   define GuestMouseEventMode_T PRUint32
3902 
3903 
3904 /* Start of enum GuestMonitorChangedEventType declaration */
3905 #   define GUESTMONITORCHANGEDEVENTTYPE_IID_STR "ef172985-7e36-4297-95be-e46396968d66"
3906 #   define GUESTMONITORCHANGEDEVENTTYPE_IID { \
3907     0xef172985, 0x7e36, 0x4297, \
3908     { 0x95, 0xbe, 0xe4, 0x63, 0x96, 0x96, 0x8d, 0x66 } \
3909 }
3910 typedef enum GuestMonitorChangedEventType
3911 {
3912     GuestMonitorChangedEventType_Enabled = 0,
3913     GuestMonitorChangedEventType_Disabled = 1,
3914     GuestMonitorChangedEventType_NewOrigin = 2
3915 } GuestMonitorChangedEventType;
3916 /* End of enum GuestMonitorChangedEventType declaration */
3917 #   define GuestMonitorChangedEventType_T PRUint32
3918 
3919 
3920 /* Start of enum FormValueType declaration */
3921 #   define FORMVALUETYPE_IID_STR "43d794a0-7c98-11e9-a346-a36d5fa858a5"
3922 #   define FORMVALUETYPE_IID { \
3923     0x43d794a0, 0x7c98, 0x11e9, \
3924     { 0xa3, 0x46, 0xa3, 0x6d, 0x5f, 0xa8, 0x58, 0xa5 } \
3925 }
3926 typedef enum FormValueType
3927 {
3928     FormValueType_Boolean = 0,
3929     FormValueType_String = 1,
3930     FormValueType_Choice = 2,
3931     FormValueType_RangedInteger = 3
3932 } FormValueType;
3933 /* End of enum FormValueType declaration */
3934 #   define FormValueType_T PRUint32
3935 
3936 
3937 /* Start of enum CloudMachineState declaration */
3938 #   define CLOUDMACHINESTATE_IID_STR "67b6d054-0154-4f5d-b71b-6ac406e1ff78"
3939 #   define CLOUDMACHINESTATE_IID { \
3940     0x67b6d054, 0x0154, 0x4f5d, \
3941     { 0xb7, 0x1b, 0x6a, 0xc4, 0x06, 0xe1, 0xff, 0x78 } \
3942 }
3943 typedef enum CloudMachineState
3944 {
3945     CloudMachineState_Invalid = 0,
3946     CloudMachineState_Provisioning = 1,
3947     CloudMachineState_Running = 2,
3948     CloudMachineState_Starting = 3,
3949     CloudMachineState_Stopping = 4,
3950     CloudMachineState_Stopped = 5,
3951     CloudMachineState_CreatingImage = 6,
3952     CloudMachineState_Terminating = 7,
3953     CloudMachineState_Terminated = 8
3954 } CloudMachineState;
3955 /* End of enum CloudMachineState declaration */
3956 #   define CloudMachineState_T PRUint32
3957 
3958 
3959 /* Start of enum CloudImageState declaration */
3960 #   define CLOUDIMAGESTATE_IID_STR "6e5d6762-eea2-4f2c-b104-2952d0aa8a0a"
3961 #   define CLOUDIMAGESTATE_IID { \
3962     0x6e5d6762, 0xeea2, 0x4f2c, \
3963     { 0xb1, 0x04, 0x29, 0x52, 0xd0, 0xaa, 0x8a, 0x0a } \
3964 }
3965 typedef enum CloudImageState
3966 {
3967     CloudImageState_Invalid = 0,
3968     CloudImageState_Provisioning = 1,
3969     CloudImageState_Importing = 2,
3970     CloudImageState_Available = 3,
3971     CloudImageState_Exporting = 4,
3972     CloudImageState_Disabled = 5,
3973     CloudImageState_Deleted = 6
3974 } CloudImageState;
3975 /* End of enum CloudImageState declaration */
3976 #   define CloudImageState_T PRUint32
3977 
3978 
3979 /* Start of struct IVirtualBoxErrorInfo declaration */
3980 #   define IVIRTUALBOXERRORINFO_IID_STR "c1bcc6d5-7966-481d-ab0b-d0ed73e28135"
3981 #   define IVIRTUALBOXERRORINFO_IID { \
3982     0xc1bcc6d5, 0x7966, 0x481d, \
3983     { 0xab, 0x0b, 0xd0, 0xed, 0x73, 0xe2, 0x81, 0x35 } \
3984 }
3985 /* COM compatibility */
3986 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBoxErrorInfo);
3987 #   ifndef VBOX_WITH_GLUE
3988 struct IVirtualBoxErrorInfo_vtbl
3989 {
3990     struct nsIException_vtbl nsiexception;
3991 
3992     nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
3993 
3994     nsresult (*GetResultDetail)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultDetail);
3995 
3996     nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
3997 
3998     nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
3999 
4000     nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
4001 
4002     nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
4003 
4004 };
4005 #   else /* VBOX_WITH_GLUE */
4006 struct IVirtualBoxErrorInfoVtbl
4007 {
4008     nsresult (*QueryInterface)(IVirtualBoxErrorInfo *pThis, const nsID *iid, void **resultp);
4009     nsrefcnt (*AddRef)(IVirtualBoxErrorInfo *pThis);
4010     nsrefcnt (*Release)(IVirtualBoxErrorInfo *pThis);
4011     nsresult (*GetMessage)(IVirtualBoxErrorInfo *pThis, PRUnichar * *aMessage);
4012     nsresult (*GetResult)(IVirtualBoxErrorInfo *pThis, nsresult *aResult);
4013     nsresult (*GetName)(IVirtualBoxErrorInfo*pThis, PRUnichar * *aName);
4014     nsresult (*GetFilename)(IVirtualBoxErrorInfo *pThis, PRUnichar * *aFilename);
4015     nsresult (*GetLineNumber)(IVirtualBoxErrorInfo *pThis, PRUint32 *aLineNumber);
4016     nsresult (*GetColumnNumber)(IVirtualBoxErrorInfo *pThis, PRUint32 *aColumnNumber);
4017     nsresult (*GetLocation)(IVirtualBoxErrorInfo *pThis, nsIStackFrame * *aLocation);
4018     nsresult (*GetInner)(IVirtualBoxErrorInfo *pThis, nsIException * *aInner);
4019     nsresult (*GetData)(IVirtualBoxErrorInfo *pThis, nsISupports * *aData);
4020     nsresult (*ToString)(IVirtualBoxErrorInfo *pThis, PRUnichar **_retval);
4021     nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
4022 
4023     nsresult (*GetResultDetail)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultDetail);
4024 
4025     nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
4026 
4027     nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
4028 
4029     nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
4030 
4031     nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
4032 
4033 };
4034 #    define IVirtualBoxErrorInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4035 #    define IVirtualBoxErrorInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
4036 #    define IVirtualBoxErrorInfo_Release(p) ((p)->lpVtbl->Release(p))
4037 #    define IVirtualBoxErrorInfo_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
4038 #    define IVirtualBoxErrorInfo_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
4039 #    define IVirtualBoxErrorInfo_get_Result(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
4040 #    define IVirtualBoxErrorInfo_GetResult(p, aResult) ((p)->lpVtbl->GetResult(p, aResult))
4041 #    define IVirtualBoxErrorInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
4042 #    define IVirtualBoxErrorInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
4043 #    define IVirtualBoxErrorInfo_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
4044 #    define IVirtualBoxErrorInfo_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
4045 #    define IVirtualBoxErrorInfo_get_LineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
4046 #    define IVirtualBoxErrorInfo_GetLineNumber(p, aLineNumber) ((p)->lpVtbl->GetLineNumber(p, aLineNumber))
4047 #    define IVirtualBoxErrorInfo_get_ColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
4048 #    define IVirtualBoxErrorInfo_GetColumnNumber(p, aColumnNumber) ((p)->lpVtbl->GetColumnNumber(p, aColumnNumber))
4049 #    define IVirtualBoxErrorInfo_get_Location(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
4050 #    define IVirtualBoxErrorInfo_GetLocation(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
4051 #    define IVirtualBoxErrorInfo_get_Inner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
4052 #    define IVirtualBoxErrorInfo_GetInner(p, aInner) ((p)->lpVtbl->GetInner(p, aInner))
4053 #    define IVirtualBoxErrorInfo_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
4054 #    define IVirtualBoxErrorInfo_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
4055 #    define IVirtualBoxErrorInfo_ToString(p, retval) ((p)->lpVtbl->ToString(p, retval))
4056 #    define IVirtualBoxErrorInfo_get_ResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
4057 #    define IVirtualBoxErrorInfo_GetResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
4058 #    define IVirtualBoxErrorInfo_get_ResultDetail(p, aResultDetail) ((p)->lpVtbl->GetResultDetail(p, aResultDetail))
4059 #    define IVirtualBoxErrorInfo_GetResultDetail(p, aResultDetail) ((p)->lpVtbl->GetResultDetail(p, aResultDetail))
4060 #    define IVirtualBoxErrorInfo_get_InterfaceID(p, aInterfaceID) ((p)->lpVtbl->GetInterfaceID(p, aInterfaceID))
4061 #    define IVirtualBoxErrorInfo_GetInterfaceID(p, aInterfaceID) ((p)->lpVtbl->GetInterfaceID(p, aInterfaceID))
4062 #    define IVirtualBoxErrorInfo_get_Component(p, aComponent) ((p)->lpVtbl->GetComponent(p, aComponent))
4063 #    define IVirtualBoxErrorInfo_GetComponent(p, aComponent) ((p)->lpVtbl->GetComponent(p, aComponent))
4064 #    define IVirtualBoxErrorInfo_get_Text(p, aText) ((p)->lpVtbl->GetText(p, aText))
4065 #    define IVirtualBoxErrorInfo_GetText(p, aText) ((p)->lpVtbl->GetText(p, aText))
4066 #    define IVirtualBoxErrorInfo_get_Next(p, aNext) ((p)->lpVtbl->GetNext(p, aNext))
4067 #    define IVirtualBoxErrorInfo_GetNext(p, aNext) ((p)->lpVtbl->GetNext(p, aNext))
4068 #   endif /* VBOX_WITH_GLUE */
4069 
4070 interface IVirtualBoxErrorInfo
4071 {
4072 #   ifndef VBOX_WITH_GLUE
4073     struct IVirtualBoxErrorInfo_vtbl *vtbl;
4074 #   else /* VBOX_WITH_GLUE */
4075     CONST_VTBL struct IVirtualBoxErrorInfoVtbl *lpVtbl;
4076 #   endif /* VBOX_WITH_GLUE */
4077 };
4078 /* End of struct IVirtualBoxErrorInfo declaration */
4079 
4080 
4081 /* Start of struct INATNetwork declaration */
4082 #   define INATNETWORK_IID_STR "4fdebbf0-be30-49c0-b315-e9749e1bded1"
4083 #   define INATNETWORK_IID { \
4084     0x4fdebbf0, 0xbe30, 0x49c0, \
4085     { 0xb3, 0x15, 0xe9, 0x74, 0x9e, 0x1b, 0xde, 0xd1 } \
4086 }
4087 /* COM compatibility */
4088 VBOX_EXTERN_CONST(nsIID, IID_INATNetwork);
4089 #   ifndef VBOX_WITH_GLUE
4090 struct INATNetwork_vtbl
4091 {
4092     struct nsISupports_vtbl nsisupports;
4093 
4094     nsresult (*GetNetworkName)(INATNetwork *pThis, PRUnichar * *networkName);
4095     nsresult (*SetNetworkName)(INATNetwork *pThis, PRUnichar * networkName);
4096 
4097     nsresult (*GetEnabled)(INATNetwork *pThis, PRBool *enabled);
4098     nsresult (*SetEnabled)(INATNetwork *pThis, PRBool enabled);
4099 
4100     nsresult (*GetNetwork)(INATNetwork *pThis, PRUnichar * *network);
4101     nsresult (*SetNetwork)(INATNetwork *pThis, PRUnichar * network);
4102 
4103     nsresult (*GetGateway)(INATNetwork *pThis, PRUnichar * *gateway);
4104 
4105     nsresult (*GetIPv6Enabled)(INATNetwork *pThis, PRBool *IPv6Enabled);
4106     nsresult (*SetIPv6Enabled)(INATNetwork *pThis, PRBool IPv6Enabled);
4107 
4108     nsresult (*GetIPv6Prefix)(INATNetwork *pThis, PRUnichar * *IPv6Prefix);
4109     nsresult (*SetIPv6Prefix)(INATNetwork *pThis, PRUnichar * IPv6Prefix);
4110 
4111     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
4112     nsresult (*SetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool advertiseDefaultIPv6RouteEnabled);
4113 
4114     nsresult (*GetNeedDhcpServer)(INATNetwork *pThis, PRBool *needDhcpServer);
4115     nsresult (*SetNeedDhcpServer)(INATNetwork *pThis, PRBool needDhcpServer);
4116 
4117     nsresult (*GetEventSource)(INATNetwork *pThis, IEventSource * *eventSource);
4118 
4119     nsresult (*GetPortForwardRules4)(INATNetwork *pThis, PRUint32 *portForwardRules4Size, PRUnichar * **portForwardRules4);
4120 
4121     nsresult (*GetLocalMappings)(INATNetwork *pThis, PRUint32 *localMappingsSize, PRUnichar * **localMappings);
4122 
4123     nsresult (*GetLoopbackIp6)(INATNetwork *pThis, PRInt32 *loopbackIp6);
4124     nsresult (*SetLoopbackIp6)(INATNetwork *pThis, PRInt32 loopbackIp6);
4125 
4126     nsresult (*GetPortForwardRules6)(INATNetwork *pThis, PRUint32 *portForwardRules6Size, PRUnichar * **portForwardRules6);
4127 
4128     nsresult (*GetInternalAndReservedAttribute1INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4129 
4130     nsresult (*GetInternalAndReservedAttribute2INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4131 
4132     nsresult (*GetInternalAndReservedAttribute3INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4133 
4134     nsresult (*GetInternalAndReservedAttribute4INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4135 
4136     nsresult (*GetInternalAndReservedAttribute5INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4137 
4138     nsresult (*GetInternalAndReservedAttribute6INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4139 
4140     nsresult (*GetInternalAndReservedAttribute7INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4141 
4142     nsresult (*GetInternalAndReservedAttribute8INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4143 
4144     nsresult (*AddLocalMapping)(
4145         INATNetwork *pThis,
4146         PRUnichar * hostid,
4147         PRInt32 offset
4148     );
4149 
4150     nsresult (*AddPortForwardRule)(
4151         INATNetwork *pThis,
4152         PRBool isIpv6,
4153         PRUnichar * ruleName,
4154         PRUint32 proto,
4155         PRUnichar * hostIP,
4156         PRUint16 hostPort,
4157         PRUnichar * guestIP,
4158         PRUint16 guestPort
4159     );
4160 
4161     nsresult (*RemovePortForwardRule)(
4162         INATNetwork *pThis,
4163         PRBool iSipv6,
4164         PRUnichar * ruleName
4165     );
4166 
4167     nsresult (*Start)(INATNetwork *pThis );
4168 
4169     nsresult (*Stop)(INATNetwork *pThis );
4170 
4171     nsresult (*InternalAndReservedMethod1INATNetwork)(INATNetwork *pThis);
4172 
4173     nsresult (*InternalAndReservedMethod2INATNetwork)(INATNetwork *pThis);
4174 
4175 };
4176 #   else /* VBOX_WITH_GLUE */
4177 struct INATNetworkVtbl
4178 {
4179     nsresult (*QueryInterface)(INATNetwork *pThis, const nsID *iid, void **resultp);
4180     nsrefcnt (*AddRef)(INATNetwork *pThis);
4181     nsrefcnt (*Release)(INATNetwork *pThis);
4182     nsresult (*GetNetworkName)(INATNetwork *pThis, PRUnichar * *networkName);
4183     nsresult (*SetNetworkName)(INATNetwork *pThis, PRUnichar * networkName);
4184 
4185     nsresult (*GetEnabled)(INATNetwork *pThis, PRBool *enabled);
4186     nsresult (*SetEnabled)(INATNetwork *pThis, PRBool enabled);
4187 
4188     nsresult (*GetNetwork)(INATNetwork *pThis, PRUnichar * *network);
4189     nsresult (*SetNetwork)(INATNetwork *pThis, PRUnichar * network);
4190 
4191     nsresult (*GetGateway)(INATNetwork *pThis, PRUnichar * *gateway);
4192 
4193     nsresult (*GetIPv6Enabled)(INATNetwork *pThis, PRBool *IPv6Enabled);
4194     nsresult (*SetIPv6Enabled)(INATNetwork *pThis, PRBool IPv6Enabled);
4195 
4196     nsresult (*GetIPv6Prefix)(INATNetwork *pThis, PRUnichar * *IPv6Prefix);
4197     nsresult (*SetIPv6Prefix)(INATNetwork *pThis, PRUnichar * IPv6Prefix);
4198 
4199     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
4200     nsresult (*SetAdvertiseDefaultIPv6RouteEnabled)(INATNetwork *pThis, PRBool advertiseDefaultIPv6RouteEnabled);
4201 
4202     nsresult (*GetNeedDhcpServer)(INATNetwork *pThis, PRBool *needDhcpServer);
4203     nsresult (*SetNeedDhcpServer)(INATNetwork *pThis, PRBool needDhcpServer);
4204 
4205     nsresult (*GetEventSource)(INATNetwork *pThis, IEventSource * *eventSource);
4206 
4207     nsresult (*GetPortForwardRules4)(INATNetwork *pThis, PRUint32 *portForwardRules4Size, PRUnichar * **portForwardRules4);
4208 
4209     nsresult (*GetLocalMappings)(INATNetwork *pThis, PRUint32 *localMappingsSize, PRUnichar * **localMappings);
4210 
4211     nsresult (*GetLoopbackIp6)(INATNetwork *pThis, PRInt32 *loopbackIp6);
4212     nsresult (*SetLoopbackIp6)(INATNetwork *pThis, PRInt32 loopbackIp6);
4213 
4214     nsresult (*GetPortForwardRules6)(INATNetwork *pThis, PRUint32 *portForwardRules6Size, PRUnichar * **portForwardRules6);
4215 
4216     nsresult (*GetInternalAndReservedAttribute1INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4217 
4218     nsresult (*GetInternalAndReservedAttribute2INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4219 
4220     nsresult (*GetInternalAndReservedAttribute3INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4221 
4222     nsresult (*GetInternalAndReservedAttribute4INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4223 
4224     nsresult (*GetInternalAndReservedAttribute5INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4225 
4226     nsresult (*GetInternalAndReservedAttribute6INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4227 
4228     nsresult (*GetInternalAndReservedAttribute7INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4229 
4230     nsresult (*GetInternalAndReservedAttribute8INATNetwork)(INATNetwork *pThis, PRUint32 *reserved);
4231 
4232     nsresult (*AddLocalMapping)(
4233         INATNetwork *pThis,
4234         PRUnichar * hostid,
4235         PRInt32 offset
4236     );
4237 
4238     nsresult (*AddPortForwardRule)(
4239         INATNetwork *pThis,
4240         PRBool isIpv6,
4241         PRUnichar * ruleName,
4242         PRUint32 proto,
4243         PRUnichar * hostIP,
4244         PRUint16 hostPort,
4245         PRUnichar * guestIP,
4246         PRUint16 guestPort
4247     );
4248 
4249     nsresult (*RemovePortForwardRule)(
4250         INATNetwork *pThis,
4251         PRBool iSipv6,
4252         PRUnichar * ruleName
4253     );
4254 
4255     nsresult (*Start)(INATNetwork *pThis );
4256 
4257     nsresult (*Stop)(INATNetwork *pThis );
4258 
4259     nsresult (*InternalAndReservedMethod1INATNetwork)(INATNetwork *pThis);
4260 
4261     nsresult (*InternalAndReservedMethod2INATNetwork)(INATNetwork *pThis);
4262 
4263 };
4264 #    define INATNetwork_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4265 #    define INATNetwork_AddRef(p) ((p)->lpVtbl->AddRef(p))
4266 #    define INATNetwork_Release(p) ((p)->lpVtbl->Release(p))
4267 #    define INATNetwork_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4268 #    define INATNetwork_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4269 #    define INATNetwork_put_NetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
4270 #    define INATNetwork_SetNetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
4271 #    define INATNetwork_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4272 #    define INATNetwork_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4273 #    define INATNetwork_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4274 #    define INATNetwork_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4275 #    define INATNetwork_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
4276 #    define INATNetwork_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
4277 #    define INATNetwork_put_Network(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
4278 #    define INATNetwork_SetNetwork(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
4279 #    define INATNetwork_get_Gateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
4280 #    define INATNetwork_GetGateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
4281 #    define INATNetwork_get_IPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->GetIPv6Enabled(p, aIPv6Enabled))
4282 #    define INATNetwork_GetIPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->GetIPv6Enabled(p, aIPv6Enabled))
4283 #    define INATNetwork_put_IPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->SetIPv6Enabled(p, aIPv6Enabled))
4284 #    define INATNetwork_SetIPv6Enabled(p, aIPv6Enabled) ((p)->lpVtbl->SetIPv6Enabled(p, aIPv6Enabled))
4285 #    define INATNetwork_get_IPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->GetIPv6Prefix(p, aIPv6Prefix))
4286 #    define INATNetwork_GetIPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->GetIPv6Prefix(p, aIPv6Prefix))
4287 #    define INATNetwork_put_IPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->SetIPv6Prefix(p, aIPv6Prefix))
4288 #    define INATNetwork_SetIPv6Prefix(p, aIPv6Prefix) ((p)->lpVtbl->SetIPv6Prefix(p, aIPv6Prefix))
4289 #    define INATNetwork_get_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4290 #    define INATNetwork_GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4291 #    define INATNetwork_put_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4292 #    define INATNetwork_SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->SetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
4293 #    define INATNetwork_get_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
4294 #    define INATNetwork_GetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
4295 #    define INATNetwork_put_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->SetNeedDhcpServer(p, aNeedDhcpServer))
4296 #    define INATNetwork_SetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->SetNeedDhcpServer(p, aNeedDhcpServer))
4297 #    define INATNetwork_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4298 #    define INATNetwork_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4299 #    define INATNetwork_get_PortForwardRules4(p, aPortForwardRules4) ((p)->lpVtbl->GetPortForwardRules4(p, aPortForwardRules4))
4300 #    define INATNetwork_GetPortForwardRules4(p, aPortForwardRules4) ((p)->lpVtbl->GetPortForwardRules4(p, aPortForwardRules4))
4301 #    define INATNetwork_get_LocalMappings(p, aLocalMappings) ((p)->lpVtbl->GetLocalMappings(p, aLocalMappings))
4302 #    define INATNetwork_GetLocalMappings(p, aLocalMappings) ((p)->lpVtbl->GetLocalMappings(p, aLocalMappings))
4303 #    define INATNetwork_get_LoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->GetLoopbackIp6(p, aLoopbackIp6))
4304 #    define INATNetwork_GetLoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->GetLoopbackIp6(p, aLoopbackIp6))
4305 #    define INATNetwork_put_LoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->SetLoopbackIp6(p, aLoopbackIp6))
4306 #    define INATNetwork_SetLoopbackIp6(p, aLoopbackIp6) ((p)->lpVtbl->SetLoopbackIp6(p, aLoopbackIp6))
4307 #    define INATNetwork_get_PortForwardRules6(p, aPortForwardRules6) ((p)->lpVtbl->GetPortForwardRules6(p, aPortForwardRules6))
4308 #    define INATNetwork_GetPortForwardRules6(p, aPortForwardRules6) ((p)->lpVtbl->GetPortForwardRules6(p, aPortForwardRules6))
4309 #    define INATNetwork_AddLocalMapping(p, aHostid, aOffset) ((p)->lpVtbl->AddLocalMapping(p, aHostid, aOffset))
4310 #    define INATNetwork_AddPortForwardRule(p, aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort) ((p)->lpVtbl->AddPortForwardRule(p, aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort))
4311 #    define INATNetwork_RemovePortForwardRule(p, aISipv6, aRuleName) ((p)->lpVtbl->RemovePortForwardRule(p, aISipv6, aRuleName))
4312 #    define INATNetwork_Start(p) ((p)->lpVtbl->Start(p))
4313 #    define INATNetwork_Stop(p) ((p)->lpVtbl->Stop(p))
4314 #   endif /* VBOX_WITH_GLUE */
4315 
4316 interface INATNetwork
4317 {
4318 #   ifndef VBOX_WITH_GLUE
4319     struct INATNetwork_vtbl *vtbl;
4320 #   else /* VBOX_WITH_GLUE */
4321     CONST_VTBL struct INATNetworkVtbl *lpVtbl;
4322 #   endif /* VBOX_WITH_GLUE */
4323 };
4324 /* End of struct INATNetwork declaration */
4325 
4326 
4327 /* Start of struct ICloudNetwork declaration */
4328 #   define ICLOUDNETWORK_IID_STR "d8e3496e-735f-4fde-8a54-427d49409b5f"
4329 #   define ICLOUDNETWORK_IID { \
4330     0xd8e3496e, 0x735f, 0x4fde, \
4331     { 0x8a, 0x54, 0x42, 0x7d, 0x49, 0x40, 0x9b, 0x5f } \
4332 }
4333 /* COM compatibility */
4334 VBOX_EXTERN_CONST(nsIID, IID_ICloudNetwork);
4335 #   ifndef VBOX_WITH_GLUE
4336 struct ICloudNetwork_vtbl
4337 {
4338     struct nsISupports_vtbl nsisupports;
4339 
4340     nsresult (*GetNetworkName)(ICloudNetwork *pThis, PRUnichar * *networkName);
4341     nsresult (*SetNetworkName)(ICloudNetwork *pThis, PRUnichar * networkName);
4342 
4343     nsresult (*GetEnabled)(ICloudNetwork *pThis, PRBool *enabled);
4344     nsresult (*SetEnabled)(ICloudNetwork *pThis, PRBool enabled);
4345 
4346     nsresult (*GetProvider)(ICloudNetwork *pThis, PRUnichar * *provider);
4347     nsresult (*SetProvider)(ICloudNetwork *pThis, PRUnichar * provider);
4348 
4349     nsresult (*GetProfile)(ICloudNetwork *pThis, PRUnichar * *profile);
4350     nsresult (*SetProfile)(ICloudNetwork *pThis, PRUnichar * profile);
4351 
4352     nsresult (*GetNetworkId)(ICloudNetwork *pThis, PRUnichar * *networkId);
4353     nsresult (*SetNetworkId)(ICloudNetwork *pThis, PRUnichar * networkId);
4354 
4355     nsresult (*GetInternalAndReservedAttribute1ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4356 
4357     nsresult (*GetInternalAndReservedAttribute2ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4358 
4359     nsresult (*GetInternalAndReservedAttribute3ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4360 
4361     nsresult (*GetInternalAndReservedAttribute4ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4362 
4363     nsresult (*GetInternalAndReservedAttribute5ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4364 
4365     nsresult (*GetInternalAndReservedAttribute6ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4366 
4367     nsresult (*GetInternalAndReservedAttribute7ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4368 
4369     nsresult (*GetInternalAndReservedAttribute8ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4370 
4371     nsresult (*GetInternalAndReservedAttribute9ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4372 
4373     nsresult (*GetInternalAndReservedAttribute10ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4374 
4375     nsresult (*GetInternalAndReservedAttribute11ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4376 
4377     nsresult (*GetInternalAndReservedAttribute12ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4378 
4379     nsresult (*InternalAndReservedMethod1ICloudNetwork)(ICloudNetwork *pThis);
4380 
4381     nsresult (*InternalAndReservedMethod2ICloudNetwork)(ICloudNetwork *pThis);
4382 
4383     nsresult (*InternalAndReservedMethod3ICloudNetwork)(ICloudNetwork *pThis);
4384 
4385     nsresult (*InternalAndReservedMethod4ICloudNetwork)(ICloudNetwork *pThis);
4386 
4387 };
4388 #   else /* VBOX_WITH_GLUE */
4389 struct ICloudNetworkVtbl
4390 {
4391     nsresult (*QueryInterface)(ICloudNetwork *pThis, const nsID *iid, void **resultp);
4392     nsrefcnt (*AddRef)(ICloudNetwork *pThis);
4393     nsrefcnt (*Release)(ICloudNetwork *pThis);
4394     nsresult (*GetNetworkName)(ICloudNetwork *pThis, PRUnichar * *networkName);
4395     nsresult (*SetNetworkName)(ICloudNetwork *pThis, PRUnichar * networkName);
4396 
4397     nsresult (*GetEnabled)(ICloudNetwork *pThis, PRBool *enabled);
4398     nsresult (*SetEnabled)(ICloudNetwork *pThis, PRBool enabled);
4399 
4400     nsresult (*GetProvider)(ICloudNetwork *pThis, PRUnichar * *provider);
4401     nsresult (*SetProvider)(ICloudNetwork *pThis, PRUnichar * provider);
4402 
4403     nsresult (*GetProfile)(ICloudNetwork *pThis, PRUnichar * *profile);
4404     nsresult (*SetProfile)(ICloudNetwork *pThis, PRUnichar * profile);
4405 
4406     nsresult (*GetNetworkId)(ICloudNetwork *pThis, PRUnichar * *networkId);
4407     nsresult (*SetNetworkId)(ICloudNetwork *pThis, PRUnichar * networkId);
4408 
4409     nsresult (*GetInternalAndReservedAttribute1ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4410 
4411     nsresult (*GetInternalAndReservedAttribute2ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4412 
4413     nsresult (*GetInternalAndReservedAttribute3ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4414 
4415     nsresult (*GetInternalAndReservedAttribute4ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4416 
4417     nsresult (*GetInternalAndReservedAttribute5ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4418 
4419     nsresult (*GetInternalAndReservedAttribute6ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4420 
4421     nsresult (*GetInternalAndReservedAttribute7ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4422 
4423     nsresult (*GetInternalAndReservedAttribute8ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4424 
4425     nsresult (*GetInternalAndReservedAttribute9ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4426 
4427     nsresult (*GetInternalAndReservedAttribute10ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4428 
4429     nsresult (*GetInternalAndReservedAttribute11ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4430 
4431     nsresult (*GetInternalAndReservedAttribute12ICloudNetwork)(ICloudNetwork *pThis, PRUint32 *reserved);
4432 
4433     nsresult (*InternalAndReservedMethod1ICloudNetwork)(ICloudNetwork *pThis);
4434 
4435     nsresult (*InternalAndReservedMethod2ICloudNetwork)(ICloudNetwork *pThis);
4436 
4437     nsresult (*InternalAndReservedMethod3ICloudNetwork)(ICloudNetwork *pThis);
4438 
4439     nsresult (*InternalAndReservedMethod4ICloudNetwork)(ICloudNetwork *pThis);
4440 
4441 };
4442 #    define ICloudNetwork_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4443 #    define ICloudNetwork_AddRef(p) ((p)->lpVtbl->AddRef(p))
4444 #    define ICloudNetwork_Release(p) ((p)->lpVtbl->Release(p))
4445 #    define ICloudNetwork_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4446 #    define ICloudNetwork_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4447 #    define ICloudNetwork_put_NetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
4448 #    define ICloudNetwork_SetNetworkName(p, aNetworkName) ((p)->lpVtbl->SetNetworkName(p, aNetworkName))
4449 #    define ICloudNetwork_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4450 #    define ICloudNetwork_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4451 #    define ICloudNetwork_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4452 #    define ICloudNetwork_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4453 #    define ICloudNetwork_get_Provider(p, aProvider) ((p)->lpVtbl->GetProvider(p, aProvider))
4454 #    define ICloudNetwork_GetProvider(p, aProvider) ((p)->lpVtbl->GetProvider(p, aProvider))
4455 #    define ICloudNetwork_put_Provider(p, aProvider) ((p)->lpVtbl->SetProvider(p, aProvider))
4456 #    define ICloudNetwork_SetProvider(p, aProvider) ((p)->lpVtbl->SetProvider(p, aProvider))
4457 #    define ICloudNetwork_get_Profile(p, aProfile) ((p)->lpVtbl->GetProfile(p, aProfile))
4458 #    define ICloudNetwork_GetProfile(p, aProfile) ((p)->lpVtbl->GetProfile(p, aProfile))
4459 #    define ICloudNetwork_put_Profile(p, aProfile) ((p)->lpVtbl->SetProfile(p, aProfile))
4460 #    define ICloudNetwork_SetProfile(p, aProfile) ((p)->lpVtbl->SetProfile(p, aProfile))
4461 #    define ICloudNetwork_get_NetworkId(p, aNetworkId) ((p)->lpVtbl->GetNetworkId(p, aNetworkId))
4462 #    define ICloudNetwork_GetNetworkId(p, aNetworkId) ((p)->lpVtbl->GetNetworkId(p, aNetworkId))
4463 #    define ICloudNetwork_put_NetworkId(p, aNetworkId) ((p)->lpVtbl->SetNetworkId(p, aNetworkId))
4464 #    define ICloudNetwork_SetNetworkId(p, aNetworkId) ((p)->lpVtbl->SetNetworkId(p, aNetworkId))
4465 #   endif /* VBOX_WITH_GLUE */
4466 
4467 interface ICloudNetwork
4468 {
4469 #   ifndef VBOX_WITH_GLUE
4470     struct ICloudNetwork_vtbl *vtbl;
4471 #   else /* VBOX_WITH_GLUE */
4472     CONST_VTBL struct ICloudNetworkVtbl *lpVtbl;
4473 #   endif /* VBOX_WITH_GLUE */
4474 };
4475 /* End of struct ICloudNetwork declaration */
4476 
4477 
4478 /* Start of struct IDHCPServer declaration */
4479 #   define IDHCPSERVER_IID_STR "cadef0a2-a1a9-4ac2-8e80-c049af69dac8"
4480 #   define IDHCPSERVER_IID { \
4481     0xcadef0a2, 0xa1a9, 0x4ac2, \
4482     { 0x8e, 0x80, 0xc0, 0x49, 0xaf, 0x69, 0xda, 0xc8 } \
4483 }
4484 /* COM compatibility */
4485 VBOX_EXTERN_CONST(nsIID, IID_IDHCPServer);
4486 #   ifndef VBOX_WITH_GLUE
4487 struct IDHCPServer_vtbl
4488 {
4489     struct nsISupports_vtbl nsisupports;
4490 
4491     nsresult (*GetEventSource)(IDHCPServer *pThis, IEventSource * *eventSource);
4492 
4493     nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
4494     nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
4495 
4496     nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
4497 
4498     nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
4499 
4500     nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
4501 
4502     nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
4503 
4504     nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
4505 
4506     nsresult (*GetGlobalConfig)(IDHCPServer *pThis, IDHCPGlobalConfig * *globalConfig);
4507 
4508     nsresult (*GetGroupConfigs)(IDHCPServer *pThis, PRUint32 *groupConfigsSize, IDHCPGroupConfig * **groupConfigs);
4509 
4510     nsresult (*GetIndividualConfigs)(IDHCPServer *pThis, PRUint32 *individualConfigsSize, IDHCPIndividualConfig * **individualConfigs);
4511 
4512     nsresult (*GetInternalAndReservedAttribute1IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4513 
4514     nsresult (*GetInternalAndReservedAttribute2IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4515 
4516     nsresult (*GetInternalAndReservedAttribute3IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4517 
4518     nsresult (*SetConfiguration)(
4519         IDHCPServer *pThis,
4520         PRUnichar * IPAddress,
4521         PRUnichar * networkMask,
4522         PRUnichar * FromIPAddress,
4523         PRUnichar * ToIPAddress
4524     );
4525 
4526     nsresult (*Start)(
4527         IDHCPServer *pThis,
4528         PRUnichar * trunkName,
4529         PRUnichar * trunkType
4530     );
4531 
4532     nsresult (*Stop)(IDHCPServer *pThis );
4533 
4534     nsresult (*Restart)(IDHCPServer *pThis );
4535 
4536     nsresult (*FindLeaseByMAC)(
4537         IDHCPServer *pThis,
4538         PRUnichar * mac,
4539         PRInt32 type,
4540         PRUnichar * * address,
4541         PRUnichar * * state,
4542         PRInt64 * issued,
4543         PRInt64 * expire
4544     );
4545 
4546     nsresult (*GetConfig)(
4547         IDHCPServer *pThis,
4548         PRUint32 scope,
4549         PRUnichar * name,
4550         PRUint32 slot,
4551         PRBool mayAdd,
4552         IDHCPConfig * * config
4553     );
4554 
4555 };
4556 #   else /* VBOX_WITH_GLUE */
4557 struct IDHCPServerVtbl
4558 {
4559     nsresult (*QueryInterface)(IDHCPServer *pThis, const nsID *iid, void **resultp);
4560     nsrefcnt (*AddRef)(IDHCPServer *pThis);
4561     nsrefcnt (*Release)(IDHCPServer *pThis);
4562     nsresult (*GetEventSource)(IDHCPServer *pThis, IEventSource * *eventSource);
4563 
4564     nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
4565     nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
4566 
4567     nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
4568 
4569     nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
4570 
4571     nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
4572 
4573     nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
4574 
4575     nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
4576 
4577     nsresult (*GetGlobalConfig)(IDHCPServer *pThis, IDHCPGlobalConfig * *globalConfig);
4578 
4579     nsresult (*GetGroupConfigs)(IDHCPServer *pThis, PRUint32 *groupConfigsSize, IDHCPGroupConfig * **groupConfigs);
4580 
4581     nsresult (*GetIndividualConfigs)(IDHCPServer *pThis, PRUint32 *individualConfigsSize, IDHCPIndividualConfig * **individualConfigs);
4582 
4583     nsresult (*GetInternalAndReservedAttribute1IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4584 
4585     nsresult (*GetInternalAndReservedAttribute2IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4586 
4587     nsresult (*GetInternalAndReservedAttribute3IDHCPServer)(IDHCPServer *pThis, PRUint32 *reserved);
4588 
4589     nsresult (*SetConfiguration)(
4590         IDHCPServer *pThis,
4591         PRUnichar * IPAddress,
4592         PRUnichar * networkMask,
4593         PRUnichar * FromIPAddress,
4594         PRUnichar * ToIPAddress
4595     );
4596 
4597     nsresult (*Start)(
4598         IDHCPServer *pThis,
4599         PRUnichar * trunkName,
4600         PRUnichar * trunkType
4601     );
4602 
4603     nsresult (*Stop)(IDHCPServer *pThis );
4604 
4605     nsresult (*Restart)(IDHCPServer *pThis );
4606 
4607     nsresult (*FindLeaseByMAC)(
4608         IDHCPServer *pThis,
4609         PRUnichar * mac,
4610         PRInt32 type,
4611         PRUnichar * * address,
4612         PRUnichar * * state,
4613         PRInt64 * issued,
4614         PRInt64 * expire
4615     );
4616 
4617     nsresult (*GetConfig)(
4618         IDHCPServer *pThis,
4619         PRUint32 scope,
4620         PRUnichar * name,
4621         PRUint32 slot,
4622         PRBool mayAdd,
4623         IDHCPConfig * * config
4624     );
4625 
4626 };
4627 #    define IDHCPServer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4628 #    define IDHCPServer_AddRef(p) ((p)->lpVtbl->AddRef(p))
4629 #    define IDHCPServer_Release(p) ((p)->lpVtbl->Release(p))
4630 #    define IDHCPServer_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4631 #    define IDHCPServer_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
4632 #    define IDHCPServer_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4633 #    define IDHCPServer_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
4634 #    define IDHCPServer_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4635 #    define IDHCPServer_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
4636 #    define IDHCPServer_get_IPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
4637 #    define IDHCPServer_GetIPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
4638 #    define IDHCPServer_get_NetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
4639 #    define IDHCPServer_GetNetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
4640 #    define IDHCPServer_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4641 #    define IDHCPServer_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
4642 #    define IDHCPServer_get_LowerIP(p, aLowerIP) ((p)->lpVtbl->GetLowerIP(p, aLowerIP))
4643 #    define IDHCPServer_GetLowerIP(p, aLowerIP) ((p)->lpVtbl->GetLowerIP(p, aLowerIP))
4644 #    define IDHCPServer_get_UpperIP(p, aUpperIP) ((p)->lpVtbl->GetUpperIP(p, aUpperIP))
4645 #    define IDHCPServer_GetUpperIP(p, aUpperIP) ((p)->lpVtbl->GetUpperIP(p, aUpperIP))
4646 #    define IDHCPServer_get_GlobalConfig(p, aGlobalConfig) ((p)->lpVtbl->GetGlobalConfig(p, aGlobalConfig))
4647 #    define IDHCPServer_GetGlobalConfig(p, aGlobalConfig) ((p)->lpVtbl->GetGlobalConfig(p, aGlobalConfig))
4648 #    define IDHCPServer_get_GroupConfigs(p, aGroupConfigs) ((p)->lpVtbl->GetGroupConfigs(p, aGroupConfigs))
4649 #    define IDHCPServer_GetGroupConfigs(p, aGroupConfigs) ((p)->lpVtbl->GetGroupConfigs(p, aGroupConfigs))
4650 #    define IDHCPServer_get_IndividualConfigs(p, aIndividualConfigs) ((p)->lpVtbl->GetIndividualConfigs(p, aIndividualConfigs))
4651 #    define IDHCPServer_GetIndividualConfigs(p, aIndividualConfigs) ((p)->lpVtbl->GetIndividualConfigs(p, aIndividualConfigs))
4652 #    define IDHCPServer_SetConfiguration(p, aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress) ((p)->lpVtbl->SetConfiguration(p, aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress))
4653 #    define IDHCPServer_Start(p, aTrunkName, aTrunkType) ((p)->lpVtbl->Start(p, aTrunkName, aTrunkType))
4654 #    define IDHCPServer_Stop(p) ((p)->lpVtbl->Stop(p))
4655 #    define IDHCPServer_Restart(p) ((p)->lpVtbl->Restart(p))
4656 #    define IDHCPServer_FindLeaseByMAC(p, aMac, aType, aAddress, aState, aIssued, aExpire) ((p)->lpVtbl->FindLeaseByMAC(p, aMac, aType, aAddress, aState, aIssued, aExpire))
4657 #    define IDHCPServer_GetConfig(p, aScope, aName, aSlot, aMayAdd, aConfig) ((p)->lpVtbl->GetConfig(p, aScope, aName, aSlot, aMayAdd, aConfig))
4658 #   endif /* VBOX_WITH_GLUE */
4659 
4660 interface IDHCPServer
4661 {
4662 #   ifndef VBOX_WITH_GLUE
4663     struct IDHCPServer_vtbl *vtbl;
4664 #   else /* VBOX_WITH_GLUE */
4665     CONST_VTBL struct IDHCPServerVtbl *lpVtbl;
4666 #   endif /* VBOX_WITH_GLUE */
4667 };
4668 /* End of struct IDHCPServer declaration */
4669 
4670 
4671 /* Start of struct IDHCPConfig declaration */
4672 #   define IDHCPCONFIG_IID_STR "00f4a8dc-0002-4b81-0077-1dcb004571ba"
4673 #   define IDHCPCONFIG_IID { \
4674     0x00f4a8dc, 0x0002, 0x4b81, \
4675     { 0x00, 0x77, 0x1d, 0xcb, 0x00, 0x45, 0x71, 0xba } \
4676 }
4677 /* COM compatibility */
4678 VBOX_EXTERN_CONST(nsIID, IID_IDHCPConfig);
4679 #   ifndef VBOX_WITH_GLUE
4680 struct IDHCPConfig_vtbl
4681 {
4682     struct nsISupports_vtbl nsisupports;
4683 
4684     nsresult (*GetScope)(IDHCPConfig *pThis, PRUint32 *scope);
4685 
4686     nsresult (*GetMinLeaseTime)(IDHCPConfig *pThis, PRUint32 *minLeaseTime);
4687     nsresult (*SetMinLeaseTime)(IDHCPConfig *pThis, PRUint32 minLeaseTime);
4688 
4689     nsresult (*GetDefaultLeaseTime)(IDHCPConfig *pThis, PRUint32 *defaultLeaseTime);
4690     nsresult (*SetDefaultLeaseTime)(IDHCPConfig *pThis, PRUint32 defaultLeaseTime);
4691 
4692     nsresult (*GetMaxLeaseTime)(IDHCPConfig *pThis, PRUint32 *maxLeaseTime);
4693     nsresult (*SetMaxLeaseTime)(IDHCPConfig *pThis, PRUint32 maxLeaseTime);
4694 
4695     nsresult (*GetForcedOptions)(IDHCPConfig *pThis, PRUint32 *forcedOptionsSize, PRUint32 **forcedOptions);
4696     nsresult (*SetForcedOptions)(IDHCPConfig *pThis, PRUint32 forcedOptionsSize, PRUint32 *forcedOptions);
4697 
4698     nsresult (*GetSuppressedOptions)(IDHCPConfig *pThis, PRUint32 *suppressedOptionsSize, PRUint32 **suppressedOptions);
4699     nsresult (*SetSuppressedOptions)(IDHCPConfig *pThis, PRUint32 suppressedOptionsSize, PRUint32 *suppressedOptions);
4700 
4701     nsresult (*GetInternalAndReservedAttribute1IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4702 
4703     nsresult (*GetInternalAndReservedAttribute2IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4704 
4705     nsresult (*GetInternalAndReservedAttribute3IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4706 
4707     nsresult (*GetInternalAndReservedAttribute4IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4708 
4709     nsresult (*GetInternalAndReservedAttribute5IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4710 
4711     nsresult (*GetInternalAndReservedAttribute6IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4712 
4713     nsresult (*GetInternalAndReservedAttribute7IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4714 
4715     nsresult (*GetInternalAndReservedAttribute8IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4716 
4717     nsresult (*GetInternalAndReservedAttribute9IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4718 
4719     nsresult (*GetInternalAndReservedAttribute10IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4720 
4721     nsresult (*GetInternalAndReservedAttribute11IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4722 
4723     nsresult (*GetInternalAndReservedAttribute12IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4724 
4725     nsresult (*GetInternalAndReservedAttribute13IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4726 
4727     nsresult (*GetInternalAndReservedAttribute14IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4728 
4729     nsresult (*GetInternalAndReservedAttribute15IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4730 
4731     nsresult (*GetInternalAndReservedAttribute16IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4732 
4733     nsresult (*SetOption)(
4734         IDHCPConfig *pThis,
4735         PRUint32 option,
4736         PRUint32 encoding,
4737         PRUnichar * value
4738     );
4739 
4740     nsresult (*RemoveOption)(
4741         IDHCPConfig *pThis,
4742         PRUint32 option
4743     );
4744 
4745     nsresult (*RemoveAllOptions)(IDHCPConfig *pThis );
4746 
4747     nsresult (*GetOption)(
4748         IDHCPConfig *pThis,
4749         PRUint32 option,
4750         PRUint32 * encoding,
4751         PRUnichar * * value
4752     );
4753 
4754     nsresult (*GetAllOptions)(
4755         IDHCPConfig *pThis,
4756         PRUint32 *optionsSize,
4757         PRUint32** options,
4758         PRUint32 *encodingsSize,
4759         PRUint32** encodings,
4760         PRUint32 *valuesSize,
4761         PRUnichar *** values
4762     );
4763 
4764     nsresult (*Remove)(IDHCPConfig *pThis );
4765 
4766     nsresult (*InternalAndReservedMethod1IDHCPConfig)(IDHCPConfig *pThis);
4767 
4768     nsresult (*InternalAndReservedMethod2IDHCPConfig)(IDHCPConfig *pThis);
4769 
4770     nsresult (*InternalAndReservedMethod3IDHCPConfig)(IDHCPConfig *pThis);
4771 
4772     nsresult (*InternalAndReservedMethod4IDHCPConfig)(IDHCPConfig *pThis);
4773 
4774     nsresult (*InternalAndReservedMethod5IDHCPConfig)(IDHCPConfig *pThis);
4775 
4776     nsresult (*InternalAndReservedMethod6IDHCPConfig)(IDHCPConfig *pThis);
4777 
4778     nsresult (*InternalAndReservedMethod7IDHCPConfig)(IDHCPConfig *pThis);
4779 
4780     nsresult (*InternalAndReservedMethod8IDHCPConfig)(IDHCPConfig *pThis);
4781 
4782 };
4783 #   else /* VBOX_WITH_GLUE */
4784 struct IDHCPConfigVtbl
4785 {
4786     nsresult (*QueryInterface)(IDHCPConfig *pThis, const nsID *iid, void **resultp);
4787     nsrefcnt (*AddRef)(IDHCPConfig *pThis);
4788     nsrefcnt (*Release)(IDHCPConfig *pThis);
4789     nsresult (*GetScope)(IDHCPConfig *pThis, PRUint32 *scope);
4790 
4791     nsresult (*GetMinLeaseTime)(IDHCPConfig *pThis, PRUint32 *minLeaseTime);
4792     nsresult (*SetMinLeaseTime)(IDHCPConfig *pThis, PRUint32 minLeaseTime);
4793 
4794     nsresult (*GetDefaultLeaseTime)(IDHCPConfig *pThis, PRUint32 *defaultLeaseTime);
4795     nsresult (*SetDefaultLeaseTime)(IDHCPConfig *pThis, PRUint32 defaultLeaseTime);
4796 
4797     nsresult (*GetMaxLeaseTime)(IDHCPConfig *pThis, PRUint32 *maxLeaseTime);
4798     nsresult (*SetMaxLeaseTime)(IDHCPConfig *pThis, PRUint32 maxLeaseTime);
4799 
4800     nsresult (*GetForcedOptions)(IDHCPConfig *pThis, PRUint32 *forcedOptionsSize, PRUint32 **forcedOptions);
4801     nsresult (*SetForcedOptions)(IDHCPConfig *pThis, PRUint32 forcedOptionsSize, PRUint32 *forcedOptions);
4802 
4803     nsresult (*GetSuppressedOptions)(IDHCPConfig *pThis, PRUint32 *suppressedOptionsSize, PRUint32 **suppressedOptions);
4804     nsresult (*SetSuppressedOptions)(IDHCPConfig *pThis, PRUint32 suppressedOptionsSize, PRUint32 *suppressedOptions);
4805 
4806     nsresult (*GetInternalAndReservedAttribute1IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4807 
4808     nsresult (*GetInternalAndReservedAttribute2IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4809 
4810     nsresult (*GetInternalAndReservedAttribute3IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4811 
4812     nsresult (*GetInternalAndReservedAttribute4IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4813 
4814     nsresult (*GetInternalAndReservedAttribute5IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4815 
4816     nsresult (*GetInternalAndReservedAttribute6IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4817 
4818     nsresult (*GetInternalAndReservedAttribute7IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4819 
4820     nsresult (*GetInternalAndReservedAttribute8IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4821 
4822     nsresult (*GetInternalAndReservedAttribute9IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4823 
4824     nsresult (*GetInternalAndReservedAttribute10IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4825 
4826     nsresult (*GetInternalAndReservedAttribute11IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4827 
4828     nsresult (*GetInternalAndReservedAttribute12IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4829 
4830     nsresult (*GetInternalAndReservedAttribute13IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4831 
4832     nsresult (*GetInternalAndReservedAttribute14IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4833 
4834     nsresult (*GetInternalAndReservedAttribute15IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4835 
4836     nsresult (*GetInternalAndReservedAttribute16IDHCPConfig)(IDHCPConfig *pThis, PRUint32 *reserved);
4837 
4838     nsresult (*SetOption)(
4839         IDHCPConfig *pThis,
4840         PRUint32 option,
4841         PRUint32 encoding,
4842         PRUnichar * value
4843     );
4844 
4845     nsresult (*RemoveOption)(
4846         IDHCPConfig *pThis,
4847         PRUint32 option
4848     );
4849 
4850     nsresult (*RemoveAllOptions)(IDHCPConfig *pThis );
4851 
4852     nsresult (*GetOption)(
4853         IDHCPConfig *pThis,
4854         PRUint32 option,
4855         PRUint32 * encoding,
4856         PRUnichar * * value
4857     );
4858 
4859     nsresult (*GetAllOptions)(
4860         IDHCPConfig *pThis,
4861         PRUint32 *optionsSize,
4862         PRUint32** options,
4863         PRUint32 *encodingsSize,
4864         PRUint32** encodings,
4865         PRUint32 *valuesSize,
4866         PRUnichar *** values
4867     );
4868 
4869     nsresult (*Remove)(IDHCPConfig *pThis );
4870 
4871     nsresult (*InternalAndReservedMethod1IDHCPConfig)(IDHCPConfig *pThis);
4872 
4873     nsresult (*InternalAndReservedMethod2IDHCPConfig)(IDHCPConfig *pThis);
4874 
4875     nsresult (*InternalAndReservedMethod3IDHCPConfig)(IDHCPConfig *pThis);
4876 
4877     nsresult (*InternalAndReservedMethod4IDHCPConfig)(IDHCPConfig *pThis);
4878 
4879     nsresult (*InternalAndReservedMethod5IDHCPConfig)(IDHCPConfig *pThis);
4880 
4881     nsresult (*InternalAndReservedMethod6IDHCPConfig)(IDHCPConfig *pThis);
4882 
4883     nsresult (*InternalAndReservedMethod7IDHCPConfig)(IDHCPConfig *pThis);
4884 
4885     nsresult (*InternalAndReservedMethod8IDHCPConfig)(IDHCPConfig *pThis);
4886 
4887 };
4888 #    define IDHCPConfig_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
4889 #    define IDHCPConfig_AddRef(p) ((p)->lpVtbl->AddRef(p))
4890 #    define IDHCPConfig_Release(p) ((p)->lpVtbl->Release(p))
4891 #    define IDHCPConfig_get_Scope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
4892 #    define IDHCPConfig_GetScope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
4893 #    define IDHCPConfig_get_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
4894 #    define IDHCPConfig_GetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
4895 #    define IDHCPConfig_put_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
4896 #    define IDHCPConfig_SetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
4897 #    define IDHCPConfig_get_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
4898 #    define IDHCPConfig_GetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
4899 #    define IDHCPConfig_put_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
4900 #    define IDHCPConfig_SetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
4901 #    define IDHCPConfig_get_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
4902 #    define IDHCPConfig_GetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
4903 #    define IDHCPConfig_put_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
4904 #    define IDHCPConfig_SetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
4905 #    define IDHCPConfig_get_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
4906 #    define IDHCPConfig_GetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
4907 #    define IDHCPConfig_put_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
4908 #    define IDHCPConfig_SetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
4909 #    define IDHCPConfig_get_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
4910 #    define IDHCPConfig_GetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
4911 #    define IDHCPConfig_put_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
4912 #    define IDHCPConfig_SetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
4913 #    define IDHCPConfig_SetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->SetOption(p, aOption, aEncoding, aValue))
4914 #    define IDHCPConfig_RemoveOption(p, aOption) ((p)->lpVtbl->RemoveOption(p, aOption))
4915 #    define IDHCPConfig_RemoveAllOptions(p) ((p)->lpVtbl->RemoveAllOptions(p))
4916 #    define IDHCPConfig_GetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->GetOption(p, aOption, aEncoding, aValue))
4917 #    define IDHCPConfig_GetAllOptions(p, aOptions, aEncodings, aValues) ((p)->lpVtbl->GetAllOptions(p, aOptions, aEncodings, aValues))
4918 #    define IDHCPConfig_Remove(p) ((p)->lpVtbl->Remove(p))
4919 #   endif /* VBOX_WITH_GLUE */
4920 
4921 interface IDHCPConfig
4922 {
4923 #   ifndef VBOX_WITH_GLUE
4924     struct IDHCPConfig_vtbl *vtbl;
4925 #   else /* VBOX_WITH_GLUE */
4926     CONST_VTBL struct IDHCPConfigVtbl *lpVtbl;
4927 #   endif /* VBOX_WITH_GLUE */
4928 };
4929 /* End of struct IDHCPConfig declaration */
4930 
4931 
4932 /* Start of struct IDHCPGlobalConfig declaration */
4933 #   define IDHCPGLOBALCONFIG_IID_STR "46735de7-f4c4-4020-a185-0d2881bcfa8b"
4934 #   define IDHCPGLOBALCONFIG_IID { \
4935     0x46735de7, 0xf4c4, 0x4020, \
4936     { 0xa1, 0x85, 0x0d, 0x28, 0x81, 0xbc, 0xfa, 0x8b } \
4937 }
4938 /* COM compatibility */
4939 VBOX_EXTERN_CONST(nsIID, IID_IDHCPGlobalConfig);
4940 #   ifndef VBOX_WITH_GLUE
4941 struct IDHCPGlobalConfig_vtbl
4942 {
4943     struct IDHCPConfig_vtbl idhcpconfig;
4944 
4945     nsresult (*GetInternalAndReservedAttribute1IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4946 
4947     nsresult (*GetInternalAndReservedAttribute2IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4948 
4949     nsresult (*GetInternalAndReservedAttribute3IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4950 
4951     nsresult (*GetInternalAndReservedAttribute4IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4952 
4953     nsresult (*InternalAndReservedMethod1IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
4954 
4955     nsresult (*InternalAndReservedMethod2IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
4956 
4957     nsresult (*InternalAndReservedMethod3IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
4958 
4959     nsresult (*InternalAndReservedMethod4IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
4960 
4961 };
4962 #   else /* VBOX_WITH_GLUE */
4963 struct IDHCPGlobalConfigVtbl
4964 {
4965     nsresult (*QueryInterface)(IDHCPGlobalConfig *pThis, const nsID *iid, void **resultp);
4966     nsrefcnt (*AddRef)(IDHCPGlobalConfig *pThis);
4967     nsrefcnt (*Release)(IDHCPGlobalConfig *pThis);
4968     nsresult (*GetScope)(IDHCPGlobalConfig *pThis, PRUint32 *scope);
4969 
4970     nsresult (*GetMinLeaseTime)(IDHCPGlobalConfig *pThis, PRUint32 *minLeaseTime);
4971     nsresult (*SetMinLeaseTime)(IDHCPGlobalConfig *pThis, PRUint32 minLeaseTime);
4972 
4973     nsresult (*GetDefaultLeaseTime)(IDHCPGlobalConfig *pThis, PRUint32 *defaultLeaseTime);
4974     nsresult (*SetDefaultLeaseTime)(IDHCPGlobalConfig *pThis, PRUint32 defaultLeaseTime);
4975 
4976     nsresult (*GetMaxLeaseTime)(IDHCPGlobalConfig *pThis, PRUint32 *maxLeaseTime);
4977     nsresult (*SetMaxLeaseTime)(IDHCPGlobalConfig *pThis, PRUint32 maxLeaseTime);
4978 
4979     nsresult (*GetForcedOptions)(IDHCPGlobalConfig *pThis, PRUint32 *forcedOptionsSize, PRUint32 **forcedOptions);
4980     nsresult (*SetForcedOptions)(IDHCPGlobalConfig *pThis, PRUint32 forcedOptionsSize, PRUint32 *forcedOptions);
4981 
4982     nsresult (*GetSuppressedOptions)(IDHCPGlobalConfig *pThis, PRUint32 *suppressedOptionsSize, PRUint32 **suppressedOptions);
4983     nsresult (*SetSuppressedOptions)(IDHCPGlobalConfig *pThis, PRUint32 suppressedOptionsSize, PRUint32 *suppressedOptions);
4984 
4985     nsresult (*GetInternalAndReservedAttribute1IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4986 
4987     nsresult (*GetInternalAndReservedAttribute2IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4988 
4989     nsresult (*GetInternalAndReservedAttribute3IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4990 
4991     nsresult (*GetInternalAndReservedAttribute4IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4992 
4993     nsresult (*GetInternalAndReservedAttribute5IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4994 
4995     nsresult (*GetInternalAndReservedAttribute6IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4996 
4997     nsresult (*GetInternalAndReservedAttribute7IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
4998 
4999     nsresult (*GetInternalAndReservedAttribute8IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5000 
5001     nsresult (*GetInternalAndReservedAttribute9IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5002 
5003     nsresult (*GetInternalAndReservedAttribute10IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5004 
5005     nsresult (*GetInternalAndReservedAttribute11IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5006 
5007     nsresult (*GetInternalAndReservedAttribute12IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5008 
5009     nsresult (*GetInternalAndReservedAttribute13IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5010 
5011     nsresult (*GetInternalAndReservedAttribute14IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5012 
5013     nsresult (*GetInternalAndReservedAttribute15IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5014 
5015     nsresult (*GetInternalAndReservedAttribute16IDHCPConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5016 
5017     nsresult (*SetOption)(
5018         IDHCPGlobalConfig *pThis,
5019         PRUint32 option,
5020         PRUint32 encoding,
5021         PRUnichar * value
5022     );
5023 
5024     nsresult (*RemoveOption)(
5025         IDHCPGlobalConfig *pThis,
5026         PRUint32 option
5027     );
5028 
5029     nsresult (*RemoveAllOptions)(IDHCPGlobalConfig *pThis );
5030 
5031     nsresult (*GetOption)(
5032         IDHCPGlobalConfig *pThis,
5033         PRUint32 option,
5034         PRUint32 * encoding,
5035         PRUnichar * * value
5036     );
5037 
5038     nsresult (*GetAllOptions)(
5039         IDHCPGlobalConfig *pThis,
5040         PRUint32 *optionsSize,
5041         PRUint32** options,
5042         PRUint32 *encodingsSize,
5043         PRUint32** encodings,
5044         PRUint32 *valuesSize,
5045         PRUnichar *** values
5046     );
5047 
5048     nsresult (*Remove)(IDHCPGlobalConfig *pThis );
5049 
5050     nsresult (*InternalAndReservedMethod1IDHCPConfig)(IDHCPGlobalConfig *pThis);
5051 
5052     nsresult (*InternalAndReservedMethod2IDHCPConfig)(IDHCPGlobalConfig *pThis);
5053 
5054     nsresult (*InternalAndReservedMethod3IDHCPConfig)(IDHCPGlobalConfig *pThis);
5055 
5056     nsresult (*InternalAndReservedMethod4IDHCPConfig)(IDHCPGlobalConfig *pThis);
5057 
5058     nsresult (*InternalAndReservedMethod5IDHCPConfig)(IDHCPGlobalConfig *pThis);
5059 
5060     nsresult (*InternalAndReservedMethod6IDHCPConfig)(IDHCPGlobalConfig *pThis);
5061 
5062     nsresult (*InternalAndReservedMethod7IDHCPConfig)(IDHCPGlobalConfig *pThis);
5063 
5064     nsresult (*InternalAndReservedMethod8IDHCPConfig)(IDHCPGlobalConfig *pThis);
5065 
5066     nsresult (*GetInternalAndReservedAttribute1IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5067 
5068     nsresult (*GetInternalAndReservedAttribute2IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5069 
5070     nsresult (*GetInternalAndReservedAttribute3IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5071 
5072     nsresult (*GetInternalAndReservedAttribute4IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis, PRUint32 *reserved);
5073 
5074     nsresult (*InternalAndReservedMethod1IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
5075 
5076     nsresult (*InternalAndReservedMethod2IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
5077 
5078     nsresult (*InternalAndReservedMethod3IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
5079 
5080     nsresult (*InternalAndReservedMethod4IDHCPGlobalConfig)(IDHCPGlobalConfig *pThis);
5081 
5082 };
5083 #    define IDHCPGlobalConfig_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5084 #    define IDHCPGlobalConfig_AddRef(p) ((p)->lpVtbl->AddRef(p))
5085 #    define IDHCPGlobalConfig_Release(p) ((p)->lpVtbl->Release(p))
5086 #    define IDHCPGlobalConfig_get_Scope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
5087 #    define IDHCPGlobalConfig_GetScope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
5088 #    define IDHCPGlobalConfig_get_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
5089 #    define IDHCPGlobalConfig_GetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
5090 #    define IDHCPGlobalConfig_put_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
5091 #    define IDHCPGlobalConfig_SetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
5092 #    define IDHCPGlobalConfig_get_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
5093 #    define IDHCPGlobalConfig_GetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
5094 #    define IDHCPGlobalConfig_put_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
5095 #    define IDHCPGlobalConfig_SetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
5096 #    define IDHCPGlobalConfig_get_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
5097 #    define IDHCPGlobalConfig_GetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
5098 #    define IDHCPGlobalConfig_put_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
5099 #    define IDHCPGlobalConfig_SetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
5100 #    define IDHCPGlobalConfig_get_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
5101 #    define IDHCPGlobalConfig_GetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
5102 #    define IDHCPGlobalConfig_put_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
5103 #    define IDHCPGlobalConfig_SetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
5104 #    define IDHCPGlobalConfig_get_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
5105 #    define IDHCPGlobalConfig_GetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
5106 #    define IDHCPGlobalConfig_put_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
5107 #    define IDHCPGlobalConfig_SetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
5108 #    define IDHCPGlobalConfig_SetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->SetOption(p, aOption, aEncoding, aValue))
5109 #    define IDHCPGlobalConfig_RemoveOption(p, aOption) ((p)->lpVtbl->RemoveOption(p, aOption))
5110 #    define IDHCPGlobalConfig_RemoveAllOptions(p) ((p)->lpVtbl->RemoveAllOptions(p))
5111 #    define IDHCPGlobalConfig_GetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->GetOption(p, aOption, aEncoding, aValue))
5112 #    define IDHCPGlobalConfig_GetAllOptions(p, aOptions, aEncodings, aValues) ((p)->lpVtbl->GetAllOptions(p, aOptions, aEncodings, aValues))
5113 #    define IDHCPGlobalConfig_Remove(p) ((p)->lpVtbl->Remove(p))
5114 #   endif /* VBOX_WITH_GLUE */
5115 
5116 interface IDHCPGlobalConfig
5117 {
5118 #   ifndef VBOX_WITH_GLUE
5119     struct IDHCPGlobalConfig_vtbl *vtbl;
5120 #   else /* VBOX_WITH_GLUE */
5121     CONST_VTBL struct IDHCPGlobalConfigVtbl *lpVtbl;
5122 #   endif /* VBOX_WITH_GLUE */
5123 };
5124 /* End of struct IDHCPGlobalConfig declaration */
5125 
5126 
5127 /* Start of struct IDHCPGroupCondition declaration */
5128 #   define IDHCPGROUPCONDITION_IID_STR "5ca9e537-5a1d-43f1-6f27-6a0db298a9a8"
5129 #   define IDHCPGROUPCONDITION_IID { \
5130     0x5ca9e537, 0x5a1d, 0x43f1, \
5131     { 0x6f, 0x27, 0x6a, 0x0d, 0xb2, 0x98, 0xa9, 0xa8 } \
5132 }
5133 /* COM compatibility */
5134 VBOX_EXTERN_CONST(nsIID, IID_IDHCPGroupCondition);
5135 #   ifndef VBOX_WITH_GLUE
5136 struct IDHCPGroupCondition_vtbl
5137 {
5138     struct nsISupports_vtbl nsisupports;
5139 
5140     nsresult (*GetInclusive)(IDHCPGroupCondition *pThis, PRBool *inclusive);
5141     nsresult (*SetInclusive)(IDHCPGroupCondition *pThis, PRBool inclusive);
5142 
5143     nsresult (*GetType)(IDHCPGroupCondition *pThis, PRUint32 *type);
5144     nsresult (*SetType)(IDHCPGroupCondition *pThis, PRUint32 type);
5145 
5146     nsresult (*GetValue)(IDHCPGroupCondition *pThis, PRUnichar * *value);
5147     nsresult (*SetValue)(IDHCPGroupCondition *pThis, PRUnichar * value);
5148 
5149     nsresult (*GetInternalAndReservedAttribute1IDHCPGroupCondition)(IDHCPGroupCondition *pThis, PRUint32 *reserved);
5150 
5151     nsresult (*GetInternalAndReservedAttribute2IDHCPGroupCondition)(IDHCPGroupCondition *pThis, PRUint32 *reserved);
5152 
5153     nsresult (*GetInternalAndReservedAttribute3IDHCPGroupCondition)(IDHCPGroupCondition *pThis, PRUint32 *reserved);
5154 
5155     nsresult (*Remove)(IDHCPGroupCondition *pThis );
5156 
5157     nsresult (*InternalAndReservedMethod1IDHCPGroupCondition)(IDHCPGroupCondition *pThis);
5158 
5159     nsresult (*InternalAndReservedMethod2IDHCPGroupCondition)(IDHCPGroupCondition *pThis);
5160 
5161     nsresult (*InternalAndReservedMethod3IDHCPGroupCondition)(IDHCPGroupCondition *pThis);
5162 
5163 };
5164 #   else /* VBOX_WITH_GLUE */
5165 struct IDHCPGroupConditionVtbl
5166 {
5167     nsresult (*QueryInterface)(IDHCPGroupCondition *pThis, const nsID *iid, void **resultp);
5168     nsrefcnt (*AddRef)(IDHCPGroupCondition *pThis);
5169     nsrefcnt (*Release)(IDHCPGroupCondition *pThis);
5170     nsresult (*GetInclusive)(IDHCPGroupCondition *pThis, PRBool *inclusive);
5171     nsresult (*SetInclusive)(IDHCPGroupCondition *pThis, PRBool inclusive);
5172 
5173     nsresult (*GetType)(IDHCPGroupCondition *pThis, PRUint32 *type);
5174     nsresult (*SetType)(IDHCPGroupCondition *pThis, PRUint32 type);
5175 
5176     nsresult (*GetValue)(IDHCPGroupCondition *pThis, PRUnichar * *value);
5177     nsresult (*SetValue)(IDHCPGroupCondition *pThis, PRUnichar * value);
5178 
5179     nsresult (*GetInternalAndReservedAttribute1IDHCPGroupCondition)(IDHCPGroupCondition *pThis, PRUint32 *reserved);
5180 
5181     nsresult (*GetInternalAndReservedAttribute2IDHCPGroupCondition)(IDHCPGroupCondition *pThis, PRUint32 *reserved);
5182 
5183     nsresult (*GetInternalAndReservedAttribute3IDHCPGroupCondition)(IDHCPGroupCondition *pThis, PRUint32 *reserved);
5184 
5185     nsresult (*Remove)(IDHCPGroupCondition *pThis );
5186 
5187     nsresult (*InternalAndReservedMethod1IDHCPGroupCondition)(IDHCPGroupCondition *pThis);
5188 
5189     nsresult (*InternalAndReservedMethod2IDHCPGroupCondition)(IDHCPGroupCondition *pThis);
5190 
5191     nsresult (*InternalAndReservedMethod3IDHCPGroupCondition)(IDHCPGroupCondition *pThis);
5192 
5193 };
5194 #    define IDHCPGroupCondition_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5195 #    define IDHCPGroupCondition_AddRef(p) ((p)->lpVtbl->AddRef(p))
5196 #    define IDHCPGroupCondition_Release(p) ((p)->lpVtbl->Release(p))
5197 #    define IDHCPGroupCondition_get_Inclusive(p, aInclusive) ((p)->lpVtbl->GetInclusive(p, aInclusive))
5198 #    define IDHCPGroupCondition_GetInclusive(p, aInclusive) ((p)->lpVtbl->GetInclusive(p, aInclusive))
5199 #    define IDHCPGroupCondition_put_Inclusive(p, aInclusive) ((p)->lpVtbl->SetInclusive(p, aInclusive))
5200 #    define IDHCPGroupCondition_SetInclusive(p, aInclusive) ((p)->lpVtbl->SetInclusive(p, aInclusive))
5201 #    define IDHCPGroupCondition_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
5202 #    define IDHCPGroupCondition_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
5203 #    define IDHCPGroupCondition_put_Type(p, aType) ((p)->lpVtbl->SetType(p, aType))
5204 #    define IDHCPGroupCondition_SetType(p, aType) ((p)->lpVtbl->SetType(p, aType))
5205 #    define IDHCPGroupCondition_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
5206 #    define IDHCPGroupCondition_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
5207 #    define IDHCPGroupCondition_put_Value(p, aValue) ((p)->lpVtbl->SetValue(p, aValue))
5208 #    define IDHCPGroupCondition_SetValue(p, aValue) ((p)->lpVtbl->SetValue(p, aValue))
5209 #    define IDHCPGroupCondition_Remove(p) ((p)->lpVtbl->Remove(p))
5210 #   endif /* VBOX_WITH_GLUE */
5211 
5212 interface IDHCPGroupCondition
5213 {
5214 #   ifndef VBOX_WITH_GLUE
5215     struct IDHCPGroupCondition_vtbl *vtbl;
5216 #   else /* VBOX_WITH_GLUE */
5217     CONST_VTBL struct IDHCPGroupConditionVtbl *lpVtbl;
5218 #   endif /* VBOX_WITH_GLUE */
5219 };
5220 /* End of struct IDHCPGroupCondition declaration */
5221 
5222 
5223 /* Start of struct IDHCPGroupConfig declaration */
5224 #   define IDHCPGROUPCONFIG_IID_STR "537707f7-ebf9-4d5c-7aea-877bfc4256ba"
5225 #   define IDHCPGROUPCONFIG_IID { \
5226     0x537707f7, 0xebf9, 0x4d5c, \
5227     { 0x7a, 0xea, 0x87, 0x7b, 0xfc, 0x42, 0x56, 0xba } \
5228 }
5229 /* COM compatibility */
5230 VBOX_EXTERN_CONST(nsIID, IID_IDHCPGroupConfig);
5231 #   ifndef VBOX_WITH_GLUE
5232 struct IDHCPGroupConfig_vtbl
5233 {
5234     struct IDHCPConfig_vtbl idhcpconfig;
5235 
5236     nsresult (*GetName)(IDHCPGroupConfig *pThis, PRUnichar * *name);
5237     nsresult (*SetName)(IDHCPGroupConfig *pThis, PRUnichar * name);
5238 
5239     nsresult (*GetConditions)(IDHCPGroupConfig *pThis, PRUint32 *conditionsSize, IDHCPGroupCondition * **conditions);
5240 
5241     nsresult (*GetInternalAndReservedAttribute1IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5242 
5243     nsresult (*GetInternalAndReservedAttribute2IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5244 
5245     nsresult (*GetInternalAndReservedAttribute3IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5246 
5247     nsresult (*GetInternalAndReservedAttribute4IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5248 
5249     nsresult (*GetInternalAndReservedAttribute5IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5250 
5251     nsresult (*GetInternalAndReservedAttribute6IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5252 
5253     nsresult (*GetInternalAndReservedAttribute7IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5254 
5255     nsresult (*GetInternalAndReservedAttribute8IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5256 
5257     nsresult (*AddCondition)(
5258         IDHCPGroupConfig *pThis,
5259         PRBool inclusive,
5260         PRUint32 type,
5261         PRUnichar * value,
5262         IDHCPGroupCondition * * condition
5263     );
5264 
5265     nsresult (*RemoveAllConditions)(IDHCPGroupConfig *pThis );
5266 
5267     nsresult (*InternalAndReservedMethod1IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5268 
5269     nsresult (*InternalAndReservedMethod2IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5270 
5271     nsresult (*InternalAndReservedMethod3IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5272 
5273     nsresult (*InternalAndReservedMethod4IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5274 
5275     nsresult (*InternalAndReservedMethod5IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5276 
5277     nsresult (*InternalAndReservedMethod6IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5278 
5279     nsresult (*InternalAndReservedMethod7IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5280 
5281     nsresult (*InternalAndReservedMethod8IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5282 
5283 };
5284 #   else /* VBOX_WITH_GLUE */
5285 struct IDHCPGroupConfigVtbl
5286 {
5287     nsresult (*QueryInterface)(IDHCPGroupConfig *pThis, const nsID *iid, void **resultp);
5288     nsrefcnt (*AddRef)(IDHCPGroupConfig *pThis);
5289     nsrefcnt (*Release)(IDHCPGroupConfig *pThis);
5290     nsresult (*GetScope)(IDHCPGroupConfig *pThis, PRUint32 *scope);
5291 
5292     nsresult (*GetMinLeaseTime)(IDHCPGroupConfig *pThis, PRUint32 *minLeaseTime);
5293     nsresult (*SetMinLeaseTime)(IDHCPGroupConfig *pThis, PRUint32 minLeaseTime);
5294 
5295     nsresult (*GetDefaultLeaseTime)(IDHCPGroupConfig *pThis, PRUint32 *defaultLeaseTime);
5296     nsresult (*SetDefaultLeaseTime)(IDHCPGroupConfig *pThis, PRUint32 defaultLeaseTime);
5297 
5298     nsresult (*GetMaxLeaseTime)(IDHCPGroupConfig *pThis, PRUint32 *maxLeaseTime);
5299     nsresult (*SetMaxLeaseTime)(IDHCPGroupConfig *pThis, PRUint32 maxLeaseTime);
5300 
5301     nsresult (*GetForcedOptions)(IDHCPGroupConfig *pThis, PRUint32 *forcedOptionsSize, PRUint32 **forcedOptions);
5302     nsresult (*SetForcedOptions)(IDHCPGroupConfig *pThis, PRUint32 forcedOptionsSize, PRUint32 *forcedOptions);
5303 
5304     nsresult (*GetSuppressedOptions)(IDHCPGroupConfig *pThis, PRUint32 *suppressedOptionsSize, PRUint32 **suppressedOptions);
5305     nsresult (*SetSuppressedOptions)(IDHCPGroupConfig *pThis, PRUint32 suppressedOptionsSize, PRUint32 *suppressedOptions);
5306 
5307     nsresult (*GetInternalAndReservedAttribute1IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5308 
5309     nsresult (*GetInternalAndReservedAttribute2IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5310 
5311     nsresult (*GetInternalAndReservedAttribute3IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5312 
5313     nsresult (*GetInternalAndReservedAttribute4IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5314 
5315     nsresult (*GetInternalAndReservedAttribute5IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5316 
5317     nsresult (*GetInternalAndReservedAttribute6IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5318 
5319     nsresult (*GetInternalAndReservedAttribute7IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5320 
5321     nsresult (*GetInternalAndReservedAttribute8IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5322 
5323     nsresult (*GetInternalAndReservedAttribute9IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5324 
5325     nsresult (*GetInternalAndReservedAttribute10IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5326 
5327     nsresult (*GetInternalAndReservedAttribute11IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5328 
5329     nsresult (*GetInternalAndReservedAttribute12IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5330 
5331     nsresult (*GetInternalAndReservedAttribute13IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5332 
5333     nsresult (*GetInternalAndReservedAttribute14IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5334 
5335     nsresult (*GetInternalAndReservedAttribute15IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5336 
5337     nsresult (*GetInternalAndReservedAttribute16IDHCPConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5338 
5339     nsresult (*SetOption)(
5340         IDHCPGroupConfig *pThis,
5341         PRUint32 option,
5342         PRUint32 encoding,
5343         PRUnichar * value
5344     );
5345 
5346     nsresult (*RemoveOption)(
5347         IDHCPGroupConfig *pThis,
5348         PRUint32 option
5349     );
5350 
5351     nsresult (*RemoveAllOptions)(IDHCPGroupConfig *pThis );
5352 
5353     nsresult (*GetOption)(
5354         IDHCPGroupConfig *pThis,
5355         PRUint32 option,
5356         PRUint32 * encoding,
5357         PRUnichar * * value
5358     );
5359 
5360     nsresult (*GetAllOptions)(
5361         IDHCPGroupConfig *pThis,
5362         PRUint32 *optionsSize,
5363         PRUint32** options,
5364         PRUint32 *encodingsSize,
5365         PRUint32** encodings,
5366         PRUint32 *valuesSize,
5367         PRUnichar *** values
5368     );
5369 
5370     nsresult (*Remove)(IDHCPGroupConfig *pThis );
5371 
5372     nsresult (*InternalAndReservedMethod1IDHCPConfig)(IDHCPGroupConfig *pThis);
5373 
5374     nsresult (*InternalAndReservedMethod2IDHCPConfig)(IDHCPGroupConfig *pThis);
5375 
5376     nsresult (*InternalAndReservedMethod3IDHCPConfig)(IDHCPGroupConfig *pThis);
5377 
5378     nsresult (*InternalAndReservedMethod4IDHCPConfig)(IDHCPGroupConfig *pThis);
5379 
5380     nsresult (*InternalAndReservedMethod5IDHCPConfig)(IDHCPGroupConfig *pThis);
5381 
5382     nsresult (*InternalAndReservedMethod6IDHCPConfig)(IDHCPGroupConfig *pThis);
5383 
5384     nsresult (*InternalAndReservedMethod7IDHCPConfig)(IDHCPGroupConfig *pThis);
5385 
5386     nsresult (*InternalAndReservedMethod8IDHCPConfig)(IDHCPGroupConfig *pThis);
5387 
5388     nsresult (*GetName)(IDHCPGroupConfig *pThis, PRUnichar * *name);
5389     nsresult (*SetName)(IDHCPGroupConfig *pThis, PRUnichar * name);
5390 
5391     nsresult (*GetConditions)(IDHCPGroupConfig *pThis, PRUint32 *conditionsSize, IDHCPGroupCondition * **conditions);
5392 
5393     nsresult (*GetInternalAndReservedAttribute1IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5394 
5395     nsresult (*GetInternalAndReservedAttribute2IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5396 
5397     nsresult (*GetInternalAndReservedAttribute3IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5398 
5399     nsresult (*GetInternalAndReservedAttribute4IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5400 
5401     nsresult (*GetInternalAndReservedAttribute5IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5402 
5403     nsresult (*GetInternalAndReservedAttribute6IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5404 
5405     nsresult (*GetInternalAndReservedAttribute7IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5406 
5407     nsresult (*GetInternalAndReservedAttribute8IDHCPGroupConfig)(IDHCPGroupConfig *pThis, PRUint32 *reserved);
5408 
5409     nsresult (*AddCondition)(
5410         IDHCPGroupConfig *pThis,
5411         PRBool inclusive,
5412         PRUint32 type,
5413         PRUnichar * value,
5414         IDHCPGroupCondition * * condition
5415     );
5416 
5417     nsresult (*RemoveAllConditions)(IDHCPGroupConfig *pThis );
5418 
5419     nsresult (*InternalAndReservedMethod1IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5420 
5421     nsresult (*InternalAndReservedMethod2IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5422 
5423     nsresult (*InternalAndReservedMethod3IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5424 
5425     nsresult (*InternalAndReservedMethod4IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5426 
5427     nsresult (*InternalAndReservedMethod5IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5428 
5429     nsresult (*InternalAndReservedMethod6IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5430 
5431     nsresult (*InternalAndReservedMethod7IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5432 
5433     nsresult (*InternalAndReservedMethod8IDHCPGroupConfig)(IDHCPGroupConfig *pThis);
5434 
5435 };
5436 #    define IDHCPGroupConfig_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5437 #    define IDHCPGroupConfig_AddRef(p) ((p)->lpVtbl->AddRef(p))
5438 #    define IDHCPGroupConfig_Release(p) ((p)->lpVtbl->Release(p))
5439 #    define IDHCPGroupConfig_get_Scope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
5440 #    define IDHCPGroupConfig_GetScope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
5441 #    define IDHCPGroupConfig_get_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
5442 #    define IDHCPGroupConfig_GetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
5443 #    define IDHCPGroupConfig_put_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
5444 #    define IDHCPGroupConfig_SetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
5445 #    define IDHCPGroupConfig_get_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
5446 #    define IDHCPGroupConfig_GetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
5447 #    define IDHCPGroupConfig_put_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
5448 #    define IDHCPGroupConfig_SetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
5449 #    define IDHCPGroupConfig_get_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
5450 #    define IDHCPGroupConfig_GetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
5451 #    define IDHCPGroupConfig_put_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
5452 #    define IDHCPGroupConfig_SetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
5453 #    define IDHCPGroupConfig_get_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
5454 #    define IDHCPGroupConfig_GetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
5455 #    define IDHCPGroupConfig_put_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
5456 #    define IDHCPGroupConfig_SetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
5457 #    define IDHCPGroupConfig_get_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
5458 #    define IDHCPGroupConfig_GetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
5459 #    define IDHCPGroupConfig_put_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
5460 #    define IDHCPGroupConfig_SetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
5461 #    define IDHCPGroupConfig_SetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->SetOption(p, aOption, aEncoding, aValue))
5462 #    define IDHCPGroupConfig_RemoveOption(p, aOption) ((p)->lpVtbl->RemoveOption(p, aOption))
5463 #    define IDHCPGroupConfig_RemoveAllOptions(p) ((p)->lpVtbl->RemoveAllOptions(p))
5464 #    define IDHCPGroupConfig_GetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->GetOption(p, aOption, aEncoding, aValue))
5465 #    define IDHCPGroupConfig_GetAllOptions(p, aOptions, aEncodings, aValues) ((p)->lpVtbl->GetAllOptions(p, aOptions, aEncodings, aValues))
5466 #    define IDHCPGroupConfig_Remove(p) ((p)->lpVtbl->Remove(p))
5467 #    define IDHCPGroupConfig_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
5468 #    define IDHCPGroupConfig_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
5469 #    define IDHCPGroupConfig_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
5470 #    define IDHCPGroupConfig_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
5471 #    define IDHCPGroupConfig_get_Conditions(p, aConditions) ((p)->lpVtbl->GetConditions(p, aConditions))
5472 #    define IDHCPGroupConfig_GetConditions(p, aConditions) ((p)->lpVtbl->GetConditions(p, aConditions))
5473 #    define IDHCPGroupConfig_AddCondition(p, aInclusive, aType, aValue, aCondition) ((p)->lpVtbl->AddCondition(p, aInclusive, aType, aValue, aCondition))
5474 #    define IDHCPGroupConfig_RemoveAllConditions(p) ((p)->lpVtbl->RemoveAllConditions(p))
5475 #   endif /* VBOX_WITH_GLUE */
5476 
5477 interface IDHCPGroupConfig
5478 {
5479 #   ifndef VBOX_WITH_GLUE
5480     struct IDHCPGroupConfig_vtbl *vtbl;
5481 #   else /* VBOX_WITH_GLUE */
5482     CONST_VTBL struct IDHCPGroupConfigVtbl *lpVtbl;
5483 #   endif /* VBOX_WITH_GLUE */
5484 };
5485 /* End of struct IDHCPGroupConfig declaration */
5486 
5487 
5488 /* Start of struct IDHCPIndividualConfig declaration */
5489 #   define IDHCPINDIVIDUALCONFIG_IID_STR "c40c2b86-73a5-46cc-8227-93fe57d006a6"
5490 #   define IDHCPINDIVIDUALCONFIG_IID { \
5491     0xc40c2b86, 0x73a5, 0x46cc, \
5492     { 0x82, 0x27, 0x93, 0xfe, 0x57, 0xd0, 0x06, 0xa6 } \
5493 }
5494 /* COM compatibility */
5495 VBOX_EXTERN_CONST(nsIID, IID_IDHCPIndividualConfig);
5496 #   ifndef VBOX_WITH_GLUE
5497 struct IDHCPIndividualConfig_vtbl
5498 {
5499     struct IDHCPConfig_vtbl idhcpconfig;
5500 
5501     nsresult (*GetMACAddress)(IDHCPIndividualConfig *pThis, PRUnichar * *MACAddress);
5502 
5503     nsresult (*GetMachineId)(IDHCPIndividualConfig *pThis, PRUnichar * *machineId);
5504 
5505     nsresult (*GetSlot)(IDHCPIndividualConfig *pThis, PRUint32 *slot);
5506 
5507     nsresult (*GetFixedAddress)(IDHCPIndividualConfig *pThis, PRUnichar * *fixedAddress);
5508     nsresult (*SetFixedAddress)(IDHCPIndividualConfig *pThis, PRUnichar * fixedAddress);
5509 
5510     nsresult (*GetInternalAndReservedAttribute1IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5511 
5512     nsresult (*GetInternalAndReservedAttribute2IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5513 
5514     nsresult (*GetInternalAndReservedAttribute3IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5515 
5516     nsresult (*GetInternalAndReservedAttribute4IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5517 
5518     nsresult (*GetInternalAndReservedAttribute5IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5519 
5520     nsresult (*GetInternalAndReservedAttribute6IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5521 
5522     nsresult (*GetInternalAndReservedAttribute7IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5523 
5524     nsresult (*GetInternalAndReservedAttribute8IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5525 
5526     nsresult (*InternalAndReservedMethod1IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5527 
5528     nsresult (*InternalAndReservedMethod2IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5529 
5530     nsresult (*InternalAndReservedMethod3IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5531 
5532     nsresult (*InternalAndReservedMethod4IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5533 
5534     nsresult (*InternalAndReservedMethod5IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5535 
5536     nsresult (*InternalAndReservedMethod6IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5537 
5538     nsresult (*InternalAndReservedMethod7IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5539 
5540     nsresult (*InternalAndReservedMethod8IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5541 
5542 };
5543 #   else /* VBOX_WITH_GLUE */
5544 struct IDHCPIndividualConfigVtbl
5545 {
5546     nsresult (*QueryInterface)(IDHCPIndividualConfig *pThis, const nsID *iid, void **resultp);
5547     nsrefcnt (*AddRef)(IDHCPIndividualConfig *pThis);
5548     nsrefcnt (*Release)(IDHCPIndividualConfig *pThis);
5549     nsresult (*GetScope)(IDHCPIndividualConfig *pThis, PRUint32 *scope);
5550 
5551     nsresult (*GetMinLeaseTime)(IDHCPIndividualConfig *pThis, PRUint32 *minLeaseTime);
5552     nsresult (*SetMinLeaseTime)(IDHCPIndividualConfig *pThis, PRUint32 minLeaseTime);
5553 
5554     nsresult (*GetDefaultLeaseTime)(IDHCPIndividualConfig *pThis, PRUint32 *defaultLeaseTime);
5555     nsresult (*SetDefaultLeaseTime)(IDHCPIndividualConfig *pThis, PRUint32 defaultLeaseTime);
5556 
5557     nsresult (*GetMaxLeaseTime)(IDHCPIndividualConfig *pThis, PRUint32 *maxLeaseTime);
5558     nsresult (*SetMaxLeaseTime)(IDHCPIndividualConfig *pThis, PRUint32 maxLeaseTime);
5559 
5560     nsresult (*GetForcedOptions)(IDHCPIndividualConfig *pThis, PRUint32 *forcedOptionsSize, PRUint32 **forcedOptions);
5561     nsresult (*SetForcedOptions)(IDHCPIndividualConfig *pThis, PRUint32 forcedOptionsSize, PRUint32 *forcedOptions);
5562 
5563     nsresult (*GetSuppressedOptions)(IDHCPIndividualConfig *pThis, PRUint32 *suppressedOptionsSize, PRUint32 **suppressedOptions);
5564     nsresult (*SetSuppressedOptions)(IDHCPIndividualConfig *pThis, PRUint32 suppressedOptionsSize, PRUint32 *suppressedOptions);
5565 
5566     nsresult (*GetInternalAndReservedAttribute1IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5567 
5568     nsresult (*GetInternalAndReservedAttribute2IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5569 
5570     nsresult (*GetInternalAndReservedAttribute3IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5571 
5572     nsresult (*GetInternalAndReservedAttribute4IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5573 
5574     nsresult (*GetInternalAndReservedAttribute5IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5575 
5576     nsresult (*GetInternalAndReservedAttribute6IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5577 
5578     nsresult (*GetInternalAndReservedAttribute7IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5579 
5580     nsresult (*GetInternalAndReservedAttribute8IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5581 
5582     nsresult (*GetInternalAndReservedAttribute9IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5583 
5584     nsresult (*GetInternalAndReservedAttribute10IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5585 
5586     nsresult (*GetInternalAndReservedAttribute11IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5587 
5588     nsresult (*GetInternalAndReservedAttribute12IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5589 
5590     nsresult (*GetInternalAndReservedAttribute13IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5591 
5592     nsresult (*GetInternalAndReservedAttribute14IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5593 
5594     nsresult (*GetInternalAndReservedAttribute15IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5595 
5596     nsresult (*GetInternalAndReservedAttribute16IDHCPConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5597 
5598     nsresult (*SetOption)(
5599         IDHCPIndividualConfig *pThis,
5600         PRUint32 option,
5601         PRUint32 encoding,
5602         PRUnichar * value
5603     );
5604 
5605     nsresult (*RemoveOption)(
5606         IDHCPIndividualConfig *pThis,
5607         PRUint32 option
5608     );
5609 
5610     nsresult (*RemoveAllOptions)(IDHCPIndividualConfig *pThis );
5611 
5612     nsresult (*GetOption)(
5613         IDHCPIndividualConfig *pThis,
5614         PRUint32 option,
5615         PRUint32 * encoding,
5616         PRUnichar * * value
5617     );
5618 
5619     nsresult (*GetAllOptions)(
5620         IDHCPIndividualConfig *pThis,
5621         PRUint32 *optionsSize,
5622         PRUint32** options,
5623         PRUint32 *encodingsSize,
5624         PRUint32** encodings,
5625         PRUint32 *valuesSize,
5626         PRUnichar *** values
5627     );
5628 
5629     nsresult (*Remove)(IDHCPIndividualConfig *pThis );
5630 
5631     nsresult (*InternalAndReservedMethod1IDHCPConfig)(IDHCPIndividualConfig *pThis);
5632 
5633     nsresult (*InternalAndReservedMethod2IDHCPConfig)(IDHCPIndividualConfig *pThis);
5634 
5635     nsresult (*InternalAndReservedMethod3IDHCPConfig)(IDHCPIndividualConfig *pThis);
5636 
5637     nsresult (*InternalAndReservedMethod4IDHCPConfig)(IDHCPIndividualConfig *pThis);
5638 
5639     nsresult (*InternalAndReservedMethod5IDHCPConfig)(IDHCPIndividualConfig *pThis);
5640 
5641     nsresult (*InternalAndReservedMethod6IDHCPConfig)(IDHCPIndividualConfig *pThis);
5642 
5643     nsresult (*InternalAndReservedMethod7IDHCPConfig)(IDHCPIndividualConfig *pThis);
5644 
5645     nsresult (*InternalAndReservedMethod8IDHCPConfig)(IDHCPIndividualConfig *pThis);
5646 
5647     nsresult (*GetMACAddress)(IDHCPIndividualConfig *pThis, PRUnichar * *MACAddress);
5648 
5649     nsresult (*GetMachineId)(IDHCPIndividualConfig *pThis, PRUnichar * *machineId);
5650 
5651     nsresult (*GetSlot)(IDHCPIndividualConfig *pThis, PRUint32 *slot);
5652 
5653     nsresult (*GetFixedAddress)(IDHCPIndividualConfig *pThis, PRUnichar * *fixedAddress);
5654     nsresult (*SetFixedAddress)(IDHCPIndividualConfig *pThis, PRUnichar * fixedAddress);
5655 
5656     nsresult (*GetInternalAndReservedAttribute1IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5657 
5658     nsresult (*GetInternalAndReservedAttribute2IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5659 
5660     nsresult (*GetInternalAndReservedAttribute3IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5661 
5662     nsresult (*GetInternalAndReservedAttribute4IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5663 
5664     nsresult (*GetInternalAndReservedAttribute5IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5665 
5666     nsresult (*GetInternalAndReservedAttribute6IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5667 
5668     nsresult (*GetInternalAndReservedAttribute7IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5669 
5670     nsresult (*GetInternalAndReservedAttribute8IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis, PRUint32 *reserved);
5671 
5672     nsresult (*InternalAndReservedMethod1IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5673 
5674     nsresult (*InternalAndReservedMethod2IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5675 
5676     nsresult (*InternalAndReservedMethod3IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5677 
5678     nsresult (*InternalAndReservedMethod4IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5679 
5680     nsresult (*InternalAndReservedMethod5IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5681 
5682     nsresult (*InternalAndReservedMethod6IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5683 
5684     nsresult (*InternalAndReservedMethod7IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5685 
5686     nsresult (*InternalAndReservedMethod8IDHCPIndividualConfig)(IDHCPIndividualConfig *pThis);
5687 
5688 };
5689 #    define IDHCPIndividualConfig_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
5690 #    define IDHCPIndividualConfig_AddRef(p) ((p)->lpVtbl->AddRef(p))
5691 #    define IDHCPIndividualConfig_Release(p) ((p)->lpVtbl->Release(p))
5692 #    define IDHCPIndividualConfig_get_Scope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
5693 #    define IDHCPIndividualConfig_GetScope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
5694 #    define IDHCPIndividualConfig_get_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
5695 #    define IDHCPIndividualConfig_GetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->GetMinLeaseTime(p, aMinLeaseTime))
5696 #    define IDHCPIndividualConfig_put_MinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
5697 #    define IDHCPIndividualConfig_SetMinLeaseTime(p, aMinLeaseTime) ((p)->lpVtbl->SetMinLeaseTime(p, aMinLeaseTime))
5698 #    define IDHCPIndividualConfig_get_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
5699 #    define IDHCPIndividualConfig_GetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->GetDefaultLeaseTime(p, aDefaultLeaseTime))
5700 #    define IDHCPIndividualConfig_put_DefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
5701 #    define IDHCPIndividualConfig_SetDefaultLeaseTime(p, aDefaultLeaseTime) ((p)->lpVtbl->SetDefaultLeaseTime(p, aDefaultLeaseTime))
5702 #    define IDHCPIndividualConfig_get_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
5703 #    define IDHCPIndividualConfig_GetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->GetMaxLeaseTime(p, aMaxLeaseTime))
5704 #    define IDHCPIndividualConfig_put_MaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
5705 #    define IDHCPIndividualConfig_SetMaxLeaseTime(p, aMaxLeaseTime) ((p)->lpVtbl->SetMaxLeaseTime(p, aMaxLeaseTime))
5706 #    define IDHCPIndividualConfig_get_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
5707 #    define IDHCPIndividualConfig_GetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->GetForcedOptions(p, aForcedOptions))
5708 #    define IDHCPIndividualConfig_put_ForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
5709 #    define IDHCPIndividualConfig_SetForcedOptions(p, aForcedOptions) ((p)->lpVtbl->SetForcedOptions(p, aForcedOptions))
5710 #    define IDHCPIndividualConfig_get_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
5711 #    define IDHCPIndividualConfig_GetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->GetSuppressedOptions(p, aSuppressedOptions))
5712 #    define IDHCPIndividualConfig_put_SuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
5713 #    define IDHCPIndividualConfig_SetSuppressedOptions(p, aSuppressedOptions) ((p)->lpVtbl->SetSuppressedOptions(p, aSuppressedOptions))
5714 #    define IDHCPIndividualConfig_SetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->SetOption(p, aOption, aEncoding, aValue))
5715 #    define IDHCPIndividualConfig_RemoveOption(p, aOption) ((p)->lpVtbl->RemoveOption(p, aOption))
5716 #    define IDHCPIndividualConfig_RemoveAllOptions(p) ((p)->lpVtbl->RemoveAllOptions(p))
5717 #    define IDHCPIndividualConfig_GetOption(p, aOption, aEncoding, aValue) ((p)->lpVtbl->GetOption(p, aOption, aEncoding, aValue))
5718 #    define IDHCPIndividualConfig_GetAllOptions(p, aOptions, aEncodings, aValues) ((p)->lpVtbl->GetAllOptions(p, aOptions, aEncodings, aValues))
5719 #    define IDHCPIndividualConfig_Remove(p) ((p)->lpVtbl->Remove(p))
5720 #    define IDHCPIndividualConfig_get_MACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
5721 #    define IDHCPIndividualConfig_GetMACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
5722 #    define IDHCPIndividualConfig_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
5723 #    define IDHCPIndividualConfig_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
5724 #    define IDHCPIndividualConfig_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
5725 #    define IDHCPIndividualConfig_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
5726 #    define IDHCPIndividualConfig_get_FixedAddress(p, aFixedAddress) ((p)->lpVtbl->GetFixedAddress(p, aFixedAddress))
5727 #    define IDHCPIndividualConfig_GetFixedAddress(p, aFixedAddress) ((p)->lpVtbl->GetFixedAddress(p, aFixedAddress))
5728 #    define IDHCPIndividualConfig_put_FixedAddress(p, aFixedAddress) ((p)->lpVtbl->SetFixedAddress(p, aFixedAddress))
5729 #    define IDHCPIndividualConfig_SetFixedAddress(p, aFixedAddress) ((p)->lpVtbl->SetFixedAddress(p, aFixedAddress))
5730 #   endif /* VBOX_WITH_GLUE */
5731 
5732 interface IDHCPIndividualConfig
5733 {
5734 #   ifndef VBOX_WITH_GLUE
5735     struct IDHCPIndividualConfig_vtbl *vtbl;
5736 #   else /* VBOX_WITH_GLUE */
5737     CONST_VTBL struct IDHCPIndividualConfigVtbl *lpVtbl;
5738 #   endif /* VBOX_WITH_GLUE */
5739 };
5740 /* End of struct IDHCPIndividualConfig declaration */
5741 
5742 
5743 /* Start of struct IVirtualBox declaration */
5744 #   define IVIRTUALBOX_IID_STR "d0a0163f-e254-4e5b-a1f2-011cf991c38d"
5745 #   define IVIRTUALBOX_IID { \
5746     0xd0a0163f, 0xe254, 0x4e5b, \
5747     { 0xa1, 0xf2, 0x01, 0x1c, 0xf9, 0x91, 0xc3, 0x8d } \
5748 }
5749 /* COM compatibility */
5750 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBox);
5751 #   ifndef VBOX_WITH_GLUE
5752 struct IVirtualBox_vtbl
5753 {
5754     struct nsISupports_vtbl nsisupports;
5755 
5756     nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
5757 
5758     nsresult (*GetVersionNormalized)(IVirtualBox *pThis, PRUnichar * *versionNormalized);
5759 
5760     nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
5761 
5762     nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
5763 
5764     nsresult (*GetAPIVersion)(IVirtualBox *pThis, PRUnichar * *APIVersion);
5765 
5766     nsresult (*GetAPIRevision)(IVirtualBox *pThis, PRInt64 *APIRevision);
5767 
5768     nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
5769 
5770     nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
5771 
5772     nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
5773 
5774     nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
5775 
5776     nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
5777 
5778     nsresult (*GetMachineGroups)(IVirtualBox *pThis, PRUint32 *machineGroupsSize, PRUnichar * **machineGroups);
5779 
5780     nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
5781 
5782     nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
5783 
5784     nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
5785 
5786     nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
5787 
5788     nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
5789 
5790     nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
5791 
5792     nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
5793 
5794     nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
5795 
5796     nsresult (*GetNATNetworks)(IVirtualBox *pThis, PRUint32 *NATNetworksSize, INATNetwork * **NATNetworks);
5797 
5798     nsresult (*GetEventSource)(IVirtualBox *pThis, IEventSource * *eventSource);
5799 
5800     nsresult (*GetExtensionPackManager)(IVirtualBox *pThis, IExtPackManager * *extensionPackManager);
5801 
5802     nsresult (*GetInternalNetworks)(IVirtualBox *pThis, PRUint32 *internalNetworksSize, PRUnichar * **internalNetworks);
5803 
5804     nsresult (*GetGenericNetworkDrivers)(IVirtualBox *pThis, PRUint32 *genericNetworkDriversSize, PRUnichar * **genericNetworkDrivers);
5805 
5806     nsresult (*GetCloudNetworks)(IVirtualBox *pThis, PRUint32 *cloudNetworksSize, ICloudNetwork * **cloudNetworks);
5807 
5808     nsresult (*GetCloudProviderManager)(IVirtualBox *pThis, ICloudProviderManager * *cloudProviderManager);
5809 
5810     nsresult (*GetInternalAndReservedAttribute1IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5811 
5812     nsresult (*GetInternalAndReservedAttribute2IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5813 
5814     nsresult (*GetInternalAndReservedAttribute3IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5815 
5816     nsresult (*GetInternalAndReservedAttribute4IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5817 
5818     nsresult (*GetInternalAndReservedAttribute5IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5819 
5820     nsresult (*GetInternalAndReservedAttribute6IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5821 
5822     nsresult (*GetInternalAndReservedAttribute7IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5823 
5824     nsresult (*GetInternalAndReservedAttribute8IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5825 
5826     nsresult (*GetInternalAndReservedAttribute9IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5827 
5828     nsresult (*GetInternalAndReservedAttribute10IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5829 
5830     nsresult (*GetInternalAndReservedAttribute11IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5831 
5832     nsresult (*GetInternalAndReservedAttribute12IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
5833 
5834     nsresult (*ComposeMachineFilename)(
5835         IVirtualBox *pThis,
5836         PRUnichar * name,
5837         PRUnichar * group,
5838         PRUnichar * createFlags,
5839         PRUnichar * baseFolder,
5840         PRUnichar * * file
5841     );
5842 
5843     nsresult (*CreateMachine)(
5844         IVirtualBox *pThis,
5845         PRUnichar * settingsFile,
5846         PRUnichar * name,
5847         PRUint32 groupsSize,
5848         PRUnichar ** groups,
5849         PRUnichar * osTypeId,
5850         PRUnichar * flags,
5851         IMachine * * machine
5852     );
5853 
5854     nsresult (*OpenMachine)(
5855         IVirtualBox *pThis,
5856         PRUnichar * settingsFile,
5857         IMachine * * machine
5858     );
5859 
5860     nsresult (*RegisterMachine)(
5861         IVirtualBox *pThis,
5862         IMachine * machine
5863     );
5864 
5865     nsresult (*FindMachine)(
5866         IVirtualBox *pThis,
5867         PRUnichar * nameOrId,
5868         IMachine * * machine
5869     );
5870 
5871     nsresult (*GetMachinesByGroups)(
5872         IVirtualBox *pThis,
5873         PRUint32 groupsSize,
5874         PRUnichar ** groups,
5875         PRUint32 *machinesSize,
5876         IMachine *** machines
5877     );
5878 
5879     nsresult (*GetMachineStates)(
5880         IVirtualBox *pThis,
5881         PRUint32 machinesSize,
5882         IMachine ** machines,
5883         PRUint32 *statesSize,
5884         PRUint32** states
5885     );
5886 
5887     nsresult (*CreateAppliance)(
5888         IVirtualBox *pThis,
5889         IAppliance * * appliance
5890     );
5891 
5892     nsresult (*CreateUnattendedInstaller)(
5893         IVirtualBox *pThis,
5894         IUnattended * * unattended
5895     );
5896 
5897     nsresult (*CreateMedium)(
5898         IVirtualBox *pThis,
5899         PRUnichar * format,
5900         PRUnichar * location,
5901         PRUint32 accessMode,
5902         PRUint32 aDeviceTypeType,
5903         IMedium * * medium
5904     );
5905 
5906     nsresult (*OpenMedium)(
5907         IVirtualBox *pThis,
5908         PRUnichar * location,
5909         PRUint32 deviceType,
5910         PRUint32 accessMode,
5911         PRBool forceNewUuid,
5912         IMedium * * medium
5913     );
5914 
5915     nsresult (*GetGuestOSType)(
5916         IVirtualBox *pThis,
5917         PRUnichar * id,
5918         IGuestOSType * * type
5919     );
5920 
5921     nsresult (*CreateSharedFolder)(
5922         IVirtualBox *pThis,
5923         PRUnichar * name,
5924         PRUnichar * hostPath,
5925         PRBool writable,
5926         PRBool automount,
5927         PRUnichar * autoMountPoint
5928     );
5929 
5930     nsresult (*RemoveSharedFolder)(
5931         IVirtualBox *pThis,
5932         PRUnichar * name
5933     );
5934 
5935     nsresult (*GetExtraDataKeys)(
5936         IVirtualBox *pThis,
5937         PRUint32 *keysSize,
5938         PRUnichar *** keys
5939     );
5940 
5941     nsresult (*GetExtraData)(
5942         IVirtualBox *pThis,
5943         PRUnichar * key,
5944         PRUnichar * * value
5945     );
5946 
5947     nsresult (*SetExtraData)(
5948         IVirtualBox *pThis,
5949         PRUnichar * key,
5950         PRUnichar * value
5951     );
5952 
5953     nsresult (*SetSettingsSecret)(
5954         IVirtualBox *pThis,
5955         PRUnichar * password
5956     );
5957 
5958     nsresult (*CreateDHCPServer)(
5959         IVirtualBox *pThis,
5960         PRUnichar * name,
5961         IDHCPServer * * server
5962     );
5963 
5964     nsresult (*FindDHCPServerByNetworkName)(
5965         IVirtualBox *pThis,
5966         PRUnichar * name,
5967         IDHCPServer * * server
5968     );
5969 
5970     nsresult (*RemoveDHCPServer)(
5971         IVirtualBox *pThis,
5972         IDHCPServer * server
5973     );
5974 
5975     nsresult (*CreateNATNetwork)(
5976         IVirtualBox *pThis,
5977         PRUnichar * networkName,
5978         INATNetwork * * network
5979     );
5980 
5981     nsresult (*FindNATNetworkByName)(
5982         IVirtualBox *pThis,
5983         PRUnichar * networkName,
5984         INATNetwork * * network
5985     );
5986 
5987     nsresult (*RemoveNATNetwork)(
5988         IVirtualBox *pThis,
5989         INATNetwork * network
5990     );
5991 
5992     nsresult (*CreateCloudNetwork)(
5993         IVirtualBox *pThis,
5994         PRUnichar * networkName,
5995         ICloudNetwork * * network
5996     );
5997 
5998     nsresult (*FindCloudNetworkByName)(
5999         IVirtualBox *pThis,
6000         PRUnichar * networkName,
6001         ICloudNetwork * * network
6002     );
6003 
6004     nsresult (*RemoveCloudNetwork)(
6005         IVirtualBox *pThis,
6006         ICloudNetwork * network
6007     );
6008 
6009     nsresult (*CheckFirmwarePresent)(
6010         IVirtualBox *pThis,
6011         PRUint32 firmwareType,
6012         PRUnichar * version,
6013         PRUnichar * * url,
6014         PRUnichar * * file,
6015         PRBool * result
6016     );
6017 
6018     nsresult (*InternalAndReservedMethod1IVirtualBox)(IVirtualBox *pThis);
6019 
6020     nsresult (*InternalAndReservedMethod2IVirtualBox)(IVirtualBox *pThis);
6021 
6022     nsresult (*InternalAndReservedMethod3IVirtualBox)(IVirtualBox *pThis);
6023 
6024     nsresult (*InternalAndReservedMethod4IVirtualBox)(IVirtualBox *pThis);
6025 
6026     nsresult (*InternalAndReservedMethod5IVirtualBox)(IVirtualBox *pThis);
6027 
6028     nsresult (*InternalAndReservedMethod6IVirtualBox)(IVirtualBox *pThis);
6029 
6030     nsresult (*InternalAndReservedMethod7IVirtualBox)(IVirtualBox *pThis);
6031 
6032     nsresult (*InternalAndReservedMethod8IVirtualBox)(IVirtualBox *pThis);
6033 
6034 };
6035 #   else /* VBOX_WITH_GLUE */
6036 struct IVirtualBoxVtbl
6037 {
6038     nsresult (*QueryInterface)(IVirtualBox *pThis, const nsID *iid, void **resultp);
6039     nsrefcnt (*AddRef)(IVirtualBox *pThis);
6040     nsrefcnt (*Release)(IVirtualBox *pThis);
6041     nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
6042 
6043     nsresult (*GetVersionNormalized)(IVirtualBox *pThis, PRUnichar * *versionNormalized);
6044 
6045     nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
6046 
6047     nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
6048 
6049     nsresult (*GetAPIVersion)(IVirtualBox *pThis, PRUnichar * *APIVersion);
6050 
6051     nsresult (*GetAPIRevision)(IVirtualBox *pThis, PRInt64 *APIRevision);
6052 
6053     nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
6054 
6055     nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
6056 
6057     nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
6058 
6059     nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
6060 
6061     nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
6062 
6063     nsresult (*GetMachineGroups)(IVirtualBox *pThis, PRUint32 *machineGroupsSize, PRUnichar * **machineGroups);
6064 
6065     nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
6066 
6067     nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
6068 
6069     nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
6070 
6071     nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
6072 
6073     nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
6074 
6075     nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
6076 
6077     nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
6078 
6079     nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
6080 
6081     nsresult (*GetNATNetworks)(IVirtualBox *pThis, PRUint32 *NATNetworksSize, INATNetwork * **NATNetworks);
6082 
6083     nsresult (*GetEventSource)(IVirtualBox *pThis, IEventSource * *eventSource);
6084 
6085     nsresult (*GetExtensionPackManager)(IVirtualBox *pThis, IExtPackManager * *extensionPackManager);
6086 
6087     nsresult (*GetInternalNetworks)(IVirtualBox *pThis, PRUint32 *internalNetworksSize, PRUnichar * **internalNetworks);
6088 
6089     nsresult (*GetGenericNetworkDrivers)(IVirtualBox *pThis, PRUint32 *genericNetworkDriversSize, PRUnichar * **genericNetworkDrivers);
6090 
6091     nsresult (*GetCloudNetworks)(IVirtualBox *pThis, PRUint32 *cloudNetworksSize, ICloudNetwork * **cloudNetworks);
6092 
6093     nsresult (*GetCloudProviderManager)(IVirtualBox *pThis, ICloudProviderManager * *cloudProviderManager);
6094 
6095     nsresult (*GetInternalAndReservedAttribute1IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6096 
6097     nsresult (*GetInternalAndReservedAttribute2IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6098 
6099     nsresult (*GetInternalAndReservedAttribute3IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6100 
6101     nsresult (*GetInternalAndReservedAttribute4IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6102 
6103     nsresult (*GetInternalAndReservedAttribute5IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6104 
6105     nsresult (*GetInternalAndReservedAttribute6IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6106 
6107     nsresult (*GetInternalAndReservedAttribute7IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6108 
6109     nsresult (*GetInternalAndReservedAttribute8IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6110 
6111     nsresult (*GetInternalAndReservedAttribute9IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6112 
6113     nsresult (*GetInternalAndReservedAttribute10IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6114 
6115     nsresult (*GetInternalAndReservedAttribute11IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6116 
6117     nsresult (*GetInternalAndReservedAttribute12IVirtualBox)(IVirtualBox *pThis, PRUint32 *reserved);
6118 
6119     nsresult (*ComposeMachineFilename)(
6120         IVirtualBox *pThis,
6121         PRUnichar * name,
6122         PRUnichar * group,
6123         PRUnichar * createFlags,
6124         PRUnichar * baseFolder,
6125         PRUnichar * * file
6126     );
6127 
6128     nsresult (*CreateMachine)(
6129         IVirtualBox *pThis,
6130         PRUnichar * settingsFile,
6131         PRUnichar * name,
6132         PRUint32 groupsSize,
6133         PRUnichar ** groups,
6134         PRUnichar * osTypeId,
6135         PRUnichar * flags,
6136         IMachine * * machine
6137     );
6138 
6139     nsresult (*OpenMachine)(
6140         IVirtualBox *pThis,
6141         PRUnichar * settingsFile,
6142         IMachine * * machine
6143     );
6144 
6145     nsresult (*RegisterMachine)(
6146         IVirtualBox *pThis,
6147         IMachine * machine
6148     );
6149 
6150     nsresult (*FindMachine)(
6151         IVirtualBox *pThis,
6152         PRUnichar * nameOrId,
6153         IMachine * * machine
6154     );
6155 
6156     nsresult (*GetMachinesByGroups)(
6157         IVirtualBox *pThis,
6158         PRUint32 groupsSize,
6159         PRUnichar ** groups,
6160         PRUint32 *machinesSize,
6161         IMachine *** machines
6162     );
6163 
6164     nsresult (*GetMachineStates)(
6165         IVirtualBox *pThis,
6166         PRUint32 machinesSize,
6167         IMachine ** machines,
6168         PRUint32 *statesSize,
6169         PRUint32** states
6170     );
6171 
6172     nsresult (*CreateAppliance)(
6173         IVirtualBox *pThis,
6174         IAppliance * * appliance
6175     );
6176 
6177     nsresult (*CreateUnattendedInstaller)(
6178         IVirtualBox *pThis,
6179         IUnattended * * unattended
6180     );
6181 
6182     nsresult (*CreateMedium)(
6183         IVirtualBox *pThis,
6184         PRUnichar * format,
6185         PRUnichar * location,
6186         PRUint32 accessMode,
6187         PRUint32 aDeviceTypeType,
6188         IMedium * * medium
6189     );
6190 
6191     nsresult (*OpenMedium)(
6192         IVirtualBox *pThis,
6193         PRUnichar * location,
6194         PRUint32 deviceType,
6195         PRUint32 accessMode,
6196         PRBool forceNewUuid,
6197         IMedium * * medium
6198     );
6199 
6200     nsresult (*GetGuestOSType)(
6201         IVirtualBox *pThis,
6202         PRUnichar * id,
6203         IGuestOSType * * type
6204     );
6205 
6206     nsresult (*CreateSharedFolder)(
6207         IVirtualBox *pThis,
6208         PRUnichar * name,
6209         PRUnichar * hostPath,
6210         PRBool writable,
6211         PRBool automount,
6212         PRUnichar * autoMountPoint
6213     );
6214 
6215     nsresult (*RemoveSharedFolder)(
6216         IVirtualBox *pThis,
6217         PRUnichar * name
6218     );
6219 
6220     nsresult (*GetExtraDataKeys)(
6221         IVirtualBox *pThis,
6222         PRUint32 *keysSize,
6223         PRUnichar *** keys
6224     );
6225 
6226     nsresult (*GetExtraData)(
6227         IVirtualBox *pThis,
6228         PRUnichar * key,
6229         PRUnichar * * value
6230     );
6231 
6232     nsresult (*SetExtraData)(
6233         IVirtualBox *pThis,
6234         PRUnichar * key,
6235         PRUnichar * value
6236     );
6237 
6238     nsresult (*SetSettingsSecret)(
6239         IVirtualBox *pThis,
6240         PRUnichar * password
6241     );
6242 
6243     nsresult (*CreateDHCPServer)(
6244         IVirtualBox *pThis,
6245         PRUnichar * name,
6246         IDHCPServer * * server
6247     );
6248 
6249     nsresult (*FindDHCPServerByNetworkName)(
6250         IVirtualBox *pThis,
6251         PRUnichar * name,
6252         IDHCPServer * * server
6253     );
6254 
6255     nsresult (*RemoveDHCPServer)(
6256         IVirtualBox *pThis,
6257         IDHCPServer * server
6258     );
6259 
6260     nsresult (*CreateNATNetwork)(
6261         IVirtualBox *pThis,
6262         PRUnichar * networkName,
6263         INATNetwork * * network
6264     );
6265 
6266     nsresult (*FindNATNetworkByName)(
6267         IVirtualBox *pThis,
6268         PRUnichar * networkName,
6269         INATNetwork * * network
6270     );
6271 
6272     nsresult (*RemoveNATNetwork)(
6273         IVirtualBox *pThis,
6274         INATNetwork * network
6275     );
6276 
6277     nsresult (*CreateCloudNetwork)(
6278         IVirtualBox *pThis,
6279         PRUnichar * networkName,
6280         ICloudNetwork * * network
6281     );
6282 
6283     nsresult (*FindCloudNetworkByName)(
6284         IVirtualBox *pThis,
6285         PRUnichar * networkName,
6286         ICloudNetwork * * network
6287     );
6288 
6289     nsresult (*RemoveCloudNetwork)(
6290         IVirtualBox *pThis,
6291         ICloudNetwork * network
6292     );
6293 
6294     nsresult (*CheckFirmwarePresent)(
6295         IVirtualBox *pThis,
6296         PRUint32 firmwareType,
6297         PRUnichar * version,
6298         PRUnichar * * url,
6299         PRUnichar * * file,
6300         PRBool * result
6301     );
6302 
6303     nsresult (*InternalAndReservedMethod1IVirtualBox)(IVirtualBox *pThis);
6304 
6305     nsresult (*InternalAndReservedMethod2IVirtualBox)(IVirtualBox *pThis);
6306 
6307     nsresult (*InternalAndReservedMethod3IVirtualBox)(IVirtualBox *pThis);
6308 
6309     nsresult (*InternalAndReservedMethod4IVirtualBox)(IVirtualBox *pThis);
6310 
6311     nsresult (*InternalAndReservedMethod5IVirtualBox)(IVirtualBox *pThis);
6312 
6313     nsresult (*InternalAndReservedMethod6IVirtualBox)(IVirtualBox *pThis);
6314 
6315     nsresult (*InternalAndReservedMethod7IVirtualBox)(IVirtualBox *pThis);
6316 
6317     nsresult (*InternalAndReservedMethod8IVirtualBox)(IVirtualBox *pThis);
6318 
6319 };
6320 #    define IVirtualBox_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6321 #    define IVirtualBox_AddRef(p) ((p)->lpVtbl->AddRef(p))
6322 #    define IVirtualBox_Release(p) ((p)->lpVtbl->Release(p))
6323 #    define IVirtualBox_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
6324 #    define IVirtualBox_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
6325 #    define IVirtualBox_get_VersionNormalized(p, aVersionNormalized) ((p)->lpVtbl->GetVersionNormalized(p, aVersionNormalized))
6326 #    define IVirtualBox_GetVersionNormalized(p, aVersionNormalized) ((p)->lpVtbl->GetVersionNormalized(p, aVersionNormalized))
6327 #    define IVirtualBox_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
6328 #    define IVirtualBox_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
6329 #    define IVirtualBox_get_PackageType(p, aPackageType) ((p)->lpVtbl->GetPackageType(p, aPackageType))
6330 #    define IVirtualBox_GetPackageType(p, aPackageType) ((p)->lpVtbl->GetPackageType(p, aPackageType))
6331 #    define IVirtualBox_get_APIVersion(p, aAPIVersion) ((p)->lpVtbl->GetAPIVersion(p, aAPIVersion))
6332 #    define IVirtualBox_GetAPIVersion(p, aAPIVersion) ((p)->lpVtbl->GetAPIVersion(p, aAPIVersion))
6333 #    define IVirtualBox_get_APIRevision(p, aAPIRevision) ((p)->lpVtbl->GetAPIRevision(p, aAPIRevision))
6334 #    define IVirtualBox_GetAPIRevision(p, aAPIRevision) ((p)->lpVtbl->GetAPIRevision(p, aAPIRevision))
6335 #    define IVirtualBox_get_HomeFolder(p, aHomeFolder) ((p)->lpVtbl->GetHomeFolder(p, aHomeFolder))
6336 #    define IVirtualBox_GetHomeFolder(p, aHomeFolder) ((p)->lpVtbl->GetHomeFolder(p, aHomeFolder))
6337 #    define IVirtualBox_get_SettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
6338 #    define IVirtualBox_GetSettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
6339 #    define IVirtualBox_get_Host(p, aHost) ((p)->lpVtbl->GetHost(p, aHost))
6340 #    define IVirtualBox_GetHost(p, aHost) ((p)->lpVtbl->GetHost(p, aHost))
6341 #    define IVirtualBox_get_SystemProperties(p, aSystemProperties) ((p)->lpVtbl->GetSystemProperties(p, aSystemProperties))
6342 #    define IVirtualBox_GetSystemProperties(p, aSystemProperties) ((p)->lpVtbl->GetSystemProperties(p, aSystemProperties))
6343 #    define IVirtualBox_get_Machines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
6344 #    define IVirtualBox_GetMachines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
6345 #    define IVirtualBox_get_MachineGroups(p, aMachineGroups) ((p)->lpVtbl->GetMachineGroups(p, aMachineGroups))
6346 #    define IVirtualBox_GetMachineGroups(p, aMachineGroups) ((p)->lpVtbl->GetMachineGroups(p, aMachineGroups))
6347 #    define IVirtualBox_get_HardDisks(p, aHardDisks) ((p)->lpVtbl->GetHardDisks(p, aHardDisks))
6348 #    define IVirtualBox_GetHardDisks(p, aHardDisks) ((p)->lpVtbl->GetHardDisks(p, aHardDisks))
6349 #    define IVirtualBox_get_DVDImages(p, aDVDImages) ((p)->lpVtbl->GetDVDImages(p, aDVDImages))
6350 #    define IVirtualBox_GetDVDImages(p, aDVDImages) ((p)->lpVtbl->GetDVDImages(p, aDVDImages))
6351 #    define IVirtualBox_get_FloppyImages(p, aFloppyImages) ((p)->lpVtbl->GetFloppyImages(p, aFloppyImages))
6352 #    define IVirtualBox_GetFloppyImages(p, aFloppyImages) ((p)->lpVtbl->GetFloppyImages(p, aFloppyImages))
6353 #    define IVirtualBox_get_ProgressOperations(p, aProgressOperations) ((p)->lpVtbl->GetProgressOperations(p, aProgressOperations))
6354 #    define IVirtualBox_GetProgressOperations(p, aProgressOperations) ((p)->lpVtbl->GetProgressOperations(p, aProgressOperations))
6355 #    define IVirtualBox_get_GuestOSTypes(p, aGuestOSTypes) ((p)->lpVtbl->GetGuestOSTypes(p, aGuestOSTypes))
6356 #    define IVirtualBox_GetGuestOSTypes(p, aGuestOSTypes) ((p)->lpVtbl->GetGuestOSTypes(p, aGuestOSTypes))
6357 #    define IVirtualBox_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
6358 #    define IVirtualBox_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
6359 #    define IVirtualBox_get_PerformanceCollector(p, aPerformanceCollector) ((p)->lpVtbl->GetPerformanceCollector(p, aPerformanceCollector))
6360 #    define IVirtualBox_GetPerformanceCollector(p, aPerformanceCollector) ((p)->lpVtbl->GetPerformanceCollector(p, aPerformanceCollector))
6361 #    define IVirtualBox_get_DHCPServers(p, aDHCPServers) ((p)->lpVtbl->GetDHCPServers(p, aDHCPServers))
6362 #    define IVirtualBox_GetDHCPServers(p, aDHCPServers) ((p)->lpVtbl->GetDHCPServers(p, aDHCPServers))
6363 #    define IVirtualBox_get_NATNetworks(p, aNATNetworks) ((p)->lpVtbl->GetNATNetworks(p, aNATNetworks))
6364 #    define IVirtualBox_GetNATNetworks(p, aNATNetworks) ((p)->lpVtbl->GetNATNetworks(p, aNATNetworks))
6365 #    define IVirtualBox_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
6366 #    define IVirtualBox_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
6367 #    define IVirtualBox_get_ExtensionPackManager(p, aExtensionPackManager) ((p)->lpVtbl->GetExtensionPackManager(p, aExtensionPackManager))
6368 #    define IVirtualBox_GetExtensionPackManager(p, aExtensionPackManager) ((p)->lpVtbl->GetExtensionPackManager(p, aExtensionPackManager))
6369 #    define IVirtualBox_get_InternalNetworks(p, aInternalNetworks) ((p)->lpVtbl->GetInternalNetworks(p, aInternalNetworks))
6370 #    define IVirtualBox_GetInternalNetworks(p, aInternalNetworks) ((p)->lpVtbl->GetInternalNetworks(p, aInternalNetworks))
6371 #    define IVirtualBox_get_GenericNetworkDrivers(p, aGenericNetworkDrivers) ((p)->lpVtbl->GetGenericNetworkDrivers(p, aGenericNetworkDrivers))
6372 #    define IVirtualBox_GetGenericNetworkDrivers(p, aGenericNetworkDrivers) ((p)->lpVtbl->GetGenericNetworkDrivers(p, aGenericNetworkDrivers))
6373 #    define IVirtualBox_get_CloudNetworks(p, aCloudNetworks) ((p)->lpVtbl->GetCloudNetworks(p, aCloudNetworks))
6374 #    define IVirtualBox_GetCloudNetworks(p, aCloudNetworks) ((p)->lpVtbl->GetCloudNetworks(p, aCloudNetworks))
6375 #    define IVirtualBox_get_CloudProviderManager(p, aCloudProviderManager) ((p)->lpVtbl->GetCloudProviderManager(p, aCloudProviderManager))
6376 #    define IVirtualBox_GetCloudProviderManager(p, aCloudProviderManager) ((p)->lpVtbl->GetCloudProviderManager(p, aCloudProviderManager))
6377 #    define IVirtualBox_ComposeMachineFilename(p, aName, aGroup, aCreateFlags, aBaseFolder, aFile) ((p)->lpVtbl->ComposeMachineFilename(p, aName, aGroup, aCreateFlags, aBaseFolder, aFile))
6378 #    define IVirtualBox_CreateMachine(p, aSettingsFile, aName, aGroups, aOsTypeId, aFlags, aMachine) ((p)->lpVtbl->CreateMachine(p, aSettingsFile, aName, aGroups, aOsTypeId, aFlags, aMachine))
6379 #    define IVirtualBox_OpenMachine(p, aSettingsFile, aMachine) ((p)->lpVtbl->OpenMachine(p, aSettingsFile, aMachine))
6380 #    define IVirtualBox_RegisterMachine(p, aMachine) ((p)->lpVtbl->RegisterMachine(p, aMachine))
6381 #    define IVirtualBox_FindMachine(p, aNameOrId, aMachine) ((p)->lpVtbl->FindMachine(p, aNameOrId, aMachine))
6382 #    define IVirtualBox_GetMachinesByGroups(p, aGroups, aMachines) ((p)->lpVtbl->GetMachinesByGroups(p, aGroups, aMachines))
6383 #    define IVirtualBox_GetMachineStates(p, aMachines, aStates) ((p)->lpVtbl->GetMachineStates(p, aMachines, aStates))
6384 #    define IVirtualBox_CreateAppliance(p, aAppliance) ((p)->lpVtbl->CreateAppliance(p, aAppliance))
6385 #    define IVirtualBox_CreateUnattendedInstaller(p, aUnattended) ((p)->lpVtbl->CreateUnattendedInstaller(p, aUnattended))
6386 #    define IVirtualBox_CreateMedium(p, aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium) ((p)->lpVtbl->CreateMedium(p, aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium))
6387 #    define IVirtualBox_OpenMedium(p, aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium) ((p)->lpVtbl->OpenMedium(p, aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium))
6388 #    define IVirtualBox_GetGuestOSType(p, aId, aType) ((p)->lpVtbl->GetGuestOSType(p, aId, aType))
6389 #    define IVirtualBox_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint))
6390 #    define IVirtualBox_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
6391 #    define IVirtualBox_GetExtraDataKeys(p, aKeys) ((p)->lpVtbl->GetExtraDataKeys(p, aKeys))
6392 #    define IVirtualBox_GetExtraData(p, aKey, aValue) ((p)->lpVtbl->GetExtraData(p, aKey, aValue))
6393 #    define IVirtualBox_SetExtraData(p, aKey, aValue) ((p)->lpVtbl->SetExtraData(p, aKey, aValue))
6394 #    define IVirtualBox_SetSettingsSecret(p, aPassword) ((p)->lpVtbl->SetSettingsSecret(p, aPassword))
6395 #    define IVirtualBox_CreateDHCPServer(p, aName, aServer) ((p)->lpVtbl->CreateDHCPServer(p, aName, aServer))
6396 #    define IVirtualBox_FindDHCPServerByNetworkName(p, aName, aServer) ((p)->lpVtbl->FindDHCPServerByNetworkName(p, aName, aServer))
6397 #    define IVirtualBox_RemoveDHCPServer(p, aServer) ((p)->lpVtbl->RemoveDHCPServer(p, aServer))
6398 #    define IVirtualBox_CreateNATNetwork(p, aNetworkName, aNetwork) ((p)->lpVtbl->CreateNATNetwork(p, aNetworkName, aNetwork))
6399 #    define IVirtualBox_FindNATNetworkByName(p, aNetworkName, aNetwork) ((p)->lpVtbl->FindNATNetworkByName(p, aNetworkName, aNetwork))
6400 #    define IVirtualBox_RemoveNATNetwork(p, aNetwork) ((p)->lpVtbl->RemoveNATNetwork(p, aNetwork))
6401 #    define IVirtualBox_CreateCloudNetwork(p, aNetworkName, aNetwork) ((p)->lpVtbl->CreateCloudNetwork(p, aNetworkName, aNetwork))
6402 #    define IVirtualBox_FindCloudNetworkByName(p, aNetworkName, aNetwork) ((p)->lpVtbl->FindCloudNetworkByName(p, aNetworkName, aNetwork))
6403 #    define IVirtualBox_RemoveCloudNetwork(p, aNetwork) ((p)->lpVtbl->RemoveCloudNetwork(p, aNetwork))
6404 #    define IVirtualBox_CheckFirmwarePresent(p, aFirmwareType, aVersion, aUrl, aFile, aResult) ((p)->lpVtbl->CheckFirmwarePresent(p, aFirmwareType, aVersion, aUrl, aFile, aResult))
6405 #   endif /* VBOX_WITH_GLUE */
6406 
6407 interface IVirtualBox
6408 {
6409 #   ifndef VBOX_WITH_GLUE
6410     struct IVirtualBox_vtbl *vtbl;
6411 #   else /* VBOX_WITH_GLUE */
6412     CONST_VTBL struct IVirtualBoxVtbl *lpVtbl;
6413 #   endif /* VBOX_WITH_GLUE */
6414 };
6415 /* End of struct IVirtualBox declaration */
6416 
6417 
6418 /* Start of struct IVFSExplorer declaration */
6419 #   define IVFSEXPLORER_IID_STR "fb220201-2fd3-47e2-a5dc-2c2431d833cc"
6420 #   define IVFSEXPLORER_IID { \
6421     0xfb220201, 0x2fd3, 0x47e2, \
6422     { 0xa5, 0xdc, 0x2c, 0x24, 0x31, 0xd8, 0x33, 0xcc } \
6423 }
6424 /* COM compatibility */
6425 VBOX_EXTERN_CONST(nsIID, IID_IVFSExplorer);
6426 #   ifndef VBOX_WITH_GLUE
6427 struct IVFSExplorer_vtbl
6428 {
6429     struct nsISupports_vtbl nsisupports;
6430 
6431     nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
6432 
6433     nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
6434 
6435     nsresult (*Update)(
6436         IVFSExplorer *pThis,
6437         IProgress * * progress
6438     );
6439 
6440     nsresult (*Cd)(
6441         IVFSExplorer *pThis,
6442         PRUnichar * dir,
6443         IProgress * * progress
6444     );
6445 
6446     nsresult (*CdUp)(
6447         IVFSExplorer *pThis,
6448         IProgress * * progress
6449     );
6450 
6451     nsresult (*EntryList)(
6452         IVFSExplorer *pThis,
6453         PRUint32 *namesSize,
6454         PRUnichar *** names,
6455         PRUint32 *typesSize,
6456         PRUint32** types,
6457         PRUint32 *sizesSize,
6458         PRInt64** sizes,
6459         PRUint32 *modesSize,
6460         PRUint32** modes
6461     );
6462 
6463     nsresult (*Exists)(
6464         IVFSExplorer *pThis,
6465         PRUint32 namesSize,
6466         PRUnichar ** names,
6467         PRUint32 *existsSize,
6468         PRUnichar *** exists
6469     );
6470 
6471     nsresult (*Remove)(
6472         IVFSExplorer *pThis,
6473         PRUint32 namesSize,
6474         PRUnichar ** names,
6475         IProgress * * progress
6476     );
6477 
6478 };
6479 #   else /* VBOX_WITH_GLUE */
6480 struct IVFSExplorerVtbl
6481 {
6482     nsresult (*QueryInterface)(IVFSExplorer *pThis, const nsID *iid, void **resultp);
6483     nsrefcnt (*AddRef)(IVFSExplorer *pThis);
6484     nsrefcnt (*Release)(IVFSExplorer *pThis);
6485     nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
6486 
6487     nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
6488 
6489     nsresult (*Update)(
6490         IVFSExplorer *pThis,
6491         IProgress * * progress
6492     );
6493 
6494     nsresult (*Cd)(
6495         IVFSExplorer *pThis,
6496         PRUnichar * dir,
6497         IProgress * * progress
6498     );
6499 
6500     nsresult (*CdUp)(
6501         IVFSExplorer *pThis,
6502         IProgress * * progress
6503     );
6504 
6505     nsresult (*EntryList)(
6506         IVFSExplorer *pThis,
6507         PRUint32 *namesSize,
6508         PRUnichar *** names,
6509         PRUint32 *typesSize,
6510         PRUint32** types,
6511         PRUint32 *sizesSize,
6512         PRInt64** sizes,
6513         PRUint32 *modesSize,
6514         PRUint32** modes
6515     );
6516 
6517     nsresult (*Exists)(
6518         IVFSExplorer *pThis,
6519         PRUint32 namesSize,
6520         PRUnichar ** names,
6521         PRUint32 *existsSize,
6522         PRUnichar *** exists
6523     );
6524 
6525     nsresult (*Remove)(
6526         IVFSExplorer *pThis,
6527         PRUint32 namesSize,
6528         PRUnichar ** names,
6529         IProgress * * progress
6530     );
6531 
6532 };
6533 #    define IVFSExplorer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6534 #    define IVFSExplorer_AddRef(p) ((p)->lpVtbl->AddRef(p))
6535 #    define IVFSExplorer_Release(p) ((p)->lpVtbl->Release(p))
6536 #    define IVFSExplorer_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
6537 #    define IVFSExplorer_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
6538 #    define IVFSExplorer_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
6539 #    define IVFSExplorer_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
6540 #    define IVFSExplorer_Update(p, aProgress) ((p)->lpVtbl->Update(p, aProgress))
6541 #    define IVFSExplorer_Cd(p, aDir, aProgress) ((p)->lpVtbl->Cd(p, aDir, aProgress))
6542 #    define IVFSExplorer_CdUp(p, aProgress) ((p)->lpVtbl->CdUp(p, aProgress))
6543 #    define IVFSExplorer_EntryList(p, aNames, aTypes, aSizes, aModes) ((p)->lpVtbl->EntryList(p, aNames, aTypes, aSizes, aModes))
6544 #    define IVFSExplorer_Exists(p, aNames, aExists) ((p)->lpVtbl->Exists(p, aNames, aExists))
6545 #    define IVFSExplorer_Remove(p, aNames, aProgress) ((p)->lpVtbl->Remove(p, aNames, aProgress))
6546 #   endif /* VBOX_WITH_GLUE */
6547 
6548 interface IVFSExplorer
6549 {
6550 #   ifndef VBOX_WITH_GLUE
6551     struct IVFSExplorer_vtbl *vtbl;
6552 #   else /* VBOX_WITH_GLUE */
6553     CONST_VTBL struct IVFSExplorerVtbl *lpVtbl;
6554 #   endif /* VBOX_WITH_GLUE */
6555 };
6556 /* End of struct IVFSExplorer declaration */
6557 
6558 
6559 /* Start of struct ICertificate declaration */
6560 #   define ICERTIFICATE_IID_STR "392f1de4-80e1-4a8a-93a1-67c5f92a838a"
6561 #   define ICERTIFICATE_IID { \
6562     0x392f1de4, 0x80e1, 0x4a8a, \
6563     { 0x93, 0xa1, 0x67, 0xc5, 0xf9, 0x2a, 0x83, 0x8a } \
6564 }
6565 /* COM compatibility */
6566 VBOX_EXTERN_CONST(nsIID, IID_ICertificate);
6567 #   ifndef VBOX_WITH_GLUE
6568 struct ICertificate_vtbl
6569 {
6570     struct nsISupports_vtbl nsisupports;
6571 
6572     nsresult (*GetVersionNumber)(ICertificate *pThis, PRUint32 *versionNumber);
6573 
6574     nsresult (*GetSerialNumber)(ICertificate *pThis, PRUnichar * *serialNumber);
6575 
6576     nsresult (*GetSignatureAlgorithmOID)(ICertificate *pThis, PRUnichar * *signatureAlgorithmOID);
6577 
6578     nsresult (*GetSignatureAlgorithmName)(ICertificate *pThis, PRUnichar * *signatureAlgorithmName);
6579 
6580     nsresult (*GetIssuerName)(ICertificate *pThis, PRUint32 *issuerNameSize, PRUnichar * **issuerName);
6581 
6582     nsresult (*GetSubjectName)(ICertificate *pThis, PRUint32 *subjectNameSize, PRUnichar * **subjectName);
6583 
6584     nsresult (*GetFriendlyName)(ICertificate *pThis, PRUnichar * *friendlyName);
6585 
6586     nsresult (*GetValidityPeriodNotBefore)(ICertificate *pThis, PRUnichar * *validityPeriodNotBefore);
6587 
6588     nsresult (*GetValidityPeriodNotAfter)(ICertificate *pThis, PRUnichar * *validityPeriodNotAfter);
6589 
6590     nsresult (*GetPublicKeyAlgorithmOID)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithmOID);
6591 
6592     nsresult (*GetPublicKeyAlgorithm)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithm);
6593 
6594     nsresult (*GetSubjectPublicKey)(ICertificate *pThis, PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey);
6595 
6596     nsresult (*GetIssuerUniqueIdentifier)(ICertificate *pThis, PRUnichar * *issuerUniqueIdentifier);
6597 
6598     nsresult (*GetSubjectUniqueIdentifier)(ICertificate *pThis, PRUnichar * *subjectUniqueIdentifier);
6599 
6600     nsresult (*GetCertificateAuthority)(ICertificate *pThis, PRBool *certificateAuthority);
6601 
6602     nsresult (*GetKeyUsage)(ICertificate *pThis, PRUint32 *keyUsage);
6603 
6604     nsresult (*GetExtendedKeyUsage)(ICertificate *pThis, PRUint32 *extendedKeyUsageSize, PRUnichar * **extendedKeyUsage);
6605 
6606     nsresult (*GetRawCertData)(ICertificate *pThis, PRUint32 *rawCertDataSize, PRUint8 **rawCertData);
6607 
6608     nsresult (*GetSelfSigned)(ICertificate *pThis, PRBool *selfSigned);
6609 
6610     nsresult (*GetTrusted)(ICertificate *pThis, PRBool *trusted);
6611 
6612     nsresult (*GetExpired)(ICertificate *pThis, PRBool *expired);
6613 
6614     nsresult (*GetInternalAndReservedAttribute1ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6615 
6616     nsresult (*GetInternalAndReservedAttribute2ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6617 
6618     nsresult (*GetInternalAndReservedAttribute3ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6619 
6620     nsresult (*GetInternalAndReservedAttribute4ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6621 
6622     nsresult (*GetInternalAndReservedAttribute5ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6623 
6624     nsresult (*GetInternalAndReservedAttribute6ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6625 
6626     nsresult (*GetInternalAndReservedAttribute7ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6627 
6628     nsresult (*GetInternalAndReservedAttribute8ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6629 
6630     nsresult (*GetInternalAndReservedAttribute9ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6631 
6632     nsresult (*GetInternalAndReservedAttribute10ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6633 
6634     nsresult (*GetInternalAndReservedAttribute11ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6635 
6636     nsresult (*GetInternalAndReservedAttribute12ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6637 
6638     nsresult (*IsCurrentlyExpired)(
6639         ICertificate *pThis,
6640         PRBool * result
6641     );
6642 
6643     nsresult (*QueryInfo)(
6644         ICertificate *pThis,
6645         PRInt32 what,
6646         PRUnichar * * result
6647     );
6648 
6649     nsresult (*InternalAndReservedMethod1ICertificate)(ICertificate *pThis);
6650 
6651     nsresult (*InternalAndReservedMethod2ICertificate)(ICertificate *pThis);
6652 
6653 };
6654 #   else /* VBOX_WITH_GLUE */
6655 struct ICertificateVtbl
6656 {
6657     nsresult (*QueryInterface)(ICertificate *pThis, const nsID *iid, void **resultp);
6658     nsrefcnt (*AddRef)(ICertificate *pThis);
6659     nsrefcnt (*Release)(ICertificate *pThis);
6660     nsresult (*GetVersionNumber)(ICertificate *pThis, PRUint32 *versionNumber);
6661 
6662     nsresult (*GetSerialNumber)(ICertificate *pThis, PRUnichar * *serialNumber);
6663 
6664     nsresult (*GetSignatureAlgorithmOID)(ICertificate *pThis, PRUnichar * *signatureAlgorithmOID);
6665 
6666     nsresult (*GetSignatureAlgorithmName)(ICertificate *pThis, PRUnichar * *signatureAlgorithmName);
6667 
6668     nsresult (*GetIssuerName)(ICertificate *pThis, PRUint32 *issuerNameSize, PRUnichar * **issuerName);
6669 
6670     nsresult (*GetSubjectName)(ICertificate *pThis, PRUint32 *subjectNameSize, PRUnichar * **subjectName);
6671 
6672     nsresult (*GetFriendlyName)(ICertificate *pThis, PRUnichar * *friendlyName);
6673 
6674     nsresult (*GetValidityPeriodNotBefore)(ICertificate *pThis, PRUnichar * *validityPeriodNotBefore);
6675 
6676     nsresult (*GetValidityPeriodNotAfter)(ICertificate *pThis, PRUnichar * *validityPeriodNotAfter);
6677 
6678     nsresult (*GetPublicKeyAlgorithmOID)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithmOID);
6679 
6680     nsresult (*GetPublicKeyAlgorithm)(ICertificate *pThis, PRUnichar * *publicKeyAlgorithm);
6681 
6682     nsresult (*GetSubjectPublicKey)(ICertificate *pThis, PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey);
6683 
6684     nsresult (*GetIssuerUniqueIdentifier)(ICertificate *pThis, PRUnichar * *issuerUniqueIdentifier);
6685 
6686     nsresult (*GetSubjectUniqueIdentifier)(ICertificate *pThis, PRUnichar * *subjectUniqueIdentifier);
6687 
6688     nsresult (*GetCertificateAuthority)(ICertificate *pThis, PRBool *certificateAuthority);
6689 
6690     nsresult (*GetKeyUsage)(ICertificate *pThis, PRUint32 *keyUsage);
6691 
6692     nsresult (*GetExtendedKeyUsage)(ICertificate *pThis, PRUint32 *extendedKeyUsageSize, PRUnichar * **extendedKeyUsage);
6693 
6694     nsresult (*GetRawCertData)(ICertificate *pThis, PRUint32 *rawCertDataSize, PRUint8 **rawCertData);
6695 
6696     nsresult (*GetSelfSigned)(ICertificate *pThis, PRBool *selfSigned);
6697 
6698     nsresult (*GetTrusted)(ICertificate *pThis, PRBool *trusted);
6699 
6700     nsresult (*GetExpired)(ICertificate *pThis, PRBool *expired);
6701 
6702     nsresult (*GetInternalAndReservedAttribute1ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6703 
6704     nsresult (*GetInternalAndReservedAttribute2ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6705 
6706     nsresult (*GetInternalAndReservedAttribute3ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6707 
6708     nsresult (*GetInternalAndReservedAttribute4ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6709 
6710     nsresult (*GetInternalAndReservedAttribute5ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6711 
6712     nsresult (*GetInternalAndReservedAttribute6ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6713 
6714     nsresult (*GetInternalAndReservedAttribute7ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6715 
6716     nsresult (*GetInternalAndReservedAttribute8ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6717 
6718     nsresult (*GetInternalAndReservedAttribute9ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6719 
6720     nsresult (*GetInternalAndReservedAttribute10ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6721 
6722     nsresult (*GetInternalAndReservedAttribute11ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6723 
6724     nsresult (*GetInternalAndReservedAttribute12ICertificate)(ICertificate *pThis, PRUint32 *reserved);
6725 
6726     nsresult (*IsCurrentlyExpired)(
6727         ICertificate *pThis,
6728         PRBool * result
6729     );
6730 
6731     nsresult (*QueryInfo)(
6732         ICertificate *pThis,
6733         PRInt32 what,
6734         PRUnichar * * result
6735     );
6736 
6737     nsresult (*InternalAndReservedMethod1ICertificate)(ICertificate *pThis);
6738 
6739     nsresult (*InternalAndReservedMethod2ICertificate)(ICertificate *pThis);
6740 
6741 };
6742 #    define ICertificate_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
6743 #    define ICertificate_AddRef(p) ((p)->lpVtbl->AddRef(p))
6744 #    define ICertificate_Release(p) ((p)->lpVtbl->Release(p))
6745 #    define ICertificate_get_VersionNumber(p, aVersionNumber) ((p)->lpVtbl->GetVersionNumber(p, aVersionNumber))
6746 #    define ICertificate_GetVersionNumber(p, aVersionNumber) ((p)->lpVtbl->GetVersionNumber(p, aVersionNumber))
6747 #    define ICertificate_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
6748 #    define ICertificate_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
6749 #    define ICertificate_get_SignatureAlgorithmOID(p, aSignatureAlgorithmOID) ((p)->lpVtbl->GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID))
6750 #    define ICertificate_GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID) ((p)->lpVtbl->GetSignatureAlgorithmOID(p, aSignatureAlgorithmOID))
6751 #    define ICertificate_get_SignatureAlgorithmName(p, aSignatureAlgorithmName) ((p)->lpVtbl->GetSignatureAlgorithmName(p, aSignatureAlgorithmName))
6752 #    define ICertificate_GetSignatureAlgorithmName(p, aSignatureAlgorithmName) ((p)->lpVtbl->GetSignatureAlgorithmName(p, aSignatureAlgorithmName))
6753 #    define ICertificate_get_IssuerName(p, aIssuerName) ((p)->lpVtbl->GetIssuerName(p, aIssuerName))
6754 #    define ICertificate_GetIssuerName(p, aIssuerName) ((p)->lpVtbl->GetIssuerName(p, aIssuerName))
6755 #    define ICertificate_get_SubjectName(p, aSubjectName) ((p)->lpVtbl->GetSubjectName(p, aSubjectName))
6756 #    define ICertificate_GetSubjectName(p, aSubjectName) ((p)->lpVtbl->GetSubjectName(p, aSubjectName))
6757 #    define ICertificate_get_FriendlyName(p, aFriendlyName) ((p)->lpVtbl->GetFriendlyName(p, aFriendlyName))
6758 #    define ICertificate_GetFriendlyName(p, aFriendlyName) ((p)->lpVtbl->GetFriendlyName(p, aFriendlyName))
6759 #    define ICertificate_get_ValidityPeriodNotBefore(p, aValidityPeriodNotBefore) ((p)->lpVtbl->GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore))
6760 #    define ICertificate_GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore) ((p)->lpVtbl->GetValidityPeriodNotBefore(p, aValidityPeriodNotBefore))
6761 #    define ICertificate_get_ValidityPeriodNotAfter(p, aValidityPeriodNotAfter) ((p)->lpVtbl->GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter))
6762 #    define ICertificate_GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter) ((p)->lpVtbl->GetValidityPeriodNotAfter(p, aValidityPeriodNotAfter))
6763 #    define ICertificate_get_PublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID) ((p)->lpVtbl->GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID))
6764 #    define ICertificate_GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID) ((p)->lpVtbl->GetPublicKeyAlgorithmOID(p, aPublicKeyAlgorithmOID))
6765 #    define ICertificate_get_PublicKeyAlgorithm(p, aPublicKeyAlgorithm) ((p)->lpVtbl->GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm))
6766 #    define ICertificate_GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm) ((p)->lpVtbl->GetPublicKeyAlgorithm(p, aPublicKeyAlgorithm))
6767 #    define ICertificate_get_SubjectPublicKey(p, aSubjectPublicKey) ((p)->lpVtbl->GetSubjectPublicKey(p, aSubjectPublicKey))
6768 #    define ICertificate_GetSubjectPublicKey(p, aSubjectPublicKey) ((p)->lpVtbl->GetSubjectPublicKey(p, aSubjectPublicKey))
6769 #    define ICertificate_get_IssuerUniqueIdentifier(p, aIssuerUniqueIdentifier) ((p)->lpVtbl->GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier))
6770 #    define ICertificate_GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier) ((p)->lpVtbl->GetIssuerUniqueIdentifier(p, aIssuerUniqueIdentifier))
6771 #    define ICertificate_get_SubjectUniqueIdentifier(p, aSubjectUniqueIdentifier) ((p)->lpVtbl->GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier))
6772 #    define ICertificate_GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier) ((p)->lpVtbl->GetSubjectUniqueIdentifier(p, aSubjectUniqueIdentifier))
6773 #    define ICertificate_get_CertificateAuthority(p, aCertificateAuthority) ((p)->lpVtbl->GetCertificateAuthority(p, aCertificateAuthority))
6774 #    define ICertificate_GetCertificateAuthority(p, aCertificateAuthority) ((p)->lpVtbl->GetCertificateAuthority(p, aCertificateAuthority))
6775 #    define ICertificate_get_KeyUsage(p, aKeyUsage) ((p)->lpVtbl->GetKeyUsage(p, aKeyUsage))
6776 #    define ICertificate_GetKeyUsage(p, aKeyUsage) ((p)->lpVtbl->GetKeyUsage(p, aKeyUsage))
6777 #    define ICertificate_get_ExtendedKeyUsage(p, aExtendedKeyUsage) ((p)->lpVtbl->GetExtendedKeyUsage(p, aExtendedKeyUsage))
6778 #    define ICertificate_GetExtendedKeyUsage(p, aExtendedKeyUsage) ((p)->lpVtbl->GetExtendedKeyUsage(p, aExtendedKeyUsage))
6779 #    define ICertificate_get_RawCertData(p, aRawCertData) ((p)->lpVtbl->GetRawCertData(p, aRawCertData))
6780 #    define ICertificate_GetRawCertData(p, aRawCertData) ((p)->lpVtbl->GetRawCertData(p, aRawCertData))
6781 #    define ICertificate_get_SelfSigned(p, aSelfSigned) ((p)->lpVtbl->GetSelfSigned(p, aSelfSigned))
6782 #    define ICertificate_GetSelfSigned(p, aSelfSigned) ((p)->lpVtbl->GetSelfSigned(p, aSelfSigned))
6783 #    define ICertificate_get_Trusted(p, aTrusted) ((p)->lpVtbl->GetTrusted(p, aTrusted))
6784 #    define ICertificate_GetTrusted(p, aTrusted) ((p)->lpVtbl->GetTrusted(p, aTrusted))
6785 #    define ICertificate_get_Expired(p, aExpired) ((p)->lpVtbl->GetExpired(p, aExpired))
6786 #    define ICertificate_GetExpired(p, aExpired) ((p)->lpVtbl->GetExpired(p, aExpired))
6787 #    define ICertificate_IsCurrentlyExpired(p, aResult) ((p)->lpVtbl->IsCurrentlyExpired(p, aResult))
6788 #    define ICertificate_QueryInfo(p, aWhat, aResult) ((p)->lpVtbl->QueryInfo(p, aWhat, aResult))
6789 #   endif /* VBOX_WITH_GLUE */
6790 
6791 interface ICertificate
6792 {
6793 #   ifndef VBOX_WITH_GLUE
6794     struct ICertificate_vtbl *vtbl;
6795 #   else /* VBOX_WITH_GLUE */
6796     CONST_VTBL struct ICertificateVtbl *lpVtbl;
6797 #   endif /* VBOX_WITH_GLUE */
6798 };
6799 /* End of struct ICertificate declaration */
6800 
6801 
6802 /* Start of struct IAppliance declaration */
6803 #   define IAPPLIANCE_IID_STR "86a98347-7619-41aa-aece-b21ac5c1a7e6"
6804 #   define IAPPLIANCE_IID { \
6805     0x86a98347, 0x7619, 0x41aa, \
6806     { 0xae, 0xce, 0xb2, 0x1a, 0xc5, 0xc1, 0xa7, 0xe6 } \
6807 }
6808 /* COM compatibility */
6809 VBOX_EXTERN_CONST(nsIID, IID_IAppliance);
6810 #   ifndef VBOX_WITH_GLUE
6811 struct IAppliance_vtbl
6812 {
6813     struct nsISupports_vtbl nsisupports;
6814 
6815     nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
6816 
6817     nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
6818 
6819     nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
6820 
6821     nsresult (*GetMachines)(IAppliance *pThis, PRUint32 *machinesSize, PRUnichar * **machines);
6822 
6823     nsresult (*GetCertificate)(IAppliance *pThis, ICertificate * *certificate);
6824 
6825     nsresult (*GetInternalAndReservedAttribute1IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6826 
6827     nsresult (*GetInternalAndReservedAttribute2IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6828 
6829     nsresult (*GetInternalAndReservedAttribute3IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6830 
6831     nsresult (*GetInternalAndReservedAttribute4IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6832 
6833     nsresult (*GetInternalAndReservedAttribute5IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6834 
6835     nsresult (*GetInternalAndReservedAttribute6IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6836 
6837     nsresult (*GetInternalAndReservedAttribute7IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6838 
6839     nsresult (*GetInternalAndReservedAttribute8IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6840 
6841     nsresult (*Read)(
6842         IAppliance *pThis,
6843         PRUnichar * file,
6844         IProgress * * progress
6845     );
6846 
6847     nsresult (*Interpret)(IAppliance *pThis );
6848 
6849     nsresult (*ImportMachines)(
6850         IAppliance *pThis,
6851         PRUint32 optionsSize,
6852         PRUint32* options,
6853         IProgress * * progress
6854     );
6855 
6856     nsresult (*CreateVFSExplorer)(
6857         IAppliance *pThis,
6858         PRUnichar * URI,
6859         IVFSExplorer * * explorer
6860     );
6861 
6862     nsresult (*Write)(
6863         IAppliance *pThis,
6864         PRUnichar * format,
6865         PRUint32 optionsSize,
6866         PRUint32* options,
6867         PRUnichar * path,
6868         IProgress * * progress
6869     );
6870 
6871     nsresult (*GetWarnings)(
6872         IAppliance *pThis,
6873         PRUint32 *warningsSize,
6874         PRUnichar *** warnings
6875     );
6876 
6877     nsresult (*GetPasswordIds)(
6878         IAppliance *pThis,
6879         PRUint32 *identifiersSize,
6880         PRUnichar *** identifiers
6881     );
6882 
6883     nsresult (*GetMediumIdsForPasswordId)(
6884         IAppliance *pThis,
6885         PRUnichar * passwordId,
6886         PRUint32 *identifiersSize,
6887         PRUnichar *** identifiers
6888     );
6889 
6890     nsresult (*AddPasswords)(
6891         IAppliance *pThis,
6892         PRUint32 identifiersSize,
6893         PRUnichar ** identifiers,
6894         PRUint32 passwordsSize,
6895         PRUnichar ** passwords
6896     );
6897 
6898     nsresult (*CreateVirtualSystemDescriptions)(
6899         IAppliance *pThis,
6900         PRUint32 requested,
6901         PRUint32 * created
6902     );
6903 
6904     nsresult (*InternalAndReservedMethod1IAppliance)(IAppliance *pThis);
6905 
6906     nsresult (*InternalAndReservedMethod2IAppliance)(IAppliance *pThis);
6907 
6908     nsresult (*InternalAndReservedMethod3IAppliance)(IAppliance *pThis);
6909 
6910     nsresult (*InternalAndReservedMethod4IAppliance)(IAppliance *pThis);
6911 
6912     nsresult (*InternalAndReservedMethod5IAppliance)(IAppliance *pThis);
6913 
6914     nsresult (*InternalAndReservedMethod6IAppliance)(IAppliance *pThis);
6915 
6916     nsresult (*InternalAndReservedMethod7IAppliance)(IAppliance *pThis);
6917 
6918 };
6919 #   else /* VBOX_WITH_GLUE */
6920 struct IApplianceVtbl
6921 {
6922     nsresult (*QueryInterface)(IAppliance *pThis, const nsID *iid, void **resultp);
6923     nsrefcnt (*AddRef)(IAppliance *pThis);
6924     nsrefcnt (*Release)(IAppliance *pThis);
6925     nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
6926 
6927     nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
6928 
6929     nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
6930 
6931     nsresult (*GetMachines)(IAppliance *pThis, PRUint32 *machinesSize, PRUnichar * **machines);
6932 
6933     nsresult (*GetCertificate)(IAppliance *pThis, ICertificate * *certificate);
6934 
6935     nsresult (*GetInternalAndReservedAttribute1IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6936 
6937     nsresult (*GetInternalAndReservedAttribute2IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6938 
6939     nsresult (*GetInternalAndReservedAttribute3IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6940 
6941     nsresult (*GetInternalAndReservedAttribute4IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6942 
6943     nsresult (*GetInternalAndReservedAttribute5IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6944 
6945     nsresult (*GetInternalAndReservedAttribute6IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6946 
6947     nsresult (*GetInternalAndReservedAttribute7IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6948 
6949     nsresult (*GetInternalAndReservedAttribute8IAppliance)(IAppliance *pThis, PRUint32 *reserved);
6950 
6951     nsresult (*Read)(
6952         IAppliance *pThis,
6953         PRUnichar * file,
6954         IProgress * * progress
6955     );
6956 
6957     nsresult (*Interpret)(IAppliance *pThis );
6958 
6959     nsresult (*ImportMachines)(
6960         IAppliance *pThis,
6961         PRUint32 optionsSize,
6962         PRUint32* options,
6963         IProgress * * progress
6964     );
6965 
6966     nsresult (*CreateVFSExplorer)(
6967         IAppliance *pThis,
6968         PRUnichar * URI,
6969         IVFSExplorer * * explorer
6970     );
6971 
6972     nsresult (*Write)(
6973         IAppliance *pThis,
6974         PRUnichar * format,
6975         PRUint32 optionsSize,
6976         PRUint32* options,
6977         PRUnichar * path,
6978         IProgress * * progress
6979     );
6980 
6981     nsresult (*GetWarnings)(
6982         IAppliance *pThis,
6983         PRUint32 *warningsSize,
6984         PRUnichar *** warnings
6985     );
6986 
6987     nsresult (*GetPasswordIds)(
6988         IAppliance *pThis,
6989         PRUint32 *identifiersSize,
6990         PRUnichar *** identifiers
6991     );
6992 
6993     nsresult (*GetMediumIdsForPasswordId)(
6994         IAppliance *pThis,
6995         PRUnichar * passwordId,
6996         PRUint32 *identifiersSize,
6997         PRUnichar *** identifiers
6998     );
6999 
7000     nsresult (*AddPasswords)(
7001         IAppliance *pThis,
7002         PRUint32 identifiersSize,
7003         PRUnichar ** identifiers,
7004         PRUint32 passwordsSize,
7005         PRUnichar ** passwords
7006     );
7007 
7008     nsresult (*CreateVirtualSystemDescriptions)(
7009         IAppliance *pThis,
7010         PRUint32 requested,
7011         PRUint32 * created
7012     );
7013 
7014     nsresult (*InternalAndReservedMethod1IAppliance)(IAppliance *pThis);
7015 
7016     nsresult (*InternalAndReservedMethod2IAppliance)(IAppliance *pThis);
7017 
7018     nsresult (*InternalAndReservedMethod3IAppliance)(IAppliance *pThis);
7019 
7020     nsresult (*InternalAndReservedMethod4IAppliance)(IAppliance *pThis);
7021 
7022     nsresult (*InternalAndReservedMethod5IAppliance)(IAppliance *pThis);
7023 
7024     nsresult (*InternalAndReservedMethod6IAppliance)(IAppliance *pThis);
7025 
7026     nsresult (*InternalAndReservedMethod7IAppliance)(IAppliance *pThis);
7027 
7028 };
7029 #    define IAppliance_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
7030 #    define IAppliance_AddRef(p) ((p)->lpVtbl->AddRef(p))
7031 #    define IAppliance_Release(p) ((p)->lpVtbl->Release(p))
7032 #    define IAppliance_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
7033 #    define IAppliance_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
7034 #    define IAppliance_get_Disks(p, aDisks) ((p)->lpVtbl->GetDisks(p, aDisks))
7035 #    define IAppliance_GetDisks(p, aDisks) ((p)->lpVtbl->GetDisks(p, aDisks))
7036 #    define IAppliance_get_VirtualSystemDescriptions(p, aVirtualSystemDescriptions) ((p)->lpVtbl->GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions))
7037 #    define IAppliance_GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions) ((p)->lpVtbl->GetVirtualSystemDescriptions(p, aVirtualSystemDescriptions))
7038 #    define IAppliance_get_Machines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
7039 #    define IAppliance_GetMachines(p, aMachines) ((p)->lpVtbl->GetMachines(p, aMachines))
7040 #    define IAppliance_get_Certificate(p, aCertificate) ((p)->lpVtbl->GetCertificate(p, aCertificate))
7041 #    define IAppliance_GetCertificate(p, aCertificate) ((p)->lpVtbl->GetCertificate(p, aCertificate))
7042 #    define IAppliance_Read(p, aFile, aProgress) ((p)->lpVtbl->Read(p, aFile, aProgress))
7043 #    define IAppliance_Interpret(p) ((p)->lpVtbl->Interpret(p))
7044 #    define IAppliance_ImportMachines(p, aOptions, aProgress) ((p)->lpVtbl->ImportMachines(p, aOptions, aProgress))
7045 #    define IAppliance_CreateVFSExplorer(p, aURI, aExplorer) ((p)->lpVtbl->CreateVFSExplorer(p, aURI, aExplorer))
7046 #    define IAppliance_Write(p, aFormat, aOptions, aPath, aProgress) ((p)->lpVtbl->Write(p, aFormat, aOptions, aPath, aProgress))
7047 #    define IAppliance_GetWarnings(p, aWarnings) ((p)->lpVtbl->GetWarnings(p, aWarnings))
7048 #    define IAppliance_GetPasswordIds(p, aIdentifiers) ((p)->lpVtbl->GetPasswordIds(p, aIdentifiers))
7049 #    define IAppliance_GetMediumIdsForPasswordId(p, aPasswordId, aIdentifiers) ((p)->lpVtbl->GetMediumIdsForPasswordId(p, aPasswordId, aIdentifiers))
7050 #    define IAppliance_AddPasswords(p, aIdentifiers, aPasswords) ((p)->lpVtbl->AddPasswords(p, aIdentifiers, aPasswords))
7051 #    define IAppliance_CreateVirtualSystemDescriptions(p, aRequested, aCreated) ((p)->lpVtbl->CreateVirtualSystemDescriptions(p, aRequested, aCreated))
7052 #   endif /* VBOX_WITH_GLUE */
7053 
7054 interface IAppliance
7055 {
7056 #   ifndef VBOX_WITH_GLUE
7057     struct IAppliance_vtbl *vtbl;
7058 #   else /* VBOX_WITH_GLUE */
7059     CONST_VTBL struct IApplianceVtbl *lpVtbl;
7060 #   endif /* VBOX_WITH_GLUE */
7061 };
7062 /* End of struct IAppliance declaration */
7063 
7064 
7065 /* Start of struct IVirtualSystemDescription declaration */
7066 #   define IVIRTUALSYSTEMDESCRIPTION_IID_STR "01510f40-c196-4d26-b8db-4c8c389f1f82"
7067 #   define IVIRTUALSYSTEMDESCRIPTION_IID { \
7068     0x01510f40, 0xc196, 0x4d26, \
7069     { 0xb8, 0xdb, 0x4c, 0x8c, 0x38, 0x9f, 0x1f, 0x82 } \
7070 }
7071 /* COM compatibility */
7072 VBOX_EXTERN_CONST(nsIID, IID_IVirtualSystemDescription);
7073 #   ifndef VBOX_WITH_GLUE
7074 struct IVirtualSystemDescription_vtbl
7075 {
7076     struct nsISupports_vtbl nsisupports;
7077 
7078     nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
7079 
7080     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7081 
7082     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7083 
7084     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7085 
7086     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7087 
7088     nsresult (*GetDescription)(
7089         IVirtualSystemDescription *pThis,
7090         PRUint32 *typesSize,
7091         PRUint32** types,
7092         PRUint32 *refsSize,
7093         PRUnichar *** refs,
7094         PRUint32 *OVFValuesSize,
7095         PRUnichar *** OVFValues,
7096         PRUint32 *VBoxValuesSize,
7097         PRUnichar *** VBoxValues,
7098         PRUint32 *extraConfigValuesSize,
7099         PRUnichar *** extraConfigValues
7100     );
7101 
7102     nsresult (*GetDescriptionByType)(
7103         IVirtualSystemDescription *pThis,
7104         PRUint32 type,
7105         PRUint32 *typesSize,
7106         PRUint32** types,
7107         PRUint32 *refsSize,
7108         PRUnichar *** refs,
7109         PRUint32 *OVFValuesSize,
7110         PRUnichar *** OVFValues,
7111         PRUint32 *VBoxValuesSize,
7112         PRUnichar *** VBoxValues,
7113         PRUint32 *extraConfigValuesSize,
7114         PRUnichar *** extraConfigValues
7115     );
7116 
7117     nsresult (*RemoveDescriptionByType)(
7118         IVirtualSystemDescription *pThis,
7119         PRUint32 type
7120     );
7121 
7122     nsresult (*GetValuesByType)(
7123         IVirtualSystemDescription *pThis,
7124         PRUint32 type,
7125         PRUint32 which,
7126         PRUint32 *valuesSize,
7127         PRUnichar *** values
7128     );
7129 
7130     nsresult (*SetFinalValues)(
7131         IVirtualSystemDescription *pThis,
7132         PRUint32 enabledSize,
7133         PRBool* enabled,
7134         PRUint32 VBoxValuesSize,
7135         PRUnichar ** VBoxValues,
7136         PRUint32 extraConfigValuesSize,
7137         PRUnichar ** extraConfigValues
7138     );
7139 
7140     nsresult (*AddDescription)(
7141         IVirtualSystemDescription *pThis,
7142         PRUint32 type,
7143         PRUnichar * VBoxValue,
7144         PRUnichar * extraConfigValue
7145     );
7146 
7147     nsresult (*InternalAndReservedMethod1IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7148 
7149     nsresult (*InternalAndReservedMethod2IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7150 
7151     nsresult (*InternalAndReservedMethod3IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7152 
7153     nsresult (*InternalAndReservedMethod4IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7154 
7155 };
7156 #   else /* VBOX_WITH_GLUE */
7157 struct IVirtualSystemDescriptionVtbl
7158 {
7159     nsresult (*QueryInterface)(IVirtualSystemDescription *pThis, const nsID *iid, void **resultp);
7160     nsrefcnt (*AddRef)(IVirtualSystemDescription *pThis);
7161     nsrefcnt (*Release)(IVirtualSystemDescription *pThis);
7162     nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
7163 
7164     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7165 
7166     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7167 
7168     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7169 
7170     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescription)(IVirtualSystemDescription *pThis, PRUint32 *reserved);
7171 
7172     nsresult (*GetDescription)(
7173         IVirtualSystemDescription *pThis,
7174         PRUint32 *typesSize,
7175         PRUint32** types,
7176         PRUint32 *refsSize,
7177         PRUnichar *** refs,
7178         PRUint32 *OVFValuesSize,
7179         PRUnichar *** OVFValues,
7180         PRUint32 *VBoxValuesSize,
7181         PRUnichar *** VBoxValues,
7182         PRUint32 *extraConfigValuesSize,
7183         PRUnichar *** extraConfigValues
7184     );
7185 
7186     nsresult (*GetDescriptionByType)(
7187         IVirtualSystemDescription *pThis,
7188         PRUint32 type,
7189         PRUint32 *typesSize,
7190         PRUint32** types,
7191         PRUint32 *refsSize,
7192         PRUnichar *** refs,
7193         PRUint32 *OVFValuesSize,
7194         PRUnichar *** OVFValues,
7195         PRUint32 *VBoxValuesSize,
7196         PRUnichar *** VBoxValues,
7197         PRUint32 *extraConfigValuesSize,
7198         PRUnichar *** extraConfigValues
7199     );
7200 
7201     nsresult (*RemoveDescriptionByType)(
7202         IVirtualSystemDescription *pThis,
7203         PRUint32 type
7204     );
7205 
7206     nsresult (*GetValuesByType)(
7207         IVirtualSystemDescription *pThis,
7208         PRUint32 type,
7209         PRUint32 which,
7210         PRUint32 *valuesSize,
7211         PRUnichar *** values
7212     );
7213 
7214     nsresult (*SetFinalValues)(
7215         IVirtualSystemDescription *pThis,
7216         PRUint32 enabledSize,
7217         PRBool* enabled,
7218         PRUint32 VBoxValuesSize,
7219         PRUnichar ** VBoxValues,
7220         PRUint32 extraConfigValuesSize,
7221         PRUnichar ** extraConfigValues
7222     );
7223 
7224     nsresult (*AddDescription)(
7225         IVirtualSystemDescription *pThis,
7226         PRUint32 type,
7227         PRUnichar * VBoxValue,
7228         PRUnichar * extraConfigValue
7229     );
7230 
7231     nsresult (*InternalAndReservedMethod1IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7232 
7233     nsresult (*InternalAndReservedMethod2IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7234 
7235     nsresult (*InternalAndReservedMethod3IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7236 
7237     nsresult (*InternalAndReservedMethod4IVirtualSystemDescription)(IVirtualSystemDescription *pThis);
7238 
7239 };
7240 #    define IVirtualSystemDescription_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
7241 #    define IVirtualSystemDescription_AddRef(p) ((p)->lpVtbl->AddRef(p))
7242 #    define IVirtualSystemDescription_Release(p) ((p)->lpVtbl->Release(p))
7243 #    define IVirtualSystemDescription_get_Count(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
7244 #    define IVirtualSystemDescription_GetCount(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
7245 #    define IVirtualSystemDescription_GetDescription(p, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->GetDescription(p, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues))
7246 #    define IVirtualSystemDescription_GetDescriptionByType(p, aType, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->GetDescriptionByType(p, aType, aTypes, aRefs, aOVFValues, aVBoxValues, aExtraConfigValues))
7247 #    define IVirtualSystemDescription_RemoveDescriptionByType(p, aType) ((p)->lpVtbl->RemoveDescriptionByType(p, aType))
7248 #    define IVirtualSystemDescription_GetValuesByType(p, aType, aWhich, aValues) ((p)->lpVtbl->GetValuesByType(p, aType, aWhich, aValues))
7249 #    define IVirtualSystemDescription_SetFinalValues(p, aEnabled, aVBoxValues, aExtraConfigValues) ((p)->lpVtbl->SetFinalValues(p, aEnabled, aVBoxValues, aExtraConfigValues))
7250 #    define IVirtualSystemDescription_AddDescription(p, aType, aVBoxValue, aExtraConfigValue) ((p)->lpVtbl->AddDescription(p, aType, aVBoxValue, aExtraConfigValue))
7251 #   endif /* VBOX_WITH_GLUE */
7252 
7253 interface IVirtualSystemDescription
7254 {
7255 #   ifndef VBOX_WITH_GLUE
7256     struct IVirtualSystemDescription_vtbl *vtbl;
7257 #   else /* VBOX_WITH_GLUE */
7258     CONST_VTBL struct IVirtualSystemDescriptionVtbl *lpVtbl;
7259 #   endif /* VBOX_WITH_GLUE */
7260 };
7261 /* End of struct IVirtualSystemDescription declaration */
7262 
7263 
7264 /* Start of struct IUnattended declaration */
7265 #   define IUNATTENDED_IID_STR "6f89464f-7193-426c-a41f-522e8f537fa0"
7266 #   define IUNATTENDED_IID { \
7267     0x6f89464f, 0x7193, 0x426c, \
7268     { 0xa4, 0x1f, 0x52, 0x2e, 0x8f, 0x53, 0x7f, 0xa0 } \
7269 }
7270 /* COM compatibility */
7271 VBOX_EXTERN_CONST(nsIID, IID_IUnattended);
7272 #   ifndef VBOX_WITH_GLUE
7273 struct IUnattended_vtbl
7274 {
7275     struct nsISupports_vtbl nsisupports;
7276 
7277     nsresult (*GetIsoPath)(IUnattended *pThis, PRUnichar * *isoPath);
7278     nsresult (*SetIsoPath)(IUnattended *pThis, PRUnichar * isoPath);
7279 
7280     nsresult (*GetMachine)(IUnattended *pThis, IMachine * *machine);
7281     nsresult (*SetMachine)(IUnattended *pThis, IMachine * machine);
7282 
7283     nsresult (*GetUser)(IUnattended *pThis, PRUnichar * *user);
7284     nsresult (*SetUser)(IUnattended *pThis, PRUnichar * user);
7285 
7286     nsresult (*GetPassword)(IUnattended *pThis, PRUnichar * *password);
7287     nsresult (*SetPassword)(IUnattended *pThis, PRUnichar * password);
7288 
7289     nsresult (*GetFullUserName)(IUnattended *pThis, PRUnichar * *fullUserName);
7290     nsresult (*SetFullUserName)(IUnattended *pThis, PRUnichar * fullUserName);
7291 
7292     nsresult (*GetProductKey)(IUnattended *pThis, PRUnichar * *productKey);
7293     nsresult (*SetProductKey)(IUnattended *pThis, PRUnichar * productKey);
7294 
7295     nsresult (*GetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * *additionsIsoPath);
7296     nsresult (*SetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * additionsIsoPath);
7297 
7298     nsresult (*GetInstallGuestAdditions)(IUnattended *pThis, PRBool *installGuestAdditions);
7299     nsresult (*SetInstallGuestAdditions)(IUnattended *pThis, PRBool installGuestAdditions);
7300 
7301     nsresult (*GetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * *validationKitIsoPath);
7302     nsresult (*SetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * validationKitIsoPath);
7303 
7304     nsresult (*GetInstallTestExecService)(IUnattended *pThis, PRBool *installTestExecService);
7305     nsresult (*SetInstallTestExecService)(IUnattended *pThis, PRBool installTestExecService);
7306 
7307     nsresult (*GetTimeZone)(IUnattended *pThis, PRUnichar * *timeZone);
7308     nsresult (*SetTimeZone)(IUnattended *pThis, PRUnichar * timeZone);
7309 
7310     nsresult (*GetLocale)(IUnattended *pThis, PRUnichar * *locale);
7311     nsresult (*SetLocale)(IUnattended *pThis, PRUnichar * locale);
7312 
7313     nsresult (*GetLanguage)(IUnattended *pThis, PRUnichar * *language);
7314     nsresult (*SetLanguage)(IUnattended *pThis, PRUnichar * language);
7315 
7316     nsresult (*GetCountry)(IUnattended *pThis, PRUnichar * *country);
7317     nsresult (*SetCountry)(IUnattended *pThis, PRUnichar * country);
7318 
7319     nsresult (*GetProxy)(IUnattended *pThis, PRUnichar * *proxy);
7320     nsresult (*SetProxy)(IUnattended *pThis, PRUnichar * proxy);
7321 
7322     nsresult (*GetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * *packageSelectionAdjustments);
7323     nsresult (*SetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * packageSelectionAdjustments);
7324 
7325     nsresult (*GetHostname)(IUnattended *pThis, PRUnichar * *hostname);
7326     nsresult (*SetHostname)(IUnattended *pThis, PRUnichar * hostname);
7327 
7328     nsresult (*GetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * *auxiliaryBasePath);
7329     nsresult (*SetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * auxiliaryBasePath);
7330 
7331     nsresult (*GetImageIndex)(IUnattended *pThis, PRUint32 *imageIndex);
7332     nsresult (*SetImageIndex)(IUnattended *pThis, PRUint32 imageIndex);
7333 
7334     nsresult (*GetScriptTemplatePath)(IUnattended *pThis, PRUnichar * *scriptTemplatePath);
7335     nsresult (*SetScriptTemplatePath)(IUnattended *pThis, PRUnichar * scriptTemplatePath);
7336 
7337     nsresult (*GetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * *postInstallScriptTemplatePath);
7338     nsresult (*SetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * postInstallScriptTemplatePath);
7339 
7340     nsresult (*GetPostInstallCommand)(IUnattended *pThis, PRUnichar * *postInstallCommand);
7341     nsresult (*SetPostInstallCommand)(IUnattended *pThis, PRUnichar * postInstallCommand);
7342 
7343     nsresult (*GetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * *extraInstallKernelParameters);
7344     nsresult (*SetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * extraInstallKernelParameters);
7345 
7346     nsresult (*GetDetectedOSTypeId)(IUnattended *pThis, PRUnichar * *detectedOSTypeId);
7347 
7348     nsresult (*GetDetectedOSVersion)(IUnattended *pThis, PRUnichar * *detectedOSVersion);
7349 
7350     nsresult (*GetDetectedOSFlavor)(IUnattended *pThis, PRUnichar * *detectedOSFlavor);
7351 
7352     nsresult (*GetDetectedOSLanguages)(IUnattended *pThis, PRUnichar * *detectedOSLanguages);
7353 
7354     nsresult (*GetDetectedOSHints)(IUnattended *pThis, PRUnichar * *detectedOSHints);
7355 
7356     nsresult (*GetInternalAndReservedAttribute1IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7357 
7358     nsresult (*GetInternalAndReservedAttribute2IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7359 
7360     nsresult (*GetInternalAndReservedAttribute3IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7361 
7362     nsresult (*GetInternalAndReservedAttribute4IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7363 
7364     nsresult (*GetInternalAndReservedAttribute5IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7365 
7366     nsresult (*GetInternalAndReservedAttribute6IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7367 
7368     nsresult (*GetInternalAndReservedAttribute7IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7369 
7370     nsresult (*GetInternalAndReservedAttribute8IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7371 
7372     nsresult (*GetInternalAndReservedAttribute9IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7373 
7374     nsresult (*GetInternalAndReservedAttribute10IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7375 
7376     nsresult (*GetInternalAndReservedAttribute11IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7377 
7378     nsresult (*GetInternalAndReservedAttribute12IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7379 
7380     nsresult (*GetInternalAndReservedAttribute13IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7381 
7382     nsresult (*GetInternalAndReservedAttribute14IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7383 
7384     nsresult (*GetInternalAndReservedAttribute15IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7385 
7386     nsresult (*GetInternalAndReservedAttribute16IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7387 
7388     nsresult (*DetectIsoOS)(IUnattended *pThis );
7389 
7390     nsresult (*Prepare)(IUnattended *pThis );
7391 
7392     nsresult (*ConstructMedia)(IUnattended *pThis );
7393 
7394     nsresult (*ReconfigureVM)(IUnattended *pThis );
7395 
7396     nsresult (*Done)(IUnattended *pThis );
7397 
7398     nsresult (*InternalAndReservedMethod1IUnattended)(IUnattended *pThis);
7399 
7400     nsresult (*InternalAndReservedMethod2IUnattended)(IUnattended *pThis);
7401 
7402     nsresult (*InternalAndReservedMethod3IUnattended)(IUnattended *pThis);
7403 
7404     nsresult (*InternalAndReservedMethod4IUnattended)(IUnattended *pThis);
7405 
7406 };
7407 #   else /* VBOX_WITH_GLUE */
7408 struct IUnattendedVtbl
7409 {
7410     nsresult (*QueryInterface)(IUnattended *pThis, const nsID *iid, void **resultp);
7411     nsrefcnt (*AddRef)(IUnattended *pThis);
7412     nsrefcnt (*Release)(IUnattended *pThis);
7413     nsresult (*GetIsoPath)(IUnattended *pThis, PRUnichar * *isoPath);
7414     nsresult (*SetIsoPath)(IUnattended *pThis, PRUnichar * isoPath);
7415 
7416     nsresult (*GetMachine)(IUnattended *pThis, IMachine * *machine);
7417     nsresult (*SetMachine)(IUnattended *pThis, IMachine * machine);
7418 
7419     nsresult (*GetUser)(IUnattended *pThis, PRUnichar * *user);
7420     nsresult (*SetUser)(IUnattended *pThis, PRUnichar * user);
7421 
7422     nsresult (*GetPassword)(IUnattended *pThis, PRUnichar * *password);
7423     nsresult (*SetPassword)(IUnattended *pThis, PRUnichar * password);
7424 
7425     nsresult (*GetFullUserName)(IUnattended *pThis, PRUnichar * *fullUserName);
7426     nsresult (*SetFullUserName)(IUnattended *pThis, PRUnichar * fullUserName);
7427 
7428     nsresult (*GetProductKey)(IUnattended *pThis, PRUnichar * *productKey);
7429     nsresult (*SetProductKey)(IUnattended *pThis, PRUnichar * productKey);
7430 
7431     nsresult (*GetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * *additionsIsoPath);
7432     nsresult (*SetAdditionsIsoPath)(IUnattended *pThis, PRUnichar * additionsIsoPath);
7433 
7434     nsresult (*GetInstallGuestAdditions)(IUnattended *pThis, PRBool *installGuestAdditions);
7435     nsresult (*SetInstallGuestAdditions)(IUnattended *pThis, PRBool installGuestAdditions);
7436 
7437     nsresult (*GetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * *validationKitIsoPath);
7438     nsresult (*SetValidationKitIsoPath)(IUnattended *pThis, PRUnichar * validationKitIsoPath);
7439 
7440     nsresult (*GetInstallTestExecService)(IUnattended *pThis, PRBool *installTestExecService);
7441     nsresult (*SetInstallTestExecService)(IUnattended *pThis, PRBool installTestExecService);
7442 
7443     nsresult (*GetTimeZone)(IUnattended *pThis, PRUnichar * *timeZone);
7444     nsresult (*SetTimeZone)(IUnattended *pThis, PRUnichar * timeZone);
7445 
7446     nsresult (*GetLocale)(IUnattended *pThis, PRUnichar * *locale);
7447     nsresult (*SetLocale)(IUnattended *pThis, PRUnichar * locale);
7448 
7449     nsresult (*GetLanguage)(IUnattended *pThis, PRUnichar * *language);
7450     nsresult (*SetLanguage)(IUnattended *pThis, PRUnichar * language);
7451 
7452     nsresult (*GetCountry)(IUnattended *pThis, PRUnichar * *country);
7453     nsresult (*SetCountry)(IUnattended *pThis, PRUnichar * country);
7454 
7455     nsresult (*GetProxy)(IUnattended *pThis, PRUnichar * *proxy);
7456     nsresult (*SetProxy)(IUnattended *pThis, PRUnichar * proxy);
7457 
7458     nsresult (*GetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * *packageSelectionAdjustments);
7459     nsresult (*SetPackageSelectionAdjustments)(IUnattended *pThis, PRUnichar * packageSelectionAdjustments);
7460 
7461     nsresult (*GetHostname)(IUnattended *pThis, PRUnichar * *hostname);
7462     nsresult (*SetHostname)(IUnattended *pThis, PRUnichar * hostname);
7463 
7464     nsresult (*GetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * *auxiliaryBasePath);
7465     nsresult (*SetAuxiliaryBasePath)(IUnattended *pThis, PRUnichar * auxiliaryBasePath);
7466 
7467     nsresult (*GetImageIndex)(IUnattended *pThis, PRUint32 *imageIndex);
7468     nsresult (*SetImageIndex)(IUnattended *pThis, PRUint32 imageIndex);
7469 
7470     nsresult (*GetScriptTemplatePath)(IUnattended *pThis, PRUnichar * *scriptTemplatePath);
7471     nsresult (*SetScriptTemplatePath)(IUnattended *pThis, PRUnichar * scriptTemplatePath);
7472 
7473     nsresult (*GetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * *postInstallScriptTemplatePath);
7474     nsresult (*SetPostInstallScriptTemplatePath)(IUnattended *pThis, PRUnichar * postInstallScriptTemplatePath);
7475 
7476     nsresult (*GetPostInstallCommand)(IUnattended *pThis, PRUnichar * *postInstallCommand);
7477     nsresult (*SetPostInstallCommand)(IUnattended *pThis, PRUnichar * postInstallCommand);
7478 
7479     nsresult (*GetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * *extraInstallKernelParameters);
7480     nsresult (*SetExtraInstallKernelParameters)(IUnattended *pThis, PRUnichar * extraInstallKernelParameters);
7481 
7482     nsresult (*GetDetectedOSTypeId)(IUnattended *pThis, PRUnichar * *detectedOSTypeId);
7483 
7484     nsresult (*GetDetectedOSVersion)(IUnattended *pThis, PRUnichar * *detectedOSVersion);
7485 
7486     nsresult (*GetDetectedOSFlavor)(IUnattended *pThis, PRUnichar * *detectedOSFlavor);
7487 
7488     nsresult (*GetDetectedOSLanguages)(IUnattended *pThis, PRUnichar * *detectedOSLanguages);
7489 
7490     nsresult (*GetDetectedOSHints)(IUnattended *pThis, PRUnichar * *detectedOSHints);
7491 
7492     nsresult (*GetInternalAndReservedAttribute1IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7493 
7494     nsresult (*GetInternalAndReservedAttribute2IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7495 
7496     nsresult (*GetInternalAndReservedAttribute3IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7497 
7498     nsresult (*GetInternalAndReservedAttribute4IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7499 
7500     nsresult (*GetInternalAndReservedAttribute5IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7501 
7502     nsresult (*GetInternalAndReservedAttribute6IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7503 
7504     nsresult (*GetInternalAndReservedAttribute7IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7505 
7506     nsresult (*GetInternalAndReservedAttribute8IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7507 
7508     nsresult (*GetInternalAndReservedAttribute9IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7509 
7510     nsresult (*GetInternalAndReservedAttribute10IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7511 
7512     nsresult (*GetInternalAndReservedAttribute11IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7513 
7514     nsresult (*GetInternalAndReservedAttribute12IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7515 
7516     nsresult (*GetInternalAndReservedAttribute13IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7517 
7518     nsresult (*GetInternalAndReservedAttribute14IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7519 
7520     nsresult (*GetInternalAndReservedAttribute15IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7521 
7522     nsresult (*GetInternalAndReservedAttribute16IUnattended)(IUnattended *pThis, PRUint32 *reserved);
7523 
7524     nsresult (*DetectIsoOS)(IUnattended *pThis );
7525 
7526     nsresult (*Prepare)(IUnattended *pThis );
7527 
7528     nsresult (*ConstructMedia)(IUnattended *pThis );
7529 
7530     nsresult (*ReconfigureVM)(IUnattended *pThis );
7531 
7532     nsresult (*Done)(IUnattended *pThis );
7533 
7534     nsresult (*InternalAndReservedMethod1IUnattended)(IUnattended *pThis);
7535 
7536     nsresult (*InternalAndReservedMethod2IUnattended)(IUnattended *pThis);
7537 
7538     nsresult (*InternalAndReservedMethod3IUnattended)(IUnattended *pThis);
7539 
7540     nsresult (*InternalAndReservedMethod4IUnattended)(IUnattended *pThis);
7541 
7542 };
7543 #    define IUnattended_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
7544 #    define IUnattended_AddRef(p) ((p)->lpVtbl->AddRef(p))
7545 #    define IUnattended_Release(p) ((p)->lpVtbl->Release(p))
7546 #    define IUnattended_get_IsoPath(p, aIsoPath) ((p)->lpVtbl->GetIsoPath(p, aIsoPath))
7547 #    define IUnattended_GetIsoPath(p, aIsoPath) ((p)->lpVtbl->GetIsoPath(p, aIsoPath))
7548 #    define IUnattended_put_IsoPath(p, aIsoPath) ((p)->lpVtbl->SetIsoPath(p, aIsoPath))
7549 #    define IUnattended_SetIsoPath(p, aIsoPath) ((p)->lpVtbl->SetIsoPath(p, aIsoPath))
7550 #    define IUnattended_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
7551 #    define IUnattended_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
7552 #    define IUnattended_put_Machine(p, aMachine) ((p)->lpVtbl->SetMachine(p, aMachine))
7553 #    define IUnattended_SetMachine(p, aMachine) ((p)->lpVtbl->SetMachine(p, aMachine))
7554 #    define IUnattended_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
7555 #    define IUnattended_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
7556 #    define IUnattended_put_User(p, aUser) ((p)->lpVtbl->SetUser(p, aUser))
7557 #    define IUnattended_SetUser(p, aUser) ((p)->lpVtbl->SetUser(p, aUser))
7558 #    define IUnattended_get_Password(p, aPassword) ((p)->lpVtbl->GetPassword(p, aPassword))
7559 #    define IUnattended_GetPassword(p, aPassword) ((p)->lpVtbl->GetPassword(p, aPassword))
7560 #    define IUnattended_put_Password(p, aPassword) ((p)->lpVtbl->SetPassword(p, aPassword))
7561 #    define IUnattended_SetPassword(p, aPassword) ((p)->lpVtbl->SetPassword(p, aPassword))
7562 #    define IUnattended_get_FullUserName(p, aFullUserName) ((p)->lpVtbl->GetFullUserName(p, aFullUserName))
7563 #    define IUnattended_GetFullUserName(p, aFullUserName) ((p)->lpVtbl->GetFullUserName(p, aFullUserName))
7564 #    define IUnattended_put_FullUserName(p, aFullUserName) ((p)->lpVtbl->SetFullUserName(p, aFullUserName))
7565 #    define IUnattended_SetFullUserName(p, aFullUserName) ((p)->lpVtbl->SetFullUserName(p, aFullUserName))
7566 #    define IUnattended_get_ProductKey(p, aProductKey) ((p)->lpVtbl->GetProductKey(p, aProductKey))
7567 #    define IUnattended_GetProductKey(p, aProductKey) ((p)->lpVtbl->GetProductKey(p, aProductKey))
7568 #    define IUnattended_put_ProductKey(p, aProductKey) ((p)->lpVtbl->SetProductKey(p, aProductKey))
7569 #    define IUnattended_SetProductKey(p, aProductKey) ((p)->lpVtbl->SetProductKey(p, aProductKey))
7570 #    define IUnattended_get_AdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->GetAdditionsIsoPath(p, aAdditionsIsoPath))
7571 #    define IUnattended_GetAdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->GetAdditionsIsoPath(p, aAdditionsIsoPath))
7572 #    define IUnattended_put_AdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->SetAdditionsIsoPath(p, aAdditionsIsoPath))
7573 #    define IUnattended_SetAdditionsIsoPath(p, aAdditionsIsoPath) ((p)->lpVtbl->SetAdditionsIsoPath(p, aAdditionsIsoPath))
7574 #    define IUnattended_get_InstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->GetInstallGuestAdditions(p, aInstallGuestAdditions))
7575 #    define IUnattended_GetInstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->GetInstallGuestAdditions(p, aInstallGuestAdditions))
7576 #    define IUnattended_put_InstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->SetInstallGuestAdditions(p, aInstallGuestAdditions))
7577 #    define IUnattended_SetInstallGuestAdditions(p, aInstallGuestAdditions) ((p)->lpVtbl->SetInstallGuestAdditions(p, aInstallGuestAdditions))
7578 #    define IUnattended_get_ValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->GetValidationKitIsoPath(p, aValidationKitIsoPath))
7579 #    define IUnattended_GetValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->GetValidationKitIsoPath(p, aValidationKitIsoPath))
7580 #    define IUnattended_put_ValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->SetValidationKitIsoPath(p, aValidationKitIsoPath))
7581 #    define IUnattended_SetValidationKitIsoPath(p, aValidationKitIsoPath) ((p)->lpVtbl->SetValidationKitIsoPath(p, aValidationKitIsoPath))
7582 #    define IUnattended_get_InstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->GetInstallTestExecService(p, aInstallTestExecService))
7583 #    define IUnattended_GetInstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->GetInstallTestExecService(p, aInstallTestExecService))
7584 #    define IUnattended_put_InstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->SetInstallTestExecService(p, aInstallTestExecService))
7585 #    define IUnattended_SetInstallTestExecService(p, aInstallTestExecService) ((p)->lpVtbl->SetInstallTestExecService(p, aInstallTestExecService))
7586 #    define IUnattended_get_TimeZone(p, aTimeZone) ((p)->lpVtbl->GetTimeZone(p, aTimeZone))
7587 #    define IUnattended_GetTimeZone(p, aTimeZone) ((p)->lpVtbl->GetTimeZone(p, aTimeZone))
7588 #    define IUnattended_put_TimeZone(p, aTimeZone) ((p)->lpVtbl->SetTimeZone(p, aTimeZone))
7589 #    define IUnattended_SetTimeZone(p, aTimeZone) ((p)->lpVtbl->SetTimeZone(p, aTimeZone))
7590 #    define IUnattended_get_Locale(p, aLocale) ((p)->lpVtbl->GetLocale(p, aLocale))
7591 #    define IUnattended_GetLocale(p, aLocale) ((p)->lpVtbl->GetLocale(p, aLocale))
7592 #    define IUnattended_put_Locale(p, aLocale) ((p)->lpVtbl->SetLocale(p, aLocale))
7593 #    define IUnattended_SetLocale(p, aLocale) ((p)->lpVtbl->SetLocale(p, aLocale))
7594 #    define IUnattended_get_Language(p, aLanguage) ((p)->lpVtbl->GetLanguage(p, aLanguage))
7595 #    define IUnattended_GetLanguage(p, aLanguage) ((p)->lpVtbl->GetLanguage(p, aLanguage))
7596 #    define IUnattended_put_Language(p, aLanguage) ((p)->lpVtbl->SetLanguage(p, aLanguage))
7597 #    define IUnattended_SetLanguage(p, aLanguage) ((p)->lpVtbl->SetLanguage(p, aLanguage))
7598 #    define IUnattended_get_Country(p, aCountry) ((p)->lpVtbl->GetCountry(p, aCountry))
7599 #    define IUnattended_GetCountry(p, aCountry) ((p)->lpVtbl->GetCountry(p, aCountry))
7600 #    define IUnattended_put_Country(p, aCountry) ((p)->lpVtbl->SetCountry(p, aCountry))
7601 #    define IUnattended_SetCountry(p, aCountry) ((p)->lpVtbl->SetCountry(p, aCountry))
7602 #    define IUnattended_get_Proxy(p, aProxy) ((p)->lpVtbl->GetProxy(p, aProxy))
7603 #    define IUnattended_GetProxy(p, aProxy) ((p)->lpVtbl->GetProxy(p, aProxy))
7604 #    define IUnattended_put_Proxy(p, aProxy) ((p)->lpVtbl->SetProxy(p, aProxy))
7605 #    define IUnattended_SetProxy(p, aProxy) ((p)->lpVtbl->SetProxy(p, aProxy))
7606 #    define IUnattended_get_PackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
7607 #    define IUnattended_GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->GetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
7608 #    define IUnattended_put_PackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
7609 #    define IUnattended_SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments) ((p)->lpVtbl->SetPackageSelectionAdjustments(p, aPackageSelectionAdjustments))
7610 #    define IUnattended_get_Hostname(p, aHostname) ((p)->lpVtbl->GetHostname(p, aHostname))
7611 #    define IUnattended_GetHostname(p, aHostname) ((p)->lpVtbl->GetHostname(p, aHostname))
7612 #    define IUnattended_put_Hostname(p, aHostname) ((p)->lpVtbl->SetHostname(p, aHostname))
7613 #    define IUnattended_SetHostname(p, aHostname) ((p)->lpVtbl->SetHostname(p, aHostname))
7614 #    define IUnattended_get_AuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->GetAuxiliaryBasePath(p, aAuxiliaryBasePath))
7615 #    define IUnattended_GetAuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->GetAuxiliaryBasePath(p, aAuxiliaryBasePath))
7616 #    define IUnattended_put_AuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->SetAuxiliaryBasePath(p, aAuxiliaryBasePath))
7617 #    define IUnattended_SetAuxiliaryBasePath(p, aAuxiliaryBasePath) ((p)->lpVtbl->SetAuxiliaryBasePath(p, aAuxiliaryBasePath))
7618 #    define IUnattended_get_ImageIndex(p, aImageIndex) ((p)->lpVtbl->GetImageIndex(p, aImageIndex))
7619 #    define IUnattended_GetImageIndex(p, aImageIndex) ((p)->lpVtbl->GetImageIndex(p, aImageIndex))
7620 #    define IUnattended_put_ImageIndex(p, aImageIndex) ((p)->lpVtbl->SetImageIndex(p, aImageIndex))
7621 #    define IUnattended_SetImageIndex(p, aImageIndex) ((p)->lpVtbl->SetImageIndex(p, aImageIndex))
7622 #    define IUnattended_get_ScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->GetScriptTemplatePath(p, aScriptTemplatePath))
7623 #    define IUnattended_GetScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->GetScriptTemplatePath(p, aScriptTemplatePath))
7624 #    define IUnattended_put_ScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->SetScriptTemplatePath(p, aScriptTemplatePath))
7625 #    define IUnattended_SetScriptTemplatePath(p, aScriptTemplatePath) ((p)->lpVtbl->SetScriptTemplatePath(p, aScriptTemplatePath))
7626 #    define IUnattended_get_PostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
7627 #    define IUnattended_GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->GetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
7628 #    define IUnattended_put_PostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
7629 #    define IUnattended_SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath) ((p)->lpVtbl->SetPostInstallScriptTemplatePath(p, aPostInstallScriptTemplatePath))
7630 #    define IUnattended_get_PostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->GetPostInstallCommand(p, aPostInstallCommand))
7631 #    define IUnattended_GetPostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->GetPostInstallCommand(p, aPostInstallCommand))
7632 #    define IUnattended_put_PostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->SetPostInstallCommand(p, aPostInstallCommand))
7633 #    define IUnattended_SetPostInstallCommand(p, aPostInstallCommand) ((p)->lpVtbl->SetPostInstallCommand(p, aPostInstallCommand))
7634 #    define IUnattended_get_ExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
7635 #    define IUnattended_GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->GetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
7636 #    define IUnattended_put_ExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
7637 #    define IUnattended_SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters) ((p)->lpVtbl->SetExtraInstallKernelParameters(p, aExtraInstallKernelParameters))
7638 #    define IUnattended_get_DetectedOSTypeId(p, aDetectedOSTypeId) ((p)->lpVtbl->GetDetectedOSTypeId(p, aDetectedOSTypeId))
7639 #    define IUnattended_GetDetectedOSTypeId(p, aDetectedOSTypeId) ((p)->lpVtbl->GetDetectedOSTypeId(p, aDetectedOSTypeId))
7640 #    define IUnattended_get_DetectedOSVersion(p, aDetectedOSVersion) ((p)->lpVtbl->GetDetectedOSVersion(p, aDetectedOSVersion))
7641 #    define IUnattended_GetDetectedOSVersion(p, aDetectedOSVersion) ((p)->lpVtbl->GetDetectedOSVersion(p, aDetectedOSVersion))
7642 #    define IUnattended_get_DetectedOSFlavor(p, aDetectedOSFlavor) ((p)->lpVtbl->GetDetectedOSFlavor(p, aDetectedOSFlavor))
7643 #    define IUnattended_GetDetectedOSFlavor(p, aDetectedOSFlavor) ((p)->lpVtbl->GetDetectedOSFlavor(p, aDetectedOSFlavor))
7644 #    define IUnattended_get_DetectedOSLanguages(p, aDetectedOSLanguages) ((p)->lpVtbl->GetDetectedOSLanguages(p, aDetectedOSLanguages))
7645 #    define IUnattended_GetDetectedOSLanguages(p, aDetectedOSLanguages) ((p)->lpVtbl->GetDetectedOSLanguages(p, aDetectedOSLanguages))
7646 #    define IUnattended_get_DetectedOSHints(p, aDetectedOSHints) ((p)->lpVtbl->GetDetectedOSHints(p, aDetectedOSHints))
7647 #    define IUnattended_GetDetectedOSHints(p, aDetectedOSHints) ((p)->lpVtbl->GetDetectedOSHints(p, aDetectedOSHints))
7648 #    define IUnattended_DetectIsoOS(p) ((p)->lpVtbl->DetectIsoOS(p))
7649 #    define IUnattended_Prepare(p) ((p)->lpVtbl->Prepare(p))
7650 #    define IUnattended_ConstructMedia(p) ((p)->lpVtbl->ConstructMedia(p))
7651 #    define IUnattended_ReconfigureVM(p) ((p)->lpVtbl->ReconfigureVM(p))
7652 #    define IUnattended_Done(p) ((p)->lpVtbl->Done(p))
7653 #   endif /* VBOX_WITH_GLUE */
7654 
7655 interface IUnattended
7656 {
7657 #   ifndef VBOX_WITH_GLUE
7658     struct IUnattended_vtbl *vtbl;
7659 #   else /* VBOX_WITH_GLUE */
7660     CONST_VTBL struct IUnattendedVtbl *lpVtbl;
7661 #   endif /* VBOX_WITH_GLUE */
7662 };
7663 /* End of struct IUnattended declaration */
7664 
7665 
7666 /* Start of struct IGraphicsAdapter declaration */
7667 #   define IGRAPHICSADAPTER_IID_STR "f692806f-febe-4049-b476-1292a8e45b09"
7668 #   define IGRAPHICSADAPTER_IID { \
7669     0xf692806f, 0xfebe, 0x4049, \
7670     { 0xb4, 0x76, 0x12, 0x92, 0xa8, 0xe4, 0x5b, 0x09 } \
7671 }
7672 /* COM compatibility */
7673 VBOX_EXTERN_CONST(nsIID, IID_IGraphicsAdapter);
7674 #   ifndef VBOX_WITH_GLUE
7675 struct IGraphicsAdapter_vtbl
7676 {
7677     struct nsISupports_vtbl nsisupports;
7678 
7679     nsresult (*GetGraphicsControllerType)(IGraphicsAdapter *pThis, PRUint32 *graphicsControllerType);
7680     nsresult (*SetGraphicsControllerType)(IGraphicsAdapter *pThis, PRUint32 graphicsControllerType);
7681 
7682     nsresult (*GetVRAMSize)(IGraphicsAdapter *pThis, PRUint32 *VRAMSize);
7683     nsresult (*SetVRAMSize)(IGraphicsAdapter *pThis, PRUint32 VRAMSize);
7684 
7685     nsresult (*GetAccelerate3DEnabled)(IGraphicsAdapter *pThis, PRBool *accelerate3DEnabled);
7686     nsresult (*SetAccelerate3DEnabled)(IGraphicsAdapter *pThis, PRBool accelerate3DEnabled);
7687 
7688     nsresult (*GetAccelerate2DVideoEnabled)(IGraphicsAdapter *pThis, PRBool *accelerate2DVideoEnabled);
7689     nsresult (*SetAccelerate2DVideoEnabled)(IGraphicsAdapter *pThis, PRBool accelerate2DVideoEnabled);
7690 
7691     nsresult (*GetMonitorCount)(IGraphicsAdapter *pThis, PRUint32 *monitorCount);
7692     nsresult (*SetMonitorCount)(IGraphicsAdapter *pThis, PRUint32 monitorCount);
7693 
7694     nsresult (*GetInternalAndReservedAttribute1IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7695 
7696     nsresult (*GetInternalAndReservedAttribute2IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7697 
7698     nsresult (*GetInternalAndReservedAttribute3IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7699 
7700     nsresult (*GetInternalAndReservedAttribute4IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7701 
7702     nsresult (*GetInternalAndReservedAttribute5IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7703 
7704     nsresult (*GetInternalAndReservedAttribute6IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7705 
7706     nsresult (*GetInternalAndReservedAttribute7IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7707 
7708     nsresult (*GetInternalAndReservedAttribute8IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7709 
7710     nsresult (*InternalAndReservedMethod1IGraphicsAdapter)(IGraphicsAdapter *pThis);
7711 
7712     nsresult (*InternalAndReservedMethod2IGraphicsAdapter)(IGraphicsAdapter *pThis);
7713 
7714     nsresult (*InternalAndReservedMethod3IGraphicsAdapter)(IGraphicsAdapter *pThis);
7715 
7716     nsresult (*InternalAndReservedMethod4IGraphicsAdapter)(IGraphicsAdapter *pThis);
7717 
7718 };
7719 #   else /* VBOX_WITH_GLUE */
7720 struct IGraphicsAdapterVtbl
7721 {
7722     nsresult (*QueryInterface)(IGraphicsAdapter *pThis, const nsID *iid, void **resultp);
7723     nsrefcnt (*AddRef)(IGraphicsAdapter *pThis);
7724     nsrefcnt (*Release)(IGraphicsAdapter *pThis);
7725     nsresult (*GetGraphicsControllerType)(IGraphicsAdapter *pThis, PRUint32 *graphicsControllerType);
7726     nsresult (*SetGraphicsControllerType)(IGraphicsAdapter *pThis, PRUint32 graphicsControllerType);
7727 
7728     nsresult (*GetVRAMSize)(IGraphicsAdapter *pThis, PRUint32 *VRAMSize);
7729     nsresult (*SetVRAMSize)(IGraphicsAdapter *pThis, PRUint32 VRAMSize);
7730 
7731     nsresult (*GetAccelerate3DEnabled)(IGraphicsAdapter *pThis, PRBool *accelerate3DEnabled);
7732     nsresult (*SetAccelerate3DEnabled)(IGraphicsAdapter *pThis, PRBool accelerate3DEnabled);
7733 
7734     nsresult (*GetAccelerate2DVideoEnabled)(IGraphicsAdapter *pThis, PRBool *accelerate2DVideoEnabled);
7735     nsresult (*SetAccelerate2DVideoEnabled)(IGraphicsAdapter *pThis, PRBool accelerate2DVideoEnabled);
7736 
7737     nsresult (*GetMonitorCount)(IGraphicsAdapter *pThis, PRUint32 *monitorCount);
7738     nsresult (*SetMonitorCount)(IGraphicsAdapter *pThis, PRUint32 monitorCount);
7739 
7740     nsresult (*GetInternalAndReservedAttribute1IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7741 
7742     nsresult (*GetInternalAndReservedAttribute2IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7743 
7744     nsresult (*GetInternalAndReservedAttribute3IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7745 
7746     nsresult (*GetInternalAndReservedAttribute4IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7747 
7748     nsresult (*GetInternalAndReservedAttribute5IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7749 
7750     nsresult (*GetInternalAndReservedAttribute6IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7751 
7752     nsresult (*GetInternalAndReservedAttribute7IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7753 
7754     nsresult (*GetInternalAndReservedAttribute8IGraphicsAdapter)(IGraphicsAdapter *pThis, PRUint32 *reserved);
7755 
7756     nsresult (*InternalAndReservedMethod1IGraphicsAdapter)(IGraphicsAdapter *pThis);
7757 
7758     nsresult (*InternalAndReservedMethod2IGraphicsAdapter)(IGraphicsAdapter *pThis);
7759 
7760     nsresult (*InternalAndReservedMethod3IGraphicsAdapter)(IGraphicsAdapter *pThis);
7761 
7762     nsresult (*InternalAndReservedMethod4IGraphicsAdapter)(IGraphicsAdapter *pThis);
7763 
7764 };
7765 #    define IGraphicsAdapter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
7766 #    define IGraphicsAdapter_AddRef(p) ((p)->lpVtbl->AddRef(p))
7767 #    define IGraphicsAdapter_Release(p) ((p)->lpVtbl->Release(p))
7768 #    define IGraphicsAdapter_get_GraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->GetGraphicsControllerType(p, aGraphicsControllerType))
7769 #    define IGraphicsAdapter_GetGraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->GetGraphicsControllerType(p, aGraphicsControllerType))
7770 #    define IGraphicsAdapter_put_GraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->SetGraphicsControllerType(p, aGraphicsControllerType))
7771 #    define IGraphicsAdapter_SetGraphicsControllerType(p, aGraphicsControllerType) ((p)->lpVtbl->SetGraphicsControllerType(p, aGraphicsControllerType))
7772 #    define IGraphicsAdapter_get_VRAMSize(p, aVRAMSize) ((p)->lpVtbl->GetVRAMSize(p, aVRAMSize))
7773 #    define IGraphicsAdapter_GetVRAMSize(p, aVRAMSize) ((p)->lpVtbl->GetVRAMSize(p, aVRAMSize))
7774 #    define IGraphicsAdapter_put_VRAMSize(p, aVRAMSize) ((p)->lpVtbl->SetVRAMSize(p, aVRAMSize))
7775 #    define IGraphicsAdapter_SetVRAMSize(p, aVRAMSize) ((p)->lpVtbl->SetVRAMSize(p, aVRAMSize))
7776 #    define IGraphicsAdapter_get_Accelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->GetAccelerate3DEnabled(p, aAccelerate3DEnabled))
7777 #    define IGraphicsAdapter_GetAccelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->GetAccelerate3DEnabled(p, aAccelerate3DEnabled))
7778 #    define IGraphicsAdapter_put_Accelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->SetAccelerate3DEnabled(p, aAccelerate3DEnabled))
7779 #    define IGraphicsAdapter_SetAccelerate3DEnabled(p, aAccelerate3DEnabled) ((p)->lpVtbl->SetAccelerate3DEnabled(p, aAccelerate3DEnabled))
7780 #    define IGraphicsAdapter_get_Accelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
7781 #    define IGraphicsAdapter_GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->GetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
7782 #    define IGraphicsAdapter_put_Accelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
7783 #    define IGraphicsAdapter_SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled) ((p)->lpVtbl->SetAccelerate2DVideoEnabled(p, aAccelerate2DVideoEnabled))
7784 #    define IGraphicsAdapter_get_MonitorCount(p, aMonitorCount) ((p)->lpVtbl->GetMonitorCount(p, aMonitorCount))
7785 #    define IGraphicsAdapter_GetMonitorCount(p, aMonitorCount) ((p)->lpVtbl->GetMonitorCount(p, aMonitorCount))
7786 #    define IGraphicsAdapter_put_MonitorCount(p, aMonitorCount) ((p)->lpVtbl->SetMonitorCount(p, aMonitorCount))
7787 #    define IGraphicsAdapter_SetMonitorCount(p, aMonitorCount) ((p)->lpVtbl->SetMonitorCount(p, aMonitorCount))
7788 #   endif /* VBOX_WITH_GLUE */
7789 
7790 interface IGraphicsAdapter
7791 {
7792 #   ifndef VBOX_WITH_GLUE
7793     struct IGraphicsAdapter_vtbl *vtbl;
7794 #   else /* VBOX_WITH_GLUE */
7795     CONST_VTBL struct IGraphicsAdapterVtbl *lpVtbl;
7796 #   endif /* VBOX_WITH_GLUE */
7797 };
7798 /* End of struct IGraphicsAdapter declaration */
7799 
7800 
7801 /* Start of struct IBIOSSettings declaration */
7802 #   define IBIOSSETTINGS_IID_STR "73af4152-7e67-4144-bf34-41c38e8b4cc7"
7803 #   define IBIOSSETTINGS_IID { \
7804     0x73af4152, 0x7e67, 0x4144, \
7805     { 0xbf, 0x34, 0x41, 0xc3, 0x8e, 0x8b, 0x4c, 0xc7 } \
7806 }
7807 /* COM compatibility */
7808 VBOX_EXTERN_CONST(nsIID, IID_IBIOSSettings);
7809 #   ifndef VBOX_WITH_GLUE
7810 struct IBIOSSettings_vtbl
7811 {
7812     struct nsISupports_vtbl nsisupports;
7813 
7814     nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
7815     nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
7816 
7817     nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
7818     nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
7819 
7820     nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
7821     nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
7822 
7823     nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
7824     nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
7825 
7826     nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
7827     nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
7828 
7829     nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
7830     nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
7831 
7832     nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
7833     nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
7834 
7835     nsresult (*GetAPICMode)(IBIOSSettings *pThis, PRUint32 *APICMode);
7836     nsresult (*SetAPICMode)(IBIOSSettings *pThis, PRUint32 APICMode);
7837 
7838     nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
7839     nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
7840 
7841     nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
7842     nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
7843 
7844     nsresult (*GetNonVolatileStorageFile)(IBIOSSettings *pThis, PRUnichar * *nonVolatileStorageFile);
7845 
7846     nsresult (*GetSMBIOSUuidLittleEndian)(IBIOSSettings *pThis, PRBool *SMBIOSUuidLittleEndian);
7847     nsresult (*SetSMBIOSUuidLittleEndian)(IBIOSSettings *pThis, PRBool SMBIOSUuidLittleEndian);
7848 
7849     nsresult (*GetInternalAndReservedAttribute1IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7850 
7851     nsresult (*GetInternalAndReservedAttribute2IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7852 
7853     nsresult (*GetInternalAndReservedAttribute3IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7854 
7855     nsresult (*GetInternalAndReservedAttribute4IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7856 
7857     nsresult (*GetInternalAndReservedAttribute5IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7858 
7859     nsresult (*GetInternalAndReservedAttribute6IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7860 
7861     nsresult (*GetInternalAndReservedAttribute7IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7862 
7863     nsresult (*GetInternalAndReservedAttribute8IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7864 
7865     nsresult (*InternalAndReservedMethod1IBIOSSettings)(IBIOSSettings *pThis);
7866 
7867     nsresult (*InternalAndReservedMethod2IBIOSSettings)(IBIOSSettings *pThis);
7868 
7869 };
7870 #   else /* VBOX_WITH_GLUE */
7871 struct IBIOSSettingsVtbl
7872 {
7873     nsresult (*QueryInterface)(IBIOSSettings *pThis, const nsID *iid, void **resultp);
7874     nsrefcnt (*AddRef)(IBIOSSettings *pThis);
7875     nsrefcnt (*Release)(IBIOSSettings *pThis);
7876     nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
7877     nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
7878 
7879     nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
7880     nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
7881 
7882     nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
7883     nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
7884 
7885     nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
7886     nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
7887 
7888     nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
7889     nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
7890 
7891     nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
7892     nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
7893 
7894     nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
7895     nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
7896 
7897     nsresult (*GetAPICMode)(IBIOSSettings *pThis, PRUint32 *APICMode);
7898     nsresult (*SetAPICMode)(IBIOSSettings *pThis, PRUint32 APICMode);
7899 
7900     nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
7901     nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
7902 
7903     nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
7904     nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
7905 
7906     nsresult (*GetNonVolatileStorageFile)(IBIOSSettings *pThis, PRUnichar * *nonVolatileStorageFile);
7907 
7908     nsresult (*GetSMBIOSUuidLittleEndian)(IBIOSSettings *pThis, PRBool *SMBIOSUuidLittleEndian);
7909     nsresult (*SetSMBIOSUuidLittleEndian)(IBIOSSettings *pThis, PRBool SMBIOSUuidLittleEndian);
7910 
7911     nsresult (*GetInternalAndReservedAttribute1IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7912 
7913     nsresult (*GetInternalAndReservedAttribute2IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7914 
7915     nsresult (*GetInternalAndReservedAttribute3IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7916 
7917     nsresult (*GetInternalAndReservedAttribute4IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7918 
7919     nsresult (*GetInternalAndReservedAttribute5IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7920 
7921     nsresult (*GetInternalAndReservedAttribute6IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7922 
7923     nsresult (*GetInternalAndReservedAttribute7IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7924 
7925     nsresult (*GetInternalAndReservedAttribute8IBIOSSettings)(IBIOSSettings *pThis, PRUint32 *reserved);
7926 
7927     nsresult (*InternalAndReservedMethod1IBIOSSettings)(IBIOSSettings *pThis);
7928 
7929     nsresult (*InternalAndReservedMethod2IBIOSSettings)(IBIOSSettings *pThis);
7930 
7931 };
7932 #    define IBIOSSettings_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
7933 #    define IBIOSSettings_AddRef(p) ((p)->lpVtbl->AddRef(p))
7934 #    define IBIOSSettings_Release(p) ((p)->lpVtbl->Release(p))
7935 #    define IBIOSSettings_get_LogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->GetLogoFadeIn(p, aLogoFadeIn))
7936 #    define IBIOSSettings_GetLogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->GetLogoFadeIn(p, aLogoFadeIn))
7937 #    define IBIOSSettings_put_LogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->SetLogoFadeIn(p, aLogoFadeIn))
7938 #    define IBIOSSettings_SetLogoFadeIn(p, aLogoFadeIn) ((p)->lpVtbl->SetLogoFadeIn(p, aLogoFadeIn))
7939 #    define IBIOSSettings_get_LogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->GetLogoFadeOut(p, aLogoFadeOut))
7940 #    define IBIOSSettings_GetLogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->GetLogoFadeOut(p, aLogoFadeOut))
7941 #    define IBIOSSettings_put_LogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->SetLogoFadeOut(p, aLogoFadeOut))
7942 #    define IBIOSSettings_SetLogoFadeOut(p, aLogoFadeOut) ((p)->lpVtbl->SetLogoFadeOut(p, aLogoFadeOut))
7943 #    define IBIOSSettings_get_LogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->GetLogoDisplayTime(p, aLogoDisplayTime))
7944 #    define IBIOSSettings_GetLogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->GetLogoDisplayTime(p, aLogoDisplayTime))
7945 #    define IBIOSSettings_put_LogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->SetLogoDisplayTime(p, aLogoDisplayTime))
7946 #    define IBIOSSettings_SetLogoDisplayTime(p, aLogoDisplayTime) ((p)->lpVtbl->SetLogoDisplayTime(p, aLogoDisplayTime))
7947 #    define IBIOSSettings_get_LogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->GetLogoImagePath(p, aLogoImagePath))
7948 #    define IBIOSSettings_GetLogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->GetLogoImagePath(p, aLogoImagePath))
7949 #    define IBIOSSettings_put_LogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->SetLogoImagePath(p, aLogoImagePath))
7950 #    define IBIOSSettings_SetLogoImagePath(p, aLogoImagePath) ((p)->lpVtbl->SetLogoImagePath(p, aLogoImagePath))
7951 #    define IBIOSSettings_get_BootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->GetBootMenuMode(p, aBootMenuMode))
7952 #    define IBIOSSettings_GetBootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->GetBootMenuMode(p, aBootMenuMode))
7953 #    define IBIOSSettings_put_BootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->SetBootMenuMode(p, aBootMenuMode))
7954 #    define IBIOSSettings_SetBootMenuMode(p, aBootMenuMode) ((p)->lpVtbl->SetBootMenuMode(p, aBootMenuMode))
7955 #    define IBIOSSettings_get_ACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->GetACPIEnabled(p, aACPIEnabled))
7956 #    define IBIOSSettings_GetACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->GetACPIEnabled(p, aACPIEnabled))
7957 #    define IBIOSSettings_put_ACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->SetACPIEnabled(p, aACPIEnabled))
7958 #    define IBIOSSettings_SetACPIEnabled(p, aACPIEnabled) ((p)->lpVtbl->SetACPIEnabled(p, aACPIEnabled))
7959 #    define IBIOSSettings_get_IOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->GetIOAPICEnabled(p, aIOAPICEnabled))
7960 #    define IBIOSSettings_GetIOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->GetIOAPICEnabled(p, aIOAPICEnabled))
7961 #    define IBIOSSettings_put_IOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->SetIOAPICEnabled(p, aIOAPICEnabled))
7962 #    define IBIOSSettings_SetIOAPICEnabled(p, aIOAPICEnabled) ((p)->lpVtbl->SetIOAPICEnabled(p, aIOAPICEnabled))
7963 #    define IBIOSSettings_get_APICMode(p, aAPICMode) ((p)->lpVtbl->GetAPICMode(p, aAPICMode))
7964 #    define IBIOSSettings_GetAPICMode(p, aAPICMode) ((p)->lpVtbl->GetAPICMode(p, aAPICMode))
7965 #    define IBIOSSettings_put_APICMode(p, aAPICMode) ((p)->lpVtbl->SetAPICMode(p, aAPICMode))
7966 #    define IBIOSSettings_SetAPICMode(p, aAPICMode) ((p)->lpVtbl->SetAPICMode(p, aAPICMode))
7967 #    define IBIOSSettings_get_TimeOffset(p, aTimeOffset) ((p)->lpVtbl->GetTimeOffset(p, aTimeOffset))
7968 #    define IBIOSSettings_GetTimeOffset(p, aTimeOffset) ((p)->lpVtbl->GetTimeOffset(p, aTimeOffset))
7969 #    define IBIOSSettings_put_TimeOffset(p, aTimeOffset) ((p)->lpVtbl->SetTimeOffset(p, aTimeOffset))
7970 #    define IBIOSSettings_SetTimeOffset(p, aTimeOffset) ((p)->lpVtbl->SetTimeOffset(p, aTimeOffset))
7971 #    define IBIOSSettings_get_PXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->GetPXEDebugEnabled(p, aPXEDebugEnabled))
7972 #    define IBIOSSettings_GetPXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->GetPXEDebugEnabled(p, aPXEDebugEnabled))
7973 #    define IBIOSSettings_put_PXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->SetPXEDebugEnabled(p, aPXEDebugEnabled))
7974 #    define IBIOSSettings_SetPXEDebugEnabled(p, aPXEDebugEnabled) ((p)->lpVtbl->SetPXEDebugEnabled(p, aPXEDebugEnabled))
7975 #    define IBIOSSettings_get_NonVolatileStorageFile(p, aNonVolatileStorageFile) ((p)->lpVtbl->GetNonVolatileStorageFile(p, aNonVolatileStorageFile))
7976 #    define IBIOSSettings_GetNonVolatileStorageFile(p, aNonVolatileStorageFile) ((p)->lpVtbl->GetNonVolatileStorageFile(p, aNonVolatileStorageFile))
7977 #    define IBIOSSettings_get_SMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian) ((p)->lpVtbl->GetSMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian))
7978 #    define IBIOSSettings_GetSMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian) ((p)->lpVtbl->GetSMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian))
7979 #    define IBIOSSettings_put_SMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian) ((p)->lpVtbl->SetSMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian))
7980 #    define IBIOSSettings_SetSMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian) ((p)->lpVtbl->SetSMBIOSUuidLittleEndian(p, aSMBIOSUuidLittleEndian))
7981 #   endif /* VBOX_WITH_GLUE */
7982 
7983 interface IBIOSSettings
7984 {
7985 #   ifndef VBOX_WITH_GLUE
7986     struct IBIOSSettings_vtbl *vtbl;
7987 #   else /* VBOX_WITH_GLUE */
7988     CONST_VTBL struct IBIOSSettingsVtbl *lpVtbl;
7989 #   endif /* VBOX_WITH_GLUE */
7990 };
7991 /* End of struct IBIOSSettings declaration */
7992 
7993 
7994 /* Start of struct IRecordingScreenSettings declaration */
7995 #   define IRECORDINGSCREENSETTINGS_IID_STR "678fbd9a-93af-42a7-7f13-79ad6ef1a18d"
7996 #   define IRECORDINGSCREENSETTINGS_IID { \
7997     0x678fbd9a, 0x93af, 0x42a7, \
7998     { 0x7f, 0x13, 0x79, 0xad, 0x6e, 0xf1, 0xa1, 0x8d } \
7999 }
8000 /* COM compatibility */
8001 VBOX_EXTERN_CONST(nsIID, IID_IRecordingScreenSettings);
8002 #   ifndef VBOX_WITH_GLUE
8003 struct IRecordingScreenSettings_vtbl
8004 {
8005     struct nsISupports_vtbl nsisupports;
8006 
8007     nsresult (*GetId)(IRecordingScreenSettings *pThis, PRUint32 *id);
8008 
8009     nsresult (*GetEnabled)(IRecordingScreenSettings *pThis, PRBool *enabled);
8010     nsresult (*SetEnabled)(IRecordingScreenSettings *pThis, PRBool enabled);
8011 
8012     nsresult (*GetFeatures)(IRecordingScreenSettings *pThis, PRUint32 *features);
8013     nsresult (*SetFeatures)(IRecordingScreenSettings *pThis, PRUint32 features);
8014 
8015     nsresult (*GetDestination)(IRecordingScreenSettings *pThis, PRUint32 *destination);
8016     nsresult (*SetDestination)(IRecordingScreenSettings *pThis, PRUint32 destination);
8017 
8018     nsresult (*GetFilename)(IRecordingScreenSettings *pThis, PRUnichar * *filename);
8019     nsresult (*SetFilename)(IRecordingScreenSettings *pThis, PRUnichar * filename);
8020 
8021     nsresult (*GetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 *maxTime);
8022     nsresult (*SetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 maxTime);
8023 
8024     nsresult (*GetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 *maxFileSize);
8025     nsresult (*SetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 maxFileSize);
8026 
8027     nsresult (*GetOptions)(IRecordingScreenSettings *pThis, PRUnichar * *options);
8028     nsresult (*SetOptions)(IRecordingScreenSettings *pThis, PRUnichar * options);
8029 
8030     nsresult (*GetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 *audioCodec);
8031     nsresult (*SetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 audioCodec);
8032 
8033     nsresult (*GetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 *audioHz);
8034     nsresult (*SetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 audioHz);
8035 
8036     nsresult (*GetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 *audioBits);
8037     nsresult (*SetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 audioBits);
8038 
8039     nsresult (*GetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 *audioChannels);
8040     nsresult (*SetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 audioChannels);
8041 
8042     nsresult (*GetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 *videoCodec);
8043     nsresult (*SetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 videoCodec);
8044 
8045     nsresult (*GetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 *videoWidth);
8046     nsresult (*SetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 videoWidth);
8047 
8048     nsresult (*GetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 *videoHeight);
8049     nsresult (*SetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 videoHeight);
8050 
8051     nsresult (*GetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 *videoRate);
8052     nsresult (*SetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 videoRate);
8053 
8054     nsresult (*GetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 *videoRateControlMode);
8055     nsresult (*SetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 videoRateControlMode);
8056 
8057     nsresult (*GetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 *videoFPS);
8058     nsresult (*SetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 videoFPS);
8059 
8060     nsresult (*GetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 *videoScalingMethod);
8061     nsresult (*SetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 videoScalingMethod);
8062 
8063     nsresult (*IsFeatureEnabled)(
8064         IRecordingScreenSettings *pThis,
8065         PRUint32 feature,
8066         PRBool * enabled
8067     );
8068 
8069 };
8070 #   else /* VBOX_WITH_GLUE */
8071 struct IRecordingScreenSettingsVtbl
8072 {
8073     nsresult (*QueryInterface)(IRecordingScreenSettings *pThis, const nsID *iid, void **resultp);
8074     nsrefcnt (*AddRef)(IRecordingScreenSettings *pThis);
8075     nsrefcnt (*Release)(IRecordingScreenSettings *pThis);
8076     nsresult (*GetId)(IRecordingScreenSettings *pThis, PRUint32 *id);
8077 
8078     nsresult (*GetEnabled)(IRecordingScreenSettings *pThis, PRBool *enabled);
8079     nsresult (*SetEnabled)(IRecordingScreenSettings *pThis, PRBool enabled);
8080 
8081     nsresult (*GetFeatures)(IRecordingScreenSettings *pThis, PRUint32 *features);
8082     nsresult (*SetFeatures)(IRecordingScreenSettings *pThis, PRUint32 features);
8083 
8084     nsresult (*GetDestination)(IRecordingScreenSettings *pThis, PRUint32 *destination);
8085     nsresult (*SetDestination)(IRecordingScreenSettings *pThis, PRUint32 destination);
8086 
8087     nsresult (*GetFilename)(IRecordingScreenSettings *pThis, PRUnichar * *filename);
8088     nsresult (*SetFilename)(IRecordingScreenSettings *pThis, PRUnichar * filename);
8089 
8090     nsresult (*GetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 *maxTime);
8091     nsresult (*SetMaxTime)(IRecordingScreenSettings *pThis, PRUint32 maxTime);
8092 
8093     nsresult (*GetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 *maxFileSize);
8094     nsresult (*SetMaxFileSize)(IRecordingScreenSettings *pThis, PRUint32 maxFileSize);
8095 
8096     nsresult (*GetOptions)(IRecordingScreenSettings *pThis, PRUnichar * *options);
8097     nsresult (*SetOptions)(IRecordingScreenSettings *pThis, PRUnichar * options);
8098 
8099     nsresult (*GetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 *audioCodec);
8100     nsresult (*SetAudioCodec)(IRecordingScreenSettings *pThis, PRUint32 audioCodec);
8101 
8102     nsresult (*GetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 *audioHz);
8103     nsresult (*SetAudioHz)(IRecordingScreenSettings *pThis, PRUint32 audioHz);
8104 
8105     nsresult (*GetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 *audioBits);
8106     nsresult (*SetAudioBits)(IRecordingScreenSettings *pThis, PRUint32 audioBits);
8107 
8108     nsresult (*GetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 *audioChannels);
8109     nsresult (*SetAudioChannels)(IRecordingScreenSettings *pThis, PRUint32 audioChannels);
8110 
8111     nsresult (*GetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 *videoCodec);
8112     nsresult (*SetVideoCodec)(IRecordingScreenSettings *pThis, PRUint32 videoCodec);
8113 
8114     nsresult (*GetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 *videoWidth);
8115     nsresult (*SetVideoWidth)(IRecordingScreenSettings *pThis, PRUint32 videoWidth);
8116 
8117     nsresult (*GetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 *videoHeight);
8118     nsresult (*SetVideoHeight)(IRecordingScreenSettings *pThis, PRUint32 videoHeight);
8119 
8120     nsresult (*GetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 *videoRate);
8121     nsresult (*SetVideoRate)(IRecordingScreenSettings *pThis, PRUint32 videoRate);
8122 
8123     nsresult (*GetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 *videoRateControlMode);
8124     nsresult (*SetVideoRateControlMode)(IRecordingScreenSettings *pThis, PRUint32 videoRateControlMode);
8125 
8126     nsresult (*GetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 *videoFPS);
8127     nsresult (*SetVideoFPS)(IRecordingScreenSettings *pThis, PRUint32 videoFPS);
8128 
8129     nsresult (*GetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 *videoScalingMethod);
8130     nsresult (*SetVideoScalingMethod)(IRecordingScreenSettings *pThis, PRUint32 videoScalingMethod);
8131 
8132     nsresult (*IsFeatureEnabled)(
8133         IRecordingScreenSettings *pThis,
8134         PRUint32 feature,
8135         PRBool * enabled
8136     );
8137 
8138 };
8139 #    define IRecordingScreenSettings_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8140 #    define IRecordingScreenSettings_AddRef(p) ((p)->lpVtbl->AddRef(p))
8141 #    define IRecordingScreenSettings_Release(p) ((p)->lpVtbl->Release(p))
8142 #    define IRecordingScreenSettings_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
8143 #    define IRecordingScreenSettings_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
8144 #    define IRecordingScreenSettings_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
8145 #    define IRecordingScreenSettings_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
8146 #    define IRecordingScreenSettings_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
8147 #    define IRecordingScreenSettings_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
8148 #    define IRecordingScreenSettings_get_Features(p, aFeatures) ((p)->lpVtbl->GetFeatures(p, aFeatures))
8149 #    define IRecordingScreenSettings_GetFeatures(p, aFeatures) ((p)->lpVtbl->GetFeatures(p, aFeatures))
8150 #    define IRecordingScreenSettings_put_Features(p, aFeatures) ((p)->lpVtbl->SetFeatures(p, aFeatures))
8151 #    define IRecordingScreenSettings_SetFeatures(p, aFeatures) ((p)->lpVtbl->SetFeatures(p, aFeatures))
8152 #    define IRecordingScreenSettings_get_Destination(p, aDestination) ((p)->lpVtbl->GetDestination(p, aDestination))
8153 #    define IRecordingScreenSettings_GetDestination(p, aDestination) ((p)->lpVtbl->GetDestination(p, aDestination))
8154 #    define IRecordingScreenSettings_put_Destination(p, aDestination) ((p)->lpVtbl->SetDestination(p, aDestination))
8155 #    define IRecordingScreenSettings_SetDestination(p, aDestination) ((p)->lpVtbl->SetDestination(p, aDestination))
8156 #    define IRecordingScreenSettings_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
8157 #    define IRecordingScreenSettings_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
8158 #    define IRecordingScreenSettings_put_Filename(p, aFilename) ((p)->lpVtbl->SetFilename(p, aFilename))
8159 #    define IRecordingScreenSettings_SetFilename(p, aFilename) ((p)->lpVtbl->SetFilename(p, aFilename))
8160 #    define IRecordingScreenSettings_get_MaxTime(p, aMaxTime) ((p)->lpVtbl->GetMaxTime(p, aMaxTime))
8161 #    define IRecordingScreenSettings_GetMaxTime(p, aMaxTime) ((p)->lpVtbl->GetMaxTime(p, aMaxTime))
8162 #    define IRecordingScreenSettings_put_MaxTime(p, aMaxTime) ((p)->lpVtbl->SetMaxTime(p, aMaxTime))
8163 #    define IRecordingScreenSettings_SetMaxTime(p, aMaxTime) ((p)->lpVtbl->SetMaxTime(p, aMaxTime))
8164 #    define IRecordingScreenSettings_get_MaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->GetMaxFileSize(p, aMaxFileSize))
8165 #    define IRecordingScreenSettings_GetMaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->GetMaxFileSize(p, aMaxFileSize))
8166 #    define IRecordingScreenSettings_put_MaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->SetMaxFileSize(p, aMaxFileSize))
8167 #    define IRecordingScreenSettings_SetMaxFileSize(p, aMaxFileSize) ((p)->lpVtbl->SetMaxFileSize(p, aMaxFileSize))
8168 #    define IRecordingScreenSettings_get_Options(p, aOptions) ((p)->lpVtbl->GetOptions(p, aOptions))
8169 #    define IRecordingScreenSettings_GetOptions(p, aOptions) ((p)->lpVtbl->GetOptions(p, aOptions))
8170 #    define IRecordingScreenSettings_put_Options(p, aOptions) ((p)->lpVtbl->SetOptions(p, aOptions))
8171 #    define IRecordingScreenSettings_SetOptions(p, aOptions) ((p)->lpVtbl->SetOptions(p, aOptions))
8172 #    define IRecordingScreenSettings_get_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
8173 #    define IRecordingScreenSettings_GetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
8174 #    define IRecordingScreenSettings_put_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
8175 #    define IRecordingScreenSettings_SetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
8176 #    define IRecordingScreenSettings_get_AudioHz(p, aAudioHz) ((p)->lpVtbl->GetAudioHz(p, aAudioHz))
8177 #    define IRecordingScreenSettings_GetAudioHz(p, aAudioHz) ((p)->lpVtbl->GetAudioHz(p, aAudioHz))
8178 #    define IRecordingScreenSettings_put_AudioHz(p, aAudioHz) ((p)->lpVtbl->SetAudioHz(p, aAudioHz))
8179 #    define IRecordingScreenSettings_SetAudioHz(p, aAudioHz) ((p)->lpVtbl->SetAudioHz(p, aAudioHz))
8180 #    define IRecordingScreenSettings_get_AudioBits(p, aAudioBits) ((p)->lpVtbl->GetAudioBits(p, aAudioBits))
8181 #    define IRecordingScreenSettings_GetAudioBits(p, aAudioBits) ((p)->lpVtbl->GetAudioBits(p, aAudioBits))
8182 #    define IRecordingScreenSettings_put_AudioBits(p, aAudioBits) ((p)->lpVtbl->SetAudioBits(p, aAudioBits))
8183 #    define IRecordingScreenSettings_SetAudioBits(p, aAudioBits) ((p)->lpVtbl->SetAudioBits(p, aAudioBits))
8184 #    define IRecordingScreenSettings_get_AudioChannels(p, aAudioChannels) ((p)->lpVtbl->GetAudioChannels(p, aAudioChannels))
8185 #    define IRecordingScreenSettings_GetAudioChannels(p, aAudioChannels) ((p)->lpVtbl->GetAudioChannels(p, aAudioChannels))
8186 #    define IRecordingScreenSettings_put_AudioChannels(p, aAudioChannels) ((p)->lpVtbl->SetAudioChannels(p, aAudioChannels))
8187 #    define IRecordingScreenSettings_SetAudioChannels(p, aAudioChannels) ((p)->lpVtbl->SetAudioChannels(p, aAudioChannels))
8188 #    define IRecordingScreenSettings_get_VideoCodec(p, aVideoCodec) ((p)->lpVtbl->GetVideoCodec(p, aVideoCodec))
8189 #    define IRecordingScreenSettings_GetVideoCodec(p, aVideoCodec) ((p)->lpVtbl->GetVideoCodec(p, aVideoCodec))
8190 #    define IRecordingScreenSettings_put_VideoCodec(p, aVideoCodec) ((p)->lpVtbl->SetVideoCodec(p, aVideoCodec))
8191 #    define IRecordingScreenSettings_SetVideoCodec(p, aVideoCodec) ((p)->lpVtbl->SetVideoCodec(p, aVideoCodec))
8192 #    define IRecordingScreenSettings_get_VideoWidth(p, aVideoWidth) ((p)->lpVtbl->GetVideoWidth(p, aVideoWidth))
8193 #    define IRecordingScreenSettings_GetVideoWidth(p, aVideoWidth) ((p)->lpVtbl->GetVideoWidth(p, aVideoWidth))
8194 #    define IRecordingScreenSettings_put_VideoWidth(p, aVideoWidth) ((p)->lpVtbl->SetVideoWidth(p, aVideoWidth))
8195 #    define IRecordingScreenSettings_SetVideoWidth(p, aVideoWidth) ((p)->lpVtbl->SetVideoWidth(p, aVideoWidth))
8196 #    define IRecordingScreenSettings_get_VideoHeight(p, aVideoHeight) ((p)->lpVtbl->GetVideoHeight(p, aVideoHeight))
8197 #    define IRecordingScreenSettings_GetVideoHeight(p, aVideoHeight) ((p)->lpVtbl->GetVideoHeight(p, aVideoHeight))
8198 #    define IRecordingScreenSettings_put_VideoHeight(p, aVideoHeight) ((p)->lpVtbl->SetVideoHeight(p, aVideoHeight))
8199 #    define IRecordingScreenSettings_SetVideoHeight(p, aVideoHeight) ((p)->lpVtbl->SetVideoHeight(p, aVideoHeight))
8200 #    define IRecordingScreenSettings_get_VideoRate(p, aVideoRate) ((p)->lpVtbl->GetVideoRate(p, aVideoRate))
8201 #    define IRecordingScreenSettings_GetVideoRate(p, aVideoRate) ((p)->lpVtbl->GetVideoRate(p, aVideoRate))
8202 #    define IRecordingScreenSettings_put_VideoRate(p, aVideoRate) ((p)->lpVtbl->SetVideoRate(p, aVideoRate))
8203 #    define IRecordingScreenSettings_SetVideoRate(p, aVideoRate) ((p)->lpVtbl->SetVideoRate(p, aVideoRate))
8204 #    define IRecordingScreenSettings_get_VideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->GetVideoRateControlMode(p, aVideoRateControlMode))
8205 #    define IRecordingScreenSettings_GetVideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->GetVideoRateControlMode(p, aVideoRateControlMode))
8206 #    define IRecordingScreenSettings_put_VideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->SetVideoRateControlMode(p, aVideoRateControlMode))
8207 #    define IRecordingScreenSettings_SetVideoRateControlMode(p, aVideoRateControlMode) ((p)->lpVtbl->SetVideoRateControlMode(p, aVideoRateControlMode))
8208 #    define IRecordingScreenSettings_get_VideoFPS(p, aVideoFPS) ((p)->lpVtbl->GetVideoFPS(p, aVideoFPS))
8209 #    define IRecordingScreenSettings_GetVideoFPS(p, aVideoFPS) ((p)->lpVtbl->GetVideoFPS(p, aVideoFPS))
8210 #    define IRecordingScreenSettings_put_VideoFPS(p, aVideoFPS) ((p)->lpVtbl->SetVideoFPS(p, aVideoFPS))
8211 #    define IRecordingScreenSettings_SetVideoFPS(p, aVideoFPS) ((p)->lpVtbl->SetVideoFPS(p, aVideoFPS))
8212 #    define IRecordingScreenSettings_get_VideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->GetVideoScalingMethod(p, aVideoScalingMethod))
8213 #    define IRecordingScreenSettings_GetVideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->GetVideoScalingMethod(p, aVideoScalingMethod))
8214 #    define IRecordingScreenSettings_put_VideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->SetVideoScalingMethod(p, aVideoScalingMethod))
8215 #    define IRecordingScreenSettings_SetVideoScalingMethod(p, aVideoScalingMethod) ((p)->lpVtbl->SetVideoScalingMethod(p, aVideoScalingMethod))
8216 #    define IRecordingScreenSettings_IsFeatureEnabled(p, aFeature, aEnabled) ((p)->lpVtbl->IsFeatureEnabled(p, aFeature, aEnabled))
8217 #   endif /* VBOX_WITH_GLUE */
8218 
8219 interface IRecordingScreenSettings
8220 {
8221 #   ifndef VBOX_WITH_GLUE
8222     struct IRecordingScreenSettings_vtbl *vtbl;
8223 #   else /* VBOX_WITH_GLUE */
8224     CONST_VTBL struct IRecordingScreenSettingsVtbl *lpVtbl;
8225 #   endif /* VBOX_WITH_GLUE */
8226 };
8227 /* End of struct IRecordingScreenSettings declaration */
8228 
8229 
8230 /* Start of struct IRecordingSettings declaration */
8231 #   define IRECORDINGSETTINGS_IID_STR "D88F2A5A-47C7-4A3F-AAE1-1B516817DB41"
8232 #   define IRECORDINGSETTINGS_IID { \
8233     0xD88F2A5A, 0x47C7, 0x4A3F, \
8234     { 0xAA, 0xE1, 0x1B, 0x51, 0x68, 0x17, 0xDB, 0x41 } \
8235 }
8236 /* COM compatibility */
8237 VBOX_EXTERN_CONST(nsIID, IID_IRecordingSettings);
8238 #   ifndef VBOX_WITH_GLUE
8239 struct IRecordingSettings_vtbl
8240 {
8241     struct nsISupports_vtbl nsisupports;
8242 
8243     nsresult (*GetEnabled)(IRecordingSettings *pThis, PRBool *enabled);
8244     nsresult (*SetEnabled)(IRecordingSettings *pThis, PRBool enabled);
8245 
8246     nsresult (*GetScreens)(IRecordingSettings *pThis, PRUint32 *screensSize, IRecordingScreenSettings * **screens);
8247 
8248     nsresult (*GetScreenSettings)(
8249         IRecordingSettings *pThis,
8250         PRUint32 screenId,
8251         IRecordingScreenSettings * * recordScreenSettings
8252     );
8253 
8254 };
8255 #   else /* VBOX_WITH_GLUE */
8256 struct IRecordingSettingsVtbl
8257 {
8258     nsresult (*QueryInterface)(IRecordingSettings *pThis, const nsID *iid, void **resultp);
8259     nsrefcnt (*AddRef)(IRecordingSettings *pThis);
8260     nsrefcnt (*Release)(IRecordingSettings *pThis);
8261     nsresult (*GetEnabled)(IRecordingSettings *pThis, PRBool *enabled);
8262     nsresult (*SetEnabled)(IRecordingSettings *pThis, PRBool enabled);
8263 
8264     nsresult (*GetScreens)(IRecordingSettings *pThis, PRUint32 *screensSize, IRecordingScreenSettings * **screens);
8265 
8266     nsresult (*GetScreenSettings)(
8267         IRecordingSettings *pThis,
8268         PRUint32 screenId,
8269         IRecordingScreenSettings * * recordScreenSettings
8270     );
8271 
8272 };
8273 #    define IRecordingSettings_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8274 #    define IRecordingSettings_AddRef(p) ((p)->lpVtbl->AddRef(p))
8275 #    define IRecordingSettings_Release(p) ((p)->lpVtbl->Release(p))
8276 #    define IRecordingSettings_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
8277 #    define IRecordingSettings_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
8278 #    define IRecordingSettings_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
8279 #    define IRecordingSettings_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
8280 #    define IRecordingSettings_get_Screens(p, aScreens) ((p)->lpVtbl->GetScreens(p, aScreens))
8281 #    define IRecordingSettings_GetScreens(p, aScreens) ((p)->lpVtbl->GetScreens(p, aScreens))
8282 #    define IRecordingSettings_GetScreenSettings(p, aScreenId, aRecordScreenSettings) ((p)->lpVtbl->GetScreenSettings(p, aScreenId, aRecordScreenSettings))
8283 #   endif /* VBOX_WITH_GLUE */
8284 
8285 interface IRecordingSettings
8286 {
8287 #   ifndef VBOX_WITH_GLUE
8288     struct IRecordingSettings_vtbl *vtbl;
8289 #   else /* VBOX_WITH_GLUE */
8290     CONST_VTBL struct IRecordingSettingsVtbl *lpVtbl;
8291 #   endif /* VBOX_WITH_GLUE */
8292 };
8293 /* End of struct IRecordingSettings declaration */
8294 
8295 
8296 /* Start of struct IPCIAddress declaration */
8297 #   define IPCIADDRESS_IID_STR "c984d15f-e191-400b-840e-970f3dad7296"
8298 #   define IPCIADDRESS_IID { \
8299     0xc984d15f, 0xe191, 0x400b, \
8300     { 0x84, 0x0e, 0x97, 0x0f, 0x3d, 0xad, 0x72, 0x96 } \
8301 }
8302 /* COM compatibility */
8303 VBOX_EXTERN_CONST(nsIID, IID_IPCIAddress);
8304 #   ifndef VBOX_WITH_GLUE
8305 struct IPCIAddress_vtbl
8306 {
8307     struct nsISupports_vtbl nsisupports;
8308 
8309     nsresult (*GetBus)(IPCIAddress *pThis, PRInt16 *bus);
8310     nsresult (*SetBus)(IPCIAddress *pThis, PRInt16 bus);
8311 
8312     nsresult (*GetDevice)(IPCIAddress *pThis, PRInt16 *device);
8313     nsresult (*SetDevice)(IPCIAddress *pThis, PRInt16 device);
8314 
8315     nsresult (*GetDevFunction)(IPCIAddress *pThis, PRInt16 *devFunction);
8316     nsresult (*SetDevFunction)(IPCIAddress *pThis, PRInt16 devFunction);
8317 
8318     nsresult (*AsLong)(
8319         IPCIAddress *pThis,
8320         PRInt32 * result
8321     );
8322 
8323     nsresult (*FromLong)(
8324         IPCIAddress *pThis,
8325         PRInt32 number
8326     );
8327 
8328 };
8329 #   else /* VBOX_WITH_GLUE */
8330 struct IPCIAddressVtbl
8331 {
8332     nsresult (*QueryInterface)(IPCIAddress *pThis, const nsID *iid, void **resultp);
8333     nsrefcnt (*AddRef)(IPCIAddress *pThis);
8334     nsrefcnt (*Release)(IPCIAddress *pThis);
8335     nsresult (*GetBus)(IPCIAddress *pThis, PRInt16 *bus);
8336     nsresult (*SetBus)(IPCIAddress *pThis, PRInt16 bus);
8337 
8338     nsresult (*GetDevice)(IPCIAddress *pThis, PRInt16 *device);
8339     nsresult (*SetDevice)(IPCIAddress *pThis, PRInt16 device);
8340 
8341     nsresult (*GetDevFunction)(IPCIAddress *pThis, PRInt16 *devFunction);
8342     nsresult (*SetDevFunction)(IPCIAddress *pThis, PRInt16 devFunction);
8343 
8344     nsresult (*AsLong)(
8345         IPCIAddress *pThis,
8346         PRInt32 * result
8347     );
8348 
8349     nsresult (*FromLong)(
8350         IPCIAddress *pThis,
8351         PRInt32 number
8352     );
8353 
8354 };
8355 #    define IPCIAddress_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8356 #    define IPCIAddress_AddRef(p) ((p)->lpVtbl->AddRef(p))
8357 #    define IPCIAddress_Release(p) ((p)->lpVtbl->Release(p))
8358 #    define IPCIAddress_get_Bus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
8359 #    define IPCIAddress_GetBus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
8360 #    define IPCIAddress_put_Bus(p, aBus) ((p)->lpVtbl->SetBus(p, aBus))
8361 #    define IPCIAddress_SetBus(p, aBus) ((p)->lpVtbl->SetBus(p, aBus))
8362 #    define IPCIAddress_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
8363 #    define IPCIAddress_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
8364 #    define IPCIAddress_put_Device(p, aDevice) ((p)->lpVtbl->SetDevice(p, aDevice))
8365 #    define IPCIAddress_SetDevice(p, aDevice) ((p)->lpVtbl->SetDevice(p, aDevice))
8366 #    define IPCIAddress_get_DevFunction(p, aDevFunction) ((p)->lpVtbl->GetDevFunction(p, aDevFunction))
8367 #    define IPCIAddress_GetDevFunction(p, aDevFunction) ((p)->lpVtbl->GetDevFunction(p, aDevFunction))
8368 #    define IPCIAddress_put_DevFunction(p, aDevFunction) ((p)->lpVtbl->SetDevFunction(p, aDevFunction))
8369 #    define IPCIAddress_SetDevFunction(p, aDevFunction) ((p)->lpVtbl->SetDevFunction(p, aDevFunction))
8370 #    define IPCIAddress_AsLong(p, aResult) ((p)->lpVtbl->AsLong(p, aResult))
8371 #    define IPCIAddress_FromLong(p, aNumber) ((p)->lpVtbl->FromLong(p, aNumber))
8372 #   endif /* VBOX_WITH_GLUE */
8373 
8374 interface IPCIAddress
8375 {
8376 #   ifndef VBOX_WITH_GLUE
8377     struct IPCIAddress_vtbl *vtbl;
8378 #   else /* VBOX_WITH_GLUE */
8379     CONST_VTBL struct IPCIAddressVtbl *lpVtbl;
8380 #   endif /* VBOX_WITH_GLUE */
8381 };
8382 /* End of struct IPCIAddress declaration */
8383 
8384 
8385 /* Start of struct IPCIDeviceAttachment declaration */
8386 #   define IPCIDEVICEATTACHMENT_IID_STR "91f33d6f-e621-4f70-a77e-15f0e3c714d5"
8387 #   define IPCIDEVICEATTACHMENT_IID { \
8388     0x91f33d6f, 0xe621, 0x4f70, \
8389     { 0xa7, 0x7e, 0x15, 0xf0, 0xe3, 0xc7, 0x14, 0xd5 } \
8390 }
8391 /* COM compatibility */
8392 VBOX_EXTERN_CONST(nsIID, IID_IPCIDeviceAttachment);
8393 #   ifndef VBOX_WITH_GLUE
8394 struct IPCIDeviceAttachment_vtbl
8395 {
8396     struct nsISupports_vtbl nsisupports;
8397 
8398     nsresult (*GetName)(IPCIDeviceAttachment *pThis, PRUnichar * *name);
8399 
8400     nsresult (*GetIsPhysicalDevice)(IPCIDeviceAttachment *pThis, PRBool *isPhysicalDevice);
8401 
8402     nsresult (*GetHostAddress)(IPCIDeviceAttachment *pThis, PRInt32 *hostAddress);
8403 
8404     nsresult (*GetGuestAddress)(IPCIDeviceAttachment *pThis, PRInt32 *guestAddress);
8405 
8406 };
8407 #   else /* VBOX_WITH_GLUE */
8408 struct IPCIDeviceAttachmentVtbl
8409 {
8410     nsresult (*QueryInterface)(IPCIDeviceAttachment *pThis, const nsID *iid, void **resultp);
8411     nsrefcnt (*AddRef)(IPCIDeviceAttachment *pThis);
8412     nsrefcnt (*Release)(IPCIDeviceAttachment *pThis);
8413     nsresult (*GetName)(IPCIDeviceAttachment *pThis, PRUnichar * *name);
8414 
8415     nsresult (*GetIsPhysicalDevice)(IPCIDeviceAttachment *pThis, PRBool *isPhysicalDevice);
8416 
8417     nsresult (*GetHostAddress)(IPCIDeviceAttachment *pThis, PRInt32 *hostAddress);
8418 
8419     nsresult (*GetGuestAddress)(IPCIDeviceAttachment *pThis, PRInt32 *guestAddress);
8420 
8421 };
8422 #    define IPCIDeviceAttachment_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
8423 #    define IPCIDeviceAttachment_AddRef(p) ((p)->lpVtbl->AddRef(p))
8424 #    define IPCIDeviceAttachment_Release(p) ((p)->lpVtbl->Release(p))
8425 #    define IPCIDeviceAttachment_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
8426 #    define IPCIDeviceAttachment_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
8427 #    define IPCIDeviceAttachment_get_IsPhysicalDevice(p, aIsPhysicalDevice) ((p)->lpVtbl->GetIsPhysicalDevice(p, aIsPhysicalDevice))
8428 #    define IPCIDeviceAttachment_GetIsPhysicalDevice(p, aIsPhysicalDevice) ((p)->lpVtbl->GetIsPhysicalDevice(p, aIsPhysicalDevice))
8429 #    define IPCIDeviceAttachment_get_HostAddress(p, aHostAddress) ((p)->lpVtbl->GetHostAddress(p, aHostAddress))
8430 #    define IPCIDeviceAttachment_GetHostAddress(p, aHostAddress) ((p)->lpVtbl->GetHostAddress(p, aHostAddress))
8431 #    define IPCIDeviceAttachment_get_GuestAddress(p, aGuestAddress) ((p)->lpVtbl->GetGuestAddress(p, aGuestAddress))
8432 #    define IPCIDeviceAttachment_GetGuestAddress(p, aGuestAddress) ((p)->lpVtbl->GetGuestAddress(p, aGuestAddress))
8433 #   endif /* VBOX_WITH_GLUE */
8434 
8435 interface IPCIDeviceAttachment
8436 {
8437 #   ifndef VBOX_WITH_GLUE
8438     struct IPCIDeviceAttachment_vtbl *vtbl;
8439 #   else /* VBOX_WITH_GLUE */
8440     CONST_VTBL struct IPCIDeviceAttachmentVtbl *lpVtbl;
8441 #   endif /* VBOX_WITH_GLUE */
8442 };
8443 /* End of struct IPCIDeviceAttachment declaration */
8444 
8445 
8446 /* Start of struct IMachine declaration */
8447 #   define IMACHINE_IID_STR "85632c68-b5bb-4316-a900-5eb28d3413df"
8448 #   define IMACHINE_IID { \
8449     0x85632c68, 0xb5bb, 0x4316, \
8450     { 0xa9, 0x00, 0x5e, 0xb2, 0x8d, 0x34, 0x13, 0xdf } \
8451 }
8452 /* COM compatibility */
8453 VBOX_EXTERN_CONST(nsIID, IID_IMachine);
8454 #   ifndef VBOX_WITH_GLUE
8455 struct IMachine_vtbl
8456 {
8457     struct nsISupports_vtbl nsisupports;
8458 
8459     nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
8460 
8461     nsresult (*GetIcon)(IMachine *pThis, PRUint32 *iconSize, PRUint8 **icon);
8462     nsresult (*SetIcon)(IMachine *pThis, PRUint32 iconSize, PRUint8 *icon);
8463 
8464     nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
8465 
8466     nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
8467 
8468     nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
8469     nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
8470 
8471     nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
8472     nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
8473 
8474     nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
8475 
8476     nsresult (*GetGroups)(IMachine *pThis, PRUint32 *groupsSize, PRUnichar * **groups);
8477     nsresult (*SetGroups)(IMachine *pThis, PRUint32 groupsSize, PRUnichar * *groups);
8478 
8479     nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
8480     nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
8481 
8482     nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *hardwareVersion);
8483     nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * hardwareVersion);
8484 
8485     nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
8486     nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
8487 
8488     nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
8489     nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
8490 
8491     nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
8492     nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
8493 
8494     nsresult (*GetCPUExecutionCap)(IMachine *pThis, PRUint32 *CPUExecutionCap);
8495     nsresult (*SetCPUExecutionCap)(IMachine *pThis, PRUint32 CPUExecutionCap);
8496 
8497     nsresult (*GetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 *CPUIDPortabilityLevel);
8498     nsresult (*SetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 CPUIDPortabilityLevel);
8499 
8500     nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
8501     nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
8502 
8503     nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
8504     nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
8505 
8506     nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *pageFusionEnabled);
8507     nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool pageFusionEnabled);
8508 
8509     nsresult (*GetGraphicsAdapter)(IMachine *pThis, IGraphicsAdapter * *graphicsAdapter);
8510 
8511     nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
8512 
8513     nsresult (*GetRecordingSettings)(IMachine *pThis, IRecordingSettings * *recordingSettings);
8514 
8515     nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
8516     nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
8517 
8518     nsresult (*GetPointingHIDType)(IMachine *pThis, PRUint32 *pointingHIDType);
8519     nsresult (*SetPointingHIDType)(IMachine *pThis, PRUint32 pointingHIDType);
8520 
8521     nsresult (*GetKeyboardHIDType)(IMachine *pThis, PRUint32 *keyboardHIDType);
8522     nsresult (*SetKeyboardHIDType)(IMachine *pThis, PRUint32 keyboardHIDType);
8523 
8524     nsresult (*GetHPETEnabled)(IMachine *pThis, PRBool *HPETEnabled);
8525     nsresult (*SetHPETEnabled)(IMachine *pThis, PRBool HPETEnabled);
8526 
8527     nsresult (*GetChipsetType)(IMachine *pThis, PRUint32 *chipsetType);
8528     nsresult (*SetChipsetType)(IMachine *pThis, PRUint32 chipsetType);
8529 
8530     nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
8531     nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
8532 
8533     nsresult (*GetVRDEServer)(IMachine *pThis, IVRDEServer * *VRDEServer);
8534 
8535     nsresult (*GetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool *emulatedUSBCardReaderEnabled);
8536     nsresult (*SetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool emulatedUSBCardReaderEnabled);
8537 
8538     nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
8539 
8540     nsresult (*GetUSBControllers)(IMachine *pThis, PRUint32 *USBControllersSize, IUSBController * **USBControllers);
8541 
8542     nsresult (*GetUSBDeviceFilters)(IMachine *pThis, IUSBDeviceFilters * *USBDeviceFilters);
8543 
8544     nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
8545 
8546     nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
8547 
8548     nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
8549 
8550     nsresult (*GetSettingsAuxFilePath)(IMachine *pThis, PRUnichar * *settingsAuxFilePath);
8551 
8552     nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
8553 
8554     nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
8555 
8556     nsresult (*GetSessionName)(IMachine *pThis, PRUnichar * *sessionName);
8557 
8558     nsresult (*GetSessionPID)(IMachine *pThis, PRUint32 *sessionPID);
8559 
8560     nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
8561 
8562     nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
8563 
8564     nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
8565 
8566     nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
8567 
8568     nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
8569 
8570     nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
8571 
8572     nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
8573 
8574     nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
8575 
8576     nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
8577     nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
8578 
8579     nsresult (*GetClipboardFileTransfersEnabled)(IMachine *pThis, PRBool *clipboardFileTransfersEnabled);
8580     nsresult (*SetClipboardFileTransfersEnabled)(IMachine *pThis, PRBool clipboardFileTransfersEnabled);
8581 
8582     nsresult (*GetDnDMode)(IMachine *pThis, PRUint32 *dnDMode);
8583     nsresult (*SetDnDMode)(IMachine *pThis, PRUint32 dnDMode);
8584 
8585     nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
8586     nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
8587 
8588     nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
8589     nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
8590 
8591     nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
8592     nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
8593 
8594     nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
8595     nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
8596 
8597     nsresult (*GetParavirtProvider)(IMachine *pThis, PRUint32 *paravirtProvider);
8598     nsresult (*SetParavirtProvider)(IMachine *pThis, PRUint32 paravirtProvider);
8599 
8600     nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
8601     nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
8602 
8603     nsresult (*GetIOCacheEnabled)(IMachine *pThis, PRBool *IOCacheEnabled);
8604     nsresult (*SetIOCacheEnabled)(IMachine *pThis, PRBool IOCacheEnabled);
8605 
8606     nsresult (*GetIOCacheSize)(IMachine *pThis, PRUint32 *IOCacheSize);
8607     nsresult (*SetIOCacheSize)(IMachine *pThis, PRUint32 IOCacheSize);
8608 
8609     nsresult (*GetPCIDeviceAssignments)(IMachine *pThis, PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment * **PCIDeviceAssignments);
8610 
8611     nsresult (*GetBandwidthControl)(IMachine *pThis, IBandwidthControl * *bandwidthControl);
8612 
8613     nsresult (*GetTracingEnabled)(IMachine *pThis, PRBool *tracingEnabled);
8614     nsresult (*SetTracingEnabled)(IMachine *pThis, PRBool tracingEnabled);
8615 
8616     nsresult (*GetTracingConfig)(IMachine *pThis, PRUnichar * *tracingConfig);
8617     nsresult (*SetTracingConfig)(IMachine *pThis, PRUnichar * tracingConfig);
8618 
8619     nsresult (*GetAllowTracingToAccessVM)(IMachine *pThis, PRBool *allowTracingToAccessVM);
8620     nsresult (*SetAllowTracingToAccessVM)(IMachine *pThis, PRBool allowTracingToAccessVM);
8621 
8622     nsresult (*GetAutostartEnabled)(IMachine *pThis, PRBool *autostartEnabled);
8623     nsresult (*SetAutostartEnabled)(IMachine *pThis, PRBool autostartEnabled);
8624 
8625     nsresult (*GetAutostartDelay)(IMachine *pThis, PRUint32 *autostartDelay);
8626     nsresult (*SetAutostartDelay)(IMachine *pThis, PRUint32 autostartDelay);
8627 
8628     nsresult (*GetAutostopType)(IMachine *pThis, PRUint32 *autostopType);
8629     nsresult (*SetAutostopType)(IMachine *pThis, PRUint32 autostopType);
8630 
8631     nsresult (*GetDefaultFrontend)(IMachine *pThis, PRUnichar * *defaultFrontend);
8632     nsresult (*SetDefaultFrontend)(IMachine *pThis, PRUnichar * defaultFrontend);
8633 
8634     nsresult (*GetUSBProxyAvailable)(IMachine *pThis, PRBool *USBProxyAvailable);
8635 
8636     nsresult (*GetVMProcessPriority)(IMachine *pThis, PRUint32 *VMProcessPriority);
8637     nsresult (*SetVMProcessPriority)(IMachine *pThis, PRUint32 VMProcessPriority);
8638 
8639     nsresult (*GetParavirtDebug)(IMachine *pThis, PRUnichar * *paravirtDebug);
8640     nsresult (*SetParavirtDebug)(IMachine *pThis, PRUnichar * paravirtDebug);
8641 
8642     nsresult (*GetCPUProfile)(IMachine *pThis, PRUnichar * *CPUProfile);
8643     nsresult (*SetCPUProfile)(IMachine *pThis, PRUnichar * CPUProfile);
8644 
8645     nsresult (*GetInternalAndReservedAttribute1IMachine)(IMachine *pThis, PRUint32 *reserved);
8646 
8647     nsresult (*GetInternalAndReservedAttribute2IMachine)(IMachine *pThis, PRUint32 *reserved);
8648 
8649     nsresult (*GetInternalAndReservedAttribute3IMachine)(IMachine *pThis, PRUint32 *reserved);
8650 
8651     nsresult (*GetInternalAndReservedAttribute4IMachine)(IMachine *pThis, PRUint32 *reserved);
8652 
8653     nsresult (*GetInternalAndReservedAttribute5IMachine)(IMachine *pThis, PRUint32 *reserved);
8654 
8655     nsresult (*GetInternalAndReservedAttribute6IMachine)(IMachine *pThis, PRUint32 *reserved);
8656 
8657     nsresult (*GetInternalAndReservedAttribute7IMachine)(IMachine *pThis, PRUint32 *reserved);
8658 
8659     nsresult (*GetInternalAndReservedAttribute8IMachine)(IMachine *pThis, PRUint32 *reserved);
8660 
8661     nsresult (*GetInternalAndReservedAttribute9IMachine)(IMachine *pThis, PRUint32 *reserved);
8662 
8663     nsresult (*GetInternalAndReservedAttribute10IMachine)(IMachine *pThis, PRUint32 *reserved);
8664 
8665     nsresult (*GetInternalAndReservedAttribute11IMachine)(IMachine *pThis, PRUint32 *reserved);
8666 
8667     nsresult (*GetInternalAndReservedAttribute12IMachine)(IMachine *pThis, PRUint32 *reserved);
8668 
8669     nsresult (*GetInternalAndReservedAttribute13IMachine)(IMachine *pThis, PRUint32 *reserved);
8670 
8671     nsresult (*GetInternalAndReservedAttribute14IMachine)(IMachine *pThis, PRUint32 *reserved);
8672 
8673     nsresult (*GetInternalAndReservedAttribute15IMachine)(IMachine *pThis, PRUint32 *reserved);
8674 
8675     nsresult (*GetInternalAndReservedAttribute16IMachine)(IMachine *pThis, PRUint32 *reserved);
8676 
8677     nsresult (*LockMachine)(
8678         IMachine *pThis,
8679         ISession * session,
8680         PRUint32 lockType
8681     );
8682 
8683     nsresult (*LaunchVMProcess)(
8684         IMachine *pThis,
8685         ISession * session,
8686         PRUnichar * name,
8687         PRUint32 environmentChangesSize,
8688         PRUnichar ** environmentChanges,
8689         IProgress * * progress
8690     );
8691 
8692     nsresult (*SetBootOrder)(
8693         IMachine *pThis,
8694         PRUint32 position,
8695         PRUint32 device
8696     );
8697 
8698     nsresult (*GetBootOrder)(
8699         IMachine *pThis,
8700         PRUint32 position,
8701         PRUint32 * device
8702     );
8703 
8704     nsresult (*AttachDevice)(
8705         IMachine *pThis,
8706         PRUnichar * name,
8707         PRInt32 controllerPort,
8708         PRInt32 device,
8709         PRUint32 type,
8710         IMedium * medium
8711     );
8712 
8713     nsresult (*AttachDeviceWithoutMedium)(
8714         IMachine *pThis,
8715         PRUnichar * name,
8716         PRInt32 controllerPort,
8717         PRInt32 device,
8718         PRUint32 type
8719     );
8720 
8721     nsresult (*DetachDevice)(
8722         IMachine *pThis,
8723         PRUnichar * name,
8724         PRInt32 controllerPort,
8725         PRInt32 device
8726     );
8727 
8728     nsresult (*PassthroughDevice)(
8729         IMachine *pThis,
8730         PRUnichar * name,
8731         PRInt32 controllerPort,
8732         PRInt32 device,
8733         PRBool passthrough
8734     );
8735 
8736     nsresult (*TemporaryEjectDevice)(
8737         IMachine *pThis,
8738         PRUnichar * name,
8739         PRInt32 controllerPort,
8740         PRInt32 device,
8741         PRBool temporaryEject
8742     );
8743 
8744     nsresult (*NonRotationalDevice)(
8745         IMachine *pThis,
8746         PRUnichar * name,
8747         PRInt32 controllerPort,
8748         PRInt32 device,
8749         PRBool nonRotational
8750     );
8751 
8752     nsresult (*SetAutoDiscardForDevice)(
8753         IMachine *pThis,
8754         PRUnichar * name,
8755         PRInt32 controllerPort,
8756         PRInt32 device,
8757         PRBool discard
8758     );
8759 
8760     nsresult (*SetHotPluggableForDevice)(
8761         IMachine *pThis,
8762         PRUnichar * name,
8763         PRInt32 controllerPort,
8764         PRInt32 device,
8765         PRBool hotPluggable
8766     );
8767 
8768     nsresult (*SetBandwidthGroupForDevice)(
8769         IMachine *pThis,
8770         PRUnichar * name,
8771         PRInt32 controllerPort,
8772         PRInt32 device,
8773         IBandwidthGroup * bandwidthGroup
8774     );
8775 
8776     nsresult (*SetNoBandwidthGroupForDevice)(
8777         IMachine *pThis,
8778         PRUnichar * name,
8779         PRInt32 controllerPort,
8780         PRInt32 device
8781     );
8782 
8783     nsresult (*UnmountMedium)(
8784         IMachine *pThis,
8785         PRUnichar * name,
8786         PRInt32 controllerPort,
8787         PRInt32 device,
8788         PRBool force
8789     );
8790 
8791     nsresult (*MountMedium)(
8792         IMachine *pThis,
8793         PRUnichar * name,
8794         PRInt32 controllerPort,
8795         PRInt32 device,
8796         IMedium * medium,
8797         PRBool force
8798     );
8799 
8800     nsresult (*GetMedium)(
8801         IMachine *pThis,
8802         PRUnichar * name,
8803         PRInt32 controllerPort,
8804         PRInt32 device,
8805         IMedium * * medium
8806     );
8807 
8808     nsresult (*GetMediumAttachmentsOfController)(
8809         IMachine *pThis,
8810         PRUnichar * name,
8811         PRUint32 *mediumAttachmentsSize,
8812         IMediumAttachment *** mediumAttachments
8813     );
8814 
8815     nsresult (*GetMediumAttachment)(
8816         IMachine *pThis,
8817         PRUnichar * name,
8818         PRInt32 controllerPort,
8819         PRInt32 device,
8820         IMediumAttachment * * attachment
8821     );
8822 
8823     nsresult (*AttachHostPCIDevice)(
8824         IMachine *pThis,
8825         PRInt32 hostAddress,
8826         PRInt32 desiredGuestAddress,
8827         PRBool tryToUnbind
8828     );
8829 
8830     nsresult (*DetachHostPCIDevice)(
8831         IMachine *pThis,
8832         PRInt32 hostAddress
8833     );
8834 
8835     nsresult (*GetNetworkAdapter)(
8836         IMachine *pThis,
8837         PRUint32 slot,
8838         INetworkAdapter * * adapter
8839     );
8840 
8841     nsresult (*AddStorageController)(
8842         IMachine *pThis,
8843         PRUnichar * name,
8844         PRUint32 connectionType,
8845         IStorageController * * controller
8846     );
8847 
8848     nsresult (*GetStorageControllerByName)(
8849         IMachine *pThis,
8850         PRUnichar * name,
8851         IStorageController * * storageController
8852     );
8853 
8854     nsresult (*GetStorageControllerByInstance)(
8855         IMachine *pThis,
8856         PRUint32 connectionType,
8857         PRUint32 instance,
8858         IStorageController * * storageController
8859     );
8860 
8861     nsresult (*RemoveStorageController)(
8862         IMachine *pThis,
8863         PRUnichar * name
8864     );
8865 
8866     nsresult (*SetStorageControllerBootable)(
8867         IMachine *pThis,
8868         PRUnichar * name,
8869         PRBool bootable
8870     );
8871 
8872     nsresult (*AddUSBController)(
8873         IMachine *pThis,
8874         PRUnichar * name,
8875         PRUint32 type,
8876         IUSBController * * controller
8877     );
8878 
8879     nsresult (*RemoveUSBController)(
8880         IMachine *pThis,
8881         PRUnichar * name
8882     );
8883 
8884     nsresult (*GetUSBControllerByName)(
8885         IMachine *pThis,
8886         PRUnichar * name,
8887         IUSBController * * controller
8888     );
8889 
8890     nsresult (*GetUSBControllerCountByType)(
8891         IMachine *pThis,
8892         PRUint32 type,
8893         PRUint32 * controllers
8894     );
8895 
8896     nsresult (*GetSerialPort)(
8897         IMachine *pThis,
8898         PRUint32 slot,
8899         ISerialPort * * port
8900     );
8901 
8902     nsresult (*GetParallelPort)(
8903         IMachine *pThis,
8904         PRUint32 slot,
8905         IParallelPort * * port
8906     );
8907 
8908     nsresult (*GetExtraDataKeys)(
8909         IMachine *pThis,
8910         PRUint32 *keysSize,
8911         PRUnichar *** keys
8912     );
8913 
8914     nsresult (*GetExtraData)(
8915         IMachine *pThis,
8916         PRUnichar * key,
8917         PRUnichar * * value
8918     );
8919 
8920     nsresult (*SetExtraData)(
8921         IMachine *pThis,
8922         PRUnichar * key,
8923         PRUnichar * value
8924     );
8925 
8926     nsresult (*GetCPUProperty)(
8927         IMachine *pThis,
8928         PRUint32 property,
8929         PRBool * value
8930     );
8931 
8932     nsresult (*SetCPUProperty)(
8933         IMachine *pThis,
8934         PRUint32 property,
8935         PRBool value
8936     );
8937 
8938     nsresult (*GetCPUIDLeafByOrdinal)(
8939         IMachine *pThis,
8940         PRUint32 ordinal,
8941         PRUint32 * idx,
8942         PRUint32 * idxSub,
8943         PRUint32 * valEax,
8944         PRUint32 * valEbx,
8945         PRUint32 * valEcx,
8946         PRUint32 * valEdx
8947     );
8948 
8949     nsresult (*GetCPUIDLeaf)(
8950         IMachine *pThis,
8951         PRUint32 idx,
8952         PRUint32 idxSub,
8953         PRUint32 * valEax,
8954         PRUint32 * valEbx,
8955         PRUint32 * valEcx,
8956         PRUint32 * valEdx
8957     );
8958 
8959     nsresult (*SetCPUIDLeaf)(
8960         IMachine *pThis,
8961         PRUint32 idx,
8962         PRUint32 idxSub,
8963         PRUint32 valEax,
8964         PRUint32 valEbx,
8965         PRUint32 valEcx,
8966         PRUint32 valEdx
8967     );
8968 
8969     nsresult (*RemoveCPUIDLeaf)(
8970         IMachine *pThis,
8971         PRUint32 idx,
8972         PRUint32 idxSub
8973     );
8974 
8975     nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
8976 
8977     nsresult (*GetHWVirtExProperty)(
8978         IMachine *pThis,
8979         PRUint32 property,
8980         PRBool * value
8981     );
8982 
8983     nsresult (*SetHWVirtExProperty)(
8984         IMachine *pThis,
8985         PRUint32 property,
8986         PRBool value
8987     );
8988 
8989     nsresult (*SetSettingsFilePath)(
8990         IMachine *pThis,
8991         PRUnichar * settingsFilePath,
8992         IProgress * * progress
8993     );
8994 
8995     nsresult (*SaveSettings)(IMachine *pThis );
8996 
8997     nsresult (*DiscardSettings)(IMachine *pThis );
8998 
8999     nsresult (*Unregister)(
9000         IMachine *pThis,
9001         PRUint32 cleanupMode,
9002         PRUint32 *mediaSize,
9003         IMedium *** media
9004     );
9005 
9006     nsresult (*DeleteConfig)(
9007         IMachine *pThis,
9008         PRUint32 mediaSize,
9009         IMedium ** media,
9010         IProgress * * progress
9011     );
9012 
9013     nsresult (*ExportTo)(
9014         IMachine *pThis,
9015         IAppliance * appliance,
9016         PRUnichar * location,
9017         IVirtualSystemDescription * * description
9018     );
9019 
9020     nsresult (*FindSnapshot)(
9021         IMachine *pThis,
9022         PRUnichar * nameOrId,
9023         ISnapshot * * snapshot
9024     );
9025 
9026     nsresult (*CreateSharedFolder)(
9027         IMachine *pThis,
9028         PRUnichar * name,
9029         PRUnichar * hostPath,
9030         PRBool writable,
9031         PRBool automount,
9032         PRUnichar * autoMountPoint
9033     );
9034 
9035     nsresult (*RemoveSharedFolder)(
9036         IMachine *pThis,
9037         PRUnichar * name
9038     );
9039 
9040     nsresult (*CanShowConsoleWindow)(
9041         IMachine *pThis,
9042         PRBool * canShow
9043     );
9044 
9045     nsresult (*ShowConsoleWindow)(
9046         IMachine *pThis,
9047         PRInt64 * winId
9048     );
9049 
9050     nsresult (*GetGuestProperty)(
9051         IMachine *pThis,
9052         PRUnichar * name,
9053         PRUnichar * * value,
9054         PRInt64 * timestamp,
9055         PRUnichar * * flags
9056     );
9057 
9058     nsresult (*GetGuestPropertyValue)(
9059         IMachine *pThis,
9060         PRUnichar * property,
9061         PRUnichar * * value
9062     );
9063 
9064     nsresult (*GetGuestPropertyTimestamp)(
9065         IMachine *pThis,
9066         PRUnichar * property,
9067         PRInt64 * value
9068     );
9069 
9070     nsresult (*SetGuestProperty)(
9071         IMachine *pThis,
9072         PRUnichar * property,
9073         PRUnichar * value,
9074         PRUnichar * flags
9075     );
9076 
9077     nsresult (*SetGuestPropertyValue)(
9078         IMachine *pThis,
9079         PRUnichar * property,
9080         PRUnichar * value
9081     );
9082 
9083     nsresult (*DeleteGuestProperty)(
9084         IMachine *pThis,
9085         PRUnichar * name
9086     );
9087 
9088     nsresult (*EnumerateGuestProperties)(
9089         IMachine *pThis,
9090         PRUnichar * patterns,
9091         PRUint32 *namesSize,
9092         PRUnichar *** names,
9093         PRUint32 *valuesSize,
9094         PRUnichar *** values,
9095         PRUint32 *timestampsSize,
9096         PRInt64** timestamps,
9097         PRUint32 *flagsSize,
9098         PRUnichar *** flags
9099     );
9100 
9101     nsresult (*QuerySavedGuestScreenInfo)(
9102         IMachine *pThis,
9103         PRUint32 screenId,
9104         PRUint32 * originX,
9105         PRUint32 * originY,
9106         PRUint32 * width,
9107         PRUint32 * height,
9108         PRBool * enabled
9109     );
9110 
9111     nsresult (*ReadSavedThumbnailToArray)(
9112         IMachine *pThis,
9113         PRUint32 screenId,
9114         PRUint32 bitmapFormat,
9115         PRUint32 * width,
9116         PRUint32 * height,
9117         PRUint32 *dataSize,
9118         PRUint8** data
9119     );
9120 
9121     nsresult (*QuerySavedScreenshotInfo)(
9122         IMachine *pThis,
9123         PRUint32 screenId,
9124         PRUint32 * width,
9125         PRUint32 * height,
9126         PRUint32 *bitmapFormatsSize,
9127         PRUint32** bitmapFormats
9128     );
9129 
9130     nsresult (*ReadSavedScreenshotToArray)(
9131         IMachine *pThis,
9132         PRUint32 screenId,
9133         PRUint32 bitmapFormat,
9134         PRUint32 * width,
9135         PRUint32 * height,
9136         PRUint32 *dataSize,
9137         PRUint8** data
9138     );
9139 
9140     nsresult (*HotPlugCPU)(
9141         IMachine *pThis,
9142         PRUint32 cpu
9143     );
9144 
9145     nsresult (*HotUnplugCPU)(
9146         IMachine *pThis,
9147         PRUint32 cpu
9148     );
9149 
9150     nsresult (*GetCPUStatus)(
9151         IMachine *pThis,
9152         PRUint32 cpu,
9153         PRBool * attached
9154     );
9155 
9156     nsresult (*GetEffectiveParavirtProvider)(
9157         IMachine *pThis,
9158         PRUint32 * paravirtProvider
9159     );
9160 
9161     nsresult (*QueryLogFilename)(
9162         IMachine *pThis,
9163         PRUint32 idx,
9164         PRUnichar * * filename
9165     );
9166 
9167     nsresult (*ReadLog)(
9168         IMachine *pThis,
9169         PRUint32 idx,
9170         PRInt64 offset,
9171         PRInt64 size,
9172         PRUint32 *dataSize,
9173         PRUint8** data
9174     );
9175 
9176     nsresult (*CloneTo)(
9177         IMachine *pThis,
9178         IMachine * target,
9179         PRUint32 mode,
9180         PRUint32 optionsSize,
9181         PRUint32* options,
9182         IProgress * * progress
9183     );
9184 
9185     nsresult (*MoveTo)(
9186         IMachine *pThis,
9187         PRUnichar * folder,
9188         PRUnichar * type,
9189         IProgress * * progress
9190     );
9191 
9192     nsresult (*SaveState)(
9193         IMachine *pThis,
9194         IProgress * * progress
9195     );
9196 
9197     nsresult (*AdoptSavedState)(
9198         IMachine *pThis,
9199         PRUnichar * savedStateFile
9200     );
9201 
9202     nsresult (*DiscardSavedState)(
9203         IMachine *pThis,
9204         PRBool fRemoveFile
9205     );
9206 
9207     nsresult (*TakeSnapshot)(
9208         IMachine *pThis,
9209         PRUnichar * name,
9210         PRUnichar * description,
9211         PRBool pause,
9212         PRUnichar * * id,
9213         IProgress * * progress
9214     );
9215 
9216     nsresult (*DeleteSnapshot)(
9217         IMachine *pThis,
9218         PRUnichar * id,
9219         IProgress * * progress
9220     );
9221 
9222     nsresult (*DeleteSnapshotAndAllChildren)(
9223         IMachine *pThis,
9224         PRUnichar * id,
9225         IProgress * * progress
9226     );
9227 
9228     nsresult (*DeleteSnapshotRange)(
9229         IMachine *pThis,
9230         PRUnichar * startId,
9231         PRUnichar * endId,
9232         IProgress * * progress
9233     );
9234 
9235     nsresult (*RestoreSnapshot)(
9236         IMachine *pThis,
9237         ISnapshot * snapshot,
9238         IProgress * * progress
9239     );
9240 
9241     nsresult (*ApplyDefaults)(
9242         IMachine *pThis,
9243         PRUnichar * flags
9244     );
9245 
9246     nsresult (*InternalAndReservedMethod1IMachine)(IMachine *pThis);
9247 
9248     nsresult (*InternalAndReservedMethod2IMachine)(IMachine *pThis);
9249 
9250     nsresult (*InternalAndReservedMethod3IMachine)(IMachine *pThis);
9251 
9252     nsresult (*InternalAndReservedMethod4IMachine)(IMachine *pThis);
9253 
9254     nsresult (*InternalAndReservedMethod5IMachine)(IMachine *pThis);
9255 
9256     nsresult (*InternalAndReservedMethod6IMachine)(IMachine *pThis);
9257 
9258     nsresult (*InternalAndReservedMethod7IMachine)(IMachine *pThis);
9259 
9260     nsresult (*InternalAndReservedMethod8IMachine)(IMachine *pThis);
9261 
9262 };
9263 #   else /* VBOX_WITH_GLUE */
9264 struct IMachineVtbl
9265 {
9266     nsresult (*QueryInterface)(IMachine *pThis, const nsID *iid, void **resultp);
9267     nsrefcnt (*AddRef)(IMachine *pThis);
9268     nsrefcnt (*Release)(IMachine *pThis);
9269     nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
9270 
9271     nsresult (*GetIcon)(IMachine *pThis, PRUint32 *iconSize, PRUint8 **icon);
9272     nsresult (*SetIcon)(IMachine *pThis, PRUint32 iconSize, PRUint8 *icon);
9273 
9274     nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
9275 
9276     nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
9277 
9278     nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
9279     nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
9280 
9281     nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
9282     nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
9283 
9284     nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
9285 
9286     nsresult (*GetGroups)(IMachine *pThis, PRUint32 *groupsSize, PRUnichar * **groups);
9287     nsresult (*SetGroups)(IMachine *pThis, PRUint32 groupsSize, PRUnichar * *groups);
9288 
9289     nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
9290     nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
9291 
9292     nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *hardwareVersion);
9293     nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * hardwareVersion);
9294 
9295     nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
9296     nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
9297 
9298     nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
9299     nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
9300 
9301     nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
9302     nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
9303 
9304     nsresult (*GetCPUExecutionCap)(IMachine *pThis, PRUint32 *CPUExecutionCap);
9305     nsresult (*SetCPUExecutionCap)(IMachine *pThis, PRUint32 CPUExecutionCap);
9306 
9307     nsresult (*GetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 *CPUIDPortabilityLevel);
9308     nsresult (*SetCPUIDPortabilityLevel)(IMachine *pThis, PRUint32 CPUIDPortabilityLevel);
9309 
9310     nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
9311     nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
9312 
9313     nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
9314     nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
9315 
9316     nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *pageFusionEnabled);
9317     nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool pageFusionEnabled);
9318 
9319     nsresult (*GetGraphicsAdapter)(IMachine *pThis, IGraphicsAdapter * *graphicsAdapter);
9320 
9321     nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
9322 
9323     nsresult (*GetRecordingSettings)(IMachine *pThis, IRecordingSettings * *recordingSettings);
9324 
9325     nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
9326     nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
9327 
9328     nsresult (*GetPointingHIDType)(IMachine *pThis, PRUint32 *pointingHIDType);
9329     nsresult (*SetPointingHIDType)(IMachine *pThis, PRUint32 pointingHIDType);
9330 
9331     nsresult (*GetKeyboardHIDType)(IMachine *pThis, PRUint32 *keyboardHIDType);
9332     nsresult (*SetKeyboardHIDType)(IMachine *pThis, PRUint32 keyboardHIDType);
9333 
9334     nsresult (*GetHPETEnabled)(IMachine *pThis, PRBool *HPETEnabled);
9335     nsresult (*SetHPETEnabled)(IMachine *pThis, PRBool HPETEnabled);
9336 
9337     nsresult (*GetChipsetType)(IMachine *pThis, PRUint32 *chipsetType);
9338     nsresult (*SetChipsetType)(IMachine *pThis, PRUint32 chipsetType);
9339 
9340     nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
9341     nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
9342 
9343     nsresult (*GetVRDEServer)(IMachine *pThis, IVRDEServer * *VRDEServer);
9344 
9345     nsresult (*GetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool *emulatedUSBCardReaderEnabled);
9346     nsresult (*SetEmulatedUSBCardReaderEnabled)(IMachine *pThis, PRBool emulatedUSBCardReaderEnabled);
9347 
9348     nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
9349 
9350     nsresult (*GetUSBControllers)(IMachine *pThis, PRUint32 *USBControllersSize, IUSBController * **USBControllers);
9351 
9352     nsresult (*GetUSBDeviceFilters)(IMachine *pThis, IUSBDeviceFilters * *USBDeviceFilters);
9353 
9354     nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
9355 
9356     nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
9357 
9358     nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
9359 
9360     nsresult (*GetSettingsAuxFilePath)(IMachine *pThis, PRUnichar * *settingsAuxFilePath);
9361 
9362     nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
9363 
9364     nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
9365 
9366     nsresult (*GetSessionName)(IMachine *pThis, PRUnichar * *sessionName);
9367 
9368     nsresult (*GetSessionPID)(IMachine *pThis, PRUint32 *sessionPID);
9369 
9370     nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
9371 
9372     nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
9373 
9374     nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
9375 
9376     nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
9377 
9378     nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
9379 
9380     nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
9381 
9382     nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
9383 
9384     nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
9385 
9386     nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
9387     nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
9388 
9389     nsresult (*GetClipboardFileTransfersEnabled)(IMachine *pThis, PRBool *clipboardFileTransfersEnabled);
9390     nsresult (*SetClipboardFileTransfersEnabled)(IMachine *pThis, PRBool clipboardFileTransfersEnabled);
9391 
9392     nsresult (*GetDnDMode)(IMachine *pThis, PRUint32 *dnDMode);
9393     nsresult (*SetDnDMode)(IMachine *pThis, PRUint32 dnDMode);
9394 
9395     nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
9396     nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
9397 
9398     nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
9399     nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
9400 
9401     nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
9402     nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
9403 
9404     nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
9405     nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
9406 
9407     nsresult (*GetParavirtProvider)(IMachine *pThis, PRUint32 *paravirtProvider);
9408     nsresult (*SetParavirtProvider)(IMachine *pThis, PRUint32 paravirtProvider);
9409 
9410     nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
9411     nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
9412 
9413     nsresult (*GetIOCacheEnabled)(IMachine *pThis, PRBool *IOCacheEnabled);
9414     nsresult (*SetIOCacheEnabled)(IMachine *pThis, PRBool IOCacheEnabled);
9415 
9416     nsresult (*GetIOCacheSize)(IMachine *pThis, PRUint32 *IOCacheSize);
9417     nsresult (*SetIOCacheSize)(IMachine *pThis, PRUint32 IOCacheSize);
9418 
9419     nsresult (*GetPCIDeviceAssignments)(IMachine *pThis, PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment * **PCIDeviceAssignments);
9420 
9421     nsresult (*GetBandwidthControl)(IMachine *pThis, IBandwidthControl * *bandwidthControl);
9422 
9423     nsresult (*GetTracingEnabled)(IMachine *pThis, PRBool *tracingEnabled);
9424     nsresult (*SetTracingEnabled)(IMachine *pThis, PRBool tracingEnabled);
9425 
9426     nsresult (*GetTracingConfig)(IMachine *pThis, PRUnichar * *tracingConfig);
9427     nsresult (*SetTracingConfig)(IMachine *pThis, PRUnichar * tracingConfig);
9428 
9429     nsresult (*GetAllowTracingToAccessVM)(IMachine *pThis, PRBool *allowTracingToAccessVM);
9430     nsresult (*SetAllowTracingToAccessVM)(IMachine *pThis, PRBool allowTracingToAccessVM);
9431 
9432     nsresult (*GetAutostartEnabled)(IMachine *pThis, PRBool *autostartEnabled);
9433     nsresult (*SetAutostartEnabled)(IMachine *pThis, PRBool autostartEnabled);
9434 
9435     nsresult (*GetAutostartDelay)(IMachine *pThis, PRUint32 *autostartDelay);
9436     nsresult (*SetAutostartDelay)(IMachine *pThis, PRUint32 autostartDelay);
9437 
9438     nsresult (*GetAutostopType)(IMachine *pThis, PRUint32 *autostopType);
9439     nsresult (*SetAutostopType)(IMachine *pThis, PRUint32 autostopType);
9440 
9441     nsresult (*GetDefaultFrontend)(IMachine *pThis, PRUnichar * *defaultFrontend);
9442     nsresult (*SetDefaultFrontend)(IMachine *pThis, PRUnichar * defaultFrontend);
9443 
9444     nsresult (*GetUSBProxyAvailable)(IMachine *pThis, PRBool *USBProxyAvailable);
9445 
9446     nsresult (*GetVMProcessPriority)(IMachine *pThis, PRUint32 *VMProcessPriority);
9447     nsresult (*SetVMProcessPriority)(IMachine *pThis, PRUint32 VMProcessPriority);
9448 
9449     nsresult (*GetParavirtDebug)(IMachine *pThis, PRUnichar * *paravirtDebug);
9450     nsresult (*SetParavirtDebug)(IMachine *pThis, PRUnichar * paravirtDebug);
9451 
9452     nsresult (*GetCPUProfile)(IMachine *pThis, PRUnichar * *CPUProfile);
9453     nsresult (*SetCPUProfile)(IMachine *pThis, PRUnichar * CPUProfile);
9454 
9455     nsresult (*GetInternalAndReservedAttribute1IMachine)(IMachine *pThis, PRUint32 *reserved);
9456 
9457     nsresult (*GetInternalAndReservedAttribute2IMachine)(IMachine *pThis, PRUint32 *reserved);
9458 
9459     nsresult (*GetInternalAndReservedAttribute3IMachine)(IMachine *pThis, PRUint32 *reserved);
9460 
9461     nsresult (*GetInternalAndReservedAttribute4IMachine)(IMachine *pThis, PRUint32 *reserved);
9462 
9463     nsresult (*GetInternalAndReservedAttribute5IMachine)(IMachine *pThis, PRUint32 *reserved);
9464 
9465     nsresult (*GetInternalAndReservedAttribute6IMachine)(IMachine *pThis, PRUint32 *reserved);
9466 
9467     nsresult (*GetInternalAndReservedAttribute7IMachine)(IMachine *pThis, PRUint32 *reserved);
9468 
9469     nsresult (*GetInternalAndReservedAttribute8IMachine)(IMachine *pThis, PRUint32 *reserved);
9470 
9471     nsresult (*GetInternalAndReservedAttribute9IMachine)(IMachine *pThis, PRUint32 *reserved);
9472 
9473     nsresult (*GetInternalAndReservedAttribute10IMachine)(IMachine *pThis, PRUint32 *reserved);
9474 
9475     nsresult (*GetInternalAndReservedAttribute11IMachine)(IMachine *pThis, PRUint32 *reserved);
9476 
9477     nsresult (*GetInternalAndReservedAttribute12IMachine)(IMachine *pThis, PRUint32 *reserved);
9478 
9479     nsresult (*GetInternalAndReservedAttribute13IMachine)(IMachine *pThis, PRUint32 *reserved);
9480 
9481     nsresult (*GetInternalAndReservedAttribute14IMachine)(IMachine *pThis, PRUint32 *reserved);
9482 
9483     nsresult (*GetInternalAndReservedAttribute15IMachine)(IMachine *pThis, PRUint32 *reserved);
9484 
9485     nsresult (*GetInternalAndReservedAttribute16IMachine)(IMachine *pThis, PRUint32 *reserved);
9486 
9487     nsresult (*LockMachine)(
9488         IMachine *pThis,
9489         ISession * session,
9490         PRUint32 lockType
9491     );
9492 
9493     nsresult (*LaunchVMProcess)(
9494         IMachine *pThis,
9495         ISession * session,
9496         PRUnichar * name,
9497         PRUint32 environmentChangesSize,
9498         PRUnichar ** environmentChanges,
9499         IProgress * * progress
9500     );
9501 
9502     nsresult (*SetBootOrder)(
9503         IMachine *pThis,
9504         PRUint32 position,
9505         PRUint32 device
9506     );
9507 
9508     nsresult (*GetBootOrder)(
9509         IMachine *pThis,
9510         PRUint32 position,
9511         PRUint32 * device
9512     );
9513 
9514     nsresult (*AttachDevice)(
9515         IMachine *pThis,
9516         PRUnichar * name,
9517         PRInt32 controllerPort,
9518         PRInt32 device,
9519         PRUint32 type,
9520         IMedium * medium
9521     );
9522 
9523     nsresult (*AttachDeviceWithoutMedium)(
9524         IMachine *pThis,
9525         PRUnichar * name,
9526         PRInt32 controllerPort,
9527         PRInt32 device,
9528         PRUint32 type
9529     );
9530 
9531     nsresult (*DetachDevice)(
9532         IMachine *pThis,
9533         PRUnichar * name,
9534         PRInt32 controllerPort,
9535         PRInt32 device
9536     );
9537 
9538     nsresult (*PassthroughDevice)(
9539         IMachine *pThis,
9540         PRUnichar * name,
9541         PRInt32 controllerPort,
9542         PRInt32 device,
9543         PRBool passthrough
9544     );
9545 
9546     nsresult (*TemporaryEjectDevice)(
9547         IMachine *pThis,
9548         PRUnichar * name,
9549         PRInt32 controllerPort,
9550         PRInt32 device,
9551         PRBool temporaryEject
9552     );
9553 
9554     nsresult (*NonRotationalDevice)(
9555         IMachine *pThis,
9556         PRUnichar * name,
9557         PRInt32 controllerPort,
9558         PRInt32 device,
9559         PRBool nonRotational
9560     );
9561 
9562     nsresult (*SetAutoDiscardForDevice)(
9563         IMachine *pThis,
9564         PRUnichar * name,
9565         PRInt32 controllerPort,
9566         PRInt32 device,
9567         PRBool discard
9568     );
9569 
9570     nsresult (*SetHotPluggableForDevice)(
9571         IMachine *pThis,
9572         PRUnichar * name,
9573         PRInt32 controllerPort,
9574         PRInt32 device,
9575         PRBool hotPluggable
9576     );
9577 
9578     nsresult (*SetBandwidthGroupForDevice)(
9579         IMachine *pThis,
9580         PRUnichar * name,
9581         PRInt32 controllerPort,
9582         PRInt32 device,
9583         IBandwidthGroup * bandwidthGroup
9584     );
9585 
9586     nsresult (*SetNoBandwidthGroupForDevice)(
9587         IMachine *pThis,
9588         PRUnichar * name,
9589         PRInt32 controllerPort,
9590         PRInt32 device
9591     );
9592 
9593     nsresult (*UnmountMedium)(
9594         IMachine *pThis,
9595         PRUnichar * name,
9596         PRInt32 controllerPort,
9597         PRInt32 device,
9598         PRBool force
9599     );
9600 
9601     nsresult (*MountMedium)(
9602         IMachine *pThis,
9603         PRUnichar * name,
9604         PRInt32 controllerPort,
9605         PRInt32 device,
9606         IMedium * medium,
9607         PRBool force
9608     );
9609 
9610     nsresult (*GetMedium)(
9611         IMachine *pThis,
9612         PRUnichar * name,
9613         PRInt32 controllerPort,
9614         PRInt32 device,
9615         IMedium * * medium
9616     );
9617 
9618     nsresult (*GetMediumAttachmentsOfController)(
9619         IMachine *pThis,
9620         PRUnichar * name,
9621         PRUint32 *mediumAttachmentsSize,
9622         IMediumAttachment *** mediumAttachments
9623     );
9624 
9625     nsresult (*GetMediumAttachment)(
9626         IMachine *pThis,
9627         PRUnichar * name,
9628         PRInt32 controllerPort,
9629         PRInt32 device,
9630         IMediumAttachment * * attachment
9631     );
9632 
9633     nsresult (*AttachHostPCIDevice)(
9634         IMachine *pThis,
9635         PRInt32 hostAddress,
9636         PRInt32 desiredGuestAddress,
9637         PRBool tryToUnbind
9638     );
9639 
9640     nsresult (*DetachHostPCIDevice)(
9641         IMachine *pThis,
9642         PRInt32 hostAddress
9643     );
9644 
9645     nsresult (*GetNetworkAdapter)(
9646         IMachine *pThis,
9647         PRUint32 slot,
9648         INetworkAdapter * * adapter
9649     );
9650 
9651     nsresult (*AddStorageController)(
9652         IMachine *pThis,
9653         PRUnichar * name,
9654         PRUint32 connectionType,
9655         IStorageController * * controller
9656     );
9657 
9658     nsresult (*GetStorageControllerByName)(
9659         IMachine *pThis,
9660         PRUnichar * name,
9661         IStorageController * * storageController
9662     );
9663 
9664     nsresult (*GetStorageControllerByInstance)(
9665         IMachine *pThis,
9666         PRUint32 connectionType,
9667         PRUint32 instance,
9668         IStorageController * * storageController
9669     );
9670 
9671     nsresult (*RemoveStorageController)(
9672         IMachine *pThis,
9673         PRUnichar * name
9674     );
9675 
9676     nsresult (*SetStorageControllerBootable)(
9677         IMachine *pThis,
9678         PRUnichar * name,
9679         PRBool bootable
9680     );
9681 
9682     nsresult (*AddUSBController)(
9683         IMachine *pThis,
9684         PRUnichar * name,
9685         PRUint32 type,
9686         IUSBController * * controller
9687     );
9688 
9689     nsresult (*RemoveUSBController)(
9690         IMachine *pThis,
9691         PRUnichar * name
9692     );
9693 
9694     nsresult (*GetUSBControllerByName)(
9695         IMachine *pThis,
9696         PRUnichar * name,
9697         IUSBController * * controller
9698     );
9699 
9700     nsresult (*GetUSBControllerCountByType)(
9701         IMachine *pThis,
9702         PRUint32 type,
9703         PRUint32 * controllers
9704     );
9705 
9706     nsresult (*GetSerialPort)(
9707         IMachine *pThis,
9708         PRUint32 slot,
9709         ISerialPort * * port
9710     );
9711 
9712     nsresult (*GetParallelPort)(
9713         IMachine *pThis,
9714         PRUint32 slot,
9715         IParallelPort * * port
9716     );
9717 
9718     nsresult (*GetExtraDataKeys)(
9719         IMachine *pThis,
9720         PRUint32 *keysSize,
9721         PRUnichar *** keys
9722     );
9723 
9724     nsresult (*GetExtraData)(
9725         IMachine *pThis,
9726         PRUnichar * key,
9727         PRUnichar * * value
9728     );
9729 
9730     nsresult (*SetExtraData)(
9731         IMachine *pThis,
9732         PRUnichar * key,
9733         PRUnichar * value
9734     );
9735 
9736     nsresult (*GetCPUProperty)(
9737         IMachine *pThis,
9738         PRUint32 property,
9739         PRBool * value
9740     );
9741 
9742     nsresult (*SetCPUProperty)(
9743         IMachine *pThis,
9744         PRUint32 property,
9745         PRBool value
9746     );
9747 
9748     nsresult (*GetCPUIDLeafByOrdinal)(
9749         IMachine *pThis,
9750         PRUint32 ordinal,
9751         PRUint32 * idx,
9752         PRUint32 * idxSub,
9753         PRUint32 * valEax,
9754         PRUint32 * valEbx,
9755         PRUint32 * valEcx,
9756         PRUint32 * valEdx
9757     );
9758 
9759     nsresult (*GetCPUIDLeaf)(
9760         IMachine *pThis,
9761         PRUint32 idx,
9762         PRUint32 idxSub,
9763         PRUint32 * valEax,
9764         PRUint32 * valEbx,
9765         PRUint32 * valEcx,
9766         PRUint32 * valEdx
9767     );
9768 
9769     nsresult (*SetCPUIDLeaf)(
9770         IMachine *pThis,
9771         PRUint32 idx,
9772         PRUint32 idxSub,
9773         PRUint32 valEax,
9774         PRUint32 valEbx,
9775         PRUint32 valEcx,
9776         PRUint32 valEdx
9777     );
9778 
9779     nsresult (*RemoveCPUIDLeaf)(
9780         IMachine *pThis,
9781         PRUint32 idx,
9782         PRUint32 idxSub
9783     );
9784 
9785     nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
9786 
9787     nsresult (*GetHWVirtExProperty)(
9788         IMachine *pThis,
9789         PRUint32 property,
9790         PRBool * value
9791     );
9792 
9793     nsresult (*SetHWVirtExProperty)(
9794         IMachine *pThis,
9795         PRUint32 property,
9796         PRBool value
9797     );
9798 
9799     nsresult (*SetSettingsFilePath)(
9800         IMachine *pThis,
9801         PRUnichar * settingsFilePath,
9802         IProgress * * progress
9803     );
9804 
9805     nsresult (*SaveSettings)(IMachine *pThis );
9806 
9807     nsresult (*DiscardSettings)(IMachine *pThis );
9808 
9809     nsresult (*Unregister)(
9810         IMachine *pThis,
9811         PRUint32 cleanupMode,
9812         PRUint32 *mediaSize,
9813         IMedium *** media
9814     );
9815 
9816     nsresult (*DeleteConfig)(
9817         IMachine *pThis,
9818         PRUint32 mediaSize,
9819         IMedium ** media,
9820         IProgress * * progress
9821     );
9822 
9823     nsresult (*ExportTo)(
9824         IMachine *pThis,
9825         IAppliance * appliance,
9826         PRUnichar * location,
9827         IVirtualSystemDescription * * description
9828     );
9829 
9830     nsresult (*FindSnapshot)(
9831         IMachine *pThis,
9832         PRUnichar * nameOrId,
9833         ISnapshot * * snapshot
9834     );
9835 
9836     nsresult (*CreateSharedFolder)(
9837         IMachine *pThis,
9838         PRUnichar * name,
9839         PRUnichar * hostPath,
9840         PRBool writable,
9841         PRBool automount,
9842         PRUnichar * autoMountPoint
9843     );
9844 
9845     nsresult (*RemoveSharedFolder)(
9846         IMachine *pThis,
9847         PRUnichar * name
9848     );
9849 
9850     nsresult (*CanShowConsoleWindow)(
9851         IMachine *pThis,
9852         PRBool * canShow
9853     );
9854 
9855     nsresult (*ShowConsoleWindow)(
9856         IMachine *pThis,
9857         PRInt64 * winId
9858     );
9859 
9860     nsresult (*GetGuestProperty)(
9861         IMachine *pThis,
9862         PRUnichar * name,
9863         PRUnichar * * value,
9864         PRInt64 * timestamp,
9865         PRUnichar * * flags
9866     );
9867 
9868     nsresult (*GetGuestPropertyValue)(
9869         IMachine *pThis,
9870         PRUnichar * property,
9871         PRUnichar * * value
9872     );
9873 
9874     nsresult (*GetGuestPropertyTimestamp)(
9875         IMachine *pThis,
9876         PRUnichar * property,
9877         PRInt64 * value
9878     );
9879 
9880     nsresult (*SetGuestProperty)(
9881         IMachine *pThis,
9882         PRUnichar * property,
9883         PRUnichar * value,
9884         PRUnichar * flags
9885     );
9886 
9887     nsresult (*SetGuestPropertyValue)(
9888         IMachine *pThis,
9889         PRUnichar * property,
9890         PRUnichar * value
9891     );
9892 
9893     nsresult (*DeleteGuestProperty)(
9894         IMachine *pThis,
9895         PRUnichar * name
9896     );
9897 
9898     nsresult (*EnumerateGuestProperties)(
9899         IMachine *pThis,
9900         PRUnichar * patterns,
9901         PRUint32 *namesSize,
9902         PRUnichar *** names,
9903         PRUint32 *valuesSize,
9904         PRUnichar *** values,
9905         PRUint32 *timestampsSize,
9906         PRInt64** timestamps,
9907         PRUint32 *flagsSize,
9908         PRUnichar *** flags
9909     );
9910 
9911     nsresult (*QuerySavedGuestScreenInfo)(
9912         IMachine *pThis,
9913         PRUint32 screenId,
9914         PRUint32 * originX,
9915         PRUint32 * originY,
9916         PRUint32 * width,
9917         PRUint32 * height,
9918         PRBool * enabled
9919     );
9920 
9921     nsresult (*ReadSavedThumbnailToArray)(
9922         IMachine *pThis,
9923         PRUint32 screenId,
9924         PRUint32 bitmapFormat,
9925         PRUint32 * width,
9926         PRUint32 * height,
9927         PRUint32 *dataSize,
9928         PRUint8** data
9929     );
9930 
9931     nsresult (*QuerySavedScreenshotInfo)(
9932         IMachine *pThis,
9933         PRUint32 screenId,
9934         PRUint32 * width,
9935         PRUint32 * height,
9936         PRUint32 *bitmapFormatsSize,
9937         PRUint32** bitmapFormats
9938     );
9939 
9940     nsresult (*ReadSavedScreenshotToArray)(
9941         IMachine *pThis,
9942         PRUint32 screenId,
9943         PRUint32 bitmapFormat,
9944         PRUint32 * width,
9945         PRUint32 * height,
9946         PRUint32 *dataSize,
9947         PRUint8** data
9948     );
9949 
9950     nsresult (*HotPlugCPU)(
9951         IMachine *pThis,
9952         PRUint32 cpu
9953     );
9954 
9955     nsresult (*HotUnplugCPU)(
9956         IMachine *pThis,
9957         PRUint32 cpu
9958     );
9959 
9960     nsresult (*GetCPUStatus)(
9961         IMachine *pThis,
9962         PRUint32 cpu,
9963         PRBool * attached
9964     );
9965 
9966     nsresult (*GetEffectiveParavirtProvider)(
9967         IMachine *pThis,
9968         PRUint32 * paravirtProvider
9969     );
9970 
9971     nsresult (*QueryLogFilename)(
9972         IMachine *pThis,
9973         PRUint32 idx,
9974         PRUnichar * * filename
9975     );
9976 
9977     nsresult (*ReadLog)(
9978         IMachine *pThis,
9979         PRUint32 idx,
9980         PRInt64 offset,
9981         PRInt64 size,
9982         PRUint32 *dataSize,
9983         PRUint8** data
9984     );
9985 
9986     nsresult (*CloneTo)(
9987         IMachine *pThis,
9988         IMachine * target,
9989         PRUint32 mode,
9990         PRUint32 optionsSize,
9991         PRUint32* options,
9992         IProgress * * progress
9993     );
9994 
9995     nsresult (*MoveTo)(
9996         IMachine *pThis,
9997         PRUnichar * folder,
9998         PRUnichar * type,
9999         IProgress * * progress
10000     );
10001 
10002     nsresult (*SaveState)(
10003         IMachine *pThis,
10004         IProgress * * progress
10005     );
10006 
10007     nsresult (*AdoptSavedState)(
10008         IMachine *pThis,
10009         PRUnichar * savedStateFile
10010     );
10011 
10012     nsresult (*DiscardSavedState)(
10013         IMachine *pThis,
10014         PRBool fRemoveFile
10015     );
10016 
10017     nsresult (*TakeSnapshot)(
10018         IMachine *pThis,
10019         PRUnichar * name,
10020         PRUnichar * description,
10021         PRBool pause,
10022         PRUnichar * * id,
10023         IProgress * * progress
10024     );
10025 
10026     nsresult (*DeleteSnapshot)(
10027         IMachine *pThis,
10028         PRUnichar * id,
10029         IProgress * * progress
10030     );
10031 
10032     nsresult (*DeleteSnapshotAndAllChildren)(
10033         IMachine *pThis,
10034         PRUnichar * id,
10035         IProgress * * progress
10036     );
10037 
10038     nsresult (*DeleteSnapshotRange)(
10039         IMachine *pThis,
10040         PRUnichar * startId,
10041         PRUnichar * endId,
10042         IProgress * * progress
10043     );
10044 
10045     nsresult (*RestoreSnapshot)(
10046         IMachine *pThis,
10047         ISnapshot * snapshot,
10048         IProgress * * progress
10049     );
10050 
10051     nsresult (*ApplyDefaults)(
10052         IMachine *pThis,
10053         PRUnichar * flags
10054     );
10055 
10056     nsresult (*InternalAndReservedMethod1IMachine)(IMachine *pThis);
10057 
10058     nsresult (*InternalAndReservedMethod2IMachine)(IMachine *pThis);
10059 
10060     nsresult (*InternalAndReservedMethod3IMachine)(IMachine *pThis);
10061 
10062     nsresult (*InternalAndReservedMethod4IMachine)(IMachine *pThis);
10063 
10064     nsresult (*InternalAndReservedMethod5IMachine)(IMachine *pThis);
10065 
10066     nsresult (*InternalAndReservedMethod6IMachine)(IMachine *pThis);
10067 
10068     nsresult (*InternalAndReservedMethod7IMachine)(IMachine *pThis);
10069 
10070     nsresult (*InternalAndReservedMethod8IMachine)(IMachine *pThis);
10071 
10072 };
10073 #    define IMachine_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10074 #    define IMachine_AddRef(p) ((p)->lpVtbl->AddRef(p))
10075 #    define IMachine_Release(p) ((p)->lpVtbl->Release(p))
10076 #    define IMachine_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
10077 #    define IMachine_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
10078 #    define IMachine_get_Icon(p, aIcon) ((p)->lpVtbl->GetIcon(p, aIcon))
10079 #    define IMachine_GetIcon(p, aIcon) ((p)->lpVtbl->GetIcon(p, aIcon))
10080 #    define IMachine_put_Icon(p, aIcon) ((p)->lpVtbl->SetIcon(p, aIcon))
10081 #    define IMachine_SetIcon(p, aIcon) ((p)->lpVtbl->SetIcon(p, aIcon))
10082 #    define IMachine_get_Accessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
10083 #    define IMachine_GetAccessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
10084 #    define IMachine_get_AccessError(p, aAccessError) ((p)->lpVtbl->GetAccessError(p, aAccessError))
10085 #    define IMachine_GetAccessError(p, aAccessError) ((p)->lpVtbl->GetAccessError(p, aAccessError))
10086 #    define IMachine_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
10087 #    define IMachine_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
10088 #    define IMachine_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
10089 #    define IMachine_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
10090 #    define IMachine_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
10091 #    define IMachine_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
10092 #    define IMachine_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
10093 #    define IMachine_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
10094 #    define IMachine_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
10095 #    define IMachine_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
10096 #    define IMachine_get_Groups(p, aGroups) ((p)->lpVtbl->GetGroups(p, aGroups))
10097 #    define IMachine_GetGroups(p, aGroups) ((p)->lpVtbl->GetGroups(p, aGroups))
10098 #    define IMachine_put_Groups(p, aGroups) ((p)->lpVtbl->SetGroups(p, aGroups))
10099 #    define IMachine_SetGroups(p, aGroups) ((p)->lpVtbl->SetGroups(p, aGroups))
10100 #    define IMachine_get_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
10101 #    define IMachine_GetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
10102 #    define IMachine_put_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->SetOSTypeId(p, aOSTypeId))
10103 #    define IMachine_SetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->SetOSTypeId(p, aOSTypeId))
10104 #    define IMachine_get_HardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->GetHardwareVersion(p, aHardwareVersion))
10105 #    define IMachine_GetHardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->GetHardwareVersion(p, aHardwareVersion))
10106 #    define IMachine_put_HardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->SetHardwareVersion(p, aHardwareVersion))
10107 #    define IMachine_SetHardwareVersion(p, aHardwareVersion) ((p)->lpVtbl->SetHardwareVersion(p, aHardwareVersion))
10108 #    define IMachine_get_HardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->GetHardwareUUID(p, aHardwareUUID))
10109 #    define IMachine_GetHardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->GetHardwareUUID(p, aHardwareUUID))
10110 #    define IMachine_put_HardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->SetHardwareUUID(p, aHardwareUUID))
10111 #    define IMachine_SetHardwareUUID(p, aHardwareUUID) ((p)->lpVtbl->SetHardwareUUID(p, aHardwareUUID))
10112 #    define IMachine_get_CPUCount(p, aCPUCount) ((p)->lpVtbl->GetCPUCount(p, aCPUCount))
10113 #    define IMachine_GetCPUCount(p, aCPUCount) ((p)->lpVtbl->GetCPUCount(p, aCPUCount))
10114 #    define IMachine_put_CPUCount(p, aCPUCount) ((p)->lpVtbl->SetCPUCount(p, aCPUCount))
10115 #    define IMachine_SetCPUCount(p, aCPUCount) ((p)->lpVtbl->SetCPUCount(p, aCPUCount))
10116 #    define IMachine_get_CPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
10117 #    define IMachine_GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->GetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
10118 #    define IMachine_put_CPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
10119 #    define IMachine_SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled) ((p)->lpVtbl->SetCPUHotPlugEnabled(p, aCPUHotPlugEnabled))
10120 #    define IMachine_get_CPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->GetCPUExecutionCap(p, aCPUExecutionCap))
10121 #    define IMachine_GetCPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->GetCPUExecutionCap(p, aCPUExecutionCap))
10122 #    define IMachine_put_CPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->SetCPUExecutionCap(p, aCPUExecutionCap))
10123 #    define IMachine_SetCPUExecutionCap(p, aCPUExecutionCap) ((p)->lpVtbl->SetCPUExecutionCap(p, aCPUExecutionCap))
10124 #    define IMachine_get_CPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
10125 #    define IMachine_GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->GetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
10126 #    define IMachine_put_CPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
10127 #    define IMachine_SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel) ((p)->lpVtbl->SetCPUIDPortabilityLevel(p, aCPUIDPortabilityLevel))
10128 #    define IMachine_get_MemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
10129 #    define IMachine_GetMemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
10130 #    define IMachine_put_MemorySize(p, aMemorySize) ((p)->lpVtbl->SetMemorySize(p, aMemorySize))
10131 #    define IMachine_SetMemorySize(p, aMemorySize) ((p)->lpVtbl->SetMemorySize(p, aMemorySize))
10132 #    define IMachine_get_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
10133 #    define IMachine_GetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
10134 #    define IMachine_put_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
10135 #    define IMachine_SetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
10136 #    define IMachine_get_PageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->GetPageFusionEnabled(p, aPageFusionEnabled))
10137 #    define IMachine_GetPageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->GetPageFusionEnabled(p, aPageFusionEnabled))
10138 #    define IMachine_put_PageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->SetPageFusionEnabled(p, aPageFusionEnabled))
10139 #    define IMachine_SetPageFusionEnabled(p, aPageFusionEnabled) ((p)->lpVtbl->SetPageFusionEnabled(p, aPageFusionEnabled))
10140 #    define IMachine_get_GraphicsAdapter(p, aGraphicsAdapter) ((p)->lpVtbl->GetGraphicsAdapter(p, aGraphicsAdapter))
10141 #    define IMachine_GetGraphicsAdapter(p, aGraphicsAdapter) ((p)->lpVtbl->GetGraphicsAdapter(p, aGraphicsAdapter))
10142 #    define IMachine_get_BIOSSettings(p, aBIOSSettings) ((p)->lpVtbl->GetBIOSSettings(p, aBIOSSettings))
10143 #    define IMachine_GetBIOSSettings(p, aBIOSSettings) ((p)->lpVtbl->GetBIOSSettings(p, aBIOSSettings))
10144 #    define IMachine_get_RecordingSettings(p, aRecordingSettings) ((p)->lpVtbl->GetRecordingSettings(p, aRecordingSettings))
10145 #    define IMachine_GetRecordingSettings(p, aRecordingSettings) ((p)->lpVtbl->GetRecordingSettings(p, aRecordingSettings))
10146 #    define IMachine_get_FirmwareType(p, aFirmwareType) ((p)->lpVtbl->GetFirmwareType(p, aFirmwareType))
10147 #    define IMachine_GetFirmwareType(p, aFirmwareType) ((p)->lpVtbl->GetFirmwareType(p, aFirmwareType))
10148 #    define IMachine_put_FirmwareType(p, aFirmwareType) ((p)->lpVtbl->SetFirmwareType(p, aFirmwareType))
10149 #    define IMachine_SetFirmwareType(p, aFirmwareType) ((p)->lpVtbl->SetFirmwareType(p, aFirmwareType))
10150 #    define IMachine_get_PointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->GetPointingHIDType(p, aPointingHIDType))
10151 #    define IMachine_GetPointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->GetPointingHIDType(p, aPointingHIDType))
10152 #    define IMachine_put_PointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->SetPointingHIDType(p, aPointingHIDType))
10153 #    define IMachine_SetPointingHIDType(p, aPointingHIDType) ((p)->lpVtbl->SetPointingHIDType(p, aPointingHIDType))
10154 #    define IMachine_get_KeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->GetKeyboardHIDType(p, aKeyboardHIDType))
10155 #    define IMachine_GetKeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->GetKeyboardHIDType(p, aKeyboardHIDType))
10156 #    define IMachine_put_KeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->SetKeyboardHIDType(p, aKeyboardHIDType))
10157 #    define IMachine_SetKeyboardHIDType(p, aKeyboardHIDType) ((p)->lpVtbl->SetKeyboardHIDType(p, aKeyboardHIDType))
10158 #    define IMachine_get_HPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->GetHPETEnabled(p, aHPETEnabled))
10159 #    define IMachine_GetHPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->GetHPETEnabled(p, aHPETEnabled))
10160 #    define IMachine_put_HPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->SetHPETEnabled(p, aHPETEnabled))
10161 #    define IMachine_SetHPETEnabled(p, aHPETEnabled) ((p)->lpVtbl->SetHPETEnabled(p, aHPETEnabled))
10162 #    define IMachine_get_ChipsetType(p, aChipsetType) ((p)->lpVtbl->GetChipsetType(p, aChipsetType))
10163 #    define IMachine_GetChipsetType(p, aChipsetType) ((p)->lpVtbl->GetChipsetType(p, aChipsetType))
10164 #    define IMachine_put_ChipsetType(p, aChipsetType) ((p)->lpVtbl->SetChipsetType(p, aChipsetType))
10165 #    define IMachine_SetChipsetType(p, aChipsetType) ((p)->lpVtbl->SetChipsetType(p, aChipsetType))
10166 #    define IMachine_get_SnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->GetSnapshotFolder(p, aSnapshotFolder))
10167 #    define IMachine_GetSnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->GetSnapshotFolder(p, aSnapshotFolder))
10168 #    define IMachine_put_SnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->SetSnapshotFolder(p, aSnapshotFolder))
10169 #    define IMachine_SetSnapshotFolder(p, aSnapshotFolder) ((p)->lpVtbl->SetSnapshotFolder(p, aSnapshotFolder))
10170 #    define IMachine_get_VRDEServer(p, aVRDEServer) ((p)->lpVtbl->GetVRDEServer(p, aVRDEServer))
10171 #    define IMachine_GetVRDEServer(p, aVRDEServer) ((p)->lpVtbl->GetVRDEServer(p, aVRDEServer))
10172 #    define IMachine_get_EmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
10173 #    define IMachine_GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->GetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
10174 #    define IMachine_put_EmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
10175 #    define IMachine_SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled) ((p)->lpVtbl->SetEmulatedUSBCardReaderEnabled(p, aEmulatedUSBCardReaderEnabled))
10176 #    define IMachine_get_MediumAttachments(p, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachments(p, aMediumAttachments))
10177 #    define IMachine_GetMediumAttachments(p, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachments(p, aMediumAttachments))
10178 #    define IMachine_get_USBControllers(p, aUSBControllers) ((p)->lpVtbl->GetUSBControllers(p, aUSBControllers))
10179 #    define IMachine_GetUSBControllers(p, aUSBControllers) ((p)->lpVtbl->GetUSBControllers(p, aUSBControllers))
10180 #    define IMachine_get_USBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
10181 #    define IMachine_GetUSBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
10182 #    define IMachine_get_AudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
10183 #    define IMachine_GetAudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
10184 #    define IMachine_get_StorageControllers(p, aStorageControllers) ((p)->lpVtbl->GetStorageControllers(p, aStorageControllers))
10185 #    define IMachine_GetStorageControllers(p, aStorageControllers) ((p)->lpVtbl->GetStorageControllers(p, aStorageControllers))
10186 #    define IMachine_get_SettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
10187 #    define IMachine_GetSettingsFilePath(p, aSettingsFilePath) ((p)->lpVtbl->GetSettingsFilePath(p, aSettingsFilePath))
10188 #    define IMachine_get_SettingsAuxFilePath(p, aSettingsAuxFilePath) ((p)->lpVtbl->GetSettingsAuxFilePath(p, aSettingsAuxFilePath))
10189 #    define IMachine_GetSettingsAuxFilePath(p, aSettingsAuxFilePath) ((p)->lpVtbl->GetSettingsAuxFilePath(p, aSettingsAuxFilePath))
10190 #    define IMachine_get_SettingsModified(p, aSettingsModified) ((p)->lpVtbl->GetSettingsModified(p, aSettingsModified))
10191 #    define IMachine_GetSettingsModified(p, aSettingsModified) ((p)->lpVtbl->GetSettingsModified(p, aSettingsModified))
10192 #    define IMachine_get_SessionState(p, aSessionState) ((p)->lpVtbl->GetSessionState(p, aSessionState))
10193 #    define IMachine_GetSessionState(p, aSessionState) ((p)->lpVtbl->GetSessionState(p, aSessionState))
10194 #    define IMachine_get_SessionName(p, aSessionName) ((p)->lpVtbl->GetSessionName(p, aSessionName))
10195 #    define IMachine_GetSessionName(p, aSessionName) ((p)->lpVtbl->GetSessionName(p, aSessionName))
10196 #    define IMachine_get_SessionPID(p, aSessionPID) ((p)->lpVtbl->GetSessionPID(p, aSessionPID))
10197 #    define IMachine_GetSessionPID(p, aSessionPID) ((p)->lpVtbl->GetSessionPID(p, aSessionPID))
10198 #    define IMachine_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
10199 #    define IMachine_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
10200 #    define IMachine_get_LastStateChange(p, aLastStateChange) ((p)->lpVtbl->GetLastStateChange(p, aLastStateChange))
10201 #    define IMachine_GetLastStateChange(p, aLastStateChange) ((p)->lpVtbl->GetLastStateChange(p, aLastStateChange))
10202 #    define IMachine_get_StateFilePath(p, aStateFilePath) ((p)->lpVtbl->GetStateFilePath(p, aStateFilePath))
10203 #    define IMachine_GetStateFilePath(p, aStateFilePath) ((p)->lpVtbl->GetStateFilePath(p, aStateFilePath))
10204 #    define IMachine_get_LogFolder(p, aLogFolder) ((p)->lpVtbl->GetLogFolder(p, aLogFolder))
10205 #    define IMachine_GetLogFolder(p, aLogFolder) ((p)->lpVtbl->GetLogFolder(p, aLogFolder))
10206 #    define IMachine_get_CurrentSnapshot(p, aCurrentSnapshot) ((p)->lpVtbl->GetCurrentSnapshot(p, aCurrentSnapshot))
10207 #    define IMachine_GetCurrentSnapshot(p, aCurrentSnapshot) ((p)->lpVtbl->GetCurrentSnapshot(p, aCurrentSnapshot))
10208 #    define IMachine_get_SnapshotCount(p, aSnapshotCount) ((p)->lpVtbl->GetSnapshotCount(p, aSnapshotCount))
10209 #    define IMachine_GetSnapshotCount(p, aSnapshotCount) ((p)->lpVtbl->GetSnapshotCount(p, aSnapshotCount))
10210 #    define IMachine_get_CurrentStateModified(p, aCurrentStateModified) ((p)->lpVtbl->GetCurrentStateModified(p, aCurrentStateModified))
10211 #    define IMachine_GetCurrentStateModified(p, aCurrentStateModified) ((p)->lpVtbl->GetCurrentStateModified(p, aCurrentStateModified))
10212 #    define IMachine_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
10213 #    define IMachine_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
10214 #    define IMachine_get_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
10215 #    define IMachine_GetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
10216 #    define IMachine_put_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->SetClipboardMode(p, aClipboardMode))
10217 #    define IMachine_SetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->SetClipboardMode(p, aClipboardMode))
10218 #    define IMachine_get_ClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled) ((p)->lpVtbl->GetClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled))
10219 #    define IMachine_GetClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled) ((p)->lpVtbl->GetClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled))
10220 #    define IMachine_put_ClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled) ((p)->lpVtbl->SetClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled))
10221 #    define IMachine_SetClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled) ((p)->lpVtbl->SetClipboardFileTransfersEnabled(p, aClipboardFileTransfersEnabled))
10222 #    define IMachine_get_DnDMode(p, aDnDMode) ((p)->lpVtbl->GetDnDMode(p, aDnDMode))
10223 #    define IMachine_GetDnDMode(p, aDnDMode) ((p)->lpVtbl->GetDnDMode(p, aDnDMode))
10224 #    define IMachine_put_DnDMode(p, aDnDMode) ((p)->lpVtbl->SetDnDMode(p, aDnDMode))
10225 #    define IMachine_SetDnDMode(p, aDnDMode) ((p)->lpVtbl->SetDnDMode(p, aDnDMode))
10226 #    define IMachine_get_TeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->GetTeleporterEnabled(p, aTeleporterEnabled))
10227 #    define IMachine_GetTeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->GetTeleporterEnabled(p, aTeleporterEnabled))
10228 #    define IMachine_put_TeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->SetTeleporterEnabled(p, aTeleporterEnabled))
10229 #    define IMachine_SetTeleporterEnabled(p, aTeleporterEnabled) ((p)->lpVtbl->SetTeleporterEnabled(p, aTeleporterEnabled))
10230 #    define IMachine_get_TeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->GetTeleporterPort(p, aTeleporterPort))
10231 #    define IMachine_GetTeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->GetTeleporterPort(p, aTeleporterPort))
10232 #    define IMachine_put_TeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->SetTeleporterPort(p, aTeleporterPort))
10233 #    define IMachine_SetTeleporterPort(p, aTeleporterPort) ((p)->lpVtbl->SetTeleporterPort(p, aTeleporterPort))
10234 #    define IMachine_get_TeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->GetTeleporterAddress(p, aTeleporterAddress))
10235 #    define IMachine_GetTeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->GetTeleporterAddress(p, aTeleporterAddress))
10236 #    define IMachine_put_TeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->SetTeleporterAddress(p, aTeleporterAddress))
10237 #    define IMachine_SetTeleporterAddress(p, aTeleporterAddress) ((p)->lpVtbl->SetTeleporterAddress(p, aTeleporterAddress))
10238 #    define IMachine_get_TeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->GetTeleporterPassword(p, aTeleporterPassword))
10239 #    define IMachine_GetTeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->GetTeleporterPassword(p, aTeleporterPassword))
10240 #    define IMachine_put_TeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->SetTeleporterPassword(p, aTeleporterPassword))
10241 #    define IMachine_SetTeleporterPassword(p, aTeleporterPassword) ((p)->lpVtbl->SetTeleporterPassword(p, aTeleporterPassword))
10242 #    define IMachine_get_ParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetParavirtProvider(p, aParavirtProvider))
10243 #    define IMachine_GetParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetParavirtProvider(p, aParavirtProvider))
10244 #    define IMachine_put_ParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->SetParavirtProvider(p, aParavirtProvider))
10245 #    define IMachine_SetParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->SetParavirtProvider(p, aParavirtProvider))
10246 #    define IMachine_get_RTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->GetRTCUseUTC(p, aRTCUseUTC))
10247 #    define IMachine_GetRTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->GetRTCUseUTC(p, aRTCUseUTC))
10248 #    define IMachine_put_RTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->SetRTCUseUTC(p, aRTCUseUTC))
10249 #    define IMachine_SetRTCUseUTC(p, aRTCUseUTC) ((p)->lpVtbl->SetRTCUseUTC(p, aRTCUseUTC))
10250 #    define IMachine_get_IOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->GetIOCacheEnabled(p, aIOCacheEnabled))
10251 #    define IMachine_GetIOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->GetIOCacheEnabled(p, aIOCacheEnabled))
10252 #    define IMachine_put_IOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->SetIOCacheEnabled(p, aIOCacheEnabled))
10253 #    define IMachine_SetIOCacheEnabled(p, aIOCacheEnabled) ((p)->lpVtbl->SetIOCacheEnabled(p, aIOCacheEnabled))
10254 #    define IMachine_get_IOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->GetIOCacheSize(p, aIOCacheSize))
10255 #    define IMachine_GetIOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->GetIOCacheSize(p, aIOCacheSize))
10256 #    define IMachine_put_IOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->SetIOCacheSize(p, aIOCacheSize))
10257 #    define IMachine_SetIOCacheSize(p, aIOCacheSize) ((p)->lpVtbl->SetIOCacheSize(p, aIOCacheSize))
10258 #    define IMachine_get_PCIDeviceAssignments(p, aPCIDeviceAssignments) ((p)->lpVtbl->GetPCIDeviceAssignments(p, aPCIDeviceAssignments))
10259 #    define IMachine_GetPCIDeviceAssignments(p, aPCIDeviceAssignments) ((p)->lpVtbl->GetPCIDeviceAssignments(p, aPCIDeviceAssignments))
10260 #    define IMachine_get_BandwidthControl(p, aBandwidthControl) ((p)->lpVtbl->GetBandwidthControl(p, aBandwidthControl))
10261 #    define IMachine_GetBandwidthControl(p, aBandwidthControl) ((p)->lpVtbl->GetBandwidthControl(p, aBandwidthControl))
10262 #    define IMachine_get_TracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->GetTracingEnabled(p, aTracingEnabled))
10263 #    define IMachine_GetTracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->GetTracingEnabled(p, aTracingEnabled))
10264 #    define IMachine_put_TracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->SetTracingEnabled(p, aTracingEnabled))
10265 #    define IMachine_SetTracingEnabled(p, aTracingEnabled) ((p)->lpVtbl->SetTracingEnabled(p, aTracingEnabled))
10266 #    define IMachine_get_TracingConfig(p, aTracingConfig) ((p)->lpVtbl->GetTracingConfig(p, aTracingConfig))
10267 #    define IMachine_GetTracingConfig(p, aTracingConfig) ((p)->lpVtbl->GetTracingConfig(p, aTracingConfig))
10268 #    define IMachine_put_TracingConfig(p, aTracingConfig) ((p)->lpVtbl->SetTracingConfig(p, aTracingConfig))
10269 #    define IMachine_SetTracingConfig(p, aTracingConfig) ((p)->lpVtbl->SetTracingConfig(p, aTracingConfig))
10270 #    define IMachine_get_AllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
10271 #    define IMachine_GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->GetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
10272 #    define IMachine_put_AllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
10273 #    define IMachine_SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM) ((p)->lpVtbl->SetAllowTracingToAccessVM(p, aAllowTracingToAccessVM))
10274 #    define IMachine_get_AutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->GetAutostartEnabled(p, aAutostartEnabled))
10275 #    define IMachine_GetAutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->GetAutostartEnabled(p, aAutostartEnabled))
10276 #    define IMachine_put_AutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->SetAutostartEnabled(p, aAutostartEnabled))
10277 #    define IMachine_SetAutostartEnabled(p, aAutostartEnabled) ((p)->lpVtbl->SetAutostartEnabled(p, aAutostartEnabled))
10278 #    define IMachine_get_AutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->GetAutostartDelay(p, aAutostartDelay))
10279 #    define IMachine_GetAutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->GetAutostartDelay(p, aAutostartDelay))
10280 #    define IMachine_put_AutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->SetAutostartDelay(p, aAutostartDelay))
10281 #    define IMachine_SetAutostartDelay(p, aAutostartDelay) ((p)->lpVtbl->SetAutostartDelay(p, aAutostartDelay))
10282 #    define IMachine_get_AutostopType(p, aAutostopType) ((p)->lpVtbl->GetAutostopType(p, aAutostopType))
10283 #    define IMachine_GetAutostopType(p, aAutostopType) ((p)->lpVtbl->GetAutostopType(p, aAutostopType))
10284 #    define IMachine_put_AutostopType(p, aAutostopType) ((p)->lpVtbl->SetAutostopType(p, aAutostopType))
10285 #    define IMachine_SetAutostopType(p, aAutostopType) ((p)->lpVtbl->SetAutostopType(p, aAutostopType))
10286 #    define IMachine_get_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
10287 #    define IMachine_GetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
10288 #    define IMachine_put_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
10289 #    define IMachine_SetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
10290 #    define IMachine_get_USBProxyAvailable(p, aUSBProxyAvailable) ((p)->lpVtbl->GetUSBProxyAvailable(p, aUSBProxyAvailable))
10291 #    define IMachine_GetUSBProxyAvailable(p, aUSBProxyAvailable) ((p)->lpVtbl->GetUSBProxyAvailable(p, aUSBProxyAvailable))
10292 #    define IMachine_get_VMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->GetVMProcessPriority(p, aVMProcessPriority))
10293 #    define IMachine_GetVMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->GetVMProcessPriority(p, aVMProcessPriority))
10294 #    define IMachine_put_VMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->SetVMProcessPriority(p, aVMProcessPriority))
10295 #    define IMachine_SetVMProcessPriority(p, aVMProcessPriority) ((p)->lpVtbl->SetVMProcessPriority(p, aVMProcessPriority))
10296 #    define IMachine_get_ParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->GetParavirtDebug(p, aParavirtDebug))
10297 #    define IMachine_GetParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->GetParavirtDebug(p, aParavirtDebug))
10298 #    define IMachine_put_ParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->SetParavirtDebug(p, aParavirtDebug))
10299 #    define IMachine_SetParavirtDebug(p, aParavirtDebug) ((p)->lpVtbl->SetParavirtDebug(p, aParavirtDebug))
10300 #    define IMachine_get_CPUProfile(p, aCPUProfile) ((p)->lpVtbl->GetCPUProfile(p, aCPUProfile))
10301 #    define IMachine_GetCPUProfile(p, aCPUProfile) ((p)->lpVtbl->GetCPUProfile(p, aCPUProfile))
10302 #    define IMachine_put_CPUProfile(p, aCPUProfile) ((p)->lpVtbl->SetCPUProfile(p, aCPUProfile))
10303 #    define IMachine_SetCPUProfile(p, aCPUProfile) ((p)->lpVtbl->SetCPUProfile(p, aCPUProfile))
10304 #    define IMachine_LockMachine(p, aSession, aLockType) ((p)->lpVtbl->LockMachine(p, aSession, aLockType))
10305 #    define IMachine_LaunchVMProcess(p, aSession, aName, aEnvironmentChanges, aProgress) ((p)->lpVtbl->LaunchVMProcess(p, aSession, aName, aEnvironmentChanges, aProgress))
10306 #    define IMachine_SetBootOrder(p, aPosition, aDevice) ((p)->lpVtbl->SetBootOrder(p, aPosition, aDevice))
10307 #    define IMachine_GetBootOrder(p, aPosition, aDevice) ((p)->lpVtbl->GetBootOrder(p, aPosition, aDevice))
10308 #    define IMachine_AttachDevice(p, aName, aControllerPort, aDevice, aType, aMedium) ((p)->lpVtbl->AttachDevice(p, aName, aControllerPort, aDevice, aType, aMedium))
10309 #    define IMachine_AttachDeviceWithoutMedium(p, aName, aControllerPort, aDevice, aType) ((p)->lpVtbl->AttachDeviceWithoutMedium(p, aName, aControllerPort, aDevice, aType))
10310 #    define IMachine_DetachDevice(p, aName, aControllerPort, aDevice) ((p)->lpVtbl->DetachDevice(p, aName, aControllerPort, aDevice))
10311 #    define IMachine_PassthroughDevice(p, aName, aControllerPort, aDevice, aPassthrough) ((p)->lpVtbl->PassthroughDevice(p, aName, aControllerPort, aDevice, aPassthrough))
10312 #    define IMachine_TemporaryEjectDevice(p, aName, aControllerPort, aDevice, aTemporaryEject) ((p)->lpVtbl->TemporaryEjectDevice(p, aName, aControllerPort, aDevice, aTemporaryEject))
10313 #    define IMachine_NonRotationalDevice(p, aName, aControllerPort, aDevice, aNonRotational) ((p)->lpVtbl->NonRotationalDevice(p, aName, aControllerPort, aDevice, aNonRotational))
10314 #    define IMachine_SetAutoDiscardForDevice(p, aName, aControllerPort, aDevice, aDiscard) ((p)->lpVtbl->SetAutoDiscardForDevice(p, aName, aControllerPort, aDevice, aDiscard))
10315 #    define IMachine_SetHotPluggableForDevice(p, aName, aControllerPort, aDevice, aHotPluggable) ((p)->lpVtbl->SetHotPluggableForDevice(p, aName, aControllerPort, aDevice, aHotPluggable))
10316 #    define IMachine_SetBandwidthGroupForDevice(p, aName, aControllerPort, aDevice, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroupForDevice(p, aName, aControllerPort, aDevice, aBandwidthGroup))
10317 #    define IMachine_SetNoBandwidthGroupForDevice(p, aName, aControllerPort, aDevice) ((p)->lpVtbl->SetNoBandwidthGroupForDevice(p, aName, aControllerPort, aDevice))
10318 #    define IMachine_UnmountMedium(p, aName, aControllerPort, aDevice, aForce) ((p)->lpVtbl->UnmountMedium(p, aName, aControllerPort, aDevice, aForce))
10319 #    define IMachine_MountMedium(p, aName, aControllerPort, aDevice, aMedium, aForce) ((p)->lpVtbl->MountMedium(p, aName, aControllerPort, aDevice, aMedium, aForce))
10320 #    define IMachine_GetMedium(p, aName, aControllerPort, aDevice, aMedium) ((p)->lpVtbl->GetMedium(p, aName, aControllerPort, aDevice, aMedium))
10321 #    define IMachine_GetMediumAttachmentsOfController(p, aName, aMediumAttachments) ((p)->lpVtbl->GetMediumAttachmentsOfController(p, aName, aMediumAttachments))
10322 #    define IMachine_GetMediumAttachment(p, aName, aControllerPort, aDevice, aAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aName, aControllerPort, aDevice, aAttachment))
10323 #    define IMachine_AttachHostPCIDevice(p, aHostAddress, aDesiredGuestAddress, aTryToUnbind) ((p)->lpVtbl->AttachHostPCIDevice(p, aHostAddress, aDesiredGuestAddress, aTryToUnbind))
10324 #    define IMachine_DetachHostPCIDevice(p, aHostAddress) ((p)->lpVtbl->DetachHostPCIDevice(p, aHostAddress))
10325 #    define IMachine_GetNetworkAdapter(p, aSlot, aAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aSlot, aAdapter))
10326 #    define IMachine_AddStorageController(p, aName, aConnectionType, aController) ((p)->lpVtbl->AddStorageController(p, aName, aConnectionType, aController))
10327 #    define IMachine_GetStorageControllerByName(p, aName, aStorageController) ((p)->lpVtbl->GetStorageControllerByName(p, aName, aStorageController))
10328 #    define IMachine_GetStorageControllerByInstance(p, aConnectionType, aInstance, aStorageController) ((p)->lpVtbl->GetStorageControllerByInstance(p, aConnectionType, aInstance, aStorageController))
10329 #    define IMachine_RemoveStorageController(p, aName) ((p)->lpVtbl->RemoveStorageController(p, aName))
10330 #    define IMachine_SetStorageControllerBootable(p, aName, aBootable) ((p)->lpVtbl->SetStorageControllerBootable(p, aName, aBootable))
10331 #    define IMachine_AddUSBController(p, aName, aType, aController) ((p)->lpVtbl->AddUSBController(p, aName, aType, aController))
10332 #    define IMachine_RemoveUSBController(p, aName) ((p)->lpVtbl->RemoveUSBController(p, aName))
10333 #    define IMachine_GetUSBControllerByName(p, aName, aController) ((p)->lpVtbl->GetUSBControllerByName(p, aName, aController))
10334 #    define IMachine_GetUSBControllerCountByType(p, aType, aControllers) ((p)->lpVtbl->GetUSBControllerCountByType(p, aType, aControllers))
10335 #    define IMachine_GetSerialPort(p, aSlot, aPort) ((p)->lpVtbl->GetSerialPort(p, aSlot, aPort))
10336 #    define IMachine_GetParallelPort(p, aSlot, aPort) ((p)->lpVtbl->GetParallelPort(p, aSlot, aPort))
10337 #    define IMachine_GetExtraDataKeys(p, aKeys) ((p)->lpVtbl->GetExtraDataKeys(p, aKeys))
10338 #    define IMachine_GetExtraData(p, aKey, aValue) ((p)->lpVtbl->GetExtraData(p, aKey, aValue))
10339 #    define IMachine_SetExtraData(p, aKey, aValue) ((p)->lpVtbl->SetExtraData(p, aKey, aValue))
10340 #    define IMachine_GetCPUProperty(p, aProperty, aValue) ((p)->lpVtbl->GetCPUProperty(p, aProperty, aValue))
10341 #    define IMachine_SetCPUProperty(p, aProperty, aValue) ((p)->lpVtbl->SetCPUProperty(p, aProperty, aValue))
10342 #    define IMachine_GetCPUIDLeafByOrdinal(p, aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetCPUIDLeafByOrdinal(p, aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
10343 #    define IMachine_GetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
10344 #    define IMachine_SetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->SetCPUIDLeaf(p, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx))
10345 #    define IMachine_RemoveCPUIDLeaf(p, aIdx, aIdxSub) ((p)->lpVtbl->RemoveCPUIDLeaf(p, aIdx, aIdxSub))
10346 #    define IMachine_RemoveAllCPUIDLeaves(p) ((p)->lpVtbl->RemoveAllCPUIDLeaves(p))
10347 #    define IMachine_GetHWVirtExProperty(p, aProperty, aValue) ((p)->lpVtbl->GetHWVirtExProperty(p, aProperty, aValue))
10348 #    define IMachine_SetHWVirtExProperty(p, aProperty, aValue) ((p)->lpVtbl->SetHWVirtExProperty(p, aProperty, aValue))
10349 #    define IMachine_SetSettingsFilePath(p, aSettingsFilePath, aProgress) ((p)->lpVtbl->SetSettingsFilePath(p, aSettingsFilePath, aProgress))
10350 #    define IMachine_SaveSettings(p) ((p)->lpVtbl->SaveSettings(p))
10351 #    define IMachine_DiscardSettings(p) ((p)->lpVtbl->DiscardSettings(p))
10352 #    define IMachine_Unregister(p, aCleanupMode, aMedia) ((p)->lpVtbl->Unregister(p, aCleanupMode, aMedia))
10353 #    define IMachine_DeleteConfig(p, aMedia, aProgress) ((p)->lpVtbl->DeleteConfig(p, aMedia, aProgress))
10354 #    define IMachine_ExportTo(p, aAppliance, aLocation, aDescription) ((p)->lpVtbl->ExportTo(p, aAppliance, aLocation, aDescription))
10355 #    define IMachine_FindSnapshot(p, aNameOrId, aSnapshot) ((p)->lpVtbl->FindSnapshot(p, aNameOrId, aSnapshot))
10356 #    define IMachine_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint))
10357 #    define IMachine_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
10358 #    define IMachine_CanShowConsoleWindow(p, aCanShow) ((p)->lpVtbl->CanShowConsoleWindow(p, aCanShow))
10359 #    define IMachine_ShowConsoleWindow(p, aWinId) ((p)->lpVtbl->ShowConsoleWindow(p, aWinId))
10360 #    define IMachine_GetGuestProperty(p, aName, aValue, aTimestamp, aFlags) ((p)->lpVtbl->GetGuestProperty(p, aName, aValue, aTimestamp, aFlags))
10361 #    define IMachine_GetGuestPropertyValue(p, aProperty, aValue) ((p)->lpVtbl->GetGuestPropertyValue(p, aProperty, aValue))
10362 #    define IMachine_GetGuestPropertyTimestamp(p, aProperty, aValue) ((p)->lpVtbl->GetGuestPropertyTimestamp(p, aProperty, aValue))
10363 #    define IMachine_SetGuestProperty(p, aProperty, aValue, aFlags) ((p)->lpVtbl->SetGuestProperty(p, aProperty, aValue, aFlags))
10364 #    define IMachine_SetGuestPropertyValue(p, aProperty, aValue) ((p)->lpVtbl->SetGuestPropertyValue(p, aProperty, aValue))
10365 #    define IMachine_DeleteGuestProperty(p, aName) ((p)->lpVtbl->DeleteGuestProperty(p, aName))
10366 #    define IMachine_EnumerateGuestProperties(p, aPatterns, aNames, aValues, aTimestamps, aFlags) ((p)->lpVtbl->EnumerateGuestProperties(p, aPatterns, aNames, aValues, aTimestamps, aFlags))
10367 #    define IMachine_QuerySavedGuestScreenInfo(p, aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled) ((p)->lpVtbl->QuerySavedGuestScreenInfo(p, aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled))
10368 #    define IMachine_ReadSavedThumbnailToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData) ((p)->lpVtbl->ReadSavedThumbnailToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData))
10369 #    define IMachine_QuerySavedScreenshotInfo(p, aScreenId, aWidth, aHeight, aBitmapFormats) ((p)->lpVtbl->QuerySavedScreenshotInfo(p, aScreenId, aWidth, aHeight, aBitmapFormats))
10370 #    define IMachine_ReadSavedScreenshotToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData) ((p)->lpVtbl->ReadSavedScreenshotToArray(p, aScreenId, aBitmapFormat, aWidth, aHeight, aData))
10371 #    define IMachine_HotPlugCPU(p, aCpu) ((p)->lpVtbl->HotPlugCPU(p, aCpu))
10372 #    define IMachine_HotUnplugCPU(p, aCpu) ((p)->lpVtbl->HotUnplugCPU(p, aCpu))
10373 #    define IMachine_GetCPUStatus(p, aCpu, aAttached) ((p)->lpVtbl->GetCPUStatus(p, aCpu, aAttached))
10374 #    define IMachine_GetEffectiveParavirtProvider(p, aParavirtProvider) ((p)->lpVtbl->GetEffectiveParavirtProvider(p, aParavirtProvider))
10375 #    define IMachine_QueryLogFilename(p, aIdx, aFilename) ((p)->lpVtbl->QueryLogFilename(p, aIdx, aFilename))
10376 #    define IMachine_ReadLog(p, aIdx, aOffset, aSize, aData) ((p)->lpVtbl->ReadLog(p, aIdx, aOffset, aSize, aData))
10377 #    define IMachine_CloneTo(p, aTarget, aMode, aOptions, aProgress) ((p)->lpVtbl->CloneTo(p, aTarget, aMode, aOptions, aProgress))
10378 #    define IMachine_MoveTo(p, aFolder, aType, aProgress) ((p)->lpVtbl->MoveTo(p, aFolder, aType, aProgress))
10379 #    define IMachine_SaveState(p, aProgress) ((p)->lpVtbl->SaveState(p, aProgress))
10380 #    define IMachine_AdoptSavedState(p, aSavedStateFile) ((p)->lpVtbl->AdoptSavedState(p, aSavedStateFile))
10381 #    define IMachine_DiscardSavedState(p, aFRemoveFile) ((p)->lpVtbl->DiscardSavedState(p, aFRemoveFile))
10382 #    define IMachine_TakeSnapshot(p, aName, aDescription, aPause, aId, aProgress) ((p)->lpVtbl->TakeSnapshot(p, aName, aDescription, aPause, aId, aProgress))
10383 #    define IMachine_DeleteSnapshot(p, aId, aProgress) ((p)->lpVtbl->DeleteSnapshot(p, aId, aProgress))
10384 #    define IMachine_DeleteSnapshotAndAllChildren(p, aId, aProgress) ((p)->lpVtbl->DeleteSnapshotAndAllChildren(p, aId, aProgress))
10385 #    define IMachine_DeleteSnapshotRange(p, aStartId, aEndId, aProgress) ((p)->lpVtbl->DeleteSnapshotRange(p, aStartId, aEndId, aProgress))
10386 #    define IMachine_RestoreSnapshot(p, aSnapshot, aProgress) ((p)->lpVtbl->RestoreSnapshot(p, aSnapshot, aProgress))
10387 #    define IMachine_ApplyDefaults(p, aFlags) ((p)->lpVtbl->ApplyDefaults(p, aFlags))
10388 #   endif /* VBOX_WITH_GLUE */
10389 
10390 interface IMachine
10391 {
10392 #   ifndef VBOX_WITH_GLUE
10393     struct IMachine_vtbl *vtbl;
10394 #   else /* VBOX_WITH_GLUE */
10395     CONST_VTBL struct IMachineVtbl *lpVtbl;
10396 #   endif /* VBOX_WITH_GLUE */
10397 };
10398 /* End of struct IMachine declaration */
10399 
10400 
10401 /* Start of struct IEmulatedUSB declaration */
10402 #   define IEMULATEDUSB_IID_STR "6e253ee8-477a-2497-6759-88b8292a5af0"
10403 #   define IEMULATEDUSB_IID { \
10404     0x6e253ee8, 0x477a, 0x2497, \
10405     { 0x67, 0x59, 0x88, 0xb8, 0x29, 0x2a, 0x5a, 0xf0 } \
10406 }
10407 /* COM compatibility */
10408 VBOX_EXTERN_CONST(nsIID, IID_IEmulatedUSB);
10409 #   ifndef VBOX_WITH_GLUE
10410 struct IEmulatedUSB_vtbl
10411 {
10412     struct nsISupports_vtbl nsisupports;
10413 
10414     nsresult (*GetWebcams)(IEmulatedUSB *pThis, PRUint32 *webcamsSize, PRUnichar * **webcams);
10415 
10416     nsresult (*GetInternalAndReservedAttribute1IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10417 
10418     nsresult (*GetInternalAndReservedAttribute2IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10419 
10420     nsresult (*GetInternalAndReservedAttribute3IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10421 
10422     nsresult (*GetInternalAndReservedAttribute4IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10423 
10424     nsresult (*WebcamAttach)(
10425         IEmulatedUSB *pThis,
10426         PRUnichar * path,
10427         PRUnichar * settings
10428     );
10429 
10430     nsresult (*WebcamDetach)(
10431         IEmulatedUSB *pThis,
10432         PRUnichar * path
10433     );
10434 
10435     nsresult (*InternalAndReservedMethod1IEmulatedUSB)(IEmulatedUSB *pThis);
10436 
10437     nsresult (*InternalAndReservedMethod2IEmulatedUSB)(IEmulatedUSB *pThis);
10438 
10439     nsresult (*InternalAndReservedMethod3IEmulatedUSB)(IEmulatedUSB *pThis);
10440 
10441     nsresult (*InternalAndReservedMethod4IEmulatedUSB)(IEmulatedUSB *pThis);
10442 
10443 };
10444 #   else /* VBOX_WITH_GLUE */
10445 struct IEmulatedUSBVtbl
10446 {
10447     nsresult (*QueryInterface)(IEmulatedUSB *pThis, const nsID *iid, void **resultp);
10448     nsrefcnt (*AddRef)(IEmulatedUSB *pThis);
10449     nsrefcnt (*Release)(IEmulatedUSB *pThis);
10450     nsresult (*GetWebcams)(IEmulatedUSB *pThis, PRUint32 *webcamsSize, PRUnichar * **webcams);
10451 
10452     nsresult (*GetInternalAndReservedAttribute1IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10453 
10454     nsresult (*GetInternalAndReservedAttribute2IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10455 
10456     nsresult (*GetInternalAndReservedAttribute3IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10457 
10458     nsresult (*GetInternalAndReservedAttribute4IEmulatedUSB)(IEmulatedUSB *pThis, PRUint32 *reserved);
10459 
10460     nsresult (*WebcamAttach)(
10461         IEmulatedUSB *pThis,
10462         PRUnichar * path,
10463         PRUnichar * settings
10464     );
10465 
10466     nsresult (*WebcamDetach)(
10467         IEmulatedUSB *pThis,
10468         PRUnichar * path
10469     );
10470 
10471     nsresult (*InternalAndReservedMethod1IEmulatedUSB)(IEmulatedUSB *pThis);
10472 
10473     nsresult (*InternalAndReservedMethod2IEmulatedUSB)(IEmulatedUSB *pThis);
10474 
10475     nsresult (*InternalAndReservedMethod3IEmulatedUSB)(IEmulatedUSB *pThis);
10476 
10477     nsresult (*InternalAndReservedMethod4IEmulatedUSB)(IEmulatedUSB *pThis);
10478 
10479 };
10480 #    define IEmulatedUSB_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10481 #    define IEmulatedUSB_AddRef(p) ((p)->lpVtbl->AddRef(p))
10482 #    define IEmulatedUSB_Release(p) ((p)->lpVtbl->Release(p))
10483 #    define IEmulatedUSB_get_Webcams(p, aWebcams) ((p)->lpVtbl->GetWebcams(p, aWebcams))
10484 #    define IEmulatedUSB_GetWebcams(p, aWebcams) ((p)->lpVtbl->GetWebcams(p, aWebcams))
10485 #    define IEmulatedUSB_WebcamAttach(p, aPath, aSettings) ((p)->lpVtbl->WebcamAttach(p, aPath, aSettings))
10486 #    define IEmulatedUSB_WebcamDetach(p, aPath) ((p)->lpVtbl->WebcamDetach(p, aPath))
10487 #   endif /* VBOX_WITH_GLUE */
10488 
10489 interface IEmulatedUSB
10490 {
10491 #   ifndef VBOX_WITH_GLUE
10492     struct IEmulatedUSB_vtbl *vtbl;
10493 #   else /* VBOX_WITH_GLUE */
10494     CONST_VTBL struct IEmulatedUSBVtbl *lpVtbl;
10495 #   endif /* VBOX_WITH_GLUE */
10496 };
10497 /* End of struct IEmulatedUSB declaration */
10498 
10499 
10500 /* Start of struct IVRDEServerInfo declaration */
10501 #   define IVRDESERVERINFO_IID_STR "c39ef4d6-7532-45e8-96da-eb5986ae76e4"
10502 #   define IVRDESERVERINFO_IID { \
10503     0xc39ef4d6, 0x7532, 0x45e8, \
10504     { 0x96, 0xda, 0xeb, 0x59, 0x86, 0xae, 0x76, 0xe4 } \
10505 }
10506 /* COM compatibility */
10507 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerInfo);
10508 #   ifndef VBOX_WITH_GLUE
10509 struct IVRDEServerInfo_vtbl
10510 {
10511     struct nsISupports_vtbl nsisupports;
10512 
10513     nsresult (*GetActive)(IVRDEServerInfo *pThis, PRBool *active);
10514 
10515     nsresult (*GetPort)(IVRDEServerInfo *pThis, PRInt32 *port);
10516 
10517     nsresult (*GetNumberOfClients)(IVRDEServerInfo *pThis, PRUint32 *numberOfClients);
10518 
10519     nsresult (*GetBeginTime)(IVRDEServerInfo *pThis, PRInt64 *beginTime);
10520 
10521     nsresult (*GetEndTime)(IVRDEServerInfo *pThis, PRInt64 *endTime);
10522 
10523     nsresult (*GetBytesSent)(IVRDEServerInfo *pThis, PRInt64 *bytesSent);
10524 
10525     nsresult (*GetBytesSentTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesSentTotal);
10526 
10527     nsresult (*GetBytesReceived)(IVRDEServerInfo *pThis, PRInt64 *bytesReceived);
10528 
10529     nsresult (*GetBytesReceivedTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesReceivedTotal);
10530 
10531     nsresult (*GetUser)(IVRDEServerInfo *pThis, PRUnichar * *user);
10532 
10533     nsresult (*GetDomain)(IVRDEServerInfo *pThis, PRUnichar * *domain);
10534 
10535     nsresult (*GetClientName)(IVRDEServerInfo *pThis, PRUnichar * *clientName);
10536 
10537     nsresult (*GetClientIP)(IVRDEServerInfo *pThis, PRUnichar * *clientIP);
10538 
10539     nsresult (*GetClientVersion)(IVRDEServerInfo *pThis, PRUint32 *clientVersion);
10540 
10541     nsresult (*GetEncryptionStyle)(IVRDEServerInfo *pThis, PRUint32 *encryptionStyle);
10542 
10543     nsresult (*GetInternalAndReservedAttribute1IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10544 
10545     nsresult (*GetInternalAndReservedAttribute2IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10546 
10547     nsresult (*GetInternalAndReservedAttribute3IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10548 
10549     nsresult (*GetInternalAndReservedAttribute4IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10550 
10551     nsresult (*GetInternalAndReservedAttribute5IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10552 
10553     nsresult (*GetInternalAndReservedAttribute6IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10554 
10555     nsresult (*GetInternalAndReservedAttribute7IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10556 
10557     nsresult (*GetInternalAndReservedAttribute8IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10558 
10559 };
10560 #   else /* VBOX_WITH_GLUE */
10561 struct IVRDEServerInfoVtbl
10562 {
10563     nsresult (*QueryInterface)(IVRDEServerInfo *pThis, const nsID *iid, void **resultp);
10564     nsrefcnt (*AddRef)(IVRDEServerInfo *pThis);
10565     nsrefcnt (*Release)(IVRDEServerInfo *pThis);
10566     nsresult (*GetActive)(IVRDEServerInfo *pThis, PRBool *active);
10567 
10568     nsresult (*GetPort)(IVRDEServerInfo *pThis, PRInt32 *port);
10569 
10570     nsresult (*GetNumberOfClients)(IVRDEServerInfo *pThis, PRUint32 *numberOfClients);
10571 
10572     nsresult (*GetBeginTime)(IVRDEServerInfo *pThis, PRInt64 *beginTime);
10573 
10574     nsresult (*GetEndTime)(IVRDEServerInfo *pThis, PRInt64 *endTime);
10575 
10576     nsresult (*GetBytesSent)(IVRDEServerInfo *pThis, PRInt64 *bytesSent);
10577 
10578     nsresult (*GetBytesSentTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesSentTotal);
10579 
10580     nsresult (*GetBytesReceived)(IVRDEServerInfo *pThis, PRInt64 *bytesReceived);
10581 
10582     nsresult (*GetBytesReceivedTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesReceivedTotal);
10583 
10584     nsresult (*GetUser)(IVRDEServerInfo *pThis, PRUnichar * *user);
10585 
10586     nsresult (*GetDomain)(IVRDEServerInfo *pThis, PRUnichar * *domain);
10587 
10588     nsresult (*GetClientName)(IVRDEServerInfo *pThis, PRUnichar * *clientName);
10589 
10590     nsresult (*GetClientIP)(IVRDEServerInfo *pThis, PRUnichar * *clientIP);
10591 
10592     nsresult (*GetClientVersion)(IVRDEServerInfo *pThis, PRUint32 *clientVersion);
10593 
10594     nsresult (*GetEncryptionStyle)(IVRDEServerInfo *pThis, PRUint32 *encryptionStyle);
10595 
10596     nsresult (*GetInternalAndReservedAttribute1IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10597 
10598     nsresult (*GetInternalAndReservedAttribute2IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10599 
10600     nsresult (*GetInternalAndReservedAttribute3IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10601 
10602     nsresult (*GetInternalAndReservedAttribute4IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10603 
10604     nsresult (*GetInternalAndReservedAttribute5IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10605 
10606     nsresult (*GetInternalAndReservedAttribute6IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10607 
10608     nsresult (*GetInternalAndReservedAttribute7IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10609 
10610     nsresult (*GetInternalAndReservedAttribute8IVRDEServerInfo)(IVRDEServerInfo *pThis, PRUint32 *reserved);
10611 
10612 };
10613 #    define IVRDEServerInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
10614 #    define IVRDEServerInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
10615 #    define IVRDEServerInfo_Release(p) ((p)->lpVtbl->Release(p))
10616 #    define IVRDEServerInfo_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
10617 #    define IVRDEServerInfo_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
10618 #    define IVRDEServerInfo_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
10619 #    define IVRDEServerInfo_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
10620 #    define IVRDEServerInfo_get_NumberOfClients(p, aNumberOfClients) ((p)->lpVtbl->GetNumberOfClients(p, aNumberOfClients))
10621 #    define IVRDEServerInfo_GetNumberOfClients(p, aNumberOfClients) ((p)->lpVtbl->GetNumberOfClients(p, aNumberOfClients))
10622 #    define IVRDEServerInfo_get_BeginTime(p, aBeginTime) ((p)->lpVtbl->GetBeginTime(p, aBeginTime))
10623 #    define IVRDEServerInfo_GetBeginTime(p, aBeginTime) ((p)->lpVtbl->GetBeginTime(p, aBeginTime))
10624 #    define IVRDEServerInfo_get_EndTime(p, aEndTime) ((p)->lpVtbl->GetEndTime(p, aEndTime))
10625 #    define IVRDEServerInfo_GetEndTime(p, aEndTime) ((p)->lpVtbl->GetEndTime(p, aEndTime))
10626 #    define IVRDEServerInfo_get_BytesSent(p, aBytesSent) ((p)->lpVtbl->GetBytesSent(p, aBytesSent))
10627 #    define IVRDEServerInfo_GetBytesSent(p, aBytesSent) ((p)->lpVtbl->GetBytesSent(p, aBytesSent))
10628 #    define IVRDEServerInfo_get_BytesSentTotal(p, aBytesSentTotal) ((p)->lpVtbl->GetBytesSentTotal(p, aBytesSentTotal))
10629 #    define IVRDEServerInfo_GetBytesSentTotal(p, aBytesSentTotal) ((p)->lpVtbl->GetBytesSentTotal(p, aBytesSentTotal))
10630 #    define IVRDEServerInfo_get_BytesReceived(p, aBytesReceived) ((p)->lpVtbl->GetBytesReceived(p, aBytesReceived))
10631 #    define IVRDEServerInfo_GetBytesReceived(p, aBytesReceived) ((p)->lpVtbl->GetBytesReceived(p, aBytesReceived))
10632 #    define IVRDEServerInfo_get_BytesReceivedTotal(p, aBytesReceivedTotal) ((p)->lpVtbl->GetBytesReceivedTotal(p, aBytesReceivedTotal))
10633 #    define IVRDEServerInfo_GetBytesReceivedTotal(p, aBytesReceivedTotal) ((p)->lpVtbl->GetBytesReceivedTotal(p, aBytesReceivedTotal))
10634 #    define IVRDEServerInfo_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
10635 #    define IVRDEServerInfo_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
10636 #    define IVRDEServerInfo_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
10637 #    define IVRDEServerInfo_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
10638 #    define IVRDEServerInfo_get_ClientName(p, aClientName) ((p)->lpVtbl->GetClientName(p, aClientName))
10639 #    define IVRDEServerInfo_GetClientName(p, aClientName) ((p)->lpVtbl->GetClientName(p, aClientName))
10640 #    define IVRDEServerInfo_get_ClientIP(p, aClientIP) ((p)->lpVtbl->GetClientIP(p, aClientIP))
10641 #    define IVRDEServerInfo_GetClientIP(p, aClientIP) ((p)->lpVtbl->GetClientIP(p, aClientIP))
10642 #    define IVRDEServerInfo_get_ClientVersion(p, aClientVersion) ((p)->lpVtbl->GetClientVersion(p, aClientVersion))
10643 #    define IVRDEServerInfo_GetClientVersion(p, aClientVersion) ((p)->lpVtbl->GetClientVersion(p, aClientVersion))
10644 #    define IVRDEServerInfo_get_EncryptionStyle(p, aEncryptionStyle) ((p)->lpVtbl->GetEncryptionStyle(p, aEncryptionStyle))
10645 #    define IVRDEServerInfo_GetEncryptionStyle(p, aEncryptionStyle) ((p)->lpVtbl->GetEncryptionStyle(p, aEncryptionStyle))
10646 #   endif /* VBOX_WITH_GLUE */
10647 
10648 interface IVRDEServerInfo
10649 {
10650 #   ifndef VBOX_WITH_GLUE
10651     struct IVRDEServerInfo_vtbl *vtbl;
10652 #   else /* VBOX_WITH_GLUE */
10653     CONST_VTBL struct IVRDEServerInfoVtbl *lpVtbl;
10654 #   endif /* VBOX_WITH_GLUE */
10655 };
10656 /* End of struct IVRDEServerInfo declaration */
10657 
10658 
10659 /* Start of struct IConsole declaration */
10660 #   define ICONSOLE_IID_STR "872da645-4a9b-1727-bee2-5585105b9eed"
10661 #   define ICONSOLE_IID { \
10662     0x872da645, 0x4a9b, 0x1727, \
10663     { 0xbe, 0xe2, 0x55, 0x85, 0x10, 0x5b, 0x9e, 0xed } \
10664 }
10665 /* COM compatibility */
10666 VBOX_EXTERN_CONST(nsIID, IID_IConsole);
10667 #   ifndef VBOX_WITH_GLUE
10668 struct IConsole_vtbl
10669 {
10670     struct nsISupports_vtbl nsisupports;
10671 
10672     nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
10673 
10674     nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
10675 
10676     nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
10677 
10678     nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
10679 
10680     nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
10681 
10682     nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
10683 
10684     nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
10685 
10686     nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
10687 
10688     nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
10689 
10690     nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
10691 
10692     nsresult (*GetVRDEServerInfo)(IConsole *pThis, IVRDEServerInfo * *VRDEServerInfo);
10693 
10694     nsresult (*GetEventSource)(IConsole *pThis, IEventSource * *eventSource);
10695 
10696     nsresult (*GetAttachedPCIDevices)(IConsole *pThis, PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment * **attachedPCIDevices);
10697 
10698     nsresult (*GetUseHostClipboard)(IConsole *pThis, PRBool *useHostClipboard);
10699     nsresult (*SetUseHostClipboard)(IConsole *pThis, PRBool useHostClipboard);
10700 
10701     nsresult (*GetEmulatedUSB)(IConsole *pThis, IEmulatedUSB * *emulatedUSB);
10702 
10703     nsresult (*GetInternalAndReservedAttribute1IConsole)(IConsole *pThis, PRUint32 *reserved);
10704 
10705     nsresult (*GetInternalAndReservedAttribute2IConsole)(IConsole *pThis, PRUint32 *reserved);
10706 
10707     nsresult (*GetInternalAndReservedAttribute3IConsole)(IConsole *pThis, PRUint32 *reserved);
10708 
10709     nsresult (*GetInternalAndReservedAttribute4IConsole)(IConsole *pThis, PRUint32 *reserved);
10710 
10711     nsresult (*GetInternalAndReservedAttribute5IConsole)(IConsole *pThis, PRUint32 *reserved);
10712 
10713     nsresult (*GetInternalAndReservedAttribute6IConsole)(IConsole *pThis, PRUint32 *reserved);
10714 
10715     nsresult (*GetInternalAndReservedAttribute7IConsole)(IConsole *pThis, PRUint32 *reserved);
10716 
10717     nsresult (*GetInternalAndReservedAttribute8IConsole)(IConsole *pThis, PRUint32 *reserved);
10718 
10719     nsresult (*PowerUp)(
10720         IConsole *pThis,
10721         IProgress * * progress
10722     );
10723 
10724     nsresult (*PowerUpPaused)(
10725         IConsole *pThis,
10726         IProgress * * progress
10727     );
10728 
10729     nsresult (*PowerDown)(
10730         IConsole *pThis,
10731         IProgress * * progress
10732     );
10733 
10734     nsresult (*Reset)(IConsole *pThis );
10735 
10736     nsresult (*Pause)(IConsole *pThis );
10737 
10738     nsresult (*Resume)(IConsole *pThis );
10739 
10740     nsresult (*PowerButton)(IConsole *pThis );
10741 
10742     nsresult (*SleepButton)(IConsole *pThis );
10743 
10744     nsresult (*GetPowerButtonHandled)(
10745         IConsole *pThis,
10746         PRBool * handled
10747     );
10748 
10749     nsresult (*GetGuestEnteredACPIMode)(
10750         IConsole *pThis,
10751         PRBool * entered
10752     );
10753 
10754     nsresult (*GetDeviceActivity)(
10755         IConsole *pThis,
10756         PRUint32 typeSize,
10757         PRUint32* type,
10758         PRUint32 *activitySize,
10759         PRUint32** activity
10760     );
10761 
10762     nsresult (*AttachUSBDevice)(
10763         IConsole *pThis,
10764         PRUnichar * id,
10765         PRUnichar * captureFilename
10766     );
10767 
10768     nsresult (*DetachUSBDevice)(
10769         IConsole *pThis,
10770         PRUnichar * id,
10771         IUSBDevice * * device
10772     );
10773 
10774     nsresult (*FindUSBDeviceByAddress)(
10775         IConsole *pThis,
10776         PRUnichar * name,
10777         IUSBDevice * * device
10778     );
10779 
10780     nsresult (*FindUSBDeviceById)(
10781         IConsole *pThis,
10782         PRUnichar * id,
10783         IUSBDevice * * device
10784     );
10785 
10786     nsresult (*CreateSharedFolder)(
10787         IConsole *pThis,
10788         PRUnichar * name,
10789         PRUnichar * hostPath,
10790         PRBool writable,
10791         PRBool automount,
10792         PRUnichar * autoMountPoint
10793     );
10794 
10795     nsresult (*RemoveSharedFolder)(
10796         IConsole *pThis,
10797         PRUnichar * name
10798     );
10799 
10800     nsresult (*Teleport)(
10801         IConsole *pThis,
10802         PRUnichar * hostname,
10803         PRUint32 tcpport,
10804         PRUnichar * password,
10805         PRUint32 maxDowntime,
10806         IProgress * * progress
10807     );
10808 
10809     nsresult (*AddDiskEncryptionPassword)(
10810         IConsole *pThis,
10811         PRUnichar * id,
10812         PRUnichar * password,
10813         PRBool clearOnSuspend
10814     );
10815 
10816     nsresult (*AddDiskEncryptionPasswords)(
10817         IConsole *pThis,
10818         PRUint32 idsSize,
10819         PRUnichar ** ids,
10820         PRUint32 passwordsSize,
10821         PRUnichar ** passwords,
10822         PRBool clearOnSuspend
10823     );
10824 
10825     nsresult (*RemoveDiskEncryptionPassword)(
10826         IConsole *pThis,
10827         PRUnichar * id
10828     );
10829 
10830     nsresult (*ClearAllDiskEncryptionPasswords)(IConsole *pThis );
10831 
10832     nsresult (*InternalAndReservedMethod1IConsole)(IConsole *pThis);
10833 
10834     nsresult (*InternalAndReservedMethod2IConsole)(IConsole *pThis);
10835 
10836     nsresult (*InternalAndReservedMethod3IConsole)(IConsole *pThis);
10837 
10838     nsresult (*InternalAndReservedMethod4IConsole)(IConsole *pThis);
10839 
10840     nsresult (*InternalAndReservedMethod5IConsole)(IConsole *pThis);
10841 
10842     nsresult (*InternalAndReservedMethod6IConsole)(IConsole *pThis);
10843 
10844     nsresult (*InternalAndReservedMethod7IConsole)(IConsole *pThis);
10845 
10846     nsresult (*InternalAndReservedMethod8IConsole)(IConsole *pThis);
10847 
10848 };
10849 #   else /* VBOX_WITH_GLUE */
10850 struct IConsoleVtbl
10851 {
10852     nsresult (*QueryInterface)(IConsole *pThis, const nsID *iid, void **resultp);
10853     nsrefcnt (*AddRef)(IConsole *pThis);
10854     nsrefcnt (*Release)(IConsole *pThis);
10855     nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
10856 
10857     nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
10858 
10859     nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
10860 
10861     nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
10862 
10863     nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
10864 
10865     nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
10866 
10867     nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
10868 
10869     nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
10870 
10871     nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
10872 
10873     nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
10874 
10875     nsresult (*GetVRDEServerInfo)(IConsole *pThis, IVRDEServerInfo * *VRDEServerInfo);
10876 
10877     nsresult (*GetEventSource)(IConsole *pThis, IEventSource * *eventSource);
10878 
10879     nsresult (*GetAttachedPCIDevices)(IConsole *pThis, PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment * **attachedPCIDevices);
10880 
10881     nsresult (*GetUseHostClipboard)(IConsole *pThis, PRBool *useHostClipboard);
10882     nsresult (*SetUseHostClipboard)(IConsole *pThis, PRBool useHostClipboard);
10883 
10884     nsresult (*GetEmulatedUSB)(IConsole *pThis, IEmulatedUSB * *emulatedUSB);
10885 
10886     nsresult (*GetInternalAndReservedAttribute1IConsole)(IConsole *pThis, PRUint32 *reserved);
10887 
10888     nsresult (*GetInternalAndReservedAttribute2IConsole)(IConsole *pThis, PRUint32 *reserved);
10889 
10890     nsresult (*GetInternalAndReservedAttribute3IConsole)(IConsole *pThis, PRUint32 *reserved);
10891 
10892     nsresult (*GetInternalAndReservedAttribute4IConsole)(IConsole *pThis, PRUint32 *reserved);
10893 
10894     nsresult (*GetInternalAndReservedAttribute5IConsole)(IConsole *pThis, PRUint32 *reserved);
10895 
10896     nsresult (*GetInternalAndReservedAttribute6IConsole)(IConsole *pThis, PRUint32 *reserved);
10897 
10898     nsresult (*GetInternalAndReservedAttribute7IConsole)(IConsole *pThis, PRUint32 *reserved);
10899 
10900     nsresult (*GetInternalAndReservedAttribute8IConsole)(IConsole *pThis, PRUint32 *reserved);
10901 
10902     nsresult (*PowerUp)(
10903         IConsole *pThis,
10904         IProgress * * progress
10905     );
10906 
10907     nsresult (*PowerUpPaused)(
10908         IConsole *pThis,
10909         IProgress * * progress
10910     );
10911 
10912     nsresult (*PowerDown)(
10913         IConsole *pThis,
10914         IProgress * * progress
10915     );
10916 
10917     nsresult (*Reset)(IConsole *pThis );
10918 
10919     nsresult (*Pause)(IConsole *pThis );
10920 
10921     nsresult (*Resume)(IConsole *pThis );
10922 
10923     nsresult (*PowerButton)(IConsole *pThis );
10924 
10925     nsresult (*SleepButton)(IConsole *pThis );
10926 
10927     nsresult (*GetPowerButtonHandled)(
10928         IConsole *pThis,
10929         PRBool * handled
10930     );
10931 
10932     nsresult (*GetGuestEnteredACPIMode)(
10933         IConsole *pThis,
10934         PRBool * entered
10935     );
10936 
10937     nsresult (*GetDeviceActivity)(
10938         IConsole *pThis,
10939         PRUint32 typeSize,
10940         PRUint32* type,
10941         PRUint32 *activitySize,
10942         PRUint32** activity
10943     );
10944 
10945     nsresult (*AttachUSBDevice)(
10946         IConsole *pThis,
10947         PRUnichar * id,
10948         PRUnichar * captureFilename
10949     );
10950 
10951     nsresult (*DetachUSBDevice)(
10952         IConsole *pThis,
10953         PRUnichar * id,
10954         IUSBDevice * * device
10955     );
10956 
10957     nsresult (*FindUSBDeviceByAddress)(
10958         IConsole *pThis,
10959         PRUnichar * name,
10960         IUSBDevice * * device
10961     );
10962 
10963     nsresult (*FindUSBDeviceById)(
10964         IConsole *pThis,
10965         PRUnichar * id,
10966         IUSBDevice * * device
10967     );
10968 
10969     nsresult (*CreateSharedFolder)(
10970         IConsole *pThis,
10971         PRUnichar * name,
10972         PRUnichar * hostPath,
10973         PRBool writable,
10974         PRBool automount,
10975         PRUnichar * autoMountPoint
10976     );
10977 
10978     nsresult (*RemoveSharedFolder)(
10979         IConsole *pThis,
10980         PRUnichar * name
10981     );
10982 
10983     nsresult (*Teleport)(
10984         IConsole *pThis,
10985         PRUnichar * hostname,
10986         PRUint32 tcpport,
10987         PRUnichar * password,
10988         PRUint32 maxDowntime,
10989         IProgress * * progress
10990     );
10991 
10992     nsresult (*AddDiskEncryptionPassword)(
10993         IConsole *pThis,
10994         PRUnichar * id,
10995         PRUnichar * password,
10996         PRBool clearOnSuspend
10997     );
10998 
10999     nsresult (*AddDiskEncryptionPasswords)(
11000         IConsole *pThis,
11001         PRUint32 idsSize,
11002         PRUnichar ** ids,
11003         PRUint32 passwordsSize,
11004         PRUnichar ** passwords,
11005         PRBool clearOnSuspend
11006     );
11007 
11008     nsresult (*RemoveDiskEncryptionPassword)(
11009         IConsole *pThis,
11010         PRUnichar * id
11011     );
11012 
11013     nsresult (*ClearAllDiskEncryptionPasswords)(IConsole *pThis );
11014 
11015     nsresult (*InternalAndReservedMethod1IConsole)(IConsole *pThis);
11016 
11017     nsresult (*InternalAndReservedMethod2IConsole)(IConsole *pThis);
11018 
11019     nsresult (*InternalAndReservedMethod3IConsole)(IConsole *pThis);
11020 
11021     nsresult (*InternalAndReservedMethod4IConsole)(IConsole *pThis);
11022 
11023     nsresult (*InternalAndReservedMethod5IConsole)(IConsole *pThis);
11024 
11025     nsresult (*InternalAndReservedMethod6IConsole)(IConsole *pThis);
11026 
11027     nsresult (*InternalAndReservedMethod7IConsole)(IConsole *pThis);
11028 
11029     nsresult (*InternalAndReservedMethod8IConsole)(IConsole *pThis);
11030 
11031 };
11032 #    define IConsole_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11033 #    define IConsole_AddRef(p) ((p)->lpVtbl->AddRef(p))
11034 #    define IConsole_Release(p) ((p)->lpVtbl->Release(p))
11035 #    define IConsole_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
11036 #    define IConsole_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
11037 #    define IConsole_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
11038 #    define IConsole_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
11039 #    define IConsole_get_Guest(p, aGuest) ((p)->lpVtbl->GetGuest(p, aGuest))
11040 #    define IConsole_GetGuest(p, aGuest) ((p)->lpVtbl->GetGuest(p, aGuest))
11041 #    define IConsole_get_Keyboard(p, aKeyboard) ((p)->lpVtbl->GetKeyboard(p, aKeyboard))
11042 #    define IConsole_GetKeyboard(p, aKeyboard) ((p)->lpVtbl->GetKeyboard(p, aKeyboard))
11043 #    define IConsole_get_Mouse(p, aMouse) ((p)->lpVtbl->GetMouse(p, aMouse))
11044 #    define IConsole_GetMouse(p, aMouse) ((p)->lpVtbl->GetMouse(p, aMouse))
11045 #    define IConsole_get_Display(p, aDisplay) ((p)->lpVtbl->GetDisplay(p, aDisplay))
11046 #    define IConsole_GetDisplay(p, aDisplay) ((p)->lpVtbl->GetDisplay(p, aDisplay))
11047 #    define IConsole_get_Debugger(p, aDebugger) ((p)->lpVtbl->GetDebugger(p, aDebugger))
11048 #    define IConsole_GetDebugger(p, aDebugger) ((p)->lpVtbl->GetDebugger(p, aDebugger))
11049 #    define IConsole_get_USBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
11050 #    define IConsole_GetUSBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
11051 #    define IConsole_get_RemoteUSBDevices(p, aRemoteUSBDevices) ((p)->lpVtbl->GetRemoteUSBDevices(p, aRemoteUSBDevices))
11052 #    define IConsole_GetRemoteUSBDevices(p, aRemoteUSBDevices) ((p)->lpVtbl->GetRemoteUSBDevices(p, aRemoteUSBDevices))
11053 #    define IConsole_get_SharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
11054 #    define IConsole_GetSharedFolders(p, aSharedFolders) ((p)->lpVtbl->GetSharedFolders(p, aSharedFolders))
11055 #    define IConsole_get_VRDEServerInfo(p, aVRDEServerInfo) ((p)->lpVtbl->GetVRDEServerInfo(p, aVRDEServerInfo))
11056 #    define IConsole_GetVRDEServerInfo(p, aVRDEServerInfo) ((p)->lpVtbl->GetVRDEServerInfo(p, aVRDEServerInfo))
11057 #    define IConsole_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
11058 #    define IConsole_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
11059 #    define IConsole_get_AttachedPCIDevices(p, aAttachedPCIDevices) ((p)->lpVtbl->GetAttachedPCIDevices(p, aAttachedPCIDevices))
11060 #    define IConsole_GetAttachedPCIDevices(p, aAttachedPCIDevices) ((p)->lpVtbl->GetAttachedPCIDevices(p, aAttachedPCIDevices))
11061 #    define IConsole_get_UseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->GetUseHostClipboard(p, aUseHostClipboard))
11062 #    define IConsole_GetUseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->GetUseHostClipboard(p, aUseHostClipboard))
11063 #    define IConsole_put_UseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->SetUseHostClipboard(p, aUseHostClipboard))
11064 #    define IConsole_SetUseHostClipboard(p, aUseHostClipboard) ((p)->lpVtbl->SetUseHostClipboard(p, aUseHostClipboard))
11065 #    define IConsole_get_EmulatedUSB(p, aEmulatedUSB) ((p)->lpVtbl->GetEmulatedUSB(p, aEmulatedUSB))
11066 #    define IConsole_GetEmulatedUSB(p, aEmulatedUSB) ((p)->lpVtbl->GetEmulatedUSB(p, aEmulatedUSB))
11067 #    define IConsole_PowerUp(p, aProgress) ((p)->lpVtbl->PowerUp(p, aProgress))
11068 #    define IConsole_PowerUpPaused(p, aProgress) ((p)->lpVtbl->PowerUpPaused(p, aProgress))
11069 #    define IConsole_PowerDown(p, aProgress) ((p)->lpVtbl->PowerDown(p, aProgress))
11070 #    define IConsole_Reset(p) ((p)->lpVtbl->Reset(p))
11071 #    define IConsole_Pause(p) ((p)->lpVtbl->Pause(p))
11072 #    define IConsole_Resume(p) ((p)->lpVtbl->Resume(p))
11073 #    define IConsole_PowerButton(p) ((p)->lpVtbl->PowerButton(p))
11074 #    define IConsole_SleepButton(p) ((p)->lpVtbl->SleepButton(p))
11075 #    define IConsole_GetPowerButtonHandled(p, aHandled) ((p)->lpVtbl->GetPowerButtonHandled(p, aHandled))
11076 #    define IConsole_GetGuestEnteredACPIMode(p, aEntered) ((p)->lpVtbl->GetGuestEnteredACPIMode(p, aEntered))
11077 #    define IConsole_GetDeviceActivity(p, aType, aActivity) ((p)->lpVtbl->GetDeviceActivity(p, aType, aActivity))
11078 #    define IConsole_AttachUSBDevice(p, aId, aCaptureFilename) ((p)->lpVtbl->AttachUSBDevice(p, aId, aCaptureFilename))
11079 #    define IConsole_DetachUSBDevice(p, aId, aDevice) ((p)->lpVtbl->DetachUSBDevice(p, aId, aDevice))
11080 #    define IConsole_FindUSBDeviceByAddress(p, aName, aDevice) ((p)->lpVtbl->FindUSBDeviceByAddress(p, aName, aDevice))
11081 #    define IConsole_FindUSBDeviceById(p, aId, aDevice) ((p)->lpVtbl->FindUSBDeviceById(p, aId, aDevice))
11082 #    define IConsole_CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint) ((p)->lpVtbl->CreateSharedFolder(p, aName, aHostPath, aWritable, aAutomount, aAutoMountPoint))
11083 #    define IConsole_RemoveSharedFolder(p, aName) ((p)->lpVtbl->RemoveSharedFolder(p, aName))
11084 #    define IConsole_Teleport(p, aHostname, aTcpport, aPassword, aMaxDowntime, aProgress) ((p)->lpVtbl->Teleport(p, aHostname, aTcpport, aPassword, aMaxDowntime, aProgress))
11085 #    define IConsole_AddDiskEncryptionPassword(p, aId, aPassword, aClearOnSuspend) ((p)->lpVtbl->AddDiskEncryptionPassword(p, aId, aPassword, aClearOnSuspend))
11086 #    define IConsole_AddDiskEncryptionPasswords(p, aIds, aPasswords, aClearOnSuspend) ((p)->lpVtbl->AddDiskEncryptionPasswords(p, aIds, aPasswords, aClearOnSuspend))
11087 #    define IConsole_RemoveDiskEncryptionPassword(p, aId) ((p)->lpVtbl->RemoveDiskEncryptionPassword(p, aId))
11088 #    define IConsole_ClearAllDiskEncryptionPasswords(p) ((p)->lpVtbl->ClearAllDiskEncryptionPasswords(p))
11089 #   endif /* VBOX_WITH_GLUE */
11090 
11091 interface IConsole
11092 {
11093 #   ifndef VBOX_WITH_GLUE
11094     struct IConsole_vtbl *vtbl;
11095 #   else /* VBOX_WITH_GLUE */
11096     CONST_VTBL struct IConsoleVtbl *lpVtbl;
11097 #   endif /* VBOX_WITH_GLUE */
11098 };
11099 /* End of struct IConsole declaration */
11100 
11101 
11102 /* Start of struct IHostNetworkInterface declaration */
11103 #   define IHOSTNETWORKINTERFACE_IID_STR "455f8c45-44a0-a470-ba20-27890b96dba9"
11104 #   define IHOSTNETWORKINTERFACE_IID { \
11105     0x455f8c45, 0x44a0, 0xa470, \
11106     { 0xba, 0x20, 0x27, 0x89, 0x0b, 0x96, 0xdb, 0xa9 } \
11107 }
11108 /* COM compatibility */
11109 VBOX_EXTERN_CONST(nsIID, IID_IHostNetworkInterface);
11110 #   ifndef VBOX_WITH_GLUE
11111 struct IHostNetworkInterface_vtbl
11112 {
11113     struct nsISupports_vtbl nsisupports;
11114 
11115     nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
11116 
11117     nsresult (*GetShortName)(IHostNetworkInterface *pThis, PRUnichar * *shortName);
11118 
11119     nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
11120 
11121     nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
11122 
11123     nsresult (*GetDHCPEnabled)(IHostNetworkInterface *pThis, PRBool *DHCPEnabled);
11124 
11125     nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
11126 
11127     nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
11128 
11129     nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
11130 
11131     nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
11132 
11133     nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
11134 
11135     nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
11136 
11137     nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
11138 
11139     nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
11140 
11141     nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
11142 
11143     nsresult (*GetWireless)(IHostNetworkInterface *pThis, PRBool *wireless);
11144 
11145     nsresult (*GetInternalAndReservedAttribute1IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11146 
11147     nsresult (*GetInternalAndReservedAttribute2IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11148 
11149     nsresult (*GetInternalAndReservedAttribute3IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11150 
11151     nsresult (*GetInternalAndReservedAttribute4IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11152 
11153     nsresult (*EnableStaticIPConfig)(
11154         IHostNetworkInterface *pThis,
11155         PRUnichar * IPAddress,
11156         PRUnichar * networkMask
11157     );
11158 
11159     nsresult (*EnableStaticIPConfigV6)(
11160         IHostNetworkInterface *pThis,
11161         PRUnichar * IPV6Address,
11162         PRUint32 IPV6NetworkMaskPrefixLength
11163     );
11164 
11165     nsresult (*EnableDynamicIPConfig)(IHostNetworkInterface *pThis );
11166 
11167     nsresult (*DHCPRediscover)(IHostNetworkInterface *pThis );
11168 
11169     nsresult (*InternalAndReservedMethod1IHostNetworkInterface)(IHostNetworkInterface *pThis);
11170 
11171     nsresult (*InternalAndReservedMethod2IHostNetworkInterface)(IHostNetworkInterface *pThis);
11172 
11173 };
11174 #   else /* VBOX_WITH_GLUE */
11175 struct IHostNetworkInterfaceVtbl
11176 {
11177     nsresult (*QueryInterface)(IHostNetworkInterface *pThis, const nsID *iid, void **resultp);
11178     nsrefcnt (*AddRef)(IHostNetworkInterface *pThis);
11179     nsrefcnt (*Release)(IHostNetworkInterface *pThis);
11180     nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
11181 
11182     nsresult (*GetShortName)(IHostNetworkInterface *pThis, PRUnichar * *shortName);
11183 
11184     nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
11185 
11186     nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
11187 
11188     nsresult (*GetDHCPEnabled)(IHostNetworkInterface *pThis, PRBool *DHCPEnabled);
11189 
11190     nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
11191 
11192     nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
11193 
11194     nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
11195 
11196     nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
11197 
11198     nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
11199 
11200     nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
11201 
11202     nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
11203 
11204     nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
11205 
11206     nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
11207 
11208     nsresult (*GetWireless)(IHostNetworkInterface *pThis, PRBool *wireless);
11209 
11210     nsresult (*GetInternalAndReservedAttribute1IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11211 
11212     nsresult (*GetInternalAndReservedAttribute2IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11213 
11214     nsresult (*GetInternalAndReservedAttribute3IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11215 
11216     nsresult (*GetInternalAndReservedAttribute4IHostNetworkInterface)(IHostNetworkInterface *pThis, PRUint32 *reserved);
11217 
11218     nsresult (*EnableStaticIPConfig)(
11219         IHostNetworkInterface *pThis,
11220         PRUnichar * IPAddress,
11221         PRUnichar * networkMask
11222     );
11223 
11224     nsresult (*EnableStaticIPConfigV6)(
11225         IHostNetworkInterface *pThis,
11226         PRUnichar * IPV6Address,
11227         PRUint32 IPV6NetworkMaskPrefixLength
11228     );
11229 
11230     nsresult (*EnableDynamicIPConfig)(IHostNetworkInterface *pThis );
11231 
11232     nsresult (*DHCPRediscover)(IHostNetworkInterface *pThis );
11233 
11234     nsresult (*InternalAndReservedMethod1IHostNetworkInterface)(IHostNetworkInterface *pThis);
11235 
11236     nsresult (*InternalAndReservedMethod2IHostNetworkInterface)(IHostNetworkInterface *pThis);
11237 
11238 };
11239 #    define IHostNetworkInterface_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11240 #    define IHostNetworkInterface_AddRef(p) ((p)->lpVtbl->AddRef(p))
11241 #    define IHostNetworkInterface_Release(p) ((p)->lpVtbl->Release(p))
11242 #    define IHostNetworkInterface_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
11243 #    define IHostNetworkInterface_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
11244 #    define IHostNetworkInterface_get_ShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
11245 #    define IHostNetworkInterface_GetShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
11246 #    define IHostNetworkInterface_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
11247 #    define IHostNetworkInterface_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
11248 #    define IHostNetworkInterface_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
11249 #    define IHostNetworkInterface_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
11250 #    define IHostNetworkInterface_get_DHCPEnabled(p, aDHCPEnabled) ((p)->lpVtbl->GetDHCPEnabled(p, aDHCPEnabled))
11251 #    define IHostNetworkInterface_GetDHCPEnabled(p, aDHCPEnabled) ((p)->lpVtbl->GetDHCPEnabled(p, aDHCPEnabled))
11252 #    define IHostNetworkInterface_get_IPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
11253 #    define IHostNetworkInterface_GetIPAddress(p, aIPAddress) ((p)->lpVtbl->GetIPAddress(p, aIPAddress))
11254 #    define IHostNetworkInterface_get_NetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
11255 #    define IHostNetworkInterface_GetNetworkMask(p, aNetworkMask) ((p)->lpVtbl->GetNetworkMask(p, aNetworkMask))
11256 #    define IHostNetworkInterface_get_IPV6Supported(p, aIPV6Supported) ((p)->lpVtbl->GetIPV6Supported(p, aIPV6Supported))
11257 #    define IHostNetworkInterface_GetIPV6Supported(p, aIPV6Supported) ((p)->lpVtbl->GetIPV6Supported(p, aIPV6Supported))
11258 #    define IHostNetworkInterface_get_IPV6Address(p, aIPV6Address) ((p)->lpVtbl->GetIPV6Address(p, aIPV6Address))
11259 #    define IHostNetworkInterface_GetIPV6Address(p, aIPV6Address) ((p)->lpVtbl->GetIPV6Address(p, aIPV6Address))
11260 #    define IHostNetworkInterface_get_IPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength))
11261 #    define IHostNetworkInterface_GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->GetIPV6NetworkMaskPrefixLength(p, aIPV6NetworkMaskPrefixLength))
11262 #    define IHostNetworkInterface_get_HardwareAddress(p, aHardwareAddress) ((p)->lpVtbl->GetHardwareAddress(p, aHardwareAddress))
11263 #    define IHostNetworkInterface_GetHardwareAddress(p, aHardwareAddress) ((p)->lpVtbl->GetHardwareAddress(p, aHardwareAddress))
11264 #    define IHostNetworkInterface_get_MediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
11265 #    define IHostNetworkInterface_GetMediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
11266 #    define IHostNetworkInterface_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
11267 #    define IHostNetworkInterface_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
11268 #    define IHostNetworkInterface_get_InterfaceType(p, aInterfaceType) ((p)->lpVtbl->GetInterfaceType(p, aInterfaceType))
11269 #    define IHostNetworkInterface_GetInterfaceType(p, aInterfaceType) ((p)->lpVtbl->GetInterfaceType(p, aInterfaceType))
11270 #    define IHostNetworkInterface_get_Wireless(p, aWireless) ((p)->lpVtbl->GetWireless(p, aWireless))
11271 #    define IHostNetworkInterface_GetWireless(p, aWireless) ((p)->lpVtbl->GetWireless(p, aWireless))
11272 #    define IHostNetworkInterface_EnableStaticIPConfig(p, aIPAddress, aNetworkMask) ((p)->lpVtbl->EnableStaticIPConfig(p, aIPAddress, aNetworkMask))
11273 #    define IHostNetworkInterface_EnableStaticIPConfigV6(p, aIPV6Address, aIPV6NetworkMaskPrefixLength) ((p)->lpVtbl->EnableStaticIPConfigV6(p, aIPV6Address, aIPV6NetworkMaskPrefixLength))
11274 #    define IHostNetworkInterface_EnableDynamicIPConfig(p) ((p)->lpVtbl->EnableDynamicIPConfig(p))
11275 #    define IHostNetworkInterface_DHCPRediscover(p) ((p)->lpVtbl->DHCPRediscover(p))
11276 #   endif /* VBOX_WITH_GLUE */
11277 
11278 interface IHostNetworkInterface
11279 {
11280 #   ifndef VBOX_WITH_GLUE
11281     struct IHostNetworkInterface_vtbl *vtbl;
11282 #   else /* VBOX_WITH_GLUE */
11283     CONST_VTBL struct IHostNetworkInterfaceVtbl *lpVtbl;
11284 #   endif /* VBOX_WITH_GLUE */
11285 };
11286 /* End of struct IHostNetworkInterface declaration */
11287 
11288 
11289 /* Start of struct IHostVideoInputDevice declaration */
11290 #   define IHOSTVIDEOINPUTDEVICE_IID_STR "e8c25d4d-ac97-4c16-b3e2-81bd8a57cc27"
11291 #   define IHOSTVIDEOINPUTDEVICE_IID { \
11292     0xe8c25d4d, 0xac97, 0x4c16, \
11293     { 0xb3, 0xe2, 0x81, 0xbd, 0x8a, 0x57, 0xcc, 0x27 } \
11294 }
11295 /* COM compatibility */
11296 VBOX_EXTERN_CONST(nsIID, IID_IHostVideoInputDevice);
11297 #   ifndef VBOX_WITH_GLUE
11298 struct IHostVideoInputDevice_vtbl
11299 {
11300     struct nsISupports_vtbl nsisupports;
11301 
11302     nsresult (*GetName)(IHostVideoInputDevice *pThis, PRUnichar * *name);
11303 
11304     nsresult (*GetPath)(IHostVideoInputDevice *pThis, PRUnichar * *path);
11305 
11306     nsresult (*GetAlias)(IHostVideoInputDevice *pThis, PRUnichar * *alias);
11307 
11308     nsresult (*GetInternalAndReservedAttribute1IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11309 
11310     nsresult (*GetInternalAndReservedAttribute2IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11311 
11312     nsresult (*GetInternalAndReservedAttribute3IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11313 
11314     nsresult (*GetInternalAndReservedAttribute4IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11315 
11316 };
11317 #   else /* VBOX_WITH_GLUE */
11318 struct IHostVideoInputDeviceVtbl
11319 {
11320     nsresult (*QueryInterface)(IHostVideoInputDevice *pThis, const nsID *iid, void **resultp);
11321     nsrefcnt (*AddRef)(IHostVideoInputDevice *pThis);
11322     nsrefcnt (*Release)(IHostVideoInputDevice *pThis);
11323     nsresult (*GetName)(IHostVideoInputDevice *pThis, PRUnichar * *name);
11324 
11325     nsresult (*GetPath)(IHostVideoInputDevice *pThis, PRUnichar * *path);
11326 
11327     nsresult (*GetAlias)(IHostVideoInputDevice *pThis, PRUnichar * *alias);
11328 
11329     nsresult (*GetInternalAndReservedAttribute1IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11330 
11331     nsresult (*GetInternalAndReservedAttribute2IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11332 
11333     nsresult (*GetInternalAndReservedAttribute3IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11334 
11335     nsresult (*GetInternalAndReservedAttribute4IHostVideoInputDevice)(IHostVideoInputDevice *pThis, PRUint32 *reserved);
11336 
11337 };
11338 #    define IHostVideoInputDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11339 #    define IHostVideoInputDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
11340 #    define IHostVideoInputDevice_Release(p) ((p)->lpVtbl->Release(p))
11341 #    define IHostVideoInputDevice_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
11342 #    define IHostVideoInputDevice_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
11343 #    define IHostVideoInputDevice_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
11344 #    define IHostVideoInputDevice_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
11345 #    define IHostVideoInputDevice_get_Alias(p, aAlias) ((p)->lpVtbl->GetAlias(p, aAlias))
11346 #    define IHostVideoInputDevice_GetAlias(p, aAlias) ((p)->lpVtbl->GetAlias(p, aAlias))
11347 #   endif /* VBOX_WITH_GLUE */
11348 
11349 interface IHostVideoInputDevice
11350 {
11351 #   ifndef VBOX_WITH_GLUE
11352     struct IHostVideoInputDevice_vtbl *vtbl;
11353 #   else /* VBOX_WITH_GLUE */
11354     CONST_VTBL struct IHostVideoInputDeviceVtbl *lpVtbl;
11355 #   endif /* VBOX_WITH_GLUE */
11356 };
11357 /* End of struct IHostVideoInputDevice declaration */
11358 
11359 
11360 /* Start of struct IHostUpdate declaration */
11361 #   define IHOSTUPDATE_IID_STR "6fa2671b-0547-448e-bc7c-94e9e173bf57"
11362 #   define IHOSTUPDATE_IID { \
11363     0x6fa2671b, 0x0547, 0x448e, \
11364     { 0xbc, 0x7c, 0x94, 0xe9, 0xe1, 0x73, 0xbf, 0x57 } \
11365 }
11366 /* COM compatibility */
11367 VBOX_EXTERN_CONST(nsIID, IID_IHostUpdate);
11368 #   ifndef VBOX_WITH_GLUE
11369 struct IHostUpdate_vtbl
11370 {
11371     struct nsISupports_vtbl nsisupports;
11372 
11373     nsresult (*GetInternalAndReservedAttribute1IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11374 
11375     nsresult (*GetInternalAndReservedAttribute2IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11376 
11377     nsresult (*GetInternalAndReservedAttribute3IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11378 
11379     nsresult (*GetInternalAndReservedAttribute4IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11380 
11381     nsresult (*GetInternalAndReservedAttribute5IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11382 
11383     nsresult (*GetInternalAndReservedAttribute6IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11384 
11385     nsresult (*GetInternalAndReservedAttribute7IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11386 
11387     nsresult (*GetInternalAndReservedAttribute8IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11388 
11389     nsresult (*GetInternalAndReservedAttribute9IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11390 
11391     nsresult (*GetInternalAndReservedAttribute10IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11392 
11393     nsresult (*GetInternalAndReservedAttribute11IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11394 
11395     nsresult (*GetInternalAndReservedAttribute12IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11396 
11397     nsresult (*GetInternalAndReservedAttribute13IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11398 
11399     nsresult (*GetInternalAndReservedAttribute14IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11400 
11401     nsresult (*GetInternalAndReservedAttribute15IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11402 
11403     nsresult (*GetInternalAndReservedAttribute16IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11404 
11405     nsresult (*GetInternalAndReservedAttribute17IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11406 
11407     nsresult (*GetInternalAndReservedAttribute18IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11408 
11409     nsresult (*GetInternalAndReservedAttribute19IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11410 
11411     nsresult (*GetInternalAndReservedAttribute20IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11412 
11413     nsresult (*GetInternalAndReservedAttribute21IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11414 
11415     nsresult (*GetInternalAndReservedAttribute22IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11416 
11417     nsresult (*GetInternalAndReservedAttribute23IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11418 
11419     nsresult (*GetInternalAndReservedAttribute24IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11420 
11421     nsresult (*InternalAndReservedMethod1IHostUpdate)(IHostUpdate *pThis);
11422 
11423     nsresult (*InternalAndReservedMethod2IHostUpdate)(IHostUpdate *pThis);
11424 
11425     nsresult (*InternalAndReservedMethod3IHostUpdate)(IHostUpdate *pThis);
11426 
11427     nsresult (*InternalAndReservedMethod4IHostUpdate)(IHostUpdate *pThis);
11428 
11429     nsresult (*InternalAndReservedMethod5IHostUpdate)(IHostUpdate *pThis);
11430 
11431     nsresult (*InternalAndReservedMethod6IHostUpdate)(IHostUpdate *pThis);
11432 
11433     nsresult (*InternalAndReservedMethod7IHostUpdate)(IHostUpdate *pThis);
11434 
11435     nsresult (*InternalAndReservedMethod8IHostUpdate)(IHostUpdate *pThis);
11436 
11437     nsresult (*InternalAndReservedMethod9IHostUpdate)(IHostUpdate *pThis);
11438 
11439     nsresult (*InternalAndReservedMethod10IHostUpdate)(IHostUpdate *pThis);
11440 
11441     nsresult (*InternalAndReservedMethod11IHostUpdate)(IHostUpdate *pThis);
11442 
11443     nsresult (*InternalAndReservedMethod12IHostUpdate)(IHostUpdate *pThis);
11444 
11445 };
11446 #   else /* VBOX_WITH_GLUE */
11447 struct IHostUpdateVtbl
11448 {
11449     nsresult (*QueryInterface)(IHostUpdate *pThis, const nsID *iid, void **resultp);
11450     nsrefcnt (*AddRef)(IHostUpdate *pThis);
11451     nsrefcnt (*Release)(IHostUpdate *pThis);
11452     nsresult (*GetInternalAndReservedAttribute1IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11453 
11454     nsresult (*GetInternalAndReservedAttribute2IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11455 
11456     nsresult (*GetInternalAndReservedAttribute3IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11457 
11458     nsresult (*GetInternalAndReservedAttribute4IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11459 
11460     nsresult (*GetInternalAndReservedAttribute5IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11461 
11462     nsresult (*GetInternalAndReservedAttribute6IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11463 
11464     nsresult (*GetInternalAndReservedAttribute7IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11465 
11466     nsresult (*GetInternalAndReservedAttribute8IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11467 
11468     nsresult (*GetInternalAndReservedAttribute9IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11469 
11470     nsresult (*GetInternalAndReservedAttribute10IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11471 
11472     nsresult (*GetInternalAndReservedAttribute11IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11473 
11474     nsresult (*GetInternalAndReservedAttribute12IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11475 
11476     nsresult (*GetInternalAndReservedAttribute13IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11477 
11478     nsresult (*GetInternalAndReservedAttribute14IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11479 
11480     nsresult (*GetInternalAndReservedAttribute15IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11481 
11482     nsresult (*GetInternalAndReservedAttribute16IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11483 
11484     nsresult (*GetInternalAndReservedAttribute17IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11485 
11486     nsresult (*GetInternalAndReservedAttribute18IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11487 
11488     nsresult (*GetInternalAndReservedAttribute19IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11489 
11490     nsresult (*GetInternalAndReservedAttribute20IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11491 
11492     nsresult (*GetInternalAndReservedAttribute21IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11493 
11494     nsresult (*GetInternalAndReservedAttribute22IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11495 
11496     nsresult (*GetInternalAndReservedAttribute23IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11497 
11498     nsresult (*GetInternalAndReservedAttribute24IHostUpdate)(IHostUpdate *pThis, PRUint32 *reserved);
11499 
11500     nsresult (*InternalAndReservedMethod1IHostUpdate)(IHostUpdate *pThis);
11501 
11502     nsresult (*InternalAndReservedMethod2IHostUpdate)(IHostUpdate *pThis);
11503 
11504     nsresult (*InternalAndReservedMethod3IHostUpdate)(IHostUpdate *pThis);
11505 
11506     nsresult (*InternalAndReservedMethod4IHostUpdate)(IHostUpdate *pThis);
11507 
11508     nsresult (*InternalAndReservedMethod5IHostUpdate)(IHostUpdate *pThis);
11509 
11510     nsresult (*InternalAndReservedMethod6IHostUpdate)(IHostUpdate *pThis);
11511 
11512     nsresult (*InternalAndReservedMethod7IHostUpdate)(IHostUpdate *pThis);
11513 
11514     nsresult (*InternalAndReservedMethod8IHostUpdate)(IHostUpdate *pThis);
11515 
11516     nsresult (*InternalAndReservedMethod9IHostUpdate)(IHostUpdate *pThis);
11517 
11518     nsresult (*InternalAndReservedMethod10IHostUpdate)(IHostUpdate *pThis);
11519 
11520     nsresult (*InternalAndReservedMethod11IHostUpdate)(IHostUpdate *pThis);
11521 
11522     nsresult (*InternalAndReservedMethod12IHostUpdate)(IHostUpdate *pThis);
11523 
11524 };
11525 #    define IHostUpdate_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11526 #    define IHostUpdate_AddRef(p) ((p)->lpVtbl->AddRef(p))
11527 #    define IHostUpdate_Release(p) ((p)->lpVtbl->Release(p))
11528 #   endif /* VBOX_WITH_GLUE */
11529 
11530 interface IHostUpdate
11531 {
11532 #   ifndef VBOX_WITH_GLUE
11533     struct IHostUpdate_vtbl *vtbl;
11534 #   else /* VBOX_WITH_GLUE */
11535     CONST_VTBL struct IHostUpdateVtbl *lpVtbl;
11536 #   endif /* VBOX_WITH_GLUE */
11537 };
11538 /* End of struct IHostUpdate declaration */
11539 
11540 
11541 /* Start of struct IHost declaration */
11542 #   define IHOST_IID_STR "16ced992-5fdc-4aba-aff5-6a39bbd7c38b"
11543 #   define IHOST_IID { \
11544     0x16ced992, 0x5fdc, 0x4aba, \
11545     { 0xaf, 0xf5, 0x6a, 0x39, 0xbb, 0xd7, 0xc3, 0x8b } \
11546 }
11547 /* COM compatibility */
11548 VBOX_EXTERN_CONST(nsIID, IID_IHost);
11549 #   ifndef VBOX_WITH_GLUE
11550 struct IHost_vtbl
11551 {
11552     struct nsISupports_vtbl nsisupports;
11553 
11554     nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
11555 
11556     nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
11557 
11558     nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
11559 
11560     nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
11561 
11562     nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
11563 
11564     nsresult (*GetNameServers)(IHost *pThis, PRUint32 *nameServersSize, PRUnichar * **nameServers);
11565 
11566     nsresult (*GetDomainName)(IHost *pThis, PRUnichar * *domainName);
11567 
11568     nsresult (*GetSearchStrings)(IHost *pThis, PRUint32 *searchStringsSize, PRUnichar * **searchStrings);
11569 
11570     nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
11571 
11572     nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
11573 
11574     nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
11575 
11576     nsresult (*GetProcessorOnlineCoreCount)(IHost *pThis, PRUint32 *processorOnlineCoreCount);
11577 
11578     nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
11579 
11580     nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
11581 
11582     nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
11583 
11584     nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
11585 
11586     nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
11587 
11588     nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *acceleration3DAvailable);
11589 
11590     nsresult (*GetVideoInputDevices)(IHost *pThis, PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices);
11591 
11592     nsresult (*GetUpdate)(IHost *pThis, IHostUpdate * *update);
11593 
11594     nsresult (*GetInternalAndReservedAttribute1IHost)(IHost *pThis, PRUint32 *reserved);
11595 
11596     nsresult (*GetInternalAndReservedAttribute2IHost)(IHost *pThis, PRUint32 *reserved);
11597 
11598     nsresult (*GetInternalAndReservedAttribute3IHost)(IHost *pThis, PRUint32 *reserved);
11599 
11600     nsresult (*GetInternalAndReservedAttribute4IHost)(IHost *pThis, PRUint32 *reserved);
11601 
11602     nsresult (*GetInternalAndReservedAttribute5IHost)(IHost *pThis, PRUint32 *reserved);
11603 
11604     nsresult (*GetInternalAndReservedAttribute6IHost)(IHost *pThis, PRUint32 *reserved);
11605 
11606     nsresult (*GetInternalAndReservedAttribute7IHost)(IHost *pThis, PRUint32 *reserved);
11607 
11608     nsresult (*GetInternalAndReservedAttribute8IHost)(IHost *pThis, PRUint32 *reserved);
11609 
11610     nsresult (*GetInternalAndReservedAttribute9IHost)(IHost *pThis, PRUint32 *reserved);
11611 
11612     nsresult (*GetInternalAndReservedAttribute10IHost)(IHost *pThis, PRUint32 *reserved);
11613 
11614     nsresult (*GetInternalAndReservedAttribute11IHost)(IHost *pThis, PRUint32 *reserved);
11615 
11616     nsresult (*GetInternalAndReservedAttribute12IHost)(IHost *pThis, PRUint32 *reserved);
11617 
11618     nsresult (*GetProcessorSpeed)(
11619         IHost *pThis,
11620         PRUint32 cpuId,
11621         PRUint32 * speed
11622     );
11623 
11624     nsresult (*GetProcessorFeature)(
11625         IHost *pThis,
11626         PRUint32 feature,
11627         PRBool * supported
11628     );
11629 
11630     nsresult (*GetProcessorDescription)(
11631         IHost *pThis,
11632         PRUint32 cpuId,
11633         PRUnichar * * description
11634     );
11635 
11636     nsresult (*GetProcessorCPUIDLeaf)(
11637         IHost *pThis,
11638         PRUint32 cpuId,
11639         PRUint32 leaf,
11640         PRUint32 subLeaf,
11641         PRUint32 * valEax,
11642         PRUint32 * valEbx,
11643         PRUint32 * valEcx,
11644         PRUint32 * valEdx
11645     );
11646 
11647     nsresult (*CreateHostOnlyNetworkInterface)(
11648         IHost *pThis,
11649         IHostNetworkInterface * * hostInterface,
11650         IProgress * * progress
11651     );
11652 
11653     nsresult (*RemoveHostOnlyNetworkInterface)(
11654         IHost *pThis,
11655         PRUnichar * id,
11656         IProgress * * progress
11657     );
11658 
11659     nsresult (*CreateUSBDeviceFilter)(
11660         IHost *pThis,
11661         PRUnichar * name,
11662         IHostUSBDeviceFilter * * filter
11663     );
11664 
11665     nsresult (*InsertUSBDeviceFilter)(
11666         IHost *pThis,
11667         PRUint32 position,
11668         IHostUSBDeviceFilter * filter
11669     );
11670 
11671     nsresult (*RemoveUSBDeviceFilter)(
11672         IHost *pThis,
11673         PRUint32 position
11674     );
11675 
11676     nsresult (*FindHostDVDDrive)(
11677         IHost *pThis,
11678         PRUnichar * name,
11679         IMedium * * drive
11680     );
11681 
11682     nsresult (*FindHostFloppyDrive)(
11683         IHost *pThis,
11684         PRUnichar * name,
11685         IMedium * * drive
11686     );
11687 
11688     nsresult (*FindHostNetworkInterfaceByName)(
11689         IHost *pThis,
11690         PRUnichar * name,
11691         IHostNetworkInterface * * networkInterface
11692     );
11693 
11694     nsresult (*FindHostNetworkInterfaceById)(
11695         IHost *pThis,
11696         PRUnichar * id,
11697         IHostNetworkInterface * * networkInterface
11698     );
11699 
11700     nsresult (*FindHostNetworkInterfacesOfType)(
11701         IHost *pThis,
11702         PRUint32 type,
11703         PRUint32 *networkInterfacesSize,
11704         IHostNetworkInterface *** networkInterfaces
11705     );
11706 
11707     nsresult (*FindUSBDeviceById)(
11708         IHost *pThis,
11709         PRUnichar * id,
11710         IHostUSBDevice * * device
11711     );
11712 
11713     nsresult (*FindUSBDeviceByAddress)(
11714         IHost *pThis,
11715         PRUnichar * name,
11716         IHostUSBDevice * * device
11717     );
11718 
11719     nsresult (*GenerateMACAddress)(
11720         IHost *pThis,
11721         PRUnichar * * address
11722     );
11723 
11724     nsresult (*AddUSBDeviceSource)(
11725         IHost *pThis,
11726         PRUnichar * backend,
11727         PRUnichar * id,
11728         PRUnichar * address,
11729         PRUint32 propertyNamesSize,
11730         PRUnichar ** propertyNames,
11731         PRUint32 propertyValuesSize,
11732         PRUnichar ** propertyValues
11733     );
11734 
11735     nsresult (*RemoveUSBDeviceSource)(
11736         IHost *pThis,
11737         PRUnichar * id
11738     );
11739 
11740     nsresult (*InternalAndReservedMethod1IHost)(IHost *pThis);
11741 
11742     nsresult (*InternalAndReservedMethod2IHost)(IHost *pThis);
11743 
11744     nsresult (*InternalAndReservedMethod3IHost)(IHost *pThis);
11745 
11746     nsresult (*InternalAndReservedMethod4IHost)(IHost *pThis);
11747 
11748     nsresult (*InternalAndReservedMethod5IHost)(IHost *pThis);
11749 
11750     nsresult (*InternalAndReservedMethod6IHost)(IHost *pThis);
11751 
11752 };
11753 #   else /* VBOX_WITH_GLUE */
11754 struct IHostVtbl
11755 {
11756     nsresult (*QueryInterface)(IHost *pThis, const nsID *iid, void **resultp);
11757     nsrefcnt (*AddRef)(IHost *pThis);
11758     nsrefcnt (*Release)(IHost *pThis);
11759     nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
11760 
11761     nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
11762 
11763     nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
11764 
11765     nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
11766 
11767     nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
11768 
11769     nsresult (*GetNameServers)(IHost *pThis, PRUint32 *nameServersSize, PRUnichar * **nameServers);
11770 
11771     nsresult (*GetDomainName)(IHost *pThis, PRUnichar * *domainName);
11772 
11773     nsresult (*GetSearchStrings)(IHost *pThis, PRUint32 *searchStringsSize, PRUnichar * **searchStrings);
11774 
11775     nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
11776 
11777     nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
11778 
11779     nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
11780 
11781     nsresult (*GetProcessorOnlineCoreCount)(IHost *pThis, PRUint32 *processorOnlineCoreCount);
11782 
11783     nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
11784 
11785     nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
11786 
11787     nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
11788 
11789     nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
11790 
11791     nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
11792 
11793     nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *acceleration3DAvailable);
11794 
11795     nsresult (*GetVideoInputDevices)(IHost *pThis, PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices);
11796 
11797     nsresult (*GetUpdate)(IHost *pThis, IHostUpdate * *update);
11798 
11799     nsresult (*GetInternalAndReservedAttribute1IHost)(IHost *pThis, PRUint32 *reserved);
11800 
11801     nsresult (*GetInternalAndReservedAttribute2IHost)(IHost *pThis, PRUint32 *reserved);
11802 
11803     nsresult (*GetInternalAndReservedAttribute3IHost)(IHost *pThis, PRUint32 *reserved);
11804 
11805     nsresult (*GetInternalAndReservedAttribute4IHost)(IHost *pThis, PRUint32 *reserved);
11806 
11807     nsresult (*GetInternalAndReservedAttribute5IHost)(IHost *pThis, PRUint32 *reserved);
11808 
11809     nsresult (*GetInternalAndReservedAttribute6IHost)(IHost *pThis, PRUint32 *reserved);
11810 
11811     nsresult (*GetInternalAndReservedAttribute7IHost)(IHost *pThis, PRUint32 *reserved);
11812 
11813     nsresult (*GetInternalAndReservedAttribute8IHost)(IHost *pThis, PRUint32 *reserved);
11814 
11815     nsresult (*GetInternalAndReservedAttribute9IHost)(IHost *pThis, PRUint32 *reserved);
11816 
11817     nsresult (*GetInternalAndReservedAttribute10IHost)(IHost *pThis, PRUint32 *reserved);
11818 
11819     nsresult (*GetInternalAndReservedAttribute11IHost)(IHost *pThis, PRUint32 *reserved);
11820 
11821     nsresult (*GetInternalAndReservedAttribute12IHost)(IHost *pThis, PRUint32 *reserved);
11822 
11823     nsresult (*GetProcessorSpeed)(
11824         IHost *pThis,
11825         PRUint32 cpuId,
11826         PRUint32 * speed
11827     );
11828 
11829     nsresult (*GetProcessorFeature)(
11830         IHost *pThis,
11831         PRUint32 feature,
11832         PRBool * supported
11833     );
11834 
11835     nsresult (*GetProcessorDescription)(
11836         IHost *pThis,
11837         PRUint32 cpuId,
11838         PRUnichar * * description
11839     );
11840 
11841     nsresult (*GetProcessorCPUIDLeaf)(
11842         IHost *pThis,
11843         PRUint32 cpuId,
11844         PRUint32 leaf,
11845         PRUint32 subLeaf,
11846         PRUint32 * valEax,
11847         PRUint32 * valEbx,
11848         PRUint32 * valEcx,
11849         PRUint32 * valEdx
11850     );
11851 
11852     nsresult (*CreateHostOnlyNetworkInterface)(
11853         IHost *pThis,
11854         IHostNetworkInterface * * hostInterface,
11855         IProgress * * progress
11856     );
11857 
11858     nsresult (*RemoveHostOnlyNetworkInterface)(
11859         IHost *pThis,
11860         PRUnichar * id,
11861         IProgress * * progress
11862     );
11863 
11864     nsresult (*CreateUSBDeviceFilter)(
11865         IHost *pThis,
11866         PRUnichar * name,
11867         IHostUSBDeviceFilter * * filter
11868     );
11869 
11870     nsresult (*InsertUSBDeviceFilter)(
11871         IHost *pThis,
11872         PRUint32 position,
11873         IHostUSBDeviceFilter * filter
11874     );
11875 
11876     nsresult (*RemoveUSBDeviceFilter)(
11877         IHost *pThis,
11878         PRUint32 position
11879     );
11880 
11881     nsresult (*FindHostDVDDrive)(
11882         IHost *pThis,
11883         PRUnichar * name,
11884         IMedium * * drive
11885     );
11886 
11887     nsresult (*FindHostFloppyDrive)(
11888         IHost *pThis,
11889         PRUnichar * name,
11890         IMedium * * drive
11891     );
11892 
11893     nsresult (*FindHostNetworkInterfaceByName)(
11894         IHost *pThis,
11895         PRUnichar * name,
11896         IHostNetworkInterface * * networkInterface
11897     );
11898 
11899     nsresult (*FindHostNetworkInterfaceById)(
11900         IHost *pThis,
11901         PRUnichar * id,
11902         IHostNetworkInterface * * networkInterface
11903     );
11904 
11905     nsresult (*FindHostNetworkInterfacesOfType)(
11906         IHost *pThis,
11907         PRUint32 type,
11908         PRUint32 *networkInterfacesSize,
11909         IHostNetworkInterface *** networkInterfaces
11910     );
11911 
11912     nsresult (*FindUSBDeviceById)(
11913         IHost *pThis,
11914         PRUnichar * id,
11915         IHostUSBDevice * * device
11916     );
11917 
11918     nsresult (*FindUSBDeviceByAddress)(
11919         IHost *pThis,
11920         PRUnichar * name,
11921         IHostUSBDevice * * device
11922     );
11923 
11924     nsresult (*GenerateMACAddress)(
11925         IHost *pThis,
11926         PRUnichar * * address
11927     );
11928 
11929     nsresult (*AddUSBDeviceSource)(
11930         IHost *pThis,
11931         PRUnichar * backend,
11932         PRUnichar * id,
11933         PRUnichar * address,
11934         PRUint32 propertyNamesSize,
11935         PRUnichar ** propertyNames,
11936         PRUint32 propertyValuesSize,
11937         PRUnichar ** propertyValues
11938     );
11939 
11940     nsresult (*RemoveUSBDeviceSource)(
11941         IHost *pThis,
11942         PRUnichar * id
11943     );
11944 
11945     nsresult (*InternalAndReservedMethod1IHost)(IHost *pThis);
11946 
11947     nsresult (*InternalAndReservedMethod2IHost)(IHost *pThis);
11948 
11949     nsresult (*InternalAndReservedMethod3IHost)(IHost *pThis);
11950 
11951     nsresult (*InternalAndReservedMethod4IHost)(IHost *pThis);
11952 
11953     nsresult (*InternalAndReservedMethod5IHost)(IHost *pThis);
11954 
11955     nsresult (*InternalAndReservedMethod6IHost)(IHost *pThis);
11956 
11957 };
11958 #    define IHost_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
11959 #    define IHost_AddRef(p) ((p)->lpVtbl->AddRef(p))
11960 #    define IHost_Release(p) ((p)->lpVtbl->Release(p))
11961 #    define IHost_get_DVDDrives(p, aDVDDrives) ((p)->lpVtbl->GetDVDDrives(p, aDVDDrives))
11962 #    define IHost_GetDVDDrives(p, aDVDDrives) ((p)->lpVtbl->GetDVDDrives(p, aDVDDrives))
11963 #    define IHost_get_FloppyDrives(p, aFloppyDrives) ((p)->lpVtbl->GetFloppyDrives(p, aFloppyDrives))
11964 #    define IHost_GetFloppyDrives(p, aFloppyDrives) ((p)->lpVtbl->GetFloppyDrives(p, aFloppyDrives))
11965 #    define IHost_get_USBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
11966 #    define IHost_GetUSBDevices(p, aUSBDevices) ((p)->lpVtbl->GetUSBDevices(p, aUSBDevices))
11967 #    define IHost_get_USBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
11968 #    define IHost_GetUSBDeviceFilters(p, aUSBDeviceFilters) ((p)->lpVtbl->GetUSBDeviceFilters(p, aUSBDeviceFilters))
11969 #    define IHost_get_NetworkInterfaces(p, aNetworkInterfaces) ((p)->lpVtbl->GetNetworkInterfaces(p, aNetworkInterfaces))
11970 #    define IHost_GetNetworkInterfaces(p, aNetworkInterfaces) ((p)->lpVtbl->GetNetworkInterfaces(p, aNetworkInterfaces))
11971 #    define IHost_get_NameServers(p, aNameServers) ((p)->lpVtbl->GetNameServers(p, aNameServers))
11972 #    define IHost_GetNameServers(p, aNameServers) ((p)->lpVtbl->GetNameServers(p, aNameServers))
11973 #    define IHost_get_DomainName(p, aDomainName) ((p)->lpVtbl->GetDomainName(p, aDomainName))
11974 #    define IHost_GetDomainName(p, aDomainName) ((p)->lpVtbl->GetDomainName(p, aDomainName))
11975 #    define IHost_get_SearchStrings(p, aSearchStrings) ((p)->lpVtbl->GetSearchStrings(p, aSearchStrings))
11976 #    define IHost_GetSearchStrings(p, aSearchStrings) ((p)->lpVtbl->GetSearchStrings(p, aSearchStrings))
11977 #    define IHost_get_ProcessorCount(p, aProcessorCount) ((p)->lpVtbl->GetProcessorCount(p, aProcessorCount))
11978 #    define IHost_GetProcessorCount(p, aProcessorCount) ((p)->lpVtbl->GetProcessorCount(p, aProcessorCount))
11979 #    define IHost_get_ProcessorOnlineCount(p, aProcessorOnlineCount) ((p)->lpVtbl->GetProcessorOnlineCount(p, aProcessorOnlineCount))
11980 #    define IHost_GetProcessorOnlineCount(p, aProcessorOnlineCount) ((p)->lpVtbl->GetProcessorOnlineCount(p, aProcessorOnlineCount))
11981 #    define IHost_get_ProcessorCoreCount(p, aProcessorCoreCount) ((p)->lpVtbl->GetProcessorCoreCount(p, aProcessorCoreCount))
11982 #    define IHost_GetProcessorCoreCount(p, aProcessorCoreCount) ((p)->lpVtbl->GetProcessorCoreCount(p, aProcessorCoreCount))
11983 #    define IHost_get_ProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount) ((p)->lpVtbl->GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount))
11984 #    define IHost_GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount) ((p)->lpVtbl->GetProcessorOnlineCoreCount(p, aProcessorOnlineCoreCount))
11985 #    define IHost_get_MemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
11986 #    define IHost_GetMemorySize(p, aMemorySize) ((p)->lpVtbl->GetMemorySize(p, aMemorySize))
11987 #    define IHost_get_MemoryAvailable(p, aMemoryAvailable) ((p)->lpVtbl->GetMemoryAvailable(p, aMemoryAvailable))
11988 #    define IHost_GetMemoryAvailable(p, aMemoryAvailable) ((p)->lpVtbl->GetMemoryAvailable(p, aMemoryAvailable))
11989 #    define IHost_get_OperatingSystem(p, aOperatingSystem) ((p)->lpVtbl->GetOperatingSystem(p, aOperatingSystem))
11990 #    define IHost_GetOperatingSystem(p, aOperatingSystem) ((p)->lpVtbl->GetOperatingSystem(p, aOperatingSystem))
11991 #    define IHost_get_OSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
11992 #    define IHost_GetOSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
11993 #    define IHost_get_UTCTime(p, aUTCTime) ((p)->lpVtbl->GetUTCTime(p, aUTCTime))
11994 #    define IHost_GetUTCTime(p, aUTCTime) ((p)->lpVtbl->GetUTCTime(p, aUTCTime))
11995 #    define IHost_get_Acceleration3DAvailable(p, aAcceleration3DAvailable) ((p)->lpVtbl->GetAcceleration3DAvailable(p, aAcceleration3DAvailable))
11996 #    define IHost_GetAcceleration3DAvailable(p, aAcceleration3DAvailable) ((p)->lpVtbl->GetAcceleration3DAvailable(p, aAcceleration3DAvailable))
11997 #    define IHost_get_VideoInputDevices(p, aVideoInputDevices) ((p)->lpVtbl->GetVideoInputDevices(p, aVideoInputDevices))
11998 #    define IHost_GetVideoInputDevices(p, aVideoInputDevices) ((p)->lpVtbl->GetVideoInputDevices(p, aVideoInputDevices))
11999 #    define IHost_get_Update(p, aUpdate) ((p)->lpVtbl->GetUpdate(p, aUpdate))
12000 #    define IHost_GetUpdate(p, aUpdate) ((p)->lpVtbl->GetUpdate(p, aUpdate))
12001 #    define IHost_GetProcessorSpeed(p, aCpuId, aSpeed) ((p)->lpVtbl->GetProcessorSpeed(p, aCpuId, aSpeed))
12002 #    define IHost_GetProcessorFeature(p, aFeature, aSupported) ((p)->lpVtbl->GetProcessorFeature(p, aFeature, aSupported))
12003 #    define IHost_GetProcessorDescription(p, aCpuId, aDescription) ((p)->lpVtbl->GetProcessorDescription(p, aCpuId, aDescription))
12004 #    define IHost_GetProcessorCPUIDLeaf(p, aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx) ((p)->lpVtbl->GetProcessorCPUIDLeaf(p, aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx))
12005 #    define IHost_CreateHostOnlyNetworkInterface(p, aHostInterface, aProgress) ((p)->lpVtbl->CreateHostOnlyNetworkInterface(p, aHostInterface, aProgress))
12006 #    define IHost_RemoveHostOnlyNetworkInterface(p, aId, aProgress) ((p)->lpVtbl->RemoveHostOnlyNetworkInterface(p, aId, aProgress))
12007 #    define IHost_CreateUSBDeviceFilter(p, aName, aFilter) ((p)->lpVtbl->CreateUSBDeviceFilter(p, aName, aFilter))
12008 #    define IHost_InsertUSBDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->InsertUSBDeviceFilter(p, aPosition, aFilter))
12009 #    define IHost_RemoveUSBDeviceFilter(p, aPosition) ((p)->lpVtbl->RemoveUSBDeviceFilter(p, aPosition))
12010 #    define IHost_FindHostDVDDrive(p, aName, aDrive) ((p)->lpVtbl->FindHostDVDDrive(p, aName, aDrive))
12011 #    define IHost_FindHostFloppyDrive(p, aName, aDrive) ((p)->lpVtbl->FindHostFloppyDrive(p, aName, aDrive))
12012 #    define IHost_FindHostNetworkInterfaceByName(p, aName, aNetworkInterface) ((p)->lpVtbl->FindHostNetworkInterfaceByName(p, aName, aNetworkInterface))
12013 #    define IHost_FindHostNetworkInterfaceById(p, aId, aNetworkInterface) ((p)->lpVtbl->FindHostNetworkInterfaceById(p, aId, aNetworkInterface))
12014 #    define IHost_FindHostNetworkInterfacesOfType(p, aType, aNetworkInterfaces) ((p)->lpVtbl->FindHostNetworkInterfacesOfType(p, aType, aNetworkInterfaces))
12015 #    define IHost_FindUSBDeviceById(p, aId, aDevice) ((p)->lpVtbl->FindUSBDeviceById(p, aId, aDevice))
12016 #    define IHost_FindUSBDeviceByAddress(p, aName, aDevice) ((p)->lpVtbl->FindUSBDeviceByAddress(p, aName, aDevice))
12017 #    define IHost_GenerateMACAddress(p, aAddress) ((p)->lpVtbl->GenerateMACAddress(p, aAddress))
12018 #    define IHost_AddUSBDeviceSource(p, aBackend, aId, aAddress, aPropertyNames, aPropertyValues) ((p)->lpVtbl->AddUSBDeviceSource(p, aBackend, aId, aAddress, aPropertyNames, aPropertyValues))
12019 #    define IHost_RemoveUSBDeviceSource(p, aId) ((p)->lpVtbl->RemoveUSBDeviceSource(p, aId))
12020 #   endif /* VBOX_WITH_GLUE */
12021 
12022 interface IHost
12023 {
12024 #   ifndef VBOX_WITH_GLUE
12025     struct IHost_vtbl *vtbl;
12026 #   else /* VBOX_WITH_GLUE */
12027     CONST_VTBL struct IHostVtbl *lpVtbl;
12028 #   endif /* VBOX_WITH_GLUE */
12029 };
12030 /* End of struct IHost declaration */
12031 
12032 
12033 /* Start of struct ISystemProperties declaration */
12034 #   define ISYSTEMPROPERTIES_IID_STR "027bc463-929c-40e8-bf16-fea557cd8e7e"
12035 #   define ISYSTEMPROPERTIES_IID { \
12036     0x027bc463, 0x929c, 0x40e8, \
12037     { 0xbf, 0x16, 0xfe, 0xa5, 0x57, 0xcd, 0x8e, 0x7e } \
12038 }
12039 /* COM compatibility */
12040 VBOX_EXTERN_CONST(nsIID, IID_ISystemProperties);
12041 #   ifndef VBOX_WITH_GLUE
12042 struct ISystemProperties_vtbl
12043 {
12044     struct nsISupports_vtbl nsisupports;
12045 
12046     nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
12047 
12048     nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
12049 
12050     nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
12051 
12052     nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
12053 
12054     nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
12055 
12056     nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
12057 
12058     nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
12059 
12060     nsresult (*GetInfoVDSize)(ISystemProperties *pThis, PRInt64 *infoVDSize);
12061 
12062     nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
12063 
12064     nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
12065 
12066     nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
12067 
12068     nsresult (*GetRawModeSupported)(ISystemProperties *pThis, PRBool *rawModeSupported);
12069 
12070     nsresult (*GetExclusiveHwVirt)(ISystemProperties *pThis, PRBool *exclusiveHwVirt);
12071     nsresult (*SetExclusiveHwVirt)(ISystemProperties *pThis, PRBool exclusiveHwVirt);
12072 
12073     nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
12074     nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
12075 
12076     nsresult (*GetLoggingLevel)(ISystemProperties *pThis, PRUnichar * *loggingLevel);
12077     nsresult (*SetLoggingLevel)(ISystemProperties *pThis, PRUnichar * loggingLevel);
12078 
12079     nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
12080 
12081     nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
12082     nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
12083 
12084     nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceWarning);
12085     nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 freeDiskSpaceWarning);
12086 
12087     nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
12088     nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
12089 
12090     nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceError);
12091     nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 freeDiskSpaceError);
12092 
12093     nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
12094     nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
12095 
12096     nsresult (*GetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * *VRDEAuthLibrary);
12097     nsresult (*SetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * VRDEAuthLibrary);
12098 
12099     nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
12100     nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
12101 
12102     nsresult (*GetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * *defaultVRDEExtPack);
12103     nsresult (*SetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * defaultVRDEExtPack);
12104 
12105     nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *logHistoryCount);
12106     nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 logHistoryCount);
12107 
12108     nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
12109 
12110     nsresult (*GetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * *autostartDatabasePath);
12111     nsresult (*SetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * autostartDatabasePath);
12112 
12113     nsresult (*GetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * *defaultAdditionsISO);
12114     nsresult (*SetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * defaultAdditionsISO);
12115 
12116     nsresult (*GetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * *defaultFrontend);
12117     nsresult (*SetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * defaultFrontend);
12118 
12119     nsresult (*GetScreenShotFormats)(ISystemProperties *pThis, PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats);
12120 
12121     nsresult (*GetProxyMode)(ISystemProperties *pThis, PRUint32 *proxyMode);
12122     nsresult (*SetProxyMode)(ISystemProperties *pThis, PRUint32 proxyMode);
12123 
12124     nsresult (*GetProxyURL)(ISystemProperties *pThis, PRUnichar * *proxyURL);
12125     nsresult (*SetProxyURL)(ISystemProperties *pThis, PRUnichar * proxyURL);
12126 
12127     nsresult (*GetSupportedParavirtProviders)(ISystemProperties *pThis, PRUint32 *supportedParavirtProvidersSize, PRUint32 **supportedParavirtProviders);
12128 
12129     nsresult (*GetSupportedClipboardModes)(ISystemProperties *pThis, PRUint32 *supportedClipboardModesSize, PRUint32 **supportedClipboardModes);
12130 
12131     nsresult (*GetSupportedDnDModes)(ISystemProperties *pThis, PRUint32 *supportedDnDModesSize, PRUint32 **supportedDnDModes);
12132 
12133     nsresult (*GetSupportedFirmwareTypes)(ISystemProperties *pThis, PRUint32 *supportedFirmwareTypesSize, PRUint32 **supportedFirmwareTypes);
12134 
12135     nsresult (*GetSupportedPointingHIDTypes)(ISystemProperties *pThis, PRUint32 *supportedPointingHIDTypesSize, PRUint32 **supportedPointingHIDTypes);
12136 
12137     nsresult (*GetSupportedKeyboardHIDTypes)(ISystemProperties *pThis, PRUint32 *supportedKeyboardHIDTypesSize, PRUint32 **supportedKeyboardHIDTypes);
12138 
12139     nsresult (*GetSupportedVFSTypes)(ISystemProperties *pThis, PRUint32 *supportedVFSTypesSize, PRUint32 **supportedVFSTypes);
12140 
12141     nsresult (*GetSupportedImportOptions)(ISystemProperties *pThis, PRUint32 *supportedImportOptionsSize, PRUint32 **supportedImportOptions);
12142 
12143     nsresult (*GetSupportedExportOptions)(ISystemProperties *pThis, PRUint32 *supportedExportOptionsSize, PRUint32 **supportedExportOptions);
12144 
12145     nsresult (*GetSupportedRecordingAudioCodecs)(ISystemProperties *pThis, PRUint32 *supportedRecordingAudioCodecsSize, PRUint32 **supportedRecordingAudioCodecs);
12146 
12147     nsresult (*GetSupportedRecordingVideoCodecs)(ISystemProperties *pThis, PRUint32 *supportedRecordingVideoCodecsSize, PRUint32 **supportedRecordingVideoCodecs);
12148 
12149     nsresult (*GetSupportedRecordingVSMethods)(ISystemProperties *pThis, PRUint32 *supportedRecordingVSMethodsSize, PRUint32 **supportedRecordingVSMethods);
12150 
12151     nsresult (*GetSupportedRecordingVRCModes)(ISystemProperties *pThis, PRUint32 *supportedRecordingVRCModesSize, PRUint32 **supportedRecordingVRCModes);
12152 
12153     nsresult (*GetSupportedGraphicsControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedGraphicsControllerTypesSize, PRUint32 **supportedGraphicsControllerTypes);
12154 
12155     nsresult (*GetSupportedCloneOptions)(ISystemProperties *pThis, PRUint32 *supportedCloneOptionsSize, PRUint32 **supportedCloneOptions);
12156 
12157     nsresult (*GetSupportedAutostopTypes)(ISystemProperties *pThis, PRUint32 *supportedAutostopTypesSize, PRUint32 **supportedAutostopTypes);
12158 
12159     nsresult (*GetSupportedVMProcPriorities)(ISystemProperties *pThis, PRUint32 *supportedVMProcPrioritiesSize, PRUint32 **supportedVMProcPriorities);
12160 
12161     nsresult (*GetSupportedNetworkAttachmentTypes)(ISystemProperties *pThis, PRUint32 *supportedNetworkAttachmentTypesSize, PRUint32 **supportedNetworkAttachmentTypes);
12162 
12163     nsresult (*GetSupportedNetworkAdapterTypes)(ISystemProperties *pThis, PRUint32 *supportedNetworkAdapterTypesSize, PRUint32 **supportedNetworkAdapterTypes);
12164 
12165     nsresult (*GetSupportedPortModes)(ISystemProperties *pThis, PRUint32 *supportedPortModesSize, PRUint32 **supportedPortModes);
12166 
12167     nsresult (*GetSupportedUartTypes)(ISystemProperties *pThis, PRUint32 *supportedUartTypesSize, PRUint32 **supportedUartTypes);
12168 
12169     nsresult (*GetSupportedUSBControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedUSBControllerTypesSize, PRUint32 **supportedUSBControllerTypes);
12170 
12171     nsresult (*GetSupportedAudioDriverTypes)(ISystemProperties *pThis, PRUint32 *supportedAudioDriverTypesSize, PRUint32 **supportedAudioDriverTypes);
12172 
12173     nsresult (*GetSupportedAudioControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedAudioControllerTypesSize, PRUint32 **supportedAudioControllerTypes);
12174 
12175     nsresult (*GetSupportedStorageBuses)(ISystemProperties *pThis, PRUint32 *supportedStorageBusesSize, PRUint32 **supportedStorageBuses);
12176 
12177     nsresult (*GetSupportedStorageControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedStorageControllerTypesSize, PRUint32 **supportedStorageControllerTypes);
12178 
12179     nsresult (*GetSupportedChipsetTypes)(ISystemProperties *pThis, PRUint32 *supportedChipsetTypesSize, PRUint32 **supportedChipsetTypes);
12180 
12181     nsresult (*GetInternalAndReservedAttribute1ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12182 
12183     nsresult (*GetInternalAndReservedAttribute2ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12184 
12185     nsresult (*GetInternalAndReservedAttribute3ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12186 
12187     nsresult (*GetInternalAndReservedAttribute4ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12188 
12189     nsresult (*GetInternalAndReservedAttribute5ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12190 
12191     nsresult (*GetInternalAndReservedAttribute6ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12192 
12193     nsresult (*GetInternalAndReservedAttribute7ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12194 
12195     nsresult (*GetInternalAndReservedAttribute8ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12196 
12197     nsresult (*GetInternalAndReservedAttribute9ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12198 
12199     nsresult (*GetInternalAndReservedAttribute10ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12200 
12201     nsresult (*GetInternalAndReservedAttribute11ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12202 
12203     nsresult (*GetInternalAndReservedAttribute12ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12204 
12205     nsresult (*GetInternalAndReservedAttribute13ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12206 
12207     nsresult (*GetInternalAndReservedAttribute14ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12208 
12209     nsresult (*GetInternalAndReservedAttribute15ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12210 
12211     nsresult (*GetInternalAndReservedAttribute16ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12212 
12213     nsresult (*GetMaxNetworkAdapters)(
12214         ISystemProperties *pThis,
12215         PRUint32 chipset,
12216         PRUint32 * maxNetworkAdapters
12217     );
12218 
12219     nsresult (*GetMaxNetworkAdaptersOfType)(
12220         ISystemProperties *pThis,
12221         PRUint32 chipset,
12222         PRUint32 type,
12223         PRUint32 * maxNetworkAdapters
12224     );
12225 
12226     nsresult (*GetMaxDevicesPerPortForStorageBus)(
12227         ISystemProperties *pThis,
12228         PRUint32 bus,
12229         PRUint32 * maxDevicesPerPort
12230     );
12231 
12232     nsresult (*GetMinPortCountForStorageBus)(
12233         ISystemProperties *pThis,
12234         PRUint32 bus,
12235         PRUint32 * minPortCount
12236     );
12237 
12238     nsresult (*GetMaxPortCountForStorageBus)(
12239         ISystemProperties *pThis,
12240         PRUint32 bus,
12241         PRUint32 * maxPortCount
12242     );
12243 
12244     nsresult (*GetMaxInstancesOfStorageBus)(
12245         ISystemProperties *pThis,
12246         PRUint32 chipset,
12247         PRUint32 bus,
12248         PRUint32 * maxInstances
12249     );
12250 
12251     nsresult (*GetDeviceTypesForStorageBus)(
12252         ISystemProperties *pThis,
12253         PRUint32 bus,
12254         PRUint32 *deviceTypesSize,
12255         PRUint32** deviceTypes
12256     );
12257 
12258     nsresult (*GetStorageBusForStorageControllerType)(
12259         ISystemProperties *pThis,
12260         PRUint32 storageControllerType,
12261         PRUint32 * storageBus
12262     );
12263 
12264     nsresult (*GetStorageControllerTypesForStorageBus)(
12265         ISystemProperties *pThis,
12266         PRUint32 storageBus,
12267         PRUint32 *storageControllerTypeSize,
12268         PRUint32** storageControllerType
12269     );
12270 
12271     nsresult (*GetDefaultIoCacheSettingForStorageController)(
12272         ISystemProperties *pThis,
12273         PRUint32 controllerType,
12274         PRBool * enabled
12275     );
12276 
12277     nsresult (*GetStorageControllerHotplugCapable)(
12278         ISystemProperties *pThis,
12279         PRUint32 controllerType,
12280         PRBool * hotplugCapable
12281     );
12282 
12283     nsresult (*GetMaxInstancesOfUSBControllerType)(
12284         ISystemProperties *pThis,
12285         PRUint32 chipset,
12286         PRUint32 type,
12287         PRUint32 * maxInstances
12288     );
12289 
12290     nsresult (*InternalAndReservedMethod1ISystemProperties)(ISystemProperties *pThis);
12291 
12292     nsresult (*InternalAndReservedMethod2ISystemProperties)(ISystemProperties *pThis);
12293 
12294     nsresult (*InternalAndReservedMethod3ISystemProperties)(ISystemProperties *pThis);
12295 
12296     nsresult (*InternalAndReservedMethod4ISystemProperties)(ISystemProperties *pThis);
12297 
12298 };
12299 #   else /* VBOX_WITH_GLUE */
12300 struct ISystemPropertiesVtbl
12301 {
12302     nsresult (*QueryInterface)(ISystemProperties *pThis, const nsID *iid, void **resultp);
12303     nsrefcnt (*AddRef)(ISystemProperties *pThis);
12304     nsrefcnt (*Release)(ISystemProperties *pThis);
12305     nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
12306 
12307     nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
12308 
12309     nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
12310 
12311     nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
12312 
12313     nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
12314 
12315     nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
12316 
12317     nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
12318 
12319     nsresult (*GetInfoVDSize)(ISystemProperties *pThis, PRInt64 *infoVDSize);
12320 
12321     nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
12322 
12323     nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
12324 
12325     nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
12326 
12327     nsresult (*GetRawModeSupported)(ISystemProperties *pThis, PRBool *rawModeSupported);
12328 
12329     nsresult (*GetExclusiveHwVirt)(ISystemProperties *pThis, PRBool *exclusiveHwVirt);
12330     nsresult (*SetExclusiveHwVirt)(ISystemProperties *pThis, PRBool exclusiveHwVirt);
12331 
12332     nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
12333     nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
12334 
12335     nsresult (*GetLoggingLevel)(ISystemProperties *pThis, PRUnichar * *loggingLevel);
12336     nsresult (*SetLoggingLevel)(ISystemProperties *pThis, PRUnichar * loggingLevel);
12337 
12338     nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
12339 
12340     nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
12341     nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
12342 
12343     nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceWarning);
12344     nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 freeDiskSpaceWarning);
12345 
12346     nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
12347     nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
12348 
12349     nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceError);
12350     nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 freeDiskSpaceError);
12351 
12352     nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
12353     nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
12354 
12355     nsresult (*GetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * *VRDEAuthLibrary);
12356     nsresult (*SetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * VRDEAuthLibrary);
12357 
12358     nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
12359     nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
12360 
12361     nsresult (*GetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * *defaultVRDEExtPack);
12362     nsresult (*SetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * defaultVRDEExtPack);
12363 
12364     nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *logHistoryCount);
12365     nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 logHistoryCount);
12366 
12367     nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
12368 
12369     nsresult (*GetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * *autostartDatabasePath);
12370     nsresult (*SetAutostartDatabasePath)(ISystemProperties *pThis, PRUnichar * autostartDatabasePath);
12371 
12372     nsresult (*GetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * *defaultAdditionsISO);
12373     nsresult (*SetDefaultAdditionsISO)(ISystemProperties *pThis, PRUnichar * defaultAdditionsISO);
12374 
12375     nsresult (*GetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * *defaultFrontend);
12376     nsresult (*SetDefaultFrontend)(ISystemProperties *pThis, PRUnichar * defaultFrontend);
12377 
12378     nsresult (*GetScreenShotFormats)(ISystemProperties *pThis, PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats);
12379 
12380     nsresult (*GetProxyMode)(ISystemProperties *pThis, PRUint32 *proxyMode);
12381     nsresult (*SetProxyMode)(ISystemProperties *pThis, PRUint32 proxyMode);
12382 
12383     nsresult (*GetProxyURL)(ISystemProperties *pThis, PRUnichar * *proxyURL);
12384     nsresult (*SetProxyURL)(ISystemProperties *pThis, PRUnichar * proxyURL);
12385 
12386     nsresult (*GetSupportedParavirtProviders)(ISystemProperties *pThis, PRUint32 *supportedParavirtProvidersSize, PRUint32 **supportedParavirtProviders);
12387 
12388     nsresult (*GetSupportedClipboardModes)(ISystemProperties *pThis, PRUint32 *supportedClipboardModesSize, PRUint32 **supportedClipboardModes);
12389 
12390     nsresult (*GetSupportedDnDModes)(ISystemProperties *pThis, PRUint32 *supportedDnDModesSize, PRUint32 **supportedDnDModes);
12391 
12392     nsresult (*GetSupportedFirmwareTypes)(ISystemProperties *pThis, PRUint32 *supportedFirmwareTypesSize, PRUint32 **supportedFirmwareTypes);
12393 
12394     nsresult (*GetSupportedPointingHIDTypes)(ISystemProperties *pThis, PRUint32 *supportedPointingHIDTypesSize, PRUint32 **supportedPointingHIDTypes);
12395 
12396     nsresult (*GetSupportedKeyboardHIDTypes)(ISystemProperties *pThis, PRUint32 *supportedKeyboardHIDTypesSize, PRUint32 **supportedKeyboardHIDTypes);
12397 
12398     nsresult (*GetSupportedVFSTypes)(ISystemProperties *pThis, PRUint32 *supportedVFSTypesSize, PRUint32 **supportedVFSTypes);
12399 
12400     nsresult (*GetSupportedImportOptions)(ISystemProperties *pThis, PRUint32 *supportedImportOptionsSize, PRUint32 **supportedImportOptions);
12401 
12402     nsresult (*GetSupportedExportOptions)(ISystemProperties *pThis, PRUint32 *supportedExportOptionsSize, PRUint32 **supportedExportOptions);
12403 
12404     nsresult (*GetSupportedRecordingAudioCodecs)(ISystemProperties *pThis, PRUint32 *supportedRecordingAudioCodecsSize, PRUint32 **supportedRecordingAudioCodecs);
12405 
12406     nsresult (*GetSupportedRecordingVideoCodecs)(ISystemProperties *pThis, PRUint32 *supportedRecordingVideoCodecsSize, PRUint32 **supportedRecordingVideoCodecs);
12407 
12408     nsresult (*GetSupportedRecordingVSMethods)(ISystemProperties *pThis, PRUint32 *supportedRecordingVSMethodsSize, PRUint32 **supportedRecordingVSMethods);
12409 
12410     nsresult (*GetSupportedRecordingVRCModes)(ISystemProperties *pThis, PRUint32 *supportedRecordingVRCModesSize, PRUint32 **supportedRecordingVRCModes);
12411 
12412     nsresult (*GetSupportedGraphicsControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedGraphicsControllerTypesSize, PRUint32 **supportedGraphicsControllerTypes);
12413 
12414     nsresult (*GetSupportedCloneOptions)(ISystemProperties *pThis, PRUint32 *supportedCloneOptionsSize, PRUint32 **supportedCloneOptions);
12415 
12416     nsresult (*GetSupportedAutostopTypes)(ISystemProperties *pThis, PRUint32 *supportedAutostopTypesSize, PRUint32 **supportedAutostopTypes);
12417 
12418     nsresult (*GetSupportedVMProcPriorities)(ISystemProperties *pThis, PRUint32 *supportedVMProcPrioritiesSize, PRUint32 **supportedVMProcPriorities);
12419 
12420     nsresult (*GetSupportedNetworkAttachmentTypes)(ISystemProperties *pThis, PRUint32 *supportedNetworkAttachmentTypesSize, PRUint32 **supportedNetworkAttachmentTypes);
12421 
12422     nsresult (*GetSupportedNetworkAdapterTypes)(ISystemProperties *pThis, PRUint32 *supportedNetworkAdapterTypesSize, PRUint32 **supportedNetworkAdapterTypes);
12423 
12424     nsresult (*GetSupportedPortModes)(ISystemProperties *pThis, PRUint32 *supportedPortModesSize, PRUint32 **supportedPortModes);
12425 
12426     nsresult (*GetSupportedUartTypes)(ISystemProperties *pThis, PRUint32 *supportedUartTypesSize, PRUint32 **supportedUartTypes);
12427 
12428     nsresult (*GetSupportedUSBControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedUSBControllerTypesSize, PRUint32 **supportedUSBControllerTypes);
12429 
12430     nsresult (*GetSupportedAudioDriverTypes)(ISystemProperties *pThis, PRUint32 *supportedAudioDriverTypesSize, PRUint32 **supportedAudioDriverTypes);
12431 
12432     nsresult (*GetSupportedAudioControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedAudioControllerTypesSize, PRUint32 **supportedAudioControllerTypes);
12433 
12434     nsresult (*GetSupportedStorageBuses)(ISystemProperties *pThis, PRUint32 *supportedStorageBusesSize, PRUint32 **supportedStorageBuses);
12435 
12436     nsresult (*GetSupportedStorageControllerTypes)(ISystemProperties *pThis, PRUint32 *supportedStorageControllerTypesSize, PRUint32 **supportedStorageControllerTypes);
12437 
12438     nsresult (*GetSupportedChipsetTypes)(ISystemProperties *pThis, PRUint32 *supportedChipsetTypesSize, PRUint32 **supportedChipsetTypes);
12439 
12440     nsresult (*GetInternalAndReservedAttribute1ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12441 
12442     nsresult (*GetInternalAndReservedAttribute2ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12443 
12444     nsresult (*GetInternalAndReservedAttribute3ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12445 
12446     nsresult (*GetInternalAndReservedAttribute4ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12447 
12448     nsresult (*GetInternalAndReservedAttribute5ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12449 
12450     nsresult (*GetInternalAndReservedAttribute6ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12451 
12452     nsresult (*GetInternalAndReservedAttribute7ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12453 
12454     nsresult (*GetInternalAndReservedAttribute8ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12455 
12456     nsresult (*GetInternalAndReservedAttribute9ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12457 
12458     nsresult (*GetInternalAndReservedAttribute10ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12459 
12460     nsresult (*GetInternalAndReservedAttribute11ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12461 
12462     nsresult (*GetInternalAndReservedAttribute12ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12463 
12464     nsresult (*GetInternalAndReservedAttribute13ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12465 
12466     nsresult (*GetInternalAndReservedAttribute14ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12467 
12468     nsresult (*GetInternalAndReservedAttribute15ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12469 
12470     nsresult (*GetInternalAndReservedAttribute16ISystemProperties)(ISystemProperties *pThis, PRUint32 *reserved);
12471 
12472     nsresult (*GetMaxNetworkAdapters)(
12473         ISystemProperties *pThis,
12474         PRUint32 chipset,
12475         PRUint32 * maxNetworkAdapters
12476     );
12477 
12478     nsresult (*GetMaxNetworkAdaptersOfType)(
12479         ISystemProperties *pThis,
12480         PRUint32 chipset,
12481         PRUint32 type,
12482         PRUint32 * maxNetworkAdapters
12483     );
12484 
12485     nsresult (*GetMaxDevicesPerPortForStorageBus)(
12486         ISystemProperties *pThis,
12487         PRUint32 bus,
12488         PRUint32 * maxDevicesPerPort
12489     );
12490 
12491     nsresult (*GetMinPortCountForStorageBus)(
12492         ISystemProperties *pThis,
12493         PRUint32 bus,
12494         PRUint32 * minPortCount
12495     );
12496 
12497     nsresult (*GetMaxPortCountForStorageBus)(
12498         ISystemProperties *pThis,
12499         PRUint32 bus,
12500         PRUint32 * maxPortCount
12501     );
12502 
12503     nsresult (*GetMaxInstancesOfStorageBus)(
12504         ISystemProperties *pThis,
12505         PRUint32 chipset,
12506         PRUint32 bus,
12507         PRUint32 * maxInstances
12508     );
12509 
12510     nsresult (*GetDeviceTypesForStorageBus)(
12511         ISystemProperties *pThis,
12512         PRUint32 bus,
12513         PRUint32 *deviceTypesSize,
12514         PRUint32** deviceTypes
12515     );
12516 
12517     nsresult (*GetStorageBusForStorageControllerType)(
12518         ISystemProperties *pThis,
12519         PRUint32 storageControllerType,
12520         PRUint32 * storageBus
12521     );
12522 
12523     nsresult (*GetStorageControllerTypesForStorageBus)(
12524         ISystemProperties *pThis,
12525         PRUint32 storageBus,
12526         PRUint32 *storageControllerTypeSize,
12527         PRUint32** storageControllerType
12528     );
12529 
12530     nsresult (*GetDefaultIoCacheSettingForStorageController)(
12531         ISystemProperties *pThis,
12532         PRUint32 controllerType,
12533         PRBool * enabled
12534     );
12535 
12536     nsresult (*GetStorageControllerHotplugCapable)(
12537         ISystemProperties *pThis,
12538         PRUint32 controllerType,
12539         PRBool * hotplugCapable
12540     );
12541 
12542     nsresult (*GetMaxInstancesOfUSBControllerType)(
12543         ISystemProperties *pThis,
12544         PRUint32 chipset,
12545         PRUint32 type,
12546         PRUint32 * maxInstances
12547     );
12548 
12549     nsresult (*InternalAndReservedMethod1ISystemProperties)(ISystemProperties *pThis);
12550 
12551     nsresult (*InternalAndReservedMethod2ISystemProperties)(ISystemProperties *pThis);
12552 
12553     nsresult (*InternalAndReservedMethod3ISystemProperties)(ISystemProperties *pThis);
12554 
12555     nsresult (*InternalAndReservedMethod4ISystemProperties)(ISystemProperties *pThis);
12556 
12557 };
12558 #    define ISystemProperties_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12559 #    define ISystemProperties_AddRef(p) ((p)->lpVtbl->AddRef(p))
12560 #    define ISystemProperties_Release(p) ((p)->lpVtbl->Release(p))
12561 #    define ISystemProperties_get_MinGuestRAM(p, aMinGuestRAM) ((p)->lpVtbl->GetMinGuestRAM(p, aMinGuestRAM))
12562 #    define ISystemProperties_GetMinGuestRAM(p, aMinGuestRAM) ((p)->lpVtbl->GetMinGuestRAM(p, aMinGuestRAM))
12563 #    define ISystemProperties_get_MaxGuestRAM(p, aMaxGuestRAM) ((p)->lpVtbl->GetMaxGuestRAM(p, aMaxGuestRAM))
12564 #    define ISystemProperties_GetMaxGuestRAM(p, aMaxGuestRAM) ((p)->lpVtbl->GetMaxGuestRAM(p, aMaxGuestRAM))
12565 #    define ISystemProperties_get_MinGuestVRAM(p, aMinGuestVRAM) ((p)->lpVtbl->GetMinGuestVRAM(p, aMinGuestVRAM))
12566 #    define ISystemProperties_GetMinGuestVRAM(p, aMinGuestVRAM) ((p)->lpVtbl->GetMinGuestVRAM(p, aMinGuestVRAM))
12567 #    define ISystemProperties_get_MaxGuestVRAM(p, aMaxGuestVRAM) ((p)->lpVtbl->GetMaxGuestVRAM(p, aMaxGuestVRAM))
12568 #    define ISystemProperties_GetMaxGuestVRAM(p, aMaxGuestVRAM) ((p)->lpVtbl->GetMaxGuestVRAM(p, aMaxGuestVRAM))
12569 #    define ISystemProperties_get_MinGuestCPUCount(p, aMinGuestCPUCount) ((p)->lpVtbl->GetMinGuestCPUCount(p, aMinGuestCPUCount))
12570 #    define ISystemProperties_GetMinGuestCPUCount(p, aMinGuestCPUCount) ((p)->lpVtbl->GetMinGuestCPUCount(p, aMinGuestCPUCount))
12571 #    define ISystemProperties_get_MaxGuestCPUCount(p, aMaxGuestCPUCount) ((p)->lpVtbl->GetMaxGuestCPUCount(p, aMaxGuestCPUCount))
12572 #    define ISystemProperties_GetMaxGuestCPUCount(p, aMaxGuestCPUCount) ((p)->lpVtbl->GetMaxGuestCPUCount(p, aMaxGuestCPUCount))
12573 #    define ISystemProperties_get_MaxGuestMonitors(p, aMaxGuestMonitors) ((p)->lpVtbl->GetMaxGuestMonitors(p, aMaxGuestMonitors))
12574 #    define ISystemProperties_GetMaxGuestMonitors(p, aMaxGuestMonitors) ((p)->lpVtbl->GetMaxGuestMonitors(p, aMaxGuestMonitors))
12575 #    define ISystemProperties_get_InfoVDSize(p, aInfoVDSize) ((p)->lpVtbl->GetInfoVDSize(p, aInfoVDSize))
12576 #    define ISystemProperties_GetInfoVDSize(p, aInfoVDSize) ((p)->lpVtbl->GetInfoVDSize(p, aInfoVDSize))
12577 #    define ISystemProperties_get_SerialPortCount(p, aSerialPortCount) ((p)->lpVtbl->GetSerialPortCount(p, aSerialPortCount))
12578 #    define ISystemProperties_GetSerialPortCount(p, aSerialPortCount) ((p)->lpVtbl->GetSerialPortCount(p, aSerialPortCount))
12579 #    define ISystemProperties_get_ParallelPortCount(p, aParallelPortCount) ((p)->lpVtbl->GetParallelPortCount(p, aParallelPortCount))
12580 #    define ISystemProperties_GetParallelPortCount(p, aParallelPortCount) ((p)->lpVtbl->GetParallelPortCount(p, aParallelPortCount))
12581 #    define ISystemProperties_get_MaxBootPosition(p, aMaxBootPosition) ((p)->lpVtbl->GetMaxBootPosition(p, aMaxBootPosition))
12582 #    define ISystemProperties_GetMaxBootPosition(p, aMaxBootPosition) ((p)->lpVtbl->GetMaxBootPosition(p, aMaxBootPosition))
12583 #    define ISystemProperties_get_RawModeSupported(p, aRawModeSupported) ((p)->lpVtbl->GetRawModeSupported(p, aRawModeSupported))
12584 #    define ISystemProperties_GetRawModeSupported(p, aRawModeSupported) ((p)->lpVtbl->GetRawModeSupported(p, aRawModeSupported))
12585 #    define ISystemProperties_get_ExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->GetExclusiveHwVirt(p, aExclusiveHwVirt))
12586 #    define ISystemProperties_GetExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->GetExclusiveHwVirt(p, aExclusiveHwVirt))
12587 #    define ISystemProperties_put_ExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->SetExclusiveHwVirt(p, aExclusiveHwVirt))
12588 #    define ISystemProperties_SetExclusiveHwVirt(p, aExclusiveHwVirt) ((p)->lpVtbl->SetExclusiveHwVirt(p, aExclusiveHwVirt))
12589 #    define ISystemProperties_get_DefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->GetDefaultMachineFolder(p, aDefaultMachineFolder))
12590 #    define ISystemProperties_GetDefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->GetDefaultMachineFolder(p, aDefaultMachineFolder))
12591 #    define ISystemProperties_put_DefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->SetDefaultMachineFolder(p, aDefaultMachineFolder))
12592 #    define ISystemProperties_SetDefaultMachineFolder(p, aDefaultMachineFolder) ((p)->lpVtbl->SetDefaultMachineFolder(p, aDefaultMachineFolder))
12593 #    define ISystemProperties_get_LoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->GetLoggingLevel(p, aLoggingLevel))
12594 #    define ISystemProperties_GetLoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->GetLoggingLevel(p, aLoggingLevel))
12595 #    define ISystemProperties_put_LoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->SetLoggingLevel(p, aLoggingLevel))
12596 #    define ISystemProperties_SetLoggingLevel(p, aLoggingLevel) ((p)->lpVtbl->SetLoggingLevel(p, aLoggingLevel))
12597 #    define ISystemProperties_get_MediumFormats(p, aMediumFormats) ((p)->lpVtbl->GetMediumFormats(p, aMediumFormats))
12598 #    define ISystemProperties_GetMediumFormats(p, aMediumFormats) ((p)->lpVtbl->GetMediumFormats(p, aMediumFormats))
12599 #    define ISystemProperties_get_DefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
12600 #    define ISystemProperties_GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->GetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
12601 #    define ISystemProperties_put_DefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
12602 #    define ISystemProperties_SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat) ((p)->lpVtbl->SetDefaultHardDiskFormat(p, aDefaultHardDiskFormat))
12603 #    define ISystemProperties_get_FreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
12604 #    define ISystemProperties_GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->GetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
12605 #    define ISystemProperties_put_FreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
12606 #    define ISystemProperties_SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning) ((p)->lpVtbl->SetFreeDiskSpaceWarning(p, aFreeDiskSpaceWarning))
12607 #    define ISystemProperties_get_FreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
12608 #    define ISystemProperties_GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->GetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
12609 #    define ISystemProperties_put_FreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
12610 #    define ISystemProperties_SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning) ((p)->lpVtbl->SetFreeDiskSpacePercentWarning(p, aFreeDiskSpacePercentWarning))
12611 #    define ISystemProperties_get_FreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->GetFreeDiskSpaceError(p, aFreeDiskSpaceError))
12612 #    define ISystemProperties_GetFreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->GetFreeDiskSpaceError(p, aFreeDiskSpaceError))
12613 #    define ISystemProperties_put_FreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->SetFreeDiskSpaceError(p, aFreeDiskSpaceError))
12614 #    define ISystemProperties_SetFreeDiskSpaceError(p, aFreeDiskSpaceError) ((p)->lpVtbl->SetFreeDiskSpaceError(p, aFreeDiskSpaceError))
12615 #    define ISystemProperties_get_FreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
12616 #    define ISystemProperties_GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->GetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
12617 #    define ISystemProperties_put_FreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
12618 #    define ISystemProperties_SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError) ((p)->lpVtbl->SetFreeDiskSpacePercentError(p, aFreeDiskSpacePercentError))
12619 #    define ISystemProperties_get_VRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->GetVRDEAuthLibrary(p, aVRDEAuthLibrary))
12620 #    define ISystemProperties_GetVRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->GetVRDEAuthLibrary(p, aVRDEAuthLibrary))
12621 #    define ISystemProperties_put_VRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->SetVRDEAuthLibrary(p, aVRDEAuthLibrary))
12622 #    define ISystemProperties_SetVRDEAuthLibrary(p, aVRDEAuthLibrary) ((p)->lpVtbl->SetVRDEAuthLibrary(p, aVRDEAuthLibrary))
12623 #    define ISystemProperties_get_WebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
12624 #    define ISystemProperties_GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->GetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
12625 #    define ISystemProperties_put_WebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
12626 #    define ISystemProperties_SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary) ((p)->lpVtbl->SetWebServiceAuthLibrary(p, aWebServiceAuthLibrary))
12627 #    define ISystemProperties_get_DefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
12628 #    define ISystemProperties_GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->GetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
12629 #    define ISystemProperties_put_DefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
12630 #    define ISystemProperties_SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack) ((p)->lpVtbl->SetDefaultVRDEExtPack(p, aDefaultVRDEExtPack))
12631 #    define ISystemProperties_get_LogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->GetLogHistoryCount(p, aLogHistoryCount))
12632 #    define ISystemProperties_GetLogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->GetLogHistoryCount(p, aLogHistoryCount))
12633 #    define ISystemProperties_put_LogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->SetLogHistoryCount(p, aLogHistoryCount))
12634 #    define ISystemProperties_SetLogHistoryCount(p, aLogHistoryCount) ((p)->lpVtbl->SetLogHistoryCount(p, aLogHistoryCount))
12635 #    define ISystemProperties_get_DefaultAudioDriver(p, aDefaultAudioDriver) ((p)->lpVtbl->GetDefaultAudioDriver(p, aDefaultAudioDriver))
12636 #    define ISystemProperties_GetDefaultAudioDriver(p, aDefaultAudioDriver) ((p)->lpVtbl->GetDefaultAudioDriver(p, aDefaultAudioDriver))
12637 #    define ISystemProperties_get_AutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->GetAutostartDatabasePath(p, aAutostartDatabasePath))
12638 #    define ISystemProperties_GetAutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->GetAutostartDatabasePath(p, aAutostartDatabasePath))
12639 #    define ISystemProperties_put_AutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->SetAutostartDatabasePath(p, aAutostartDatabasePath))
12640 #    define ISystemProperties_SetAutostartDatabasePath(p, aAutostartDatabasePath) ((p)->lpVtbl->SetAutostartDatabasePath(p, aAutostartDatabasePath))
12641 #    define ISystemProperties_get_DefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->GetDefaultAdditionsISO(p, aDefaultAdditionsISO))
12642 #    define ISystemProperties_GetDefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->GetDefaultAdditionsISO(p, aDefaultAdditionsISO))
12643 #    define ISystemProperties_put_DefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->SetDefaultAdditionsISO(p, aDefaultAdditionsISO))
12644 #    define ISystemProperties_SetDefaultAdditionsISO(p, aDefaultAdditionsISO) ((p)->lpVtbl->SetDefaultAdditionsISO(p, aDefaultAdditionsISO))
12645 #    define ISystemProperties_get_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
12646 #    define ISystemProperties_GetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->GetDefaultFrontend(p, aDefaultFrontend))
12647 #    define ISystemProperties_put_DefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
12648 #    define ISystemProperties_SetDefaultFrontend(p, aDefaultFrontend) ((p)->lpVtbl->SetDefaultFrontend(p, aDefaultFrontend))
12649 #    define ISystemProperties_get_ScreenShotFormats(p, aScreenShotFormats) ((p)->lpVtbl->GetScreenShotFormats(p, aScreenShotFormats))
12650 #    define ISystemProperties_GetScreenShotFormats(p, aScreenShotFormats) ((p)->lpVtbl->GetScreenShotFormats(p, aScreenShotFormats))
12651 #    define ISystemProperties_get_ProxyMode(p, aProxyMode) ((p)->lpVtbl->GetProxyMode(p, aProxyMode))
12652 #    define ISystemProperties_GetProxyMode(p, aProxyMode) ((p)->lpVtbl->GetProxyMode(p, aProxyMode))
12653 #    define ISystemProperties_put_ProxyMode(p, aProxyMode) ((p)->lpVtbl->SetProxyMode(p, aProxyMode))
12654 #    define ISystemProperties_SetProxyMode(p, aProxyMode) ((p)->lpVtbl->SetProxyMode(p, aProxyMode))
12655 #    define ISystemProperties_get_ProxyURL(p, aProxyURL) ((p)->lpVtbl->GetProxyURL(p, aProxyURL))
12656 #    define ISystemProperties_GetProxyURL(p, aProxyURL) ((p)->lpVtbl->GetProxyURL(p, aProxyURL))
12657 #    define ISystemProperties_put_ProxyURL(p, aProxyURL) ((p)->lpVtbl->SetProxyURL(p, aProxyURL))
12658 #    define ISystemProperties_SetProxyURL(p, aProxyURL) ((p)->lpVtbl->SetProxyURL(p, aProxyURL))
12659 #    define ISystemProperties_get_SupportedParavirtProviders(p, aSupportedParavirtProviders) ((p)->lpVtbl->GetSupportedParavirtProviders(p, aSupportedParavirtProviders))
12660 #    define ISystemProperties_GetSupportedParavirtProviders(p, aSupportedParavirtProviders) ((p)->lpVtbl->GetSupportedParavirtProviders(p, aSupportedParavirtProviders))
12661 #    define ISystemProperties_get_SupportedClipboardModes(p, aSupportedClipboardModes) ((p)->lpVtbl->GetSupportedClipboardModes(p, aSupportedClipboardModes))
12662 #    define ISystemProperties_GetSupportedClipboardModes(p, aSupportedClipboardModes) ((p)->lpVtbl->GetSupportedClipboardModes(p, aSupportedClipboardModes))
12663 #    define ISystemProperties_get_SupportedDnDModes(p, aSupportedDnDModes) ((p)->lpVtbl->GetSupportedDnDModes(p, aSupportedDnDModes))
12664 #    define ISystemProperties_GetSupportedDnDModes(p, aSupportedDnDModes) ((p)->lpVtbl->GetSupportedDnDModes(p, aSupportedDnDModes))
12665 #    define ISystemProperties_get_SupportedFirmwareTypes(p, aSupportedFirmwareTypes) ((p)->lpVtbl->GetSupportedFirmwareTypes(p, aSupportedFirmwareTypes))
12666 #    define ISystemProperties_GetSupportedFirmwareTypes(p, aSupportedFirmwareTypes) ((p)->lpVtbl->GetSupportedFirmwareTypes(p, aSupportedFirmwareTypes))
12667 #    define ISystemProperties_get_SupportedPointingHIDTypes(p, aSupportedPointingHIDTypes) ((p)->lpVtbl->GetSupportedPointingHIDTypes(p, aSupportedPointingHIDTypes))
12668 #    define ISystemProperties_GetSupportedPointingHIDTypes(p, aSupportedPointingHIDTypes) ((p)->lpVtbl->GetSupportedPointingHIDTypes(p, aSupportedPointingHIDTypes))
12669 #    define ISystemProperties_get_SupportedKeyboardHIDTypes(p, aSupportedKeyboardHIDTypes) ((p)->lpVtbl->GetSupportedKeyboardHIDTypes(p, aSupportedKeyboardHIDTypes))
12670 #    define ISystemProperties_GetSupportedKeyboardHIDTypes(p, aSupportedKeyboardHIDTypes) ((p)->lpVtbl->GetSupportedKeyboardHIDTypes(p, aSupportedKeyboardHIDTypes))
12671 #    define ISystemProperties_get_SupportedVFSTypes(p, aSupportedVFSTypes) ((p)->lpVtbl->GetSupportedVFSTypes(p, aSupportedVFSTypes))
12672 #    define ISystemProperties_GetSupportedVFSTypes(p, aSupportedVFSTypes) ((p)->lpVtbl->GetSupportedVFSTypes(p, aSupportedVFSTypes))
12673 #    define ISystemProperties_get_SupportedImportOptions(p, aSupportedImportOptions) ((p)->lpVtbl->GetSupportedImportOptions(p, aSupportedImportOptions))
12674 #    define ISystemProperties_GetSupportedImportOptions(p, aSupportedImportOptions) ((p)->lpVtbl->GetSupportedImportOptions(p, aSupportedImportOptions))
12675 #    define ISystemProperties_get_SupportedExportOptions(p, aSupportedExportOptions) ((p)->lpVtbl->GetSupportedExportOptions(p, aSupportedExportOptions))
12676 #    define ISystemProperties_GetSupportedExportOptions(p, aSupportedExportOptions) ((p)->lpVtbl->GetSupportedExportOptions(p, aSupportedExportOptions))
12677 #    define ISystemProperties_get_SupportedRecordingAudioCodecs(p, aSupportedRecordingAudioCodecs) ((p)->lpVtbl->GetSupportedRecordingAudioCodecs(p, aSupportedRecordingAudioCodecs))
12678 #    define ISystemProperties_GetSupportedRecordingAudioCodecs(p, aSupportedRecordingAudioCodecs) ((p)->lpVtbl->GetSupportedRecordingAudioCodecs(p, aSupportedRecordingAudioCodecs))
12679 #    define ISystemProperties_get_SupportedRecordingVideoCodecs(p, aSupportedRecordingVideoCodecs) ((p)->lpVtbl->GetSupportedRecordingVideoCodecs(p, aSupportedRecordingVideoCodecs))
12680 #    define ISystemProperties_GetSupportedRecordingVideoCodecs(p, aSupportedRecordingVideoCodecs) ((p)->lpVtbl->GetSupportedRecordingVideoCodecs(p, aSupportedRecordingVideoCodecs))
12681 #    define ISystemProperties_get_SupportedRecordingVSMethods(p, aSupportedRecordingVSMethods) ((p)->lpVtbl->GetSupportedRecordingVSMethods(p, aSupportedRecordingVSMethods))
12682 #    define ISystemProperties_GetSupportedRecordingVSMethods(p, aSupportedRecordingVSMethods) ((p)->lpVtbl->GetSupportedRecordingVSMethods(p, aSupportedRecordingVSMethods))
12683 #    define ISystemProperties_get_SupportedRecordingVRCModes(p, aSupportedRecordingVRCModes) ((p)->lpVtbl->GetSupportedRecordingVRCModes(p, aSupportedRecordingVRCModes))
12684 #    define ISystemProperties_GetSupportedRecordingVRCModes(p, aSupportedRecordingVRCModes) ((p)->lpVtbl->GetSupportedRecordingVRCModes(p, aSupportedRecordingVRCModes))
12685 #    define ISystemProperties_get_SupportedGraphicsControllerTypes(p, aSupportedGraphicsControllerTypes) ((p)->lpVtbl->GetSupportedGraphicsControllerTypes(p, aSupportedGraphicsControllerTypes))
12686 #    define ISystemProperties_GetSupportedGraphicsControllerTypes(p, aSupportedGraphicsControllerTypes) ((p)->lpVtbl->GetSupportedGraphicsControllerTypes(p, aSupportedGraphicsControllerTypes))
12687 #    define ISystemProperties_get_SupportedCloneOptions(p, aSupportedCloneOptions) ((p)->lpVtbl->GetSupportedCloneOptions(p, aSupportedCloneOptions))
12688 #    define ISystemProperties_GetSupportedCloneOptions(p, aSupportedCloneOptions) ((p)->lpVtbl->GetSupportedCloneOptions(p, aSupportedCloneOptions))
12689 #    define ISystemProperties_get_SupportedAutostopTypes(p, aSupportedAutostopTypes) ((p)->lpVtbl->GetSupportedAutostopTypes(p, aSupportedAutostopTypes))
12690 #    define ISystemProperties_GetSupportedAutostopTypes(p, aSupportedAutostopTypes) ((p)->lpVtbl->GetSupportedAutostopTypes(p, aSupportedAutostopTypes))
12691 #    define ISystemProperties_get_SupportedVMProcPriorities(p, aSupportedVMProcPriorities) ((p)->lpVtbl->GetSupportedVMProcPriorities(p, aSupportedVMProcPriorities))
12692 #    define ISystemProperties_GetSupportedVMProcPriorities(p, aSupportedVMProcPriorities) ((p)->lpVtbl->GetSupportedVMProcPriorities(p, aSupportedVMProcPriorities))
12693 #    define ISystemProperties_get_SupportedNetworkAttachmentTypes(p, aSupportedNetworkAttachmentTypes) ((p)->lpVtbl->GetSupportedNetworkAttachmentTypes(p, aSupportedNetworkAttachmentTypes))
12694 #    define ISystemProperties_GetSupportedNetworkAttachmentTypes(p, aSupportedNetworkAttachmentTypes) ((p)->lpVtbl->GetSupportedNetworkAttachmentTypes(p, aSupportedNetworkAttachmentTypes))
12695 #    define ISystemProperties_get_SupportedNetworkAdapterTypes(p, aSupportedNetworkAdapterTypes) ((p)->lpVtbl->GetSupportedNetworkAdapterTypes(p, aSupportedNetworkAdapterTypes))
12696 #    define ISystemProperties_GetSupportedNetworkAdapterTypes(p, aSupportedNetworkAdapterTypes) ((p)->lpVtbl->GetSupportedNetworkAdapterTypes(p, aSupportedNetworkAdapterTypes))
12697 #    define ISystemProperties_get_SupportedPortModes(p, aSupportedPortModes) ((p)->lpVtbl->GetSupportedPortModes(p, aSupportedPortModes))
12698 #    define ISystemProperties_GetSupportedPortModes(p, aSupportedPortModes) ((p)->lpVtbl->GetSupportedPortModes(p, aSupportedPortModes))
12699 #    define ISystemProperties_get_SupportedUartTypes(p, aSupportedUartTypes) ((p)->lpVtbl->GetSupportedUartTypes(p, aSupportedUartTypes))
12700 #    define ISystemProperties_GetSupportedUartTypes(p, aSupportedUartTypes) ((p)->lpVtbl->GetSupportedUartTypes(p, aSupportedUartTypes))
12701 #    define ISystemProperties_get_SupportedUSBControllerTypes(p, aSupportedUSBControllerTypes) ((p)->lpVtbl->GetSupportedUSBControllerTypes(p, aSupportedUSBControllerTypes))
12702 #    define ISystemProperties_GetSupportedUSBControllerTypes(p, aSupportedUSBControllerTypes) ((p)->lpVtbl->GetSupportedUSBControllerTypes(p, aSupportedUSBControllerTypes))
12703 #    define ISystemProperties_get_SupportedAudioDriverTypes(p, aSupportedAudioDriverTypes) ((p)->lpVtbl->GetSupportedAudioDriverTypes(p, aSupportedAudioDriverTypes))
12704 #    define ISystemProperties_GetSupportedAudioDriverTypes(p, aSupportedAudioDriverTypes) ((p)->lpVtbl->GetSupportedAudioDriverTypes(p, aSupportedAudioDriverTypes))
12705 #    define ISystemProperties_get_SupportedAudioControllerTypes(p, aSupportedAudioControllerTypes) ((p)->lpVtbl->GetSupportedAudioControllerTypes(p, aSupportedAudioControllerTypes))
12706 #    define ISystemProperties_GetSupportedAudioControllerTypes(p, aSupportedAudioControllerTypes) ((p)->lpVtbl->GetSupportedAudioControllerTypes(p, aSupportedAudioControllerTypes))
12707 #    define ISystemProperties_get_SupportedStorageBuses(p, aSupportedStorageBuses) ((p)->lpVtbl->GetSupportedStorageBuses(p, aSupportedStorageBuses))
12708 #    define ISystemProperties_GetSupportedStorageBuses(p, aSupportedStorageBuses) ((p)->lpVtbl->GetSupportedStorageBuses(p, aSupportedStorageBuses))
12709 #    define ISystemProperties_get_SupportedStorageControllerTypes(p, aSupportedStorageControllerTypes) ((p)->lpVtbl->GetSupportedStorageControllerTypes(p, aSupportedStorageControllerTypes))
12710 #    define ISystemProperties_GetSupportedStorageControllerTypes(p, aSupportedStorageControllerTypes) ((p)->lpVtbl->GetSupportedStorageControllerTypes(p, aSupportedStorageControllerTypes))
12711 #    define ISystemProperties_get_SupportedChipsetTypes(p, aSupportedChipsetTypes) ((p)->lpVtbl->GetSupportedChipsetTypes(p, aSupportedChipsetTypes))
12712 #    define ISystemProperties_GetSupportedChipsetTypes(p, aSupportedChipsetTypes) ((p)->lpVtbl->GetSupportedChipsetTypes(p, aSupportedChipsetTypes))
12713 #    define ISystemProperties_GetMaxNetworkAdapters(p, aChipset, aMaxNetworkAdapters) ((p)->lpVtbl->GetMaxNetworkAdapters(p, aChipset, aMaxNetworkAdapters))
12714 #    define ISystemProperties_GetMaxNetworkAdaptersOfType(p, aChipset, aType, aMaxNetworkAdapters) ((p)->lpVtbl->GetMaxNetworkAdaptersOfType(p, aChipset, aType, aMaxNetworkAdapters))
12715 #    define ISystemProperties_GetMaxDevicesPerPortForStorageBus(p, aBus, aMaxDevicesPerPort) ((p)->lpVtbl->GetMaxDevicesPerPortForStorageBus(p, aBus, aMaxDevicesPerPort))
12716 #    define ISystemProperties_GetMinPortCountForStorageBus(p, aBus, aMinPortCount) ((p)->lpVtbl->GetMinPortCountForStorageBus(p, aBus, aMinPortCount))
12717 #    define ISystemProperties_GetMaxPortCountForStorageBus(p, aBus, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCountForStorageBus(p, aBus, aMaxPortCount))
12718 #    define ISystemProperties_GetMaxInstancesOfStorageBus(p, aChipset, aBus, aMaxInstances) ((p)->lpVtbl->GetMaxInstancesOfStorageBus(p, aChipset, aBus, aMaxInstances))
12719 #    define ISystemProperties_GetDeviceTypesForStorageBus(p, aBus, aDeviceTypes) ((p)->lpVtbl->GetDeviceTypesForStorageBus(p, aBus, aDeviceTypes))
12720 #    define ISystemProperties_GetStorageBusForStorageControllerType(p, aStorageControllerType, aStorageBus) ((p)->lpVtbl->GetStorageBusForStorageControllerType(p, aStorageControllerType, aStorageBus))
12721 #    define ISystemProperties_GetStorageControllerTypesForStorageBus(p, aStorageBus, aStorageControllerType) ((p)->lpVtbl->GetStorageControllerTypesForStorageBus(p, aStorageBus, aStorageControllerType))
12722 #    define ISystemProperties_GetDefaultIoCacheSettingForStorageController(p, aControllerType, aEnabled) ((p)->lpVtbl->GetDefaultIoCacheSettingForStorageController(p, aControllerType, aEnabled))
12723 #    define ISystemProperties_GetStorageControllerHotplugCapable(p, aControllerType, aHotplugCapable) ((p)->lpVtbl->GetStorageControllerHotplugCapable(p, aControllerType, aHotplugCapable))
12724 #    define ISystemProperties_GetMaxInstancesOfUSBControllerType(p, aChipset, aType, aMaxInstances) ((p)->lpVtbl->GetMaxInstancesOfUSBControllerType(p, aChipset, aType, aMaxInstances))
12725 #   endif /* VBOX_WITH_GLUE */
12726 
12727 interface ISystemProperties
12728 {
12729 #   ifndef VBOX_WITH_GLUE
12730     struct ISystemProperties_vtbl *vtbl;
12731 #   else /* VBOX_WITH_GLUE */
12732     CONST_VTBL struct ISystemPropertiesVtbl *lpVtbl;
12733 #   endif /* VBOX_WITH_GLUE */
12734 };
12735 /* End of struct ISystemProperties declaration */
12736 
12737 
12738 /* Start of struct IGuestOSType declaration */
12739 #   define IGUESTOSTYPE_IID_STR "d0d6c6d8-e5db-4d2c-baaa-c71053a6236d"
12740 #   define IGUESTOSTYPE_IID { \
12741     0xd0d6c6d8, 0xe5db, 0x4d2c, \
12742     { 0xba, 0xaa, 0xc7, 0x10, 0x53, 0xa6, 0x23, 0x6d } \
12743 }
12744 /* COM compatibility */
12745 VBOX_EXTERN_CONST(nsIID, IID_IGuestOSType);
12746 #   ifndef VBOX_WITH_GLUE
12747 struct IGuestOSType_vtbl
12748 {
12749     struct nsISupports_vtbl nsisupports;
12750 
12751     nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
12752 
12753     nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
12754 
12755     nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
12756 
12757     nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
12758 
12759     nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
12760 
12761     nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
12762 
12763     nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
12764 
12765     nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
12766 
12767     nsresult (*GetRecommendedGraphicsController)(IGuestOSType *pThis, PRUint32 *recommendedGraphicsController);
12768 
12769     nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
12770 
12771     nsresult (*GetRecommended2DVideoAcceleration)(IGuestOSType *pThis, PRBool *recommended2DVideoAcceleration);
12772 
12773     nsresult (*GetRecommended3DAcceleration)(IGuestOSType *pThis, PRBool *recommended3DAcceleration);
12774 
12775     nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRInt64 *recommendedHDD);
12776 
12777     nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
12778 
12779     nsresult (*GetRecommendedPAE)(IGuestOSType *pThis, PRBool *recommendedPAE);
12780 
12781     nsresult (*GetRecommendedDVDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageController);
12782 
12783     nsresult (*GetRecommendedDVDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageBus);
12784 
12785     nsresult (*GetRecommendedHDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageController);
12786 
12787     nsresult (*GetRecommendedHDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageBus);
12788 
12789     nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
12790 
12791     nsresult (*GetRecommendedUSBHID)(IGuestOSType *pThis, PRBool *recommendedUSBHID);
12792 
12793     nsresult (*GetRecommendedHPET)(IGuestOSType *pThis, PRBool *recommendedHPET);
12794 
12795     nsresult (*GetRecommendedUSBTablet)(IGuestOSType *pThis, PRBool *recommendedUSBTablet);
12796 
12797     nsresult (*GetRecommendedRTCUseUTC)(IGuestOSType *pThis, PRBool *recommendedRTCUseUTC);
12798 
12799     nsresult (*GetRecommendedChipset)(IGuestOSType *pThis, PRUint32 *recommendedChipset);
12800 
12801     nsresult (*GetRecommendedAudioController)(IGuestOSType *pThis, PRUint32 *recommendedAudioController);
12802 
12803     nsresult (*GetRecommendedAudioCodec)(IGuestOSType *pThis, PRUint32 *recommendedAudioCodec);
12804 
12805     nsresult (*GetRecommendedFloppy)(IGuestOSType *pThis, PRBool *recommendedFloppy);
12806 
12807     nsresult (*GetRecommendedUSB)(IGuestOSType *pThis, PRBool *recommendedUSB);
12808 
12809     nsresult (*GetRecommendedUSB3)(IGuestOSType *pThis, PRBool *recommendedUSB3);
12810 
12811     nsresult (*GetRecommendedTFReset)(IGuestOSType *pThis, PRBool *recommendedTFReset);
12812 
12813     nsresult (*GetRecommendedX2APIC)(IGuestOSType *pThis, PRBool *recommendedX2APIC);
12814 
12815     nsresult (*GetInternalAndReservedAttribute1IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12816 
12817     nsresult (*GetInternalAndReservedAttribute2IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12818 
12819     nsresult (*GetInternalAndReservedAttribute3IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12820 
12821     nsresult (*GetInternalAndReservedAttribute4IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12822 
12823     nsresult (*GetInternalAndReservedAttribute5IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12824 
12825     nsresult (*GetInternalAndReservedAttribute6IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12826 
12827     nsresult (*GetInternalAndReservedAttribute7IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12828 
12829     nsresult (*GetInternalAndReservedAttribute8IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12830 
12831     nsresult (*GetInternalAndReservedAttribute9IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12832 
12833     nsresult (*GetInternalAndReservedAttribute10IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12834 
12835     nsresult (*GetInternalAndReservedAttribute11IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12836 
12837     nsresult (*GetInternalAndReservedAttribute12IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12838 
12839     nsresult (*GetInternalAndReservedAttribute13IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12840 
12841     nsresult (*GetInternalAndReservedAttribute14IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12842 
12843     nsresult (*GetInternalAndReservedAttribute15IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12844 
12845     nsresult (*GetInternalAndReservedAttribute16IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12846 
12847 };
12848 #   else /* VBOX_WITH_GLUE */
12849 struct IGuestOSTypeVtbl
12850 {
12851     nsresult (*QueryInterface)(IGuestOSType *pThis, const nsID *iid, void **resultp);
12852     nsrefcnt (*AddRef)(IGuestOSType *pThis);
12853     nsrefcnt (*Release)(IGuestOSType *pThis);
12854     nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
12855 
12856     nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
12857 
12858     nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
12859 
12860     nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
12861 
12862     nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
12863 
12864     nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
12865 
12866     nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
12867 
12868     nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
12869 
12870     nsresult (*GetRecommendedGraphicsController)(IGuestOSType *pThis, PRUint32 *recommendedGraphicsController);
12871 
12872     nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
12873 
12874     nsresult (*GetRecommended2DVideoAcceleration)(IGuestOSType *pThis, PRBool *recommended2DVideoAcceleration);
12875 
12876     nsresult (*GetRecommended3DAcceleration)(IGuestOSType *pThis, PRBool *recommended3DAcceleration);
12877 
12878     nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRInt64 *recommendedHDD);
12879 
12880     nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
12881 
12882     nsresult (*GetRecommendedPAE)(IGuestOSType *pThis, PRBool *recommendedPAE);
12883 
12884     nsresult (*GetRecommendedDVDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageController);
12885 
12886     nsresult (*GetRecommendedDVDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDVDStorageBus);
12887 
12888     nsresult (*GetRecommendedHDStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageController);
12889 
12890     nsresult (*GetRecommendedHDStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHDStorageBus);
12891 
12892     nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
12893 
12894     nsresult (*GetRecommendedUSBHID)(IGuestOSType *pThis, PRBool *recommendedUSBHID);
12895 
12896     nsresult (*GetRecommendedHPET)(IGuestOSType *pThis, PRBool *recommendedHPET);
12897 
12898     nsresult (*GetRecommendedUSBTablet)(IGuestOSType *pThis, PRBool *recommendedUSBTablet);
12899 
12900     nsresult (*GetRecommendedRTCUseUTC)(IGuestOSType *pThis, PRBool *recommendedRTCUseUTC);
12901 
12902     nsresult (*GetRecommendedChipset)(IGuestOSType *pThis, PRUint32 *recommendedChipset);
12903 
12904     nsresult (*GetRecommendedAudioController)(IGuestOSType *pThis, PRUint32 *recommendedAudioController);
12905 
12906     nsresult (*GetRecommendedAudioCodec)(IGuestOSType *pThis, PRUint32 *recommendedAudioCodec);
12907 
12908     nsresult (*GetRecommendedFloppy)(IGuestOSType *pThis, PRBool *recommendedFloppy);
12909 
12910     nsresult (*GetRecommendedUSB)(IGuestOSType *pThis, PRBool *recommendedUSB);
12911 
12912     nsresult (*GetRecommendedUSB3)(IGuestOSType *pThis, PRBool *recommendedUSB3);
12913 
12914     nsresult (*GetRecommendedTFReset)(IGuestOSType *pThis, PRBool *recommendedTFReset);
12915 
12916     nsresult (*GetRecommendedX2APIC)(IGuestOSType *pThis, PRBool *recommendedX2APIC);
12917 
12918     nsresult (*GetInternalAndReservedAttribute1IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12919 
12920     nsresult (*GetInternalAndReservedAttribute2IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12921 
12922     nsresult (*GetInternalAndReservedAttribute3IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12923 
12924     nsresult (*GetInternalAndReservedAttribute4IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12925 
12926     nsresult (*GetInternalAndReservedAttribute5IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12927 
12928     nsresult (*GetInternalAndReservedAttribute6IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12929 
12930     nsresult (*GetInternalAndReservedAttribute7IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12931 
12932     nsresult (*GetInternalAndReservedAttribute8IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12933 
12934     nsresult (*GetInternalAndReservedAttribute9IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12935 
12936     nsresult (*GetInternalAndReservedAttribute10IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12937 
12938     nsresult (*GetInternalAndReservedAttribute11IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12939 
12940     nsresult (*GetInternalAndReservedAttribute12IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12941 
12942     nsresult (*GetInternalAndReservedAttribute13IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12943 
12944     nsresult (*GetInternalAndReservedAttribute14IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12945 
12946     nsresult (*GetInternalAndReservedAttribute15IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12947 
12948     nsresult (*GetInternalAndReservedAttribute16IGuestOSType)(IGuestOSType *pThis, PRUint32 *reserved);
12949 
12950 };
12951 #    define IGuestOSType_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
12952 #    define IGuestOSType_AddRef(p) ((p)->lpVtbl->AddRef(p))
12953 #    define IGuestOSType_Release(p) ((p)->lpVtbl->Release(p))
12954 #    define IGuestOSType_get_FamilyId(p, aFamilyId) ((p)->lpVtbl->GetFamilyId(p, aFamilyId))
12955 #    define IGuestOSType_GetFamilyId(p, aFamilyId) ((p)->lpVtbl->GetFamilyId(p, aFamilyId))
12956 #    define IGuestOSType_get_FamilyDescription(p, aFamilyDescription) ((p)->lpVtbl->GetFamilyDescription(p, aFamilyDescription))
12957 #    define IGuestOSType_GetFamilyDescription(p, aFamilyDescription) ((p)->lpVtbl->GetFamilyDescription(p, aFamilyDescription))
12958 #    define IGuestOSType_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
12959 #    define IGuestOSType_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
12960 #    define IGuestOSType_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
12961 #    define IGuestOSType_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
12962 #    define IGuestOSType_get_Is64Bit(p, aIs64Bit) ((p)->lpVtbl->GetIs64Bit(p, aIs64Bit))
12963 #    define IGuestOSType_GetIs64Bit(p, aIs64Bit) ((p)->lpVtbl->GetIs64Bit(p, aIs64Bit))
12964 #    define IGuestOSType_get_RecommendedIOAPIC(p, aRecommendedIOAPIC) ((p)->lpVtbl->GetRecommendedIOAPIC(p, aRecommendedIOAPIC))
12965 #    define IGuestOSType_GetRecommendedIOAPIC(p, aRecommendedIOAPIC) ((p)->lpVtbl->GetRecommendedIOAPIC(p, aRecommendedIOAPIC))
12966 #    define IGuestOSType_get_RecommendedVirtEx(p, aRecommendedVirtEx) ((p)->lpVtbl->GetRecommendedVirtEx(p, aRecommendedVirtEx))
12967 #    define IGuestOSType_GetRecommendedVirtEx(p, aRecommendedVirtEx) ((p)->lpVtbl->GetRecommendedVirtEx(p, aRecommendedVirtEx))
12968 #    define IGuestOSType_get_RecommendedRAM(p, aRecommendedRAM) ((p)->lpVtbl->GetRecommendedRAM(p, aRecommendedRAM))
12969 #    define IGuestOSType_GetRecommendedRAM(p, aRecommendedRAM) ((p)->lpVtbl->GetRecommendedRAM(p, aRecommendedRAM))
12970 #    define IGuestOSType_get_RecommendedGraphicsController(p, aRecommendedGraphicsController) ((p)->lpVtbl->GetRecommendedGraphicsController(p, aRecommendedGraphicsController))
12971 #    define IGuestOSType_GetRecommendedGraphicsController(p, aRecommendedGraphicsController) ((p)->lpVtbl->GetRecommendedGraphicsController(p, aRecommendedGraphicsController))
12972 #    define IGuestOSType_get_RecommendedVRAM(p, aRecommendedVRAM) ((p)->lpVtbl->GetRecommendedVRAM(p, aRecommendedVRAM))
12973 #    define IGuestOSType_GetRecommendedVRAM(p, aRecommendedVRAM) ((p)->lpVtbl->GetRecommendedVRAM(p, aRecommendedVRAM))
12974 #    define IGuestOSType_get_Recommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration) ((p)->lpVtbl->GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration))
12975 #    define IGuestOSType_GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration) ((p)->lpVtbl->GetRecommended2DVideoAcceleration(p, aRecommended2DVideoAcceleration))
12976 #    define IGuestOSType_get_Recommended3DAcceleration(p, aRecommended3DAcceleration) ((p)->lpVtbl->GetRecommended3DAcceleration(p, aRecommended3DAcceleration))
12977 #    define IGuestOSType_GetRecommended3DAcceleration(p, aRecommended3DAcceleration) ((p)->lpVtbl->GetRecommended3DAcceleration(p, aRecommended3DAcceleration))
12978 #    define IGuestOSType_get_RecommendedHDD(p, aRecommendedHDD) ((p)->lpVtbl->GetRecommendedHDD(p, aRecommendedHDD))
12979 #    define IGuestOSType_GetRecommendedHDD(p, aRecommendedHDD) ((p)->lpVtbl->GetRecommendedHDD(p, aRecommendedHDD))
12980 #    define IGuestOSType_get_AdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
12981 #    define IGuestOSType_GetAdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
12982 #    define IGuestOSType_get_RecommendedPAE(p, aRecommendedPAE) ((p)->lpVtbl->GetRecommendedPAE(p, aRecommendedPAE))
12983 #    define IGuestOSType_GetRecommendedPAE(p, aRecommendedPAE) ((p)->lpVtbl->GetRecommendedPAE(p, aRecommendedPAE))
12984 #    define IGuestOSType_get_RecommendedDVDStorageController(p, aRecommendedDVDStorageController) ((p)->lpVtbl->GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController))
12985 #    define IGuestOSType_GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController) ((p)->lpVtbl->GetRecommendedDVDStorageController(p, aRecommendedDVDStorageController))
12986 #    define IGuestOSType_get_RecommendedDVDStorageBus(p, aRecommendedDVDStorageBus) ((p)->lpVtbl->GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus))
12987 #    define IGuestOSType_GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus) ((p)->lpVtbl->GetRecommendedDVDStorageBus(p, aRecommendedDVDStorageBus))
12988 #    define IGuestOSType_get_RecommendedHDStorageController(p, aRecommendedHDStorageController) ((p)->lpVtbl->GetRecommendedHDStorageController(p, aRecommendedHDStorageController))
12989 #    define IGuestOSType_GetRecommendedHDStorageController(p, aRecommendedHDStorageController) ((p)->lpVtbl->GetRecommendedHDStorageController(p, aRecommendedHDStorageController))
12990 #    define IGuestOSType_get_RecommendedHDStorageBus(p, aRecommendedHDStorageBus) ((p)->lpVtbl->GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus))
12991 #    define IGuestOSType_GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus) ((p)->lpVtbl->GetRecommendedHDStorageBus(p, aRecommendedHDStorageBus))
12992 #    define IGuestOSType_get_RecommendedFirmware(p, aRecommendedFirmware) ((p)->lpVtbl->GetRecommendedFirmware(p, aRecommendedFirmware))
12993 #    define IGuestOSType_GetRecommendedFirmware(p, aRecommendedFirmware) ((p)->lpVtbl->GetRecommendedFirmware(p, aRecommendedFirmware))
12994 #    define IGuestOSType_get_RecommendedUSBHID(p, aRecommendedUSBHID) ((p)->lpVtbl->GetRecommendedUSBHID(p, aRecommendedUSBHID))
12995 #    define IGuestOSType_GetRecommendedUSBHID(p, aRecommendedUSBHID) ((p)->lpVtbl->GetRecommendedUSBHID(p, aRecommendedUSBHID))
12996 #    define IGuestOSType_get_RecommendedHPET(p, aRecommendedHPET) ((p)->lpVtbl->GetRecommendedHPET(p, aRecommendedHPET))
12997 #    define IGuestOSType_GetRecommendedHPET(p, aRecommendedHPET) ((p)->lpVtbl->GetRecommendedHPET(p, aRecommendedHPET))
12998 #    define IGuestOSType_get_RecommendedUSBTablet(p, aRecommendedUSBTablet) ((p)->lpVtbl->GetRecommendedUSBTablet(p, aRecommendedUSBTablet))
12999 #    define IGuestOSType_GetRecommendedUSBTablet(p, aRecommendedUSBTablet) ((p)->lpVtbl->GetRecommendedUSBTablet(p, aRecommendedUSBTablet))
13000 #    define IGuestOSType_get_RecommendedRTCUseUTC(p, aRecommendedRTCUseUTC) ((p)->lpVtbl->GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC))
13001 #    define IGuestOSType_GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC) ((p)->lpVtbl->GetRecommendedRTCUseUTC(p, aRecommendedRTCUseUTC))
13002 #    define IGuestOSType_get_RecommendedChipset(p, aRecommendedChipset) ((p)->lpVtbl->GetRecommendedChipset(p, aRecommendedChipset))
13003 #    define IGuestOSType_GetRecommendedChipset(p, aRecommendedChipset) ((p)->lpVtbl->GetRecommendedChipset(p, aRecommendedChipset))
13004 #    define IGuestOSType_get_RecommendedAudioController(p, aRecommendedAudioController) ((p)->lpVtbl->GetRecommendedAudioController(p, aRecommendedAudioController))
13005 #    define IGuestOSType_GetRecommendedAudioController(p, aRecommendedAudioController) ((p)->lpVtbl->GetRecommendedAudioController(p, aRecommendedAudioController))
13006 #    define IGuestOSType_get_RecommendedAudioCodec(p, aRecommendedAudioCodec) ((p)->lpVtbl->GetRecommendedAudioCodec(p, aRecommendedAudioCodec))
13007 #    define IGuestOSType_GetRecommendedAudioCodec(p, aRecommendedAudioCodec) ((p)->lpVtbl->GetRecommendedAudioCodec(p, aRecommendedAudioCodec))
13008 #    define IGuestOSType_get_RecommendedFloppy(p, aRecommendedFloppy) ((p)->lpVtbl->GetRecommendedFloppy(p, aRecommendedFloppy))
13009 #    define IGuestOSType_GetRecommendedFloppy(p, aRecommendedFloppy) ((p)->lpVtbl->GetRecommendedFloppy(p, aRecommendedFloppy))
13010 #    define IGuestOSType_get_RecommendedUSB(p, aRecommendedUSB) ((p)->lpVtbl->GetRecommendedUSB(p, aRecommendedUSB))
13011 #    define IGuestOSType_GetRecommendedUSB(p, aRecommendedUSB) ((p)->lpVtbl->GetRecommendedUSB(p, aRecommendedUSB))
13012 #    define IGuestOSType_get_RecommendedUSB3(p, aRecommendedUSB3) ((p)->lpVtbl->GetRecommendedUSB3(p, aRecommendedUSB3))
13013 #    define IGuestOSType_GetRecommendedUSB3(p, aRecommendedUSB3) ((p)->lpVtbl->GetRecommendedUSB3(p, aRecommendedUSB3))
13014 #    define IGuestOSType_get_RecommendedTFReset(p, aRecommendedTFReset) ((p)->lpVtbl->GetRecommendedTFReset(p, aRecommendedTFReset))
13015 #    define IGuestOSType_GetRecommendedTFReset(p, aRecommendedTFReset) ((p)->lpVtbl->GetRecommendedTFReset(p, aRecommendedTFReset))
13016 #    define IGuestOSType_get_RecommendedX2APIC(p, aRecommendedX2APIC) ((p)->lpVtbl->GetRecommendedX2APIC(p, aRecommendedX2APIC))
13017 #    define IGuestOSType_GetRecommendedX2APIC(p, aRecommendedX2APIC) ((p)->lpVtbl->GetRecommendedX2APIC(p, aRecommendedX2APIC))
13018 #   endif /* VBOX_WITH_GLUE */
13019 
13020 interface IGuestOSType
13021 {
13022 #   ifndef VBOX_WITH_GLUE
13023     struct IGuestOSType_vtbl *vtbl;
13024 #   else /* VBOX_WITH_GLUE */
13025     CONST_VTBL struct IGuestOSTypeVtbl *lpVtbl;
13026 #   endif /* VBOX_WITH_GLUE */
13027 };
13028 /* End of struct IGuestOSType declaration */
13029 
13030 
13031 /* Start of struct IAdditionsFacility declaration */
13032 #   define IADDITIONSFACILITY_IID_STR "f2f7fae4-4a06-81fc-a916-78b2da1fa0e5"
13033 #   define IADDITIONSFACILITY_IID { \
13034     0xf2f7fae4, 0x4a06, 0x81fc, \
13035     { 0xa9, 0x16, 0x78, 0xb2, 0xda, 0x1f, 0xa0, 0xe5 } \
13036 }
13037 /* COM compatibility */
13038 VBOX_EXTERN_CONST(nsIID, IID_IAdditionsFacility);
13039 #   ifndef VBOX_WITH_GLUE
13040 struct IAdditionsFacility_vtbl
13041 {
13042     struct nsISupports_vtbl nsisupports;
13043 
13044     nsresult (*GetClassType)(IAdditionsFacility *pThis, PRUint32 *classType);
13045 
13046     nsresult (*GetLastUpdated)(IAdditionsFacility *pThis, PRInt64 *lastUpdated);
13047 
13048     nsresult (*GetName)(IAdditionsFacility *pThis, PRUnichar * *name);
13049 
13050     nsresult (*GetStatus)(IAdditionsFacility *pThis, PRUint32 *status);
13051 
13052     nsresult (*GetType)(IAdditionsFacility *pThis, PRUint32 *type);
13053 
13054     nsresult (*GetInternalAndReservedAttribute1IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
13055 
13056     nsresult (*GetInternalAndReservedAttribute2IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
13057 
13058 };
13059 #   else /* VBOX_WITH_GLUE */
13060 struct IAdditionsFacilityVtbl
13061 {
13062     nsresult (*QueryInterface)(IAdditionsFacility *pThis, const nsID *iid, void **resultp);
13063     nsrefcnt (*AddRef)(IAdditionsFacility *pThis);
13064     nsrefcnt (*Release)(IAdditionsFacility *pThis);
13065     nsresult (*GetClassType)(IAdditionsFacility *pThis, PRUint32 *classType);
13066 
13067     nsresult (*GetLastUpdated)(IAdditionsFacility *pThis, PRInt64 *lastUpdated);
13068 
13069     nsresult (*GetName)(IAdditionsFacility *pThis, PRUnichar * *name);
13070 
13071     nsresult (*GetStatus)(IAdditionsFacility *pThis, PRUint32 *status);
13072 
13073     nsresult (*GetType)(IAdditionsFacility *pThis, PRUint32 *type);
13074 
13075     nsresult (*GetInternalAndReservedAttribute1IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
13076 
13077     nsresult (*GetInternalAndReservedAttribute2IAdditionsFacility)(IAdditionsFacility *pThis, PRUint32 *reserved);
13078 
13079 };
13080 #    define IAdditionsFacility_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13081 #    define IAdditionsFacility_AddRef(p) ((p)->lpVtbl->AddRef(p))
13082 #    define IAdditionsFacility_Release(p) ((p)->lpVtbl->Release(p))
13083 #    define IAdditionsFacility_get_ClassType(p, aClassType) ((p)->lpVtbl->GetClassType(p, aClassType))
13084 #    define IAdditionsFacility_GetClassType(p, aClassType) ((p)->lpVtbl->GetClassType(p, aClassType))
13085 #    define IAdditionsFacility_get_LastUpdated(p, aLastUpdated) ((p)->lpVtbl->GetLastUpdated(p, aLastUpdated))
13086 #    define IAdditionsFacility_GetLastUpdated(p, aLastUpdated) ((p)->lpVtbl->GetLastUpdated(p, aLastUpdated))
13087 #    define IAdditionsFacility_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
13088 #    define IAdditionsFacility_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
13089 #    define IAdditionsFacility_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13090 #    define IAdditionsFacility_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
13091 #    define IAdditionsFacility_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
13092 #    define IAdditionsFacility_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
13093 #   endif /* VBOX_WITH_GLUE */
13094 
13095 interface IAdditionsFacility
13096 {
13097 #   ifndef VBOX_WITH_GLUE
13098     struct IAdditionsFacility_vtbl *vtbl;
13099 #   else /* VBOX_WITH_GLUE */
13100     CONST_VTBL struct IAdditionsFacilityVtbl *lpVtbl;
13101 #   endif /* VBOX_WITH_GLUE */
13102 };
13103 /* End of struct IAdditionsFacility declaration */
13104 
13105 
13106 /* Start of struct IDnDBase declaration */
13107 #   define IDNDBASE_IID_STR "4132147b-42f8-cd96-7570-6a8800e3342c"
13108 #   define IDNDBASE_IID { \
13109     0x4132147b, 0x42f8, 0xcd96, \
13110     { 0x75, 0x70, 0x6a, 0x88, 0x00, 0xe3, 0x34, 0x2c } \
13111 }
13112 /* COM compatibility */
13113 VBOX_EXTERN_CONST(nsIID, IID_IDnDBase);
13114 #   ifndef VBOX_WITH_GLUE
13115 struct IDnDBase_vtbl
13116 {
13117     struct nsISupports_vtbl nsisupports;
13118 
13119     nsresult (*GetFormats)(IDnDBase *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
13120 
13121     nsresult (*GetProtocolVersion)(IDnDBase *pThis, PRUint32 *protocolVersion);
13122 
13123     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
13124 
13125     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
13126 
13127     nsresult (*IsFormatSupported)(
13128         IDnDBase *pThis,
13129         PRUnichar * format,
13130         PRBool * supported
13131     );
13132 
13133     nsresult (*AddFormats)(
13134         IDnDBase *pThis,
13135         PRUint32 formatsSize,
13136         PRUnichar ** formats
13137     );
13138 
13139     nsresult (*RemoveFormats)(
13140         IDnDBase *pThis,
13141         PRUint32 formatsSize,
13142         PRUnichar ** formats
13143     );
13144 
13145     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDBase *pThis);
13146 
13147 };
13148 #   else /* VBOX_WITH_GLUE */
13149 struct IDnDBaseVtbl
13150 {
13151     nsresult (*QueryInterface)(IDnDBase *pThis, const nsID *iid, void **resultp);
13152     nsrefcnt (*AddRef)(IDnDBase *pThis);
13153     nsrefcnt (*Release)(IDnDBase *pThis);
13154     nsresult (*GetFormats)(IDnDBase *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
13155 
13156     nsresult (*GetProtocolVersion)(IDnDBase *pThis, PRUint32 *protocolVersion);
13157 
13158     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
13159 
13160     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDBase *pThis, PRUint32 *reserved);
13161 
13162     nsresult (*IsFormatSupported)(
13163         IDnDBase *pThis,
13164         PRUnichar * format,
13165         PRBool * supported
13166     );
13167 
13168     nsresult (*AddFormats)(
13169         IDnDBase *pThis,
13170         PRUint32 formatsSize,
13171         PRUnichar ** formats
13172     );
13173 
13174     nsresult (*RemoveFormats)(
13175         IDnDBase *pThis,
13176         PRUint32 formatsSize,
13177         PRUnichar ** formats
13178     );
13179 
13180     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDBase *pThis);
13181 
13182 };
13183 #    define IDnDBase_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13184 #    define IDnDBase_AddRef(p) ((p)->lpVtbl->AddRef(p))
13185 #    define IDnDBase_Release(p) ((p)->lpVtbl->Release(p))
13186 #    define IDnDBase_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13187 #    define IDnDBase_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13188 #    define IDnDBase_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13189 #    define IDnDBase_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13190 #    define IDnDBase_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
13191 #    define IDnDBase_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
13192 #    define IDnDBase_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
13193 #   endif /* VBOX_WITH_GLUE */
13194 
13195 interface IDnDBase
13196 {
13197 #   ifndef VBOX_WITH_GLUE
13198     struct IDnDBase_vtbl *vtbl;
13199 #   else /* VBOX_WITH_GLUE */
13200     CONST_VTBL struct IDnDBaseVtbl *lpVtbl;
13201 #   endif /* VBOX_WITH_GLUE */
13202 };
13203 /* End of struct IDnDBase declaration */
13204 
13205 
13206 /* Start of struct IDnDSource declaration */
13207 #   define IDNDSOURCE_IID_STR "d23a9ca3-42da-c94b-8aec-21968e08355d"
13208 #   define IDNDSOURCE_IID { \
13209     0xd23a9ca3, 0x42da, 0xc94b, \
13210     { 0x8a, 0xec, 0x21, 0x96, 0x8e, 0x08, 0x35, 0x5d } \
13211 }
13212 /* COM compatibility */
13213 VBOX_EXTERN_CONST(nsIID, IID_IDnDSource);
13214 #   ifndef VBOX_WITH_GLUE
13215 struct IDnDSource_vtbl
13216 {
13217     struct IDnDBase_vtbl idndbase;
13218 
13219     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
13220 
13221     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
13222 
13223     nsresult (*DragIsPending)(
13224         IDnDSource *pThis,
13225         PRUint32 screenId,
13226         PRUint32 *formatsSize,
13227         PRUnichar *** formats,
13228         PRUint32 *allowedActionsSize,
13229         PRUint32** allowedActions,
13230         PRUint32 * defaultAction
13231     );
13232 
13233     nsresult (*Drop)(
13234         IDnDSource *pThis,
13235         PRUnichar * format,
13236         PRUint32 action,
13237         IProgress * * progress
13238     );
13239 
13240     nsresult (*ReceiveData)(
13241         IDnDSource *pThis,
13242         PRUint32 *dataSize,
13243         PRUint8** data
13244     );
13245 
13246     nsresult (*InternalAndReservedMethod1IDnDSource)(IDnDSource *pThis);
13247 
13248 };
13249 #   else /* VBOX_WITH_GLUE */
13250 struct IDnDSourceVtbl
13251 {
13252     nsresult (*QueryInterface)(IDnDSource *pThis, const nsID *iid, void **resultp);
13253     nsrefcnt (*AddRef)(IDnDSource *pThis);
13254     nsrefcnt (*Release)(IDnDSource *pThis);
13255     nsresult (*GetFormats)(IDnDSource *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
13256 
13257     nsresult (*GetProtocolVersion)(IDnDSource *pThis, PRUint32 *protocolVersion);
13258 
13259     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDSource *pThis, PRUint32 *reserved);
13260 
13261     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDSource *pThis, PRUint32 *reserved);
13262 
13263     nsresult (*IsFormatSupported)(
13264         IDnDSource *pThis,
13265         PRUnichar * format,
13266         PRBool * supported
13267     );
13268 
13269     nsresult (*AddFormats)(
13270         IDnDSource *pThis,
13271         PRUint32 formatsSize,
13272         PRUnichar ** formats
13273     );
13274 
13275     nsresult (*RemoveFormats)(
13276         IDnDSource *pThis,
13277         PRUint32 formatsSize,
13278         PRUnichar ** formats
13279     );
13280 
13281     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDSource *pThis);
13282 
13283     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
13284 
13285     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IDnDSource *pThis, PRUint32 *reserved);
13286 
13287     nsresult (*DragIsPending)(
13288         IDnDSource *pThis,
13289         PRUint32 screenId,
13290         PRUint32 *formatsSize,
13291         PRUnichar *** formats,
13292         PRUint32 *allowedActionsSize,
13293         PRUint32** allowedActions,
13294         PRUint32 * defaultAction
13295     );
13296 
13297     nsresult (*Drop)(
13298         IDnDSource *pThis,
13299         PRUnichar * format,
13300         PRUint32 action,
13301         IProgress * * progress
13302     );
13303 
13304     nsresult (*ReceiveData)(
13305         IDnDSource *pThis,
13306         PRUint32 *dataSize,
13307         PRUint8** data
13308     );
13309 
13310     nsresult (*InternalAndReservedMethod1IDnDSource)(IDnDSource *pThis);
13311 
13312 };
13313 #    define IDnDSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13314 #    define IDnDSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
13315 #    define IDnDSource_Release(p) ((p)->lpVtbl->Release(p))
13316 #    define IDnDSource_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13317 #    define IDnDSource_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13318 #    define IDnDSource_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13319 #    define IDnDSource_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13320 #    define IDnDSource_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
13321 #    define IDnDSource_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
13322 #    define IDnDSource_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
13323 #    define IDnDSource_DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction) ((p)->lpVtbl->DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction))
13324 #    define IDnDSource_Drop(p, aFormat, aAction, aProgress) ((p)->lpVtbl->Drop(p, aFormat, aAction, aProgress))
13325 #    define IDnDSource_ReceiveData(p, aData) ((p)->lpVtbl->ReceiveData(p, aData))
13326 #   endif /* VBOX_WITH_GLUE */
13327 
13328 interface IDnDSource
13329 {
13330 #   ifndef VBOX_WITH_GLUE
13331     struct IDnDSource_vtbl *vtbl;
13332 #   else /* VBOX_WITH_GLUE */
13333     CONST_VTBL struct IDnDSourceVtbl *lpVtbl;
13334 #   endif /* VBOX_WITH_GLUE */
13335 };
13336 /* End of struct IDnDSource declaration */
13337 
13338 
13339 /* Start of struct IGuestDnDSource declaration */
13340 #   define IGUESTDNDSOURCE_IID_STR "dedfb5d9-4c1b-edf7-fdf3-c1be6827dc28"
13341 #   define IGUESTDNDSOURCE_IID { \
13342     0xdedfb5d9, 0x4c1b, 0xedf7, \
13343     { 0xfd, 0xf3, 0xc1, 0xbe, 0x68, 0x27, 0xdc, 0x28 } \
13344 }
13345 /* COM compatibility */
13346 VBOX_EXTERN_CONST(nsIID, IID_IGuestDnDSource);
13347 #   ifndef VBOX_WITH_GLUE
13348 struct IGuestDnDSource_vtbl
13349 {
13350     struct IDnDSource_vtbl idndsource;
13351 
13352     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDSource *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13353 
13354 };
13355 #   else /* VBOX_WITH_GLUE */
13356 struct IGuestDnDSourceVtbl
13357 {
13358     nsresult (*QueryInterface)(IGuestDnDSource *pThis, const nsID *iid, void **resultp);
13359     nsrefcnt (*AddRef)(IGuestDnDSource *pThis);
13360     nsrefcnt (*Release)(IGuestDnDSource *pThis);
13361     nsresult (*GetFormats)(IGuestDnDSource *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
13362 
13363     nsresult (*GetProtocolVersion)(IGuestDnDSource *pThis, PRUint32 *protocolVersion);
13364 
13365     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IGuestDnDSource *pThis, PRUint32 *reserved);
13366 
13367     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IGuestDnDSource *pThis, PRUint32 *reserved);
13368 
13369     nsresult (*IsFormatSupported)(
13370         IGuestDnDSource *pThis,
13371         PRUnichar * format,
13372         PRBool * supported
13373     );
13374 
13375     nsresult (*AddFormats)(
13376         IGuestDnDSource *pThis,
13377         PRUint32 formatsSize,
13378         PRUnichar ** formats
13379     );
13380 
13381     nsresult (*RemoveFormats)(
13382         IGuestDnDSource *pThis,
13383         PRUint32 formatsSize,
13384         PRUnichar ** formats
13385     );
13386 
13387     nsresult (*InternalAndReservedMethod1IDnDBase)(IGuestDnDSource *pThis);
13388 
13389     nsresult (*GetInternalAndReservedAttribute1IDnDSource)(IGuestDnDSource *pThis, PRUint32 *reserved);
13390 
13391     nsresult (*GetInternalAndReservedAttribute2IDnDSource)(IGuestDnDSource *pThis, PRUint32 *reserved);
13392 
13393     nsresult (*DragIsPending)(
13394         IGuestDnDSource *pThis,
13395         PRUint32 screenId,
13396         PRUint32 *formatsSize,
13397         PRUnichar *** formats,
13398         PRUint32 *allowedActionsSize,
13399         PRUint32** allowedActions,
13400         PRUint32 * defaultAction
13401     );
13402 
13403     nsresult (*Drop)(
13404         IGuestDnDSource *pThis,
13405         PRUnichar * format,
13406         PRUint32 action,
13407         IProgress * * progress
13408     );
13409 
13410     nsresult (*ReceiveData)(
13411         IGuestDnDSource *pThis,
13412         PRUint32 *dataSize,
13413         PRUint8** data
13414     );
13415 
13416     nsresult (*InternalAndReservedMethod1IDnDSource)(IGuestDnDSource *pThis);
13417 
13418     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDSource *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13419 
13420 };
13421 #    define IGuestDnDSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13422 #    define IGuestDnDSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
13423 #    define IGuestDnDSource_Release(p) ((p)->lpVtbl->Release(p))
13424 #    define IGuestDnDSource_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13425 #    define IGuestDnDSource_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13426 #    define IGuestDnDSource_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13427 #    define IGuestDnDSource_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13428 #    define IGuestDnDSource_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
13429 #    define IGuestDnDSource_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
13430 #    define IGuestDnDSource_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
13431 #    define IGuestDnDSource_DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction) ((p)->lpVtbl->DragIsPending(p, aScreenId, aFormats, aAllowedActions, aDefaultAction))
13432 #    define IGuestDnDSource_Drop(p, aFormat, aAction, aProgress) ((p)->lpVtbl->Drop(p, aFormat, aAction, aProgress))
13433 #    define IGuestDnDSource_ReceiveData(p, aData) ((p)->lpVtbl->ReceiveData(p, aData))
13434 #    define IGuestDnDSource_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13435 #    define IGuestDnDSource_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13436 #   endif /* VBOX_WITH_GLUE */
13437 
13438 interface IGuestDnDSource
13439 {
13440 #   ifndef VBOX_WITH_GLUE
13441     struct IGuestDnDSource_vtbl *vtbl;
13442 #   else /* VBOX_WITH_GLUE */
13443     CONST_VTBL struct IGuestDnDSourceVtbl *lpVtbl;
13444 #   endif /* VBOX_WITH_GLUE */
13445 };
13446 /* End of struct IGuestDnDSource declaration */
13447 
13448 
13449 /* Start of struct IDnDTarget declaration */
13450 #   define IDNDTARGET_IID_STR "ff5befc3-4ba3-7903-2aa4-43988ba11554"
13451 #   define IDNDTARGET_IID { \
13452     0xff5befc3, 0x4ba3, 0x7903, \
13453     { 0x2a, 0xa4, 0x43, 0x98, 0x8b, 0xa1, 0x15, 0x54 } \
13454 }
13455 /* COM compatibility */
13456 VBOX_EXTERN_CONST(nsIID, IID_IDnDTarget);
13457 #   ifndef VBOX_WITH_GLUE
13458 struct IDnDTarget_vtbl
13459 {
13460     struct IDnDBase_vtbl idndbase;
13461 
13462     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
13463 
13464     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
13465 
13466     nsresult (*Enter)(
13467         IDnDTarget *pThis,
13468         PRUint32 screenId,
13469         PRUint32 y,
13470         PRUint32 x,
13471         PRUint32 defaultAction,
13472         PRUint32 allowedActionsSize,
13473         PRUint32* allowedActions,
13474         PRUint32 formatsSize,
13475         PRUnichar ** formats,
13476         PRUint32 * resultAction
13477     );
13478 
13479     nsresult (*Move)(
13480         IDnDTarget *pThis,
13481         PRUint32 screenId,
13482         PRUint32 x,
13483         PRUint32 y,
13484         PRUint32 defaultAction,
13485         PRUint32 allowedActionsSize,
13486         PRUint32* allowedActions,
13487         PRUint32 formatsSize,
13488         PRUnichar ** formats,
13489         PRUint32 * resultAction
13490     );
13491 
13492     nsresult (*Leave)(
13493         IDnDTarget *pThis,
13494         PRUint32 screenId
13495     );
13496 
13497     nsresult (*Drop)(
13498         IDnDTarget *pThis,
13499         PRUint32 screenId,
13500         PRUint32 x,
13501         PRUint32 y,
13502         PRUint32 defaultAction,
13503         PRUint32 allowedActionsSize,
13504         PRUint32* allowedActions,
13505         PRUint32 formatsSize,
13506         PRUnichar ** formats,
13507         PRUnichar * * format,
13508         PRUint32 * resultAction
13509     );
13510 
13511     nsresult (*SendData)(
13512         IDnDTarget *pThis,
13513         PRUint32 screenId,
13514         PRUnichar * format,
13515         PRUint32 dataSize,
13516         PRUint8* data,
13517         IProgress * * progress
13518     );
13519 
13520     nsresult (*Cancel)(
13521         IDnDTarget *pThis,
13522         PRBool * veto
13523     );
13524 
13525     nsresult (*InternalAndReservedMethod1IDnDTarget)(IDnDTarget *pThis);
13526 
13527 };
13528 #   else /* VBOX_WITH_GLUE */
13529 struct IDnDTargetVtbl
13530 {
13531     nsresult (*QueryInterface)(IDnDTarget *pThis, const nsID *iid, void **resultp);
13532     nsrefcnt (*AddRef)(IDnDTarget *pThis);
13533     nsrefcnt (*Release)(IDnDTarget *pThis);
13534     nsresult (*GetFormats)(IDnDTarget *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
13535 
13536     nsresult (*GetProtocolVersion)(IDnDTarget *pThis, PRUint32 *protocolVersion);
13537 
13538     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IDnDTarget *pThis, PRUint32 *reserved);
13539 
13540     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IDnDTarget *pThis, PRUint32 *reserved);
13541 
13542     nsresult (*IsFormatSupported)(
13543         IDnDTarget *pThis,
13544         PRUnichar * format,
13545         PRBool * supported
13546     );
13547 
13548     nsresult (*AddFormats)(
13549         IDnDTarget *pThis,
13550         PRUint32 formatsSize,
13551         PRUnichar ** formats
13552     );
13553 
13554     nsresult (*RemoveFormats)(
13555         IDnDTarget *pThis,
13556         PRUint32 formatsSize,
13557         PRUnichar ** formats
13558     );
13559 
13560     nsresult (*InternalAndReservedMethod1IDnDBase)(IDnDTarget *pThis);
13561 
13562     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
13563 
13564     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IDnDTarget *pThis, PRUint32 *reserved);
13565 
13566     nsresult (*Enter)(
13567         IDnDTarget *pThis,
13568         PRUint32 screenId,
13569         PRUint32 y,
13570         PRUint32 x,
13571         PRUint32 defaultAction,
13572         PRUint32 allowedActionsSize,
13573         PRUint32* allowedActions,
13574         PRUint32 formatsSize,
13575         PRUnichar ** formats,
13576         PRUint32 * resultAction
13577     );
13578 
13579     nsresult (*Move)(
13580         IDnDTarget *pThis,
13581         PRUint32 screenId,
13582         PRUint32 x,
13583         PRUint32 y,
13584         PRUint32 defaultAction,
13585         PRUint32 allowedActionsSize,
13586         PRUint32* allowedActions,
13587         PRUint32 formatsSize,
13588         PRUnichar ** formats,
13589         PRUint32 * resultAction
13590     );
13591 
13592     nsresult (*Leave)(
13593         IDnDTarget *pThis,
13594         PRUint32 screenId
13595     );
13596 
13597     nsresult (*Drop)(
13598         IDnDTarget *pThis,
13599         PRUint32 screenId,
13600         PRUint32 x,
13601         PRUint32 y,
13602         PRUint32 defaultAction,
13603         PRUint32 allowedActionsSize,
13604         PRUint32* allowedActions,
13605         PRUint32 formatsSize,
13606         PRUnichar ** formats,
13607         PRUnichar * * format,
13608         PRUint32 * resultAction
13609     );
13610 
13611     nsresult (*SendData)(
13612         IDnDTarget *pThis,
13613         PRUint32 screenId,
13614         PRUnichar * format,
13615         PRUint32 dataSize,
13616         PRUint8* data,
13617         IProgress * * progress
13618     );
13619 
13620     nsresult (*Cancel)(
13621         IDnDTarget *pThis,
13622         PRBool * veto
13623     );
13624 
13625     nsresult (*InternalAndReservedMethod1IDnDTarget)(IDnDTarget *pThis);
13626 
13627 };
13628 #    define IDnDTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13629 #    define IDnDTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
13630 #    define IDnDTarget_Release(p) ((p)->lpVtbl->Release(p))
13631 #    define IDnDTarget_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13632 #    define IDnDTarget_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13633 #    define IDnDTarget_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13634 #    define IDnDTarget_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13635 #    define IDnDTarget_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
13636 #    define IDnDTarget_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
13637 #    define IDnDTarget_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
13638 #    define IDnDTarget_Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction))
13639 #    define IDnDTarget_Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction))
13640 #    define IDnDTarget_Leave(p, aScreenId) ((p)->lpVtbl->Leave(p, aScreenId))
13641 #    define IDnDTarget_Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction) ((p)->lpVtbl->Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction))
13642 #    define IDnDTarget_SendData(p, aScreenId, aFormat, aData, aProgress) ((p)->lpVtbl->SendData(p, aScreenId, aFormat, aData, aProgress))
13643 #    define IDnDTarget_Cancel(p, aVeto) ((p)->lpVtbl->Cancel(p, aVeto))
13644 #   endif /* VBOX_WITH_GLUE */
13645 
13646 interface IDnDTarget
13647 {
13648 #   ifndef VBOX_WITH_GLUE
13649     struct IDnDTarget_vtbl *vtbl;
13650 #   else /* VBOX_WITH_GLUE */
13651     CONST_VTBL struct IDnDTargetVtbl *lpVtbl;
13652 #   endif /* VBOX_WITH_GLUE */
13653 };
13654 /* End of struct IDnDTarget declaration */
13655 
13656 
13657 /* Start of struct IGuestDnDTarget declaration */
13658 #   define IGUESTDNDTARGET_IID_STR "50ce4b51-0ff7-46b7-a138-3c6e5ac946b4"
13659 #   define IGUESTDNDTARGET_IID { \
13660     0x50ce4b51, 0x0ff7, 0x46b7, \
13661     { 0xa1, 0x38, 0x3c, 0x6e, 0x5a, 0xc9, 0x46, 0xb4 } \
13662 }
13663 /* COM compatibility */
13664 VBOX_EXTERN_CONST(nsIID, IID_IGuestDnDTarget);
13665 #   ifndef VBOX_WITH_GLUE
13666 struct IGuestDnDTarget_vtbl
13667 {
13668     struct IDnDTarget_vtbl idndtarget;
13669 
13670     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDTarget *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13671 
13672 };
13673 #   else /* VBOX_WITH_GLUE */
13674 struct IGuestDnDTargetVtbl
13675 {
13676     nsresult (*QueryInterface)(IGuestDnDTarget *pThis, const nsID *iid, void **resultp);
13677     nsrefcnt (*AddRef)(IGuestDnDTarget *pThis);
13678     nsrefcnt (*Release)(IGuestDnDTarget *pThis);
13679     nsresult (*GetFormats)(IGuestDnDTarget *pThis, PRUint32 *formatsSize, PRUnichar * **formats);
13680 
13681     nsresult (*GetProtocolVersion)(IGuestDnDTarget *pThis, PRUint32 *protocolVersion);
13682 
13683     nsresult (*GetInternalAndReservedAttribute1IDnDBase)(IGuestDnDTarget *pThis, PRUint32 *reserved);
13684 
13685     nsresult (*GetInternalAndReservedAttribute2IDnDBase)(IGuestDnDTarget *pThis, PRUint32 *reserved);
13686 
13687     nsresult (*IsFormatSupported)(
13688         IGuestDnDTarget *pThis,
13689         PRUnichar * format,
13690         PRBool * supported
13691     );
13692 
13693     nsresult (*AddFormats)(
13694         IGuestDnDTarget *pThis,
13695         PRUint32 formatsSize,
13696         PRUnichar ** formats
13697     );
13698 
13699     nsresult (*RemoveFormats)(
13700         IGuestDnDTarget *pThis,
13701         PRUint32 formatsSize,
13702         PRUnichar ** formats
13703     );
13704 
13705     nsresult (*InternalAndReservedMethod1IDnDBase)(IGuestDnDTarget *pThis);
13706 
13707     nsresult (*GetInternalAndReservedAttribute1IDnDTarget)(IGuestDnDTarget *pThis, PRUint32 *reserved);
13708 
13709     nsresult (*GetInternalAndReservedAttribute2IDnDTarget)(IGuestDnDTarget *pThis, PRUint32 *reserved);
13710 
13711     nsresult (*Enter)(
13712         IGuestDnDTarget *pThis,
13713         PRUint32 screenId,
13714         PRUint32 y,
13715         PRUint32 x,
13716         PRUint32 defaultAction,
13717         PRUint32 allowedActionsSize,
13718         PRUint32* allowedActions,
13719         PRUint32 formatsSize,
13720         PRUnichar ** formats,
13721         PRUint32 * resultAction
13722     );
13723 
13724     nsresult (*Move)(
13725         IGuestDnDTarget *pThis,
13726         PRUint32 screenId,
13727         PRUint32 x,
13728         PRUint32 y,
13729         PRUint32 defaultAction,
13730         PRUint32 allowedActionsSize,
13731         PRUint32* allowedActions,
13732         PRUint32 formatsSize,
13733         PRUnichar ** formats,
13734         PRUint32 * resultAction
13735     );
13736 
13737     nsresult (*Leave)(
13738         IGuestDnDTarget *pThis,
13739         PRUint32 screenId
13740     );
13741 
13742     nsresult (*Drop)(
13743         IGuestDnDTarget *pThis,
13744         PRUint32 screenId,
13745         PRUint32 x,
13746         PRUint32 y,
13747         PRUint32 defaultAction,
13748         PRUint32 allowedActionsSize,
13749         PRUint32* allowedActions,
13750         PRUint32 formatsSize,
13751         PRUnichar ** formats,
13752         PRUnichar * * format,
13753         PRUint32 * resultAction
13754     );
13755 
13756     nsresult (*SendData)(
13757         IGuestDnDTarget *pThis,
13758         PRUint32 screenId,
13759         PRUnichar * format,
13760         PRUint32 dataSize,
13761         PRUint8* data,
13762         IProgress * * progress
13763     );
13764 
13765     nsresult (*Cancel)(
13766         IGuestDnDTarget *pThis,
13767         PRBool * veto
13768     );
13769 
13770     nsresult (*InternalAndReservedMethod1IDnDTarget)(IGuestDnDTarget *pThis);
13771 
13772     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDnDTarget *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
13773 
13774 };
13775 #    define IGuestDnDTarget_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
13776 #    define IGuestDnDTarget_AddRef(p) ((p)->lpVtbl->AddRef(p))
13777 #    define IGuestDnDTarget_Release(p) ((p)->lpVtbl->Release(p))
13778 #    define IGuestDnDTarget_get_Formats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13779 #    define IGuestDnDTarget_GetFormats(p, aFormats) ((p)->lpVtbl->GetFormats(p, aFormats))
13780 #    define IGuestDnDTarget_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13781 #    define IGuestDnDTarget_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
13782 #    define IGuestDnDTarget_IsFormatSupported(p, aFormat, aSupported) ((p)->lpVtbl->IsFormatSupported(p, aFormat, aSupported))
13783 #    define IGuestDnDTarget_AddFormats(p, aFormats) ((p)->lpVtbl->AddFormats(p, aFormats))
13784 #    define IGuestDnDTarget_RemoveFormats(p, aFormats) ((p)->lpVtbl->RemoveFormats(p, aFormats))
13785 #    define IGuestDnDTarget_Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Enter(p, aScreenId, aY, aX, aDefaultAction, aAllowedActions, aFormats, aResultAction))
13786 #    define IGuestDnDTarget_Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction) ((p)->lpVtbl->Move(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aResultAction))
13787 #    define IGuestDnDTarget_Leave(p, aScreenId) ((p)->lpVtbl->Leave(p, aScreenId))
13788 #    define IGuestDnDTarget_Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction) ((p)->lpVtbl->Drop(p, aScreenId, aX, aY, aDefaultAction, aAllowedActions, aFormats, aFormat, aResultAction))
13789 #    define IGuestDnDTarget_SendData(p, aScreenId, aFormat, aData, aProgress) ((p)->lpVtbl->SendData(p, aScreenId, aFormat, aData, aProgress))
13790 #    define IGuestDnDTarget_Cancel(p, aVeto) ((p)->lpVtbl->Cancel(p, aVeto))
13791 #    define IGuestDnDTarget_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13792 #    define IGuestDnDTarget_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
13793 #   endif /* VBOX_WITH_GLUE */
13794 
13795 interface IGuestDnDTarget
13796 {
13797 #   ifndef VBOX_WITH_GLUE
13798     struct IGuestDnDTarget_vtbl *vtbl;
13799 #   else /* VBOX_WITH_GLUE */
13800     CONST_VTBL struct IGuestDnDTargetVtbl *lpVtbl;
13801 #   endif /* VBOX_WITH_GLUE */
13802 };
13803 /* End of struct IGuestDnDTarget declaration */
13804 
13805 
13806 /* Start of struct IGuestSession declaration */
13807 #   define IGUESTSESSION_IID_STR "3E14C189-4A75-437E-B0BB-7E7C90D0DF2A"
13808 #   define IGUESTSESSION_IID { \
13809     0x3E14C189, 0x4A75, 0x437E, \
13810     { 0xB0, 0xBB, 0x7E, 0x7C, 0x90, 0xD0, 0xDF, 0x2A } \
13811 }
13812 /* COM compatibility */
13813 VBOX_EXTERN_CONST(nsIID, IID_IGuestSession);
13814 #   ifndef VBOX_WITH_GLUE
13815 struct IGuestSession_vtbl
13816 {
13817     struct nsISupports_vtbl nsisupports;
13818 
13819     nsresult (*GetUser)(IGuestSession *pThis, PRUnichar * *user);
13820 
13821     nsresult (*GetDomain)(IGuestSession *pThis, PRUnichar * *domain);
13822 
13823     nsresult (*GetName)(IGuestSession *pThis, PRUnichar * *name);
13824 
13825     nsresult (*GetId)(IGuestSession *pThis, PRUint32 *id);
13826 
13827     nsresult (*GetTimeout)(IGuestSession *pThis, PRUint32 *timeout);
13828     nsresult (*SetTimeout)(IGuestSession *pThis, PRUint32 timeout);
13829 
13830     nsresult (*GetProtocolVersion)(IGuestSession *pThis, PRUint32 *protocolVersion);
13831 
13832     nsresult (*GetStatus)(IGuestSession *pThis, PRUint32 *status);
13833 
13834     nsresult (*GetEnvironmentChanges)(IGuestSession *pThis, PRUint32 *environmentChangesSize, PRUnichar * **environmentChanges);
13835     nsresult (*SetEnvironmentChanges)(IGuestSession *pThis, PRUint32 environmentChangesSize, PRUnichar * *environmentChanges);
13836 
13837     nsresult (*GetEnvironmentBase)(IGuestSession *pThis, PRUint32 *environmentBaseSize, PRUnichar * **environmentBase);
13838 
13839     nsresult (*GetProcesses)(IGuestSession *pThis, PRUint32 *processesSize, IGuestProcess * **processes);
13840 
13841     nsresult (*GetPathStyle)(IGuestSession *pThis, PRUint32 *pathStyle);
13842 
13843     nsresult (*GetCurrentDirectory)(IGuestSession *pThis, PRUnichar * *currentDirectory);
13844     nsresult (*SetCurrentDirectory)(IGuestSession *pThis, PRUnichar * currentDirectory);
13845 
13846     nsresult (*GetUserHome)(IGuestSession *pThis, PRUnichar * *userHome);
13847 
13848     nsresult (*GetUserDocuments)(IGuestSession *pThis, PRUnichar * *userDocuments);
13849 
13850     nsresult (*GetDirectories)(IGuestSession *pThis, PRUint32 *directoriesSize, IGuestDirectory * **directories);
13851 
13852     nsresult (*GetFiles)(IGuestSession *pThis, PRUint32 *filesSize, IGuestFile * **files);
13853 
13854     nsresult (*GetEventSource)(IGuestSession *pThis, IEventSource * *eventSource);
13855 
13856     nsresult (*GetInternalAndReservedAttribute1IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13857 
13858     nsresult (*GetInternalAndReservedAttribute2IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13859 
13860     nsresult (*GetInternalAndReservedAttribute3IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13861 
13862     nsresult (*GetInternalAndReservedAttribute4IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13863 
13864     nsresult (*GetInternalAndReservedAttribute5IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13865 
13866     nsresult (*GetInternalAndReservedAttribute6IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13867 
13868     nsresult (*GetInternalAndReservedAttribute7IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13869 
13870     nsresult (*GetInternalAndReservedAttribute8IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13871 
13872     nsresult (*GetInternalAndReservedAttribute9IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13873 
13874     nsresult (*GetInternalAndReservedAttribute10IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13875 
13876     nsresult (*GetInternalAndReservedAttribute11IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13877 
13878     nsresult (*GetInternalAndReservedAttribute12IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
13879 
13880     nsresult (*Close)(IGuestSession *pThis );
13881 
13882     nsresult (*CopyFromGuest)(
13883         IGuestSession *pThis,
13884         PRUint32 sourcesSize,
13885         PRUnichar ** sources,
13886         PRUint32 filtersSize,
13887         PRUnichar ** filters,
13888         PRUint32 flagsSize,
13889         PRUnichar ** flags,
13890         PRUnichar * destination,
13891         IProgress * * progress
13892     );
13893 
13894     nsresult (*CopyToGuest)(
13895         IGuestSession *pThis,
13896         PRUint32 sourcesSize,
13897         PRUnichar ** sources,
13898         PRUint32 filtersSize,
13899         PRUnichar ** filters,
13900         PRUint32 flagsSize,
13901         PRUnichar ** flags,
13902         PRUnichar * destination,
13903         IProgress * * progress
13904     );
13905 
13906     nsresult (*DirectoryCopy)(
13907         IGuestSession *pThis,
13908         PRUnichar * source,
13909         PRUnichar * destination,
13910         PRUint32 flagsSize,
13911         PRUint32* flags,
13912         IProgress * * progress
13913     );
13914 
13915     nsresult (*DirectoryCopyFromGuest)(
13916         IGuestSession *pThis,
13917         PRUnichar * source,
13918         PRUnichar * destination,
13919         PRUint32 flagsSize,
13920         PRUint32* flags,
13921         IProgress * * progress
13922     );
13923 
13924     nsresult (*DirectoryCopyToGuest)(
13925         IGuestSession *pThis,
13926         PRUnichar * source,
13927         PRUnichar * destination,
13928         PRUint32 flagsSize,
13929         PRUint32* flags,
13930         IProgress * * progress
13931     );
13932 
13933     nsresult (*DirectoryCreate)(
13934         IGuestSession *pThis,
13935         PRUnichar * path,
13936         PRUint32 mode,
13937         PRUint32 flagsSize,
13938         PRUint32* flags
13939     );
13940 
13941     nsresult (*DirectoryCreateTemp)(
13942         IGuestSession *pThis,
13943         PRUnichar * templateName,
13944         PRUint32 mode,
13945         PRUnichar * path,
13946         PRBool secure,
13947         PRUnichar * * directory
13948     );
13949 
13950     nsresult (*DirectoryExists)(
13951         IGuestSession *pThis,
13952         PRUnichar * path,
13953         PRBool followSymlinks,
13954         PRBool * exists
13955     );
13956 
13957     nsresult (*DirectoryOpen)(
13958         IGuestSession *pThis,
13959         PRUnichar * path,
13960         PRUnichar * filter,
13961         PRUint32 flagsSize,
13962         PRUint32* flags,
13963         IGuestDirectory * * directory
13964     );
13965 
13966     nsresult (*DirectoryRemove)(
13967         IGuestSession *pThis,
13968         PRUnichar * path
13969     );
13970 
13971     nsresult (*DirectoryRemoveRecursive)(
13972         IGuestSession *pThis,
13973         PRUnichar * path,
13974         PRUint32 flagsSize,
13975         PRUint32* flags,
13976         IProgress * * progress
13977     );
13978 
13979     nsresult (*EnvironmentScheduleSet)(
13980         IGuestSession *pThis,
13981         PRUnichar * name,
13982         PRUnichar * value
13983     );
13984 
13985     nsresult (*EnvironmentScheduleUnset)(
13986         IGuestSession *pThis,
13987         PRUnichar * name
13988     );
13989 
13990     nsresult (*EnvironmentGetBaseVariable)(
13991         IGuestSession *pThis,
13992         PRUnichar * name,
13993         PRUnichar * * value
13994     );
13995 
13996     nsresult (*EnvironmentDoesBaseVariableExist)(
13997         IGuestSession *pThis,
13998         PRUnichar * name,
13999         PRBool * exists
14000     );
14001 
14002     nsresult (*FileCopy)(
14003         IGuestSession *pThis,
14004         PRUnichar * source,
14005         PRUnichar * destination,
14006         PRUint32 flagsSize,
14007         PRUint32* flags,
14008         IProgress * * progress
14009     );
14010 
14011     nsresult (*FileCopyFromGuest)(
14012         IGuestSession *pThis,
14013         PRUnichar * source,
14014         PRUnichar * destination,
14015         PRUint32 flagsSize,
14016         PRUint32* flags,
14017         IProgress * * progress
14018     );
14019 
14020     nsresult (*FileCopyToGuest)(
14021         IGuestSession *pThis,
14022         PRUnichar * source,
14023         PRUnichar * destination,
14024         PRUint32 flagsSize,
14025         PRUint32* flags,
14026         IProgress * * progress
14027     );
14028 
14029     nsresult (*FileCreateTemp)(
14030         IGuestSession *pThis,
14031         PRUnichar * templateName,
14032         PRUint32 mode,
14033         PRUnichar * path,
14034         PRBool secure,
14035         IGuestFile * * file
14036     );
14037 
14038     nsresult (*FileExists)(
14039         IGuestSession *pThis,
14040         PRUnichar * path,
14041         PRBool followSymlinks,
14042         PRBool * exists
14043     );
14044 
14045     nsresult (*FileOpen)(
14046         IGuestSession *pThis,
14047         PRUnichar * path,
14048         PRUint32 accessMode,
14049         PRUint32 openAction,
14050         PRUint32 creationMode,
14051         IGuestFile * * file
14052     );
14053 
14054     nsresult (*FileOpenEx)(
14055         IGuestSession *pThis,
14056         PRUnichar * path,
14057         PRUint32 accessMode,
14058         PRUint32 openAction,
14059         PRUint32 sharingMode,
14060         PRUint32 creationMode,
14061         PRUint32 flagsSize,
14062         PRUint32* flags,
14063         IGuestFile * * file
14064     );
14065 
14066     nsresult (*FileQuerySize)(
14067         IGuestSession *pThis,
14068         PRUnichar * path,
14069         PRBool followSymlinks,
14070         PRInt64 * size
14071     );
14072 
14073     nsresult (*FsObjExists)(
14074         IGuestSession *pThis,
14075         PRUnichar * path,
14076         PRBool followSymlinks,
14077         PRBool * exists
14078     );
14079 
14080     nsresult (*FsObjQueryInfo)(
14081         IGuestSession *pThis,
14082         PRUnichar * path,
14083         PRBool followSymlinks,
14084         IGuestFsObjInfo * * info
14085     );
14086 
14087     nsresult (*FsObjRemove)(
14088         IGuestSession *pThis,
14089         PRUnichar * path
14090     );
14091 
14092     nsresult (*FsObjRemoveArray)(
14093         IGuestSession *pThis,
14094         PRUint32 pathSize,
14095         PRUnichar ** path,
14096         IProgress * * progress
14097     );
14098 
14099     nsresult (*FsObjRename)(
14100         IGuestSession *pThis,
14101         PRUnichar * oldPath,
14102         PRUnichar * newPath,
14103         PRUint32 flagsSize,
14104         PRUint32* flags
14105     );
14106 
14107     nsresult (*FsObjMove)(
14108         IGuestSession *pThis,
14109         PRUnichar * source,
14110         PRUnichar * destination,
14111         PRUint32 flagsSize,
14112         PRUint32* flags,
14113         IProgress * * progress
14114     );
14115 
14116     nsresult (*FsObjMoveArray)(
14117         IGuestSession *pThis,
14118         PRUint32 sourceSize,
14119         PRUnichar ** source,
14120         PRUnichar * destination,
14121         PRUint32 flagsSize,
14122         PRUint32* flags,
14123         IProgress * * progress
14124     );
14125 
14126     nsresult (*FsObjCopyArray)(
14127         IGuestSession *pThis,
14128         PRUint32 sourceSize,
14129         PRUnichar ** source,
14130         PRUnichar * destination,
14131         PRUint32 flagsSize,
14132         PRUint32* flags,
14133         IProgress * * progress
14134     );
14135 
14136     nsresult (*FsObjSetACL)(
14137         IGuestSession *pThis,
14138         PRUnichar * path,
14139         PRBool followSymlinks,
14140         PRUnichar * acl,
14141         PRUint32 mode
14142     );
14143 
14144     nsresult (*ProcessCreate)(
14145         IGuestSession *pThis,
14146         PRUnichar * executable,
14147         PRUint32 argumentsSize,
14148         PRUnichar ** arguments,
14149         PRUint32 environmentChangesSize,
14150         PRUnichar ** environmentChanges,
14151         PRUint32 flagsSize,
14152         PRUint32* flags,
14153         PRUint32 timeoutMS,
14154         IGuestProcess * * guestProcess
14155     );
14156 
14157     nsresult (*ProcessCreateEx)(
14158         IGuestSession *pThis,
14159         PRUnichar * executable,
14160         PRUint32 argumentsSize,
14161         PRUnichar ** arguments,
14162         PRUint32 environmentChangesSize,
14163         PRUnichar ** environmentChanges,
14164         PRUint32 flagsSize,
14165         PRUint32* flags,
14166         PRUint32 timeoutMS,
14167         PRUint32 priority,
14168         PRUint32 affinitySize,
14169         PRInt32* affinity,
14170         IGuestProcess * * guestProcess
14171     );
14172 
14173     nsresult (*ProcessGet)(
14174         IGuestSession *pThis,
14175         PRUint32 pid,
14176         IGuestProcess * * guestProcess
14177     );
14178 
14179     nsresult (*SymlinkCreate)(
14180         IGuestSession *pThis,
14181         PRUnichar * symlink,
14182         PRUnichar * target,
14183         PRUint32 type
14184     );
14185 
14186     nsresult (*SymlinkExists)(
14187         IGuestSession *pThis,
14188         PRUnichar * symlink,
14189         PRBool * exists
14190     );
14191 
14192     nsresult (*SymlinkRead)(
14193         IGuestSession *pThis,
14194         PRUnichar * symlink,
14195         PRUint32 flagsSize,
14196         PRUint32* flags,
14197         PRUnichar * * target
14198     );
14199 
14200     nsresult (*WaitFor)(
14201         IGuestSession *pThis,
14202         PRUint32 waitFor,
14203         PRUint32 timeoutMS,
14204         PRUint32 * reason
14205     );
14206 
14207     nsresult (*WaitForArray)(
14208         IGuestSession *pThis,
14209         PRUint32 waitForSize,
14210         PRUint32* waitFor,
14211         PRUint32 timeoutMS,
14212         PRUint32 * reason
14213     );
14214 
14215     nsresult (*InternalAndReservedMethod1IGuestSession)(IGuestSession *pThis);
14216 
14217     nsresult (*InternalAndReservedMethod2IGuestSession)(IGuestSession *pThis);
14218 
14219     nsresult (*InternalAndReservedMethod3IGuestSession)(IGuestSession *pThis);
14220 
14221     nsresult (*InternalAndReservedMethod4IGuestSession)(IGuestSession *pThis);
14222 
14223     nsresult (*InternalAndReservedMethod5IGuestSession)(IGuestSession *pThis);
14224 
14225     nsresult (*InternalAndReservedMethod6IGuestSession)(IGuestSession *pThis);
14226 
14227     nsresult (*InternalAndReservedMethod7IGuestSession)(IGuestSession *pThis);
14228 
14229     nsresult (*InternalAndReservedMethod8IGuestSession)(IGuestSession *pThis);
14230 
14231 };
14232 #   else /* VBOX_WITH_GLUE */
14233 struct IGuestSessionVtbl
14234 {
14235     nsresult (*QueryInterface)(IGuestSession *pThis, const nsID *iid, void **resultp);
14236     nsrefcnt (*AddRef)(IGuestSession *pThis);
14237     nsrefcnt (*Release)(IGuestSession *pThis);
14238     nsresult (*GetUser)(IGuestSession *pThis, PRUnichar * *user);
14239 
14240     nsresult (*GetDomain)(IGuestSession *pThis, PRUnichar * *domain);
14241 
14242     nsresult (*GetName)(IGuestSession *pThis, PRUnichar * *name);
14243 
14244     nsresult (*GetId)(IGuestSession *pThis, PRUint32 *id);
14245 
14246     nsresult (*GetTimeout)(IGuestSession *pThis, PRUint32 *timeout);
14247     nsresult (*SetTimeout)(IGuestSession *pThis, PRUint32 timeout);
14248 
14249     nsresult (*GetProtocolVersion)(IGuestSession *pThis, PRUint32 *protocolVersion);
14250 
14251     nsresult (*GetStatus)(IGuestSession *pThis, PRUint32 *status);
14252 
14253     nsresult (*GetEnvironmentChanges)(IGuestSession *pThis, PRUint32 *environmentChangesSize, PRUnichar * **environmentChanges);
14254     nsresult (*SetEnvironmentChanges)(IGuestSession *pThis, PRUint32 environmentChangesSize, PRUnichar * *environmentChanges);
14255 
14256     nsresult (*GetEnvironmentBase)(IGuestSession *pThis, PRUint32 *environmentBaseSize, PRUnichar * **environmentBase);
14257 
14258     nsresult (*GetProcesses)(IGuestSession *pThis, PRUint32 *processesSize, IGuestProcess * **processes);
14259 
14260     nsresult (*GetPathStyle)(IGuestSession *pThis, PRUint32 *pathStyle);
14261 
14262     nsresult (*GetCurrentDirectory)(IGuestSession *pThis, PRUnichar * *currentDirectory);
14263     nsresult (*SetCurrentDirectory)(IGuestSession *pThis, PRUnichar * currentDirectory);
14264 
14265     nsresult (*GetUserHome)(IGuestSession *pThis, PRUnichar * *userHome);
14266 
14267     nsresult (*GetUserDocuments)(IGuestSession *pThis, PRUnichar * *userDocuments);
14268 
14269     nsresult (*GetDirectories)(IGuestSession *pThis, PRUint32 *directoriesSize, IGuestDirectory * **directories);
14270 
14271     nsresult (*GetFiles)(IGuestSession *pThis, PRUint32 *filesSize, IGuestFile * **files);
14272 
14273     nsresult (*GetEventSource)(IGuestSession *pThis, IEventSource * *eventSource);
14274 
14275     nsresult (*GetInternalAndReservedAttribute1IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14276 
14277     nsresult (*GetInternalAndReservedAttribute2IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14278 
14279     nsresult (*GetInternalAndReservedAttribute3IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14280 
14281     nsresult (*GetInternalAndReservedAttribute4IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14282 
14283     nsresult (*GetInternalAndReservedAttribute5IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14284 
14285     nsresult (*GetInternalAndReservedAttribute6IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14286 
14287     nsresult (*GetInternalAndReservedAttribute7IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14288 
14289     nsresult (*GetInternalAndReservedAttribute8IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14290 
14291     nsresult (*GetInternalAndReservedAttribute9IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14292 
14293     nsresult (*GetInternalAndReservedAttribute10IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14294 
14295     nsresult (*GetInternalAndReservedAttribute11IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14296 
14297     nsresult (*GetInternalAndReservedAttribute12IGuestSession)(IGuestSession *pThis, PRUint32 *reserved);
14298 
14299     nsresult (*Close)(IGuestSession *pThis );
14300 
14301     nsresult (*CopyFromGuest)(
14302         IGuestSession *pThis,
14303         PRUint32 sourcesSize,
14304         PRUnichar ** sources,
14305         PRUint32 filtersSize,
14306         PRUnichar ** filters,
14307         PRUint32 flagsSize,
14308         PRUnichar ** flags,
14309         PRUnichar * destination,
14310         IProgress * * progress
14311     );
14312 
14313     nsresult (*CopyToGuest)(
14314         IGuestSession *pThis,
14315         PRUint32 sourcesSize,
14316         PRUnichar ** sources,
14317         PRUint32 filtersSize,
14318         PRUnichar ** filters,
14319         PRUint32 flagsSize,
14320         PRUnichar ** flags,
14321         PRUnichar * destination,
14322         IProgress * * progress
14323     );
14324 
14325     nsresult (*DirectoryCopy)(
14326         IGuestSession *pThis,
14327         PRUnichar * source,
14328         PRUnichar * destination,
14329         PRUint32 flagsSize,
14330         PRUint32* flags,
14331         IProgress * * progress
14332     );
14333 
14334     nsresult (*DirectoryCopyFromGuest)(
14335         IGuestSession *pThis,
14336         PRUnichar * source,
14337         PRUnichar * destination,
14338         PRUint32 flagsSize,
14339         PRUint32* flags,
14340         IProgress * * progress
14341     );
14342 
14343     nsresult (*DirectoryCopyToGuest)(
14344         IGuestSession *pThis,
14345         PRUnichar * source,
14346         PRUnichar * destination,
14347         PRUint32 flagsSize,
14348         PRUint32* flags,
14349         IProgress * * progress
14350     );
14351 
14352     nsresult (*DirectoryCreate)(
14353         IGuestSession *pThis,
14354         PRUnichar * path,
14355         PRUint32 mode,
14356         PRUint32 flagsSize,
14357         PRUint32* flags
14358     );
14359 
14360     nsresult (*DirectoryCreateTemp)(
14361         IGuestSession *pThis,
14362         PRUnichar * templateName,
14363         PRUint32 mode,
14364         PRUnichar * path,
14365         PRBool secure,
14366         PRUnichar * * directory
14367     );
14368 
14369     nsresult (*DirectoryExists)(
14370         IGuestSession *pThis,
14371         PRUnichar * path,
14372         PRBool followSymlinks,
14373         PRBool * exists
14374     );
14375 
14376     nsresult (*DirectoryOpen)(
14377         IGuestSession *pThis,
14378         PRUnichar * path,
14379         PRUnichar * filter,
14380         PRUint32 flagsSize,
14381         PRUint32* flags,
14382         IGuestDirectory * * directory
14383     );
14384 
14385     nsresult (*DirectoryRemove)(
14386         IGuestSession *pThis,
14387         PRUnichar * path
14388     );
14389 
14390     nsresult (*DirectoryRemoveRecursive)(
14391         IGuestSession *pThis,
14392         PRUnichar * path,
14393         PRUint32 flagsSize,
14394         PRUint32* flags,
14395         IProgress * * progress
14396     );
14397 
14398     nsresult (*EnvironmentScheduleSet)(
14399         IGuestSession *pThis,
14400         PRUnichar * name,
14401         PRUnichar * value
14402     );
14403 
14404     nsresult (*EnvironmentScheduleUnset)(
14405         IGuestSession *pThis,
14406         PRUnichar * name
14407     );
14408 
14409     nsresult (*EnvironmentGetBaseVariable)(
14410         IGuestSession *pThis,
14411         PRUnichar * name,
14412         PRUnichar * * value
14413     );
14414 
14415     nsresult (*EnvironmentDoesBaseVariableExist)(
14416         IGuestSession *pThis,
14417         PRUnichar * name,
14418         PRBool * exists
14419     );
14420 
14421     nsresult (*FileCopy)(
14422         IGuestSession *pThis,
14423         PRUnichar * source,
14424         PRUnichar * destination,
14425         PRUint32 flagsSize,
14426         PRUint32* flags,
14427         IProgress * * progress
14428     );
14429 
14430     nsresult (*FileCopyFromGuest)(
14431         IGuestSession *pThis,
14432         PRUnichar * source,
14433         PRUnichar * destination,
14434         PRUint32 flagsSize,
14435         PRUint32* flags,
14436         IProgress * * progress
14437     );
14438 
14439     nsresult (*FileCopyToGuest)(
14440         IGuestSession *pThis,
14441         PRUnichar * source,
14442         PRUnichar * destination,
14443         PRUint32 flagsSize,
14444         PRUint32* flags,
14445         IProgress * * progress
14446     );
14447 
14448     nsresult (*FileCreateTemp)(
14449         IGuestSession *pThis,
14450         PRUnichar * templateName,
14451         PRUint32 mode,
14452         PRUnichar * path,
14453         PRBool secure,
14454         IGuestFile * * file
14455     );
14456 
14457     nsresult (*FileExists)(
14458         IGuestSession *pThis,
14459         PRUnichar * path,
14460         PRBool followSymlinks,
14461         PRBool * exists
14462     );
14463 
14464     nsresult (*FileOpen)(
14465         IGuestSession *pThis,
14466         PRUnichar * path,
14467         PRUint32 accessMode,
14468         PRUint32 openAction,
14469         PRUint32 creationMode,
14470         IGuestFile * * file
14471     );
14472 
14473     nsresult (*FileOpenEx)(
14474         IGuestSession *pThis,
14475         PRUnichar * path,
14476         PRUint32 accessMode,
14477         PRUint32 openAction,
14478         PRUint32 sharingMode,
14479         PRUint32 creationMode,
14480         PRUint32 flagsSize,
14481         PRUint32* flags,
14482         IGuestFile * * file
14483     );
14484 
14485     nsresult (*FileQuerySize)(
14486         IGuestSession *pThis,
14487         PRUnichar * path,
14488         PRBool followSymlinks,
14489         PRInt64 * size
14490     );
14491 
14492     nsresult (*FsObjExists)(
14493         IGuestSession *pThis,
14494         PRUnichar * path,
14495         PRBool followSymlinks,
14496         PRBool * exists
14497     );
14498 
14499     nsresult (*FsObjQueryInfo)(
14500         IGuestSession *pThis,
14501         PRUnichar * path,
14502         PRBool followSymlinks,
14503         IGuestFsObjInfo * * info
14504     );
14505 
14506     nsresult (*FsObjRemove)(
14507         IGuestSession *pThis,
14508         PRUnichar * path
14509     );
14510 
14511     nsresult (*FsObjRemoveArray)(
14512         IGuestSession *pThis,
14513         PRUint32 pathSize,
14514         PRUnichar ** path,
14515         IProgress * * progress
14516     );
14517 
14518     nsresult (*FsObjRename)(
14519         IGuestSession *pThis,
14520         PRUnichar * oldPath,
14521         PRUnichar * newPath,
14522         PRUint32 flagsSize,
14523         PRUint32* flags
14524     );
14525 
14526     nsresult (*FsObjMove)(
14527         IGuestSession *pThis,
14528         PRUnichar * source,
14529         PRUnichar * destination,
14530         PRUint32 flagsSize,
14531         PRUint32* flags,
14532         IProgress * * progress
14533     );
14534 
14535     nsresult (*FsObjMoveArray)(
14536         IGuestSession *pThis,
14537         PRUint32 sourceSize,
14538         PRUnichar ** source,
14539         PRUnichar * destination,
14540         PRUint32 flagsSize,
14541         PRUint32* flags,
14542         IProgress * * progress
14543     );
14544 
14545     nsresult (*FsObjCopyArray)(
14546         IGuestSession *pThis,
14547         PRUint32 sourceSize,
14548         PRUnichar ** source,
14549         PRUnichar * destination,
14550         PRUint32 flagsSize,
14551         PRUint32* flags,
14552         IProgress * * progress
14553     );
14554 
14555     nsresult (*FsObjSetACL)(
14556         IGuestSession *pThis,
14557         PRUnichar * path,
14558         PRBool followSymlinks,
14559         PRUnichar * acl,
14560         PRUint32 mode
14561     );
14562 
14563     nsresult (*ProcessCreate)(
14564         IGuestSession *pThis,
14565         PRUnichar * executable,
14566         PRUint32 argumentsSize,
14567         PRUnichar ** arguments,
14568         PRUint32 environmentChangesSize,
14569         PRUnichar ** environmentChanges,
14570         PRUint32 flagsSize,
14571         PRUint32* flags,
14572         PRUint32 timeoutMS,
14573         IGuestProcess * * guestProcess
14574     );
14575 
14576     nsresult (*ProcessCreateEx)(
14577         IGuestSession *pThis,
14578         PRUnichar * executable,
14579         PRUint32 argumentsSize,
14580         PRUnichar ** arguments,
14581         PRUint32 environmentChangesSize,
14582         PRUnichar ** environmentChanges,
14583         PRUint32 flagsSize,
14584         PRUint32* flags,
14585         PRUint32 timeoutMS,
14586         PRUint32 priority,
14587         PRUint32 affinitySize,
14588         PRInt32* affinity,
14589         IGuestProcess * * guestProcess
14590     );
14591 
14592     nsresult (*ProcessGet)(
14593         IGuestSession *pThis,
14594         PRUint32 pid,
14595         IGuestProcess * * guestProcess
14596     );
14597 
14598     nsresult (*SymlinkCreate)(
14599         IGuestSession *pThis,
14600         PRUnichar * symlink,
14601         PRUnichar * target,
14602         PRUint32 type
14603     );
14604 
14605     nsresult (*SymlinkExists)(
14606         IGuestSession *pThis,
14607         PRUnichar * symlink,
14608         PRBool * exists
14609     );
14610 
14611     nsresult (*SymlinkRead)(
14612         IGuestSession *pThis,
14613         PRUnichar * symlink,
14614         PRUint32 flagsSize,
14615         PRUint32* flags,
14616         PRUnichar * * target
14617     );
14618 
14619     nsresult (*WaitFor)(
14620         IGuestSession *pThis,
14621         PRUint32 waitFor,
14622         PRUint32 timeoutMS,
14623         PRUint32 * reason
14624     );
14625 
14626     nsresult (*WaitForArray)(
14627         IGuestSession *pThis,
14628         PRUint32 waitForSize,
14629         PRUint32* waitFor,
14630         PRUint32 timeoutMS,
14631         PRUint32 * reason
14632     );
14633 
14634     nsresult (*InternalAndReservedMethod1IGuestSession)(IGuestSession *pThis);
14635 
14636     nsresult (*InternalAndReservedMethod2IGuestSession)(IGuestSession *pThis);
14637 
14638     nsresult (*InternalAndReservedMethod3IGuestSession)(IGuestSession *pThis);
14639 
14640     nsresult (*InternalAndReservedMethod4IGuestSession)(IGuestSession *pThis);
14641 
14642     nsresult (*InternalAndReservedMethod5IGuestSession)(IGuestSession *pThis);
14643 
14644     nsresult (*InternalAndReservedMethod6IGuestSession)(IGuestSession *pThis);
14645 
14646     nsresult (*InternalAndReservedMethod7IGuestSession)(IGuestSession *pThis);
14647 
14648     nsresult (*InternalAndReservedMethod8IGuestSession)(IGuestSession *pThis);
14649 
14650 };
14651 #    define IGuestSession_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14652 #    define IGuestSession_AddRef(p) ((p)->lpVtbl->AddRef(p))
14653 #    define IGuestSession_Release(p) ((p)->lpVtbl->Release(p))
14654 #    define IGuestSession_get_User(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
14655 #    define IGuestSession_GetUser(p, aUser) ((p)->lpVtbl->GetUser(p, aUser))
14656 #    define IGuestSession_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
14657 #    define IGuestSession_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
14658 #    define IGuestSession_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14659 #    define IGuestSession_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14660 #    define IGuestSession_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
14661 #    define IGuestSession_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
14662 #    define IGuestSession_get_Timeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
14663 #    define IGuestSession_GetTimeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
14664 #    define IGuestSession_put_Timeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
14665 #    define IGuestSession_SetTimeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
14666 #    define IGuestSession_get_ProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
14667 #    define IGuestSession_GetProtocolVersion(p, aProtocolVersion) ((p)->lpVtbl->GetProtocolVersion(p, aProtocolVersion))
14668 #    define IGuestSession_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
14669 #    define IGuestSession_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
14670 #    define IGuestSession_get_EnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->GetEnvironmentChanges(p, aEnvironmentChanges))
14671 #    define IGuestSession_GetEnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->GetEnvironmentChanges(p, aEnvironmentChanges))
14672 #    define IGuestSession_put_EnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->SetEnvironmentChanges(p, aEnvironmentChanges))
14673 #    define IGuestSession_SetEnvironmentChanges(p, aEnvironmentChanges) ((p)->lpVtbl->SetEnvironmentChanges(p, aEnvironmentChanges))
14674 #    define IGuestSession_get_EnvironmentBase(p, aEnvironmentBase) ((p)->lpVtbl->GetEnvironmentBase(p, aEnvironmentBase))
14675 #    define IGuestSession_GetEnvironmentBase(p, aEnvironmentBase) ((p)->lpVtbl->GetEnvironmentBase(p, aEnvironmentBase))
14676 #    define IGuestSession_get_Processes(p, aProcesses) ((p)->lpVtbl->GetProcesses(p, aProcesses))
14677 #    define IGuestSession_GetProcesses(p, aProcesses) ((p)->lpVtbl->GetProcesses(p, aProcesses))
14678 #    define IGuestSession_get_PathStyle(p, aPathStyle) ((p)->lpVtbl->GetPathStyle(p, aPathStyle))
14679 #    define IGuestSession_GetPathStyle(p, aPathStyle) ((p)->lpVtbl->GetPathStyle(p, aPathStyle))
14680 #    define IGuestSession_get_CurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->GetCurrentDirectory(p, aCurrentDirectory))
14681 #    define IGuestSession_GetCurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->GetCurrentDirectory(p, aCurrentDirectory))
14682 #    define IGuestSession_put_CurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->SetCurrentDirectory(p, aCurrentDirectory))
14683 #    define IGuestSession_SetCurrentDirectory(p, aCurrentDirectory) ((p)->lpVtbl->SetCurrentDirectory(p, aCurrentDirectory))
14684 #    define IGuestSession_get_UserHome(p, aUserHome) ((p)->lpVtbl->GetUserHome(p, aUserHome))
14685 #    define IGuestSession_GetUserHome(p, aUserHome) ((p)->lpVtbl->GetUserHome(p, aUserHome))
14686 #    define IGuestSession_get_UserDocuments(p, aUserDocuments) ((p)->lpVtbl->GetUserDocuments(p, aUserDocuments))
14687 #    define IGuestSession_GetUserDocuments(p, aUserDocuments) ((p)->lpVtbl->GetUserDocuments(p, aUserDocuments))
14688 #    define IGuestSession_get_Directories(p, aDirectories) ((p)->lpVtbl->GetDirectories(p, aDirectories))
14689 #    define IGuestSession_GetDirectories(p, aDirectories) ((p)->lpVtbl->GetDirectories(p, aDirectories))
14690 #    define IGuestSession_get_Files(p, aFiles) ((p)->lpVtbl->GetFiles(p, aFiles))
14691 #    define IGuestSession_GetFiles(p, aFiles) ((p)->lpVtbl->GetFiles(p, aFiles))
14692 #    define IGuestSession_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14693 #    define IGuestSession_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14694 #    define IGuestSession_Close(p) ((p)->lpVtbl->Close(p))
14695 #    define IGuestSession_CopyFromGuest(p, aSources, aFilters, aFlags, aDestination, aProgress) ((p)->lpVtbl->CopyFromGuest(p, aSources, aFilters, aFlags, aDestination, aProgress))
14696 #    define IGuestSession_CopyToGuest(p, aSources, aFilters, aFlags, aDestination, aProgress) ((p)->lpVtbl->CopyToGuest(p, aSources, aFilters, aFlags, aDestination, aProgress))
14697 #    define IGuestSession_DirectoryCopy(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopy(p, aSource, aDestination, aFlags, aProgress))
14698 #    define IGuestSession_DirectoryCopyFromGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopyFromGuest(p, aSource, aDestination, aFlags, aProgress))
14699 #    define IGuestSession_DirectoryCopyToGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->DirectoryCopyToGuest(p, aSource, aDestination, aFlags, aProgress))
14700 #    define IGuestSession_DirectoryCreate(p, aPath, aMode, aFlags) ((p)->lpVtbl->DirectoryCreate(p, aPath, aMode, aFlags))
14701 #    define IGuestSession_DirectoryCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aDirectory) ((p)->lpVtbl->DirectoryCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aDirectory))
14702 #    define IGuestSession_DirectoryExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->DirectoryExists(p, aPath, aFollowSymlinks, aExists))
14703 #    define IGuestSession_DirectoryOpen(p, aPath, aFilter, aFlags, aDirectory) ((p)->lpVtbl->DirectoryOpen(p, aPath, aFilter, aFlags, aDirectory))
14704 #    define IGuestSession_DirectoryRemove(p, aPath) ((p)->lpVtbl->DirectoryRemove(p, aPath))
14705 #    define IGuestSession_DirectoryRemoveRecursive(p, aPath, aFlags, aProgress) ((p)->lpVtbl->DirectoryRemoveRecursive(p, aPath, aFlags, aProgress))
14706 #    define IGuestSession_EnvironmentScheduleSet(p, aName, aValue) ((p)->lpVtbl->EnvironmentScheduleSet(p, aName, aValue))
14707 #    define IGuestSession_EnvironmentScheduleUnset(p, aName) ((p)->lpVtbl->EnvironmentScheduleUnset(p, aName))
14708 #    define IGuestSession_EnvironmentGetBaseVariable(p, aName, aValue) ((p)->lpVtbl->EnvironmentGetBaseVariable(p, aName, aValue))
14709 #    define IGuestSession_EnvironmentDoesBaseVariableExist(p, aName, aExists) ((p)->lpVtbl->EnvironmentDoesBaseVariableExist(p, aName, aExists))
14710 #    define IGuestSession_FileCopy(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopy(p, aSource, aDestination, aFlags, aProgress))
14711 #    define IGuestSession_FileCopyFromGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopyFromGuest(p, aSource, aDestination, aFlags, aProgress))
14712 #    define IGuestSession_FileCopyToGuest(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FileCopyToGuest(p, aSource, aDestination, aFlags, aProgress))
14713 #    define IGuestSession_FileCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aFile) ((p)->lpVtbl->FileCreateTemp(p, aTemplateName, aMode, aPath, aSecure, aFile))
14714 #    define IGuestSession_FileExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->FileExists(p, aPath, aFollowSymlinks, aExists))
14715 #    define IGuestSession_FileOpen(p, aPath, aAccessMode, aOpenAction, aCreationMode, aFile) ((p)->lpVtbl->FileOpen(p, aPath, aAccessMode, aOpenAction, aCreationMode, aFile))
14716 #    define IGuestSession_FileOpenEx(p, aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlags, aFile) ((p)->lpVtbl->FileOpenEx(p, aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlags, aFile))
14717 #    define IGuestSession_FileQuerySize(p, aPath, aFollowSymlinks, aSize) ((p)->lpVtbl->FileQuerySize(p, aPath, aFollowSymlinks, aSize))
14718 #    define IGuestSession_FsObjExists(p, aPath, aFollowSymlinks, aExists) ((p)->lpVtbl->FsObjExists(p, aPath, aFollowSymlinks, aExists))
14719 #    define IGuestSession_FsObjQueryInfo(p, aPath, aFollowSymlinks, aInfo) ((p)->lpVtbl->FsObjQueryInfo(p, aPath, aFollowSymlinks, aInfo))
14720 #    define IGuestSession_FsObjRemove(p, aPath) ((p)->lpVtbl->FsObjRemove(p, aPath))
14721 #    define IGuestSession_FsObjRemoveArray(p, aPath, aProgress) ((p)->lpVtbl->FsObjRemoveArray(p, aPath, aProgress))
14722 #    define IGuestSession_FsObjRename(p, aOldPath, aNewPath, aFlags) ((p)->lpVtbl->FsObjRename(p, aOldPath, aNewPath, aFlags))
14723 #    define IGuestSession_FsObjMove(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FsObjMove(p, aSource, aDestination, aFlags, aProgress))
14724 #    define IGuestSession_FsObjMoveArray(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FsObjMoveArray(p, aSource, aDestination, aFlags, aProgress))
14725 #    define IGuestSession_FsObjCopyArray(p, aSource, aDestination, aFlags, aProgress) ((p)->lpVtbl->FsObjCopyArray(p, aSource, aDestination, aFlags, aProgress))
14726 #    define IGuestSession_FsObjSetACL(p, aPath, aFollowSymlinks, aAcl, aMode) ((p)->lpVtbl->FsObjSetACL(p, aPath, aFollowSymlinks, aAcl, aMode))
14727 #    define IGuestSession_ProcessCreate(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aGuestProcess) ((p)->lpVtbl->ProcessCreate(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aGuestProcess))
14728 #    define IGuestSession_ProcessCreateEx(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aPriority, aAffinity, aGuestProcess) ((p)->lpVtbl->ProcessCreateEx(p, aExecutable, aArguments, aEnvironmentChanges, aFlags, aTimeoutMS, aPriority, aAffinity, aGuestProcess))
14729 #    define IGuestSession_ProcessGet(p, aPid, aGuestProcess) ((p)->lpVtbl->ProcessGet(p, aPid, aGuestProcess))
14730 #    define IGuestSession_SymlinkCreate(p, aSymlink, aTarget, aType) ((p)->lpVtbl->SymlinkCreate(p, aSymlink, aTarget, aType))
14731 #    define IGuestSession_SymlinkExists(p, aSymlink, aExists) ((p)->lpVtbl->SymlinkExists(p, aSymlink, aExists))
14732 #    define IGuestSession_SymlinkRead(p, aSymlink, aFlags, aTarget) ((p)->lpVtbl->SymlinkRead(p, aSymlink, aFlags, aTarget))
14733 #    define IGuestSession_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
14734 #    define IGuestSession_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
14735 #   endif /* VBOX_WITH_GLUE */
14736 
14737 interface IGuestSession
14738 {
14739 #   ifndef VBOX_WITH_GLUE
14740     struct IGuestSession_vtbl *vtbl;
14741 #   else /* VBOX_WITH_GLUE */
14742     CONST_VTBL struct IGuestSessionVtbl *lpVtbl;
14743 #   endif /* VBOX_WITH_GLUE */
14744 };
14745 /* End of struct IGuestSession declaration */
14746 
14747 
14748 /* Start of struct IProcess declaration */
14749 #   define IPROCESS_IID_STR "bc68370c-8a02-45f3-a07d-a67aa72756aa"
14750 #   define IPROCESS_IID { \
14751     0xbc68370c, 0x8a02, 0x45f3, \
14752     { 0xa0, 0x7d, 0xa6, 0x7a, 0xa7, 0x27, 0x56, 0xaa } \
14753 }
14754 /* COM compatibility */
14755 VBOX_EXTERN_CONST(nsIID, IID_IProcess);
14756 #   ifndef VBOX_WITH_GLUE
14757 struct IProcess_vtbl
14758 {
14759     struct nsISupports_vtbl nsisupports;
14760 
14761     nsresult (*GetArguments)(IProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
14762 
14763     nsresult (*GetEnvironment)(IProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
14764 
14765     nsresult (*GetEventSource)(IProcess *pThis, IEventSource * *eventSource);
14766 
14767     nsresult (*GetExecutablePath)(IProcess *pThis, PRUnichar * *executablePath);
14768 
14769     nsresult (*GetExitCode)(IProcess *pThis, PRInt32 *exitCode);
14770 
14771     nsresult (*GetName)(IProcess *pThis, PRUnichar * *name);
14772 
14773     nsresult (*GetPID)(IProcess *pThis, PRUint32 *PID);
14774 
14775     nsresult (*GetStatus)(IProcess *pThis, PRUint32 *status);
14776 
14777     nsresult (*GetInternalAndReservedAttribute1IProcess)(IProcess *pThis, PRUint32 *reserved);
14778 
14779     nsresult (*GetInternalAndReservedAttribute2IProcess)(IProcess *pThis, PRUint32 *reserved);
14780 
14781     nsresult (*GetInternalAndReservedAttribute3IProcess)(IProcess *pThis, PRUint32 *reserved);
14782 
14783     nsresult (*GetInternalAndReservedAttribute4IProcess)(IProcess *pThis, PRUint32 *reserved);
14784 
14785     nsresult (*GetInternalAndReservedAttribute5IProcess)(IProcess *pThis, PRUint32 *reserved);
14786 
14787     nsresult (*GetInternalAndReservedAttribute6IProcess)(IProcess *pThis, PRUint32 *reserved);
14788 
14789     nsresult (*GetInternalAndReservedAttribute7IProcess)(IProcess *pThis, PRUint32 *reserved);
14790 
14791     nsresult (*GetInternalAndReservedAttribute8IProcess)(IProcess *pThis, PRUint32 *reserved);
14792 
14793     nsresult (*WaitFor)(
14794         IProcess *pThis,
14795         PRUint32 waitFor,
14796         PRUint32 timeoutMS,
14797         PRUint32 * reason
14798     );
14799 
14800     nsresult (*WaitForArray)(
14801         IProcess *pThis,
14802         PRUint32 waitForSize,
14803         PRUint32* waitFor,
14804         PRUint32 timeoutMS,
14805         PRUint32 * reason
14806     );
14807 
14808     nsresult (*Read)(
14809         IProcess *pThis,
14810         PRUint32 handle,
14811         PRUint32 toRead,
14812         PRUint32 timeoutMS,
14813         PRUint32 *dataSize,
14814         PRUint8** data
14815     );
14816 
14817     nsresult (*Write)(
14818         IProcess *pThis,
14819         PRUint32 handle,
14820         PRUint32 flags,
14821         PRUint32 dataSize,
14822         PRUint8* data,
14823         PRUint32 timeoutMS,
14824         PRUint32 * written
14825     );
14826 
14827     nsresult (*WriteArray)(
14828         IProcess *pThis,
14829         PRUint32 handle,
14830         PRUint32 flagsSize,
14831         PRUint32* flags,
14832         PRUint32 dataSize,
14833         PRUint8* data,
14834         PRUint32 timeoutMS,
14835         PRUint32 * written
14836     );
14837 
14838     nsresult (*Terminate)(IProcess *pThis );
14839 
14840     nsresult (*InternalAndReservedMethod1IProcess)(IProcess *pThis);
14841 
14842     nsresult (*InternalAndReservedMethod2IProcess)(IProcess *pThis);
14843 
14844     nsresult (*InternalAndReservedMethod3IProcess)(IProcess *pThis);
14845 
14846     nsresult (*InternalAndReservedMethod4IProcess)(IProcess *pThis);
14847 
14848 };
14849 #   else /* VBOX_WITH_GLUE */
14850 struct IProcessVtbl
14851 {
14852     nsresult (*QueryInterface)(IProcess *pThis, const nsID *iid, void **resultp);
14853     nsrefcnt (*AddRef)(IProcess *pThis);
14854     nsrefcnt (*Release)(IProcess *pThis);
14855     nsresult (*GetArguments)(IProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
14856 
14857     nsresult (*GetEnvironment)(IProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
14858 
14859     nsresult (*GetEventSource)(IProcess *pThis, IEventSource * *eventSource);
14860 
14861     nsresult (*GetExecutablePath)(IProcess *pThis, PRUnichar * *executablePath);
14862 
14863     nsresult (*GetExitCode)(IProcess *pThis, PRInt32 *exitCode);
14864 
14865     nsresult (*GetName)(IProcess *pThis, PRUnichar * *name);
14866 
14867     nsresult (*GetPID)(IProcess *pThis, PRUint32 *PID);
14868 
14869     nsresult (*GetStatus)(IProcess *pThis, PRUint32 *status);
14870 
14871     nsresult (*GetInternalAndReservedAttribute1IProcess)(IProcess *pThis, PRUint32 *reserved);
14872 
14873     nsresult (*GetInternalAndReservedAttribute2IProcess)(IProcess *pThis, PRUint32 *reserved);
14874 
14875     nsresult (*GetInternalAndReservedAttribute3IProcess)(IProcess *pThis, PRUint32 *reserved);
14876 
14877     nsresult (*GetInternalAndReservedAttribute4IProcess)(IProcess *pThis, PRUint32 *reserved);
14878 
14879     nsresult (*GetInternalAndReservedAttribute5IProcess)(IProcess *pThis, PRUint32 *reserved);
14880 
14881     nsresult (*GetInternalAndReservedAttribute6IProcess)(IProcess *pThis, PRUint32 *reserved);
14882 
14883     nsresult (*GetInternalAndReservedAttribute7IProcess)(IProcess *pThis, PRUint32 *reserved);
14884 
14885     nsresult (*GetInternalAndReservedAttribute8IProcess)(IProcess *pThis, PRUint32 *reserved);
14886 
14887     nsresult (*WaitFor)(
14888         IProcess *pThis,
14889         PRUint32 waitFor,
14890         PRUint32 timeoutMS,
14891         PRUint32 * reason
14892     );
14893 
14894     nsresult (*WaitForArray)(
14895         IProcess *pThis,
14896         PRUint32 waitForSize,
14897         PRUint32* waitFor,
14898         PRUint32 timeoutMS,
14899         PRUint32 * reason
14900     );
14901 
14902     nsresult (*Read)(
14903         IProcess *pThis,
14904         PRUint32 handle,
14905         PRUint32 toRead,
14906         PRUint32 timeoutMS,
14907         PRUint32 *dataSize,
14908         PRUint8** data
14909     );
14910 
14911     nsresult (*Write)(
14912         IProcess *pThis,
14913         PRUint32 handle,
14914         PRUint32 flags,
14915         PRUint32 dataSize,
14916         PRUint8* data,
14917         PRUint32 timeoutMS,
14918         PRUint32 * written
14919     );
14920 
14921     nsresult (*WriteArray)(
14922         IProcess *pThis,
14923         PRUint32 handle,
14924         PRUint32 flagsSize,
14925         PRUint32* flags,
14926         PRUint32 dataSize,
14927         PRUint8* data,
14928         PRUint32 timeoutMS,
14929         PRUint32 * written
14930     );
14931 
14932     nsresult (*Terminate)(IProcess *pThis );
14933 
14934     nsresult (*InternalAndReservedMethod1IProcess)(IProcess *pThis);
14935 
14936     nsresult (*InternalAndReservedMethod2IProcess)(IProcess *pThis);
14937 
14938     nsresult (*InternalAndReservedMethod3IProcess)(IProcess *pThis);
14939 
14940     nsresult (*InternalAndReservedMethod4IProcess)(IProcess *pThis);
14941 
14942 };
14943 #    define IProcess_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
14944 #    define IProcess_AddRef(p) ((p)->lpVtbl->AddRef(p))
14945 #    define IProcess_Release(p) ((p)->lpVtbl->Release(p))
14946 #    define IProcess_get_Arguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
14947 #    define IProcess_GetArguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
14948 #    define IProcess_get_Environment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
14949 #    define IProcess_GetEnvironment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
14950 #    define IProcess_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14951 #    define IProcess_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
14952 #    define IProcess_get_ExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
14953 #    define IProcess_GetExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
14954 #    define IProcess_get_ExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
14955 #    define IProcess_GetExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
14956 #    define IProcess_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
14957 #    define IProcess_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
14958 #    define IProcess_get_PID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
14959 #    define IProcess_GetPID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
14960 #    define IProcess_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
14961 #    define IProcess_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
14962 #    define IProcess_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
14963 #    define IProcess_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
14964 #    define IProcess_Read(p, aHandle, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aHandle, aToRead, aTimeoutMS, aData))
14965 #    define IProcess_Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
14966 #    define IProcess_WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
14967 #    define IProcess_Terminate(p) ((p)->lpVtbl->Terminate(p))
14968 #   endif /* VBOX_WITH_GLUE */
14969 
14970 interface IProcess
14971 {
14972 #   ifndef VBOX_WITH_GLUE
14973     struct IProcess_vtbl *vtbl;
14974 #   else /* VBOX_WITH_GLUE */
14975     CONST_VTBL struct IProcessVtbl *lpVtbl;
14976 #   endif /* VBOX_WITH_GLUE */
14977 };
14978 /* End of struct IProcess declaration */
14979 
14980 
14981 /* Start of struct IGuestProcess declaration */
14982 #   define IGUESTPROCESS_IID_STR "35cf4b3f-4453-4f3e-c9b8-5686939c80b6"
14983 #   define IGUESTPROCESS_IID { \
14984     0x35cf4b3f, 0x4453, 0x4f3e, \
14985     { 0xc9, 0xb8, 0x56, 0x86, 0x93, 0x9c, 0x80, 0xb6 } \
14986 }
14987 /* COM compatibility */
14988 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcess);
14989 #   ifndef VBOX_WITH_GLUE
14990 struct IGuestProcess_vtbl
14991 {
14992     struct IProcess_vtbl iprocess;
14993 
14994     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestProcess *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
14995 
14996 };
14997 #   else /* VBOX_WITH_GLUE */
14998 struct IGuestProcessVtbl
14999 {
15000     nsresult (*QueryInterface)(IGuestProcess *pThis, const nsID *iid, void **resultp);
15001     nsrefcnt (*AddRef)(IGuestProcess *pThis);
15002     nsrefcnt (*Release)(IGuestProcess *pThis);
15003     nsresult (*GetArguments)(IGuestProcess *pThis, PRUint32 *argumentsSize, PRUnichar * **arguments);
15004 
15005     nsresult (*GetEnvironment)(IGuestProcess *pThis, PRUint32 *environmentSize, PRUnichar * **environment);
15006 
15007     nsresult (*GetEventSource)(IGuestProcess *pThis, IEventSource * *eventSource);
15008 
15009     nsresult (*GetExecutablePath)(IGuestProcess *pThis, PRUnichar * *executablePath);
15010 
15011     nsresult (*GetExitCode)(IGuestProcess *pThis, PRInt32 *exitCode);
15012 
15013     nsresult (*GetName)(IGuestProcess *pThis, PRUnichar * *name);
15014 
15015     nsresult (*GetPID)(IGuestProcess *pThis, PRUint32 *PID);
15016 
15017     nsresult (*GetStatus)(IGuestProcess *pThis, PRUint32 *status);
15018 
15019     nsresult (*GetInternalAndReservedAttribute1IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15020 
15021     nsresult (*GetInternalAndReservedAttribute2IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15022 
15023     nsresult (*GetInternalAndReservedAttribute3IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15024 
15025     nsresult (*GetInternalAndReservedAttribute4IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15026 
15027     nsresult (*GetInternalAndReservedAttribute5IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15028 
15029     nsresult (*GetInternalAndReservedAttribute6IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15030 
15031     nsresult (*GetInternalAndReservedAttribute7IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15032 
15033     nsresult (*GetInternalAndReservedAttribute8IProcess)(IGuestProcess *pThis, PRUint32 *reserved);
15034 
15035     nsresult (*WaitFor)(
15036         IGuestProcess *pThis,
15037         PRUint32 waitFor,
15038         PRUint32 timeoutMS,
15039         PRUint32 * reason
15040     );
15041 
15042     nsresult (*WaitForArray)(
15043         IGuestProcess *pThis,
15044         PRUint32 waitForSize,
15045         PRUint32* waitFor,
15046         PRUint32 timeoutMS,
15047         PRUint32 * reason
15048     );
15049 
15050     nsresult (*Read)(
15051         IGuestProcess *pThis,
15052         PRUint32 handle,
15053         PRUint32 toRead,
15054         PRUint32 timeoutMS,
15055         PRUint32 *dataSize,
15056         PRUint8** data
15057     );
15058 
15059     nsresult (*Write)(
15060         IGuestProcess *pThis,
15061         PRUint32 handle,
15062         PRUint32 flags,
15063         PRUint32 dataSize,
15064         PRUint8* data,
15065         PRUint32 timeoutMS,
15066         PRUint32 * written
15067     );
15068 
15069     nsresult (*WriteArray)(
15070         IGuestProcess *pThis,
15071         PRUint32 handle,
15072         PRUint32 flagsSize,
15073         PRUint32* flags,
15074         PRUint32 dataSize,
15075         PRUint8* data,
15076         PRUint32 timeoutMS,
15077         PRUint32 * written
15078     );
15079 
15080     nsresult (*Terminate)(IGuestProcess *pThis );
15081 
15082     nsresult (*InternalAndReservedMethod1IProcess)(IGuestProcess *pThis);
15083 
15084     nsresult (*InternalAndReservedMethod2IProcess)(IGuestProcess *pThis);
15085 
15086     nsresult (*InternalAndReservedMethod3IProcess)(IGuestProcess *pThis);
15087 
15088     nsresult (*InternalAndReservedMethod4IProcess)(IGuestProcess *pThis);
15089 
15090     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestProcess *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
15091 
15092 };
15093 #    define IGuestProcess_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15094 #    define IGuestProcess_AddRef(p) ((p)->lpVtbl->AddRef(p))
15095 #    define IGuestProcess_Release(p) ((p)->lpVtbl->Release(p))
15096 #    define IGuestProcess_get_Arguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
15097 #    define IGuestProcess_GetArguments(p, aArguments) ((p)->lpVtbl->GetArguments(p, aArguments))
15098 #    define IGuestProcess_get_Environment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
15099 #    define IGuestProcess_GetEnvironment(p, aEnvironment) ((p)->lpVtbl->GetEnvironment(p, aEnvironment))
15100 #    define IGuestProcess_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15101 #    define IGuestProcess_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15102 #    define IGuestProcess_get_ExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
15103 #    define IGuestProcess_GetExecutablePath(p, aExecutablePath) ((p)->lpVtbl->GetExecutablePath(p, aExecutablePath))
15104 #    define IGuestProcess_get_ExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
15105 #    define IGuestProcess_GetExitCode(p, aExitCode) ((p)->lpVtbl->GetExitCode(p, aExitCode))
15106 #    define IGuestProcess_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
15107 #    define IGuestProcess_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
15108 #    define IGuestProcess_get_PID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
15109 #    define IGuestProcess_GetPID(p, aPID) ((p)->lpVtbl->GetPID(p, aPID))
15110 #    define IGuestProcess_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
15111 #    define IGuestProcess_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
15112 #    define IGuestProcess_WaitFor(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitFor(p, aWaitFor, aTimeoutMS, aReason))
15113 #    define IGuestProcess_WaitForArray(p, aWaitFor, aTimeoutMS, aReason) ((p)->lpVtbl->WaitForArray(p, aWaitFor, aTimeoutMS, aReason))
15114 #    define IGuestProcess_Read(p, aHandle, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aHandle, aToRead, aTimeoutMS, aData))
15115 #    define IGuestProcess_Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
15116 #    define IGuestProcess_WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteArray(p, aHandle, aFlags, aData, aTimeoutMS, aWritten))
15117 #    define IGuestProcess_Terminate(p) ((p)->lpVtbl->Terminate(p))
15118 #    define IGuestProcess_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
15119 #    define IGuestProcess_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
15120 #   endif /* VBOX_WITH_GLUE */
15121 
15122 interface IGuestProcess
15123 {
15124 #   ifndef VBOX_WITH_GLUE
15125     struct IGuestProcess_vtbl *vtbl;
15126 #   else /* VBOX_WITH_GLUE */
15127     CONST_VTBL struct IGuestProcessVtbl *lpVtbl;
15128 #   endif /* VBOX_WITH_GLUE */
15129 };
15130 /* End of struct IGuestProcess declaration */
15131 
15132 
15133 /* Start of struct IDirectory declaration */
15134 #   define IDIRECTORY_IID_STR "758d7eac-e4b1-486a-8f2e-747ae346c3e9"
15135 #   define IDIRECTORY_IID { \
15136     0x758d7eac, 0xe4b1, 0x486a, \
15137     { 0x8f, 0x2e, 0x74, 0x7a, 0xe3, 0x46, 0xc3, 0xe9 } \
15138 }
15139 /* COM compatibility */
15140 VBOX_EXTERN_CONST(nsIID, IID_IDirectory);
15141 #   ifndef VBOX_WITH_GLUE
15142 struct IDirectory_vtbl
15143 {
15144     struct nsISupports_vtbl nsisupports;
15145 
15146     nsresult (*GetDirectoryName)(IDirectory *pThis, PRUnichar * *directoryName);
15147 
15148     nsresult (*GetFilter)(IDirectory *pThis, PRUnichar * *filter);
15149 
15150     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15151 
15152     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15153 
15154     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15155 
15156     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15157 
15158     nsresult (*GetInternalAndReservedAttribute5IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15159 
15160     nsresult (*GetInternalAndReservedAttribute6IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15161 
15162     nsresult (*GetInternalAndReservedAttribute7IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15163 
15164     nsresult (*GetInternalAndReservedAttribute8IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15165 
15166     nsresult (*Close)(IDirectory *pThis );
15167 
15168     nsresult (*Read)(
15169         IDirectory *pThis,
15170         IFsObjInfo * * objInfo
15171     );
15172 
15173     nsresult (*InternalAndReservedMethod1IDirectory)(IDirectory *pThis);
15174 
15175     nsresult (*InternalAndReservedMethod2IDirectory)(IDirectory *pThis);
15176 
15177     nsresult (*InternalAndReservedMethod3IDirectory)(IDirectory *pThis);
15178 
15179     nsresult (*InternalAndReservedMethod4IDirectory)(IDirectory *pThis);
15180 
15181 };
15182 #   else /* VBOX_WITH_GLUE */
15183 struct IDirectoryVtbl
15184 {
15185     nsresult (*QueryInterface)(IDirectory *pThis, const nsID *iid, void **resultp);
15186     nsrefcnt (*AddRef)(IDirectory *pThis);
15187     nsrefcnt (*Release)(IDirectory *pThis);
15188     nsresult (*GetDirectoryName)(IDirectory *pThis, PRUnichar * *directoryName);
15189 
15190     nsresult (*GetFilter)(IDirectory *pThis, PRUnichar * *filter);
15191 
15192     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15193 
15194     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15195 
15196     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15197 
15198     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15199 
15200     nsresult (*GetInternalAndReservedAttribute5IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15201 
15202     nsresult (*GetInternalAndReservedAttribute6IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15203 
15204     nsresult (*GetInternalAndReservedAttribute7IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15205 
15206     nsresult (*GetInternalAndReservedAttribute8IDirectory)(IDirectory *pThis, PRUint32 *reserved);
15207 
15208     nsresult (*Close)(IDirectory *pThis );
15209 
15210     nsresult (*Read)(
15211         IDirectory *pThis,
15212         IFsObjInfo * * objInfo
15213     );
15214 
15215     nsresult (*InternalAndReservedMethod1IDirectory)(IDirectory *pThis);
15216 
15217     nsresult (*InternalAndReservedMethod2IDirectory)(IDirectory *pThis);
15218 
15219     nsresult (*InternalAndReservedMethod3IDirectory)(IDirectory *pThis);
15220 
15221     nsresult (*InternalAndReservedMethod4IDirectory)(IDirectory *pThis);
15222 
15223 };
15224 #    define IDirectory_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15225 #    define IDirectory_AddRef(p) ((p)->lpVtbl->AddRef(p))
15226 #    define IDirectory_Release(p) ((p)->lpVtbl->Release(p))
15227 #    define IDirectory_get_DirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
15228 #    define IDirectory_GetDirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
15229 #    define IDirectory_get_Filter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
15230 #    define IDirectory_GetFilter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
15231 #    define IDirectory_Close(p) ((p)->lpVtbl->Close(p))
15232 #    define IDirectory_Read(p, aObjInfo) ((p)->lpVtbl->Read(p, aObjInfo))
15233 #   endif /* VBOX_WITH_GLUE */
15234 
15235 interface IDirectory
15236 {
15237 #   ifndef VBOX_WITH_GLUE
15238     struct IDirectory_vtbl *vtbl;
15239 #   else /* VBOX_WITH_GLUE */
15240     CONST_VTBL struct IDirectoryVtbl *lpVtbl;
15241 #   endif /* VBOX_WITH_GLUE */
15242 };
15243 /* End of struct IDirectory declaration */
15244 
15245 
15246 /* Start of struct IGuestDirectory declaration */
15247 #   define IGUESTDIRECTORY_IID_STR "cc830458-4974-a19c-4dc6-cc98c2269626"
15248 #   define IGUESTDIRECTORY_IID { \
15249     0xcc830458, 0x4974, 0xa19c, \
15250     { 0x4d, 0xc6, 0xcc, 0x98, 0xc2, 0x26, 0x96, 0x26 } \
15251 }
15252 /* COM compatibility */
15253 VBOX_EXTERN_CONST(nsIID, IID_IGuestDirectory);
15254 #   ifndef VBOX_WITH_GLUE
15255 struct IGuestDirectory_vtbl
15256 {
15257     struct IDirectory_vtbl idirectory;
15258 
15259     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDirectory *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
15260 
15261 };
15262 #   else /* VBOX_WITH_GLUE */
15263 struct IGuestDirectoryVtbl
15264 {
15265     nsresult (*QueryInterface)(IGuestDirectory *pThis, const nsID *iid, void **resultp);
15266     nsrefcnt (*AddRef)(IGuestDirectory *pThis);
15267     nsrefcnt (*Release)(IGuestDirectory *pThis);
15268     nsresult (*GetDirectoryName)(IGuestDirectory *pThis, PRUnichar * *directoryName);
15269 
15270     nsresult (*GetFilter)(IGuestDirectory *pThis, PRUnichar * *filter);
15271 
15272     nsresult (*GetInternalAndReservedAttribute1IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15273 
15274     nsresult (*GetInternalAndReservedAttribute2IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15275 
15276     nsresult (*GetInternalAndReservedAttribute3IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15277 
15278     nsresult (*GetInternalAndReservedAttribute4IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15279 
15280     nsresult (*GetInternalAndReservedAttribute5IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15281 
15282     nsresult (*GetInternalAndReservedAttribute6IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15283 
15284     nsresult (*GetInternalAndReservedAttribute7IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15285 
15286     nsresult (*GetInternalAndReservedAttribute8IDirectory)(IGuestDirectory *pThis, PRUint32 *reserved);
15287 
15288     nsresult (*Close)(IGuestDirectory *pThis );
15289 
15290     nsresult (*Read)(
15291         IGuestDirectory *pThis,
15292         IFsObjInfo * * objInfo
15293     );
15294 
15295     nsresult (*InternalAndReservedMethod1IDirectory)(IGuestDirectory *pThis);
15296 
15297     nsresult (*InternalAndReservedMethod2IDirectory)(IGuestDirectory *pThis);
15298 
15299     nsresult (*InternalAndReservedMethod3IDirectory)(IGuestDirectory *pThis);
15300 
15301     nsresult (*InternalAndReservedMethod4IDirectory)(IGuestDirectory *pThis);
15302 
15303     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestDirectory *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
15304 
15305 };
15306 #    define IGuestDirectory_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15307 #    define IGuestDirectory_AddRef(p) ((p)->lpVtbl->AddRef(p))
15308 #    define IGuestDirectory_Release(p) ((p)->lpVtbl->Release(p))
15309 #    define IGuestDirectory_get_DirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
15310 #    define IGuestDirectory_GetDirectoryName(p, aDirectoryName) ((p)->lpVtbl->GetDirectoryName(p, aDirectoryName))
15311 #    define IGuestDirectory_get_Filter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
15312 #    define IGuestDirectory_GetFilter(p, aFilter) ((p)->lpVtbl->GetFilter(p, aFilter))
15313 #    define IGuestDirectory_Close(p) ((p)->lpVtbl->Close(p))
15314 #    define IGuestDirectory_Read(p, aObjInfo) ((p)->lpVtbl->Read(p, aObjInfo))
15315 #    define IGuestDirectory_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
15316 #    define IGuestDirectory_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
15317 #   endif /* VBOX_WITH_GLUE */
15318 
15319 interface IGuestDirectory
15320 {
15321 #   ifndef VBOX_WITH_GLUE
15322     struct IGuestDirectory_vtbl *vtbl;
15323 #   else /* VBOX_WITH_GLUE */
15324     CONST_VTBL struct IGuestDirectoryVtbl *lpVtbl;
15325 #   endif /* VBOX_WITH_GLUE */
15326 };
15327 /* End of struct IGuestDirectory declaration */
15328 
15329 
15330 /* Start of struct IFile declaration */
15331 #   define IFILE_IID_STR "59a235ac-2f1a-4d6c-81fc-e3fa843f49ae"
15332 #   define IFILE_IID { \
15333     0x59a235ac, 0x2f1a, 0x4d6c, \
15334     { 0x81, 0xfc, 0xe3, 0xfa, 0x84, 0x3f, 0x49, 0xae } \
15335 }
15336 /* COM compatibility */
15337 VBOX_EXTERN_CONST(nsIID, IID_IFile);
15338 #   ifndef VBOX_WITH_GLUE
15339 struct IFile_vtbl
15340 {
15341     struct nsISupports_vtbl nsisupports;
15342 
15343     nsresult (*GetEventSource)(IFile *pThis, IEventSource * *eventSource);
15344 
15345     nsresult (*GetId)(IFile *pThis, PRUint32 *id);
15346 
15347     nsresult (*GetInitialSize)(IFile *pThis, PRInt64 *initialSize);
15348 
15349     nsresult (*GetOffset)(IFile *pThis, PRInt64 *offset);
15350 
15351     nsresult (*GetStatus)(IFile *pThis, PRUint32 *status);
15352 
15353     nsresult (*GetFilename)(IFile *pThis, PRUnichar * *filename);
15354 
15355     nsresult (*GetCreationMode)(IFile *pThis, PRUint32 *creationMode);
15356 
15357     nsresult (*GetOpenAction)(IFile *pThis, PRUint32 *openAction);
15358 
15359     nsresult (*GetAccessMode)(IFile *pThis, PRUint32 *accessMode);
15360 
15361     nsresult (*GetInternalAndReservedAttribute1IFile)(IFile *pThis, PRUint32 *reserved);
15362 
15363     nsresult (*GetInternalAndReservedAttribute2IFile)(IFile *pThis, PRUint32 *reserved);
15364 
15365     nsresult (*GetInternalAndReservedAttribute3IFile)(IFile *pThis, PRUint32 *reserved);
15366 
15367     nsresult (*GetInternalAndReservedAttribute4IFile)(IFile *pThis, PRUint32 *reserved);
15368 
15369     nsresult (*GetInternalAndReservedAttribute5IFile)(IFile *pThis, PRUint32 *reserved);
15370 
15371     nsresult (*GetInternalAndReservedAttribute6IFile)(IFile *pThis, PRUint32 *reserved);
15372 
15373     nsresult (*GetInternalAndReservedAttribute7IFile)(IFile *pThis, PRUint32 *reserved);
15374 
15375     nsresult (*GetInternalAndReservedAttribute8IFile)(IFile *pThis, PRUint32 *reserved);
15376 
15377     nsresult (*Close)(IFile *pThis );
15378 
15379     nsresult (*QueryInfo)(
15380         IFile *pThis,
15381         IFsObjInfo * * objInfo
15382     );
15383 
15384     nsresult (*QuerySize)(
15385         IFile *pThis,
15386         PRInt64 * size
15387     );
15388 
15389     nsresult (*Read)(
15390         IFile *pThis,
15391         PRUint32 toRead,
15392         PRUint32 timeoutMS,
15393         PRUint32 *dataSize,
15394         PRUint8** data
15395     );
15396 
15397     nsresult (*ReadAt)(
15398         IFile *pThis,
15399         PRInt64 offset,
15400         PRUint32 toRead,
15401         PRUint32 timeoutMS,
15402         PRUint32 *dataSize,
15403         PRUint8** data
15404     );
15405 
15406     nsresult (*Seek)(
15407         IFile *pThis,
15408         PRInt64 offset,
15409         PRUint32 whence,
15410         PRInt64 * newOffset
15411     );
15412 
15413     nsresult (*SetACL)(
15414         IFile *pThis,
15415         PRUnichar * acl,
15416         PRUint32 mode
15417     );
15418 
15419     nsresult (*SetSize)(
15420         IFile *pThis,
15421         PRInt64 size
15422     );
15423 
15424     nsresult (*Write)(
15425         IFile *pThis,
15426         PRUint32 dataSize,
15427         PRUint8* data,
15428         PRUint32 timeoutMS,
15429         PRUint32 * written
15430     );
15431 
15432     nsresult (*WriteAt)(
15433         IFile *pThis,
15434         PRInt64 offset,
15435         PRUint32 dataSize,
15436         PRUint8* data,
15437         PRUint32 timeoutMS,
15438         PRUint32 * written
15439     );
15440 
15441     nsresult (*InternalAndReservedMethod1IFile)(IFile *pThis);
15442 
15443     nsresult (*InternalAndReservedMethod2IFile)(IFile *pThis);
15444 
15445     nsresult (*InternalAndReservedMethod3IFile)(IFile *pThis);
15446 
15447     nsresult (*InternalAndReservedMethod4IFile)(IFile *pThis);
15448 
15449 };
15450 #   else /* VBOX_WITH_GLUE */
15451 struct IFileVtbl
15452 {
15453     nsresult (*QueryInterface)(IFile *pThis, const nsID *iid, void **resultp);
15454     nsrefcnt (*AddRef)(IFile *pThis);
15455     nsrefcnt (*Release)(IFile *pThis);
15456     nsresult (*GetEventSource)(IFile *pThis, IEventSource * *eventSource);
15457 
15458     nsresult (*GetId)(IFile *pThis, PRUint32 *id);
15459 
15460     nsresult (*GetInitialSize)(IFile *pThis, PRInt64 *initialSize);
15461 
15462     nsresult (*GetOffset)(IFile *pThis, PRInt64 *offset);
15463 
15464     nsresult (*GetStatus)(IFile *pThis, PRUint32 *status);
15465 
15466     nsresult (*GetFilename)(IFile *pThis, PRUnichar * *filename);
15467 
15468     nsresult (*GetCreationMode)(IFile *pThis, PRUint32 *creationMode);
15469 
15470     nsresult (*GetOpenAction)(IFile *pThis, PRUint32 *openAction);
15471 
15472     nsresult (*GetAccessMode)(IFile *pThis, PRUint32 *accessMode);
15473 
15474     nsresult (*GetInternalAndReservedAttribute1IFile)(IFile *pThis, PRUint32 *reserved);
15475 
15476     nsresult (*GetInternalAndReservedAttribute2IFile)(IFile *pThis, PRUint32 *reserved);
15477 
15478     nsresult (*GetInternalAndReservedAttribute3IFile)(IFile *pThis, PRUint32 *reserved);
15479 
15480     nsresult (*GetInternalAndReservedAttribute4IFile)(IFile *pThis, PRUint32 *reserved);
15481 
15482     nsresult (*GetInternalAndReservedAttribute5IFile)(IFile *pThis, PRUint32 *reserved);
15483 
15484     nsresult (*GetInternalAndReservedAttribute6IFile)(IFile *pThis, PRUint32 *reserved);
15485 
15486     nsresult (*GetInternalAndReservedAttribute7IFile)(IFile *pThis, PRUint32 *reserved);
15487 
15488     nsresult (*GetInternalAndReservedAttribute8IFile)(IFile *pThis, PRUint32 *reserved);
15489 
15490     nsresult (*Close)(IFile *pThis );
15491 
15492     nsresult (*QueryInfo)(
15493         IFile *pThis,
15494         IFsObjInfo * * objInfo
15495     );
15496 
15497     nsresult (*QuerySize)(
15498         IFile *pThis,
15499         PRInt64 * size
15500     );
15501 
15502     nsresult (*Read)(
15503         IFile *pThis,
15504         PRUint32 toRead,
15505         PRUint32 timeoutMS,
15506         PRUint32 *dataSize,
15507         PRUint8** data
15508     );
15509 
15510     nsresult (*ReadAt)(
15511         IFile *pThis,
15512         PRInt64 offset,
15513         PRUint32 toRead,
15514         PRUint32 timeoutMS,
15515         PRUint32 *dataSize,
15516         PRUint8** data
15517     );
15518 
15519     nsresult (*Seek)(
15520         IFile *pThis,
15521         PRInt64 offset,
15522         PRUint32 whence,
15523         PRInt64 * newOffset
15524     );
15525 
15526     nsresult (*SetACL)(
15527         IFile *pThis,
15528         PRUnichar * acl,
15529         PRUint32 mode
15530     );
15531 
15532     nsresult (*SetSize)(
15533         IFile *pThis,
15534         PRInt64 size
15535     );
15536 
15537     nsresult (*Write)(
15538         IFile *pThis,
15539         PRUint32 dataSize,
15540         PRUint8* data,
15541         PRUint32 timeoutMS,
15542         PRUint32 * written
15543     );
15544 
15545     nsresult (*WriteAt)(
15546         IFile *pThis,
15547         PRInt64 offset,
15548         PRUint32 dataSize,
15549         PRUint8* data,
15550         PRUint32 timeoutMS,
15551         PRUint32 * written
15552     );
15553 
15554     nsresult (*InternalAndReservedMethod1IFile)(IFile *pThis);
15555 
15556     nsresult (*InternalAndReservedMethod2IFile)(IFile *pThis);
15557 
15558     nsresult (*InternalAndReservedMethod3IFile)(IFile *pThis);
15559 
15560     nsresult (*InternalAndReservedMethod4IFile)(IFile *pThis);
15561 
15562 };
15563 #    define IFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15564 #    define IFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
15565 #    define IFile_Release(p) ((p)->lpVtbl->Release(p))
15566 #    define IFile_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15567 #    define IFile_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15568 #    define IFile_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
15569 #    define IFile_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
15570 #    define IFile_get_InitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
15571 #    define IFile_GetInitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
15572 #    define IFile_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
15573 #    define IFile_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
15574 #    define IFile_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
15575 #    define IFile_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
15576 #    define IFile_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
15577 #    define IFile_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
15578 #    define IFile_get_CreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
15579 #    define IFile_GetCreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
15580 #    define IFile_get_OpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
15581 #    define IFile_GetOpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
15582 #    define IFile_get_AccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
15583 #    define IFile_GetAccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
15584 #    define IFile_Close(p) ((p)->lpVtbl->Close(p))
15585 #    define IFile_QueryInfo(p, aObjInfo) ((p)->lpVtbl->QueryInfo(p, aObjInfo))
15586 #    define IFile_QuerySize(p, aSize) ((p)->lpVtbl->QuerySize(p, aSize))
15587 #    define IFile_Read(p, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aToRead, aTimeoutMS, aData))
15588 #    define IFile_ReadAt(p, aOffset, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->ReadAt(p, aOffset, aToRead, aTimeoutMS, aData))
15589 #    define IFile_Seek(p, aOffset, aWhence, aNewOffset) ((p)->lpVtbl->Seek(p, aOffset, aWhence, aNewOffset))
15590 #    define IFile_SetACL(p, aAcl, aMode) ((p)->lpVtbl->SetACL(p, aAcl, aMode))
15591 #    define IFile_SetSize(p, aSize) ((p)->lpVtbl->SetSize(p, aSize))
15592 #    define IFile_Write(p, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aData, aTimeoutMS, aWritten))
15593 #    define IFile_WriteAt(p, aOffset, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteAt(p, aOffset, aData, aTimeoutMS, aWritten))
15594 #   endif /* VBOX_WITH_GLUE */
15595 
15596 interface IFile
15597 {
15598 #   ifndef VBOX_WITH_GLUE
15599     struct IFile_vtbl *vtbl;
15600 #   else /* VBOX_WITH_GLUE */
15601     CONST_VTBL struct IFileVtbl *lpVtbl;
15602 #   endif /* VBOX_WITH_GLUE */
15603 };
15604 /* End of struct IFile declaration */
15605 
15606 
15607 /* Start of struct IGuestFile declaration */
15608 #   define IGUESTFILE_IID_STR "92f21dc0-44de-1653-b717-2ebf0ca9b664"
15609 #   define IGUESTFILE_IID { \
15610     0x92f21dc0, 0x44de, 0x1653, \
15611     { 0xb7, 0x17, 0x2e, 0xbf, 0x0c, 0xa9, 0xb6, 0x64 } \
15612 }
15613 /* COM compatibility */
15614 VBOX_EXTERN_CONST(nsIID, IID_IGuestFile);
15615 #   ifndef VBOX_WITH_GLUE
15616 struct IGuestFile_vtbl
15617 {
15618     struct IFile_vtbl ifile;
15619 
15620     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFile *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
15621 
15622 };
15623 #   else /* VBOX_WITH_GLUE */
15624 struct IGuestFileVtbl
15625 {
15626     nsresult (*QueryInterface)(IGuestFile *pThis, const nsID *iid, void **resultp);
15627     nsrefcnt (*AddRef)(IGuestFile *pThis);
15628     nsrefcnt (*Release)(IGuestFile *pThis);
15629     nsresult (*GetEventSource)(IGuestFile *pThis, IEventSource * *eventSource);
15630 
15631     nsresult (*GetId)(IGuestFile *pThis, PRUint32 *id);
15632 
15633     nsresult (*GetInitialSize)(IGuestFile *pThis, PRInt64 *initialSize);
15634 
15635     nsresult (*GetOffset)(IGuestFile *pThis, PRInt64 *offset);
15636 
15637     nsresult (*GetStatus)(IGuestFile *pThis, PRUint32 *status);
15638 
15639     nsresult (*GetFilename)(IGuestFile *pThis, PRUnichar * *filename);
15640 
15641     nsresult (*GetCreationMode)(IGuestFile *pThis, PRUint32 *creationMode);
15642 
15643     nsresult (*GetOpenAction)(IGuestFile *pThis, PRUint32 *openAction);
15644 
15645     nsresult (*GetAccessMode)(IGuestFile *pThis, PRUint32 *accessMode);
15646 
15647     nsresult (*GetInternalAndReservedAttribute1IFile)(IGuestFile *pThis, PRUint32 *reserved);
15648 
15649     nsresult (*GetInternalAndReservedAttribute2IFile)(IGuestFile *pThis, PRUint32 *reserved);
15650 
15651     nsresult (*GetInternalAndReservedAttribute3IFile)(IGuestFile *pThis, PRUint32 *reserved);
15652 
15653     nsresult (*GetInternalAndReservedAttribute4IFile)(IGuestFile *pThis, PRUint32 *reserved);
15654 
15655     nsresult (*GetInternalAndReservedAttribute5IFile)(IGuestFile *pThis, PRUint32 *reserved);
15656 
15657     nsresult (*GetInternalAndReservedAttribute6IFile)(IGuestFile *pThis, PRUint32 *reserved);
15658 
15659     nsresult (*GetInternalAndReservedAttribute7IFile)(IGuestFile *pThis, PRUint32 *reserved);
15660 
15661     nsresult (*GetInternalAndReservedAttribute8IFile)(IGuestFile *pThis, PRUint32 *reserved);
15662 
15663     nsresult (*Close)(IGuestFile *pThis );
15664 
15665     nsresult (*QueryInfo)(
15666         IGuestFile *pThis,
15667         IFsObjInfo * * objInfo
15668     );
15669 
15670     nsresult (*QuerySize)(
15671         IGuestFile *pThis,
15672         PRInt64 * size
15673     );
15674 
15675     nsresult (*Read)(
15676         IGuestFile *pThis,
15677         PRUint32 toRead,
15678         PRUint32 timeoutMS,
15679         PRUint32 *dataSize,
15680         PRUint8** data
15681     );
15682 
15683     nsresult (*ReadAt)(
15684         IGuestFile *pThis,
15685         PRInt64 offset,
15686         PRUint32 toRead,
15687         PRUint32 timeoutMS,
15688         PRUint32 *dataSize,
15689         PRUint8** data
15690     );
15691 
15692     nsresult (*Seek)(
15693         IGuestFile *pThis,
15694         PRInt64 offset,
15695         PRUint32 whence,
15696         PRInt64 * newOffset
15697     );
15698 
15699     nsresult (*SetACL)(
15700         IGuestFile *pThis,
15701         PRUnichar * acl,
15702         PRUint32 mode
15703     );
15704 
15705     nsresult (*SetSize)(
15706         IGuestFile *pThis,
15707         PRInt64 size
15708     );
15709 
15710     nsresult (*Write)(
15711         IGuestFile *pThis,
15712         PRUint32 dataSize,
15713         PRUint8* data,
15714         PRUint32 timeoutMS,
15715         PRUint32 * written
15716     );
15717 
15718     nsresult (*WriteAt)(
15719         IGuestFile *pThis,
15720         PRInt64 offset,
15721         PRUint32 dataSize,
15722         PRUint8* data,
15723         PRUint32 timeoutMS,
15724         PRUint32 * written
15725     );
15726 
15727     nsresult (*InternalAndReservedMethod1IFile)(IGuestFile *pThis);
15728 
15729     nsresult (*InternalAndReservedMethod2IFile)(IGuestFile *pThis);
15730 
15731     nsresult (*InternalAndReservedMethod3IFile)(IGuestFile *pThis);
15732 
15733     nsresult (*InternalAndReservedMethod4IFile)(IGuestFile *pThis);
15734 
15735     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFile *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
15736 
15737 };
15738 #    define IGuestFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15739 #    define IGuestFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
15740 #    define IGuestFile_Release(p) ((p)->lpVtbl->Release(p))
15741 #    define IGuestFile_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15742 #    define IGuestFile_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
15743 #    define IGuestFile_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
15744 #    define IGuestFile_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
15745 #    define IGuestFile_get_InitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
15746 #    define IGuestFile_GetInitialSize(p, aInitialSize) ((p)->lpVtbl->GetInitialSize(p, aInitialSize))
15747 #    define IGuestFile_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
15748 #    define IGuestFile_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
15749 #    define IGuestFile_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
15750 #    define IGuestFile_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
15751 #    define IGuestFile_get_Filename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
15752 #    define IGuestFile_GetFilename(p, aFilename) ((p)->lpVtbl->GetFilename(p, aFilename))
15753 #    define IGuestFile_get_CreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
15754 #    define IGuestFile_GetCreationMode(p, aCreationMode) ((p)->lpVtbl->GetCreationMode(p, aCreationMode))
15755 #    define IGuestFile_get_OpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
15756 #    define IGuestFile_GetOpenAction(p, aOpenAction) ((p)->lpVtbl->GetOpenAction(p, aOpenAction))
15757 #    define IGuestFile_get_AccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
15758 #    define IGuestFile_GetAccessMode(p, aAccessMode) ((p)->lpVtbl->GetAccessMode(p, aAccessMode))
15759 #    define IGuestFile_Close(p) ((p)->lpVtbl->Close(p))
15760 #    define IGuestFile_QueryInfo(p, aObjInfo) ((p)->lpVtbl->QueryInfo(p, aObjInfo))
15761 #    define IGuestFile_QuerySize(p, aSize) ((p)->lpVtbl->QuerySize(p, aSize))
15762 #    define IGuestFile_Read(p, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aToRead, aTimeoutMS, aData))
15763 #    define IGuestFile_ReadAt(p, aOffset, aToRead, aTimeoutMS, aData) ((p)->lpVtbl->ReadAt(p, aOffset, aToRead, aTimeoutMS, aData))
15764 #    define IGuestFile_Seek(p, aOffset, aWhence, aNewOffset) ((p)->lpVtbl->Seek(p, aOffset, aWhence, aNewOffset))
15765 #    define IGuestFile_SetACL(p, aAcl, aMode) ((p)->lpVtbl->SetACL(p, aAcl, aMode))
15766 #    define IGuestFile_SetSize(p, aSize) ((p)->lpVtbl->SetSize(p, aSize))
15767 #    define IGuestFile_Write(p, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->Write(p, aData, aTimeoutMS, aWritten))
15768 #    define IGuestFile_WriteAt(p, aOffset, aData, aTimeoutMS, aWritten) ((p)->lpVtbl->WriteAt(p, aOffset, aData, aTimeoutMS, aWritten))
15769 #    define IGuestFile_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
15770 #    define IGuestFile_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
15771 #   endif /* VBOX_WITH_GLUE */
15772 
15773 interface IGuestFile
15774 {
15775 #   ifndef VBOX_WITH_GLUE
15776     struct IGuestFile_vtbl *vtbl;
15777 #   else /* VBOX_WITH_GLUE */
15778     CONST_VTBL struct IGuestFileVtbl *lpVtbl;
15779 #   endif /* VBOX_WITH_GLUE */
15780 };
15781 /* End of struct IGuestFile declaration */
15782 
15783 
15784 /* Start of struct IFsObjInfo declaration */
15785 #   define IFSOBJINFO_IID_STR "081fc833-c6fa-430e-6020-6a505d086387"
15786 #   define IFSOBJINFO_IID { \
15787     0x081fc833, 0xc6fa, 0x430e, \
15788     { 0x60, 0x20, 0x6a, 0x50, 0x5d, 0x08, 0x63, 0x87 } \
15789 }
15790 /* COM compatibility */
15791 VBOX_EXTERN_CONST(nsIID, IID_IFsObjInfo);
15792 #   ifndef VBOX_WITH_GLUE
15793 struct IFsObjInfo_vtbl
15794 {
15795     struct nsISupports_vtbl nsisupports;
15796 
15797     nsresult (*GetName)(IFsObjInfo *pThis, PRUnichar * *name);
15798 
15799     nsresult (*GetType)(IFsObjInfo *pThis, PRUint32 *type);
15800 
15801     nsresult (*GetFileAttributes)(IFsObjInfo *pThis, PRUnichar * *fileAttributes);
15802 
15803     nsresult (*GetObjectSize)(IFsObjInfo *pThis, PRInt64 *objectSize);
15804 
15805     nsresult (*GetAllocatedSize)(IFsObjInfo *pThis, PRInt64 *allocatedSize);
15806 
15807     nsresult (*GetAccessTime)(IFsObjInfo *pThis, PRInt64 *accessTime);
15808 
15809     nsresult (*GetBirthTime)(IFsObjInfo *pThis, PRInt64 *birthTime);
15810 
15811     nsresult (*GetChangeTime)(IFsObjInfo *pThis, PRInt64 *changeTime);
15812 
15813     nsresult (*GetModificationTime)(IFsObjInfo *pThis, PRInt64 *modificationTime);
15814 
15815     nsresult (*GetUID)(IFsObjInfo *pThis, PRInt32 *UID);
15816 
15817     nsresult (*GetUserName)(IFsObjInfo *pThis, PRUnichar * *userName);
15818 
15819     nsresult (*GetGID)(IFsObjInfo *pThis, PRInt32 *GID);
15820 
15821     nsresult (*GetGroupName)(IFsObjInfo *pThis, PRUnichar * *groupName);
15822 
15823     nsresult (*GetNodeId)(IFsObjInfo *pThis, PRInt64 *nodeId);
15824 
15825     nsresult (*GetNodeIdDevice)(IFsObjInfo *pThis, PRUint32 *nodeIdDevice);
15826 
15827     nsresult (*GetHardLinks)(IFsObjInfo *pThis, PRUint32 *hardLinks);
15828 
15829     nsresult (*GetDeviceNumber)(IFsObjInfo *pThis, PRUint32 *deviceNumber);
15830 
15831     nsresult (*GetGenerationId)(IFsObjInfo *pThis, PRUint32 *generationId);
15832 
15833     nsresult (*GetUserFlags)(IFsObjInfo *pThis, PRUint32 *userFlags);
15834 
15835     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15836 
15837     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15838 
15839     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15840 
15841     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15842 
15843     nsresult (*GetInternalAndReservedAttribute5IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15844 
15845     nsresult (*GetInternalAndReservedAttribute6IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15846 
15847     nsresult (*GetInternalAndReservedAttribute7IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15848 
15849     nsresult (*GetInternalAndReservedAttribute8IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15850 
15851 };
15852 #   else /* VBOX_WITH_GLUE */
15853 struct IFsObjInfoVtbl
15854 {
15855     nsresult (*QueryInterface)(IFsObjInfo *pThis, const nsID *iid, void **resultp);
15856     nsrefcnt (*AddRef)(IFsObjInfo *pThis);
15857     nsrefcnt (*Release)(IFsObjInfo *pThis);
15858     nsresult (*GetName)(IFsObjInfo *pThis, PRUnichar * *name);
15859 
15860     nsresult (*GetType)(IFsObjInfo *pThis, PRUint32 *type);
15861 
15862     nsresult (*GetFileAttributes)(IFsObjInfo *pThis, PRUnichar * *fileAttributes);
15863 
15864     nsresult (*GetObjectSize)(IFsObjInfo *pThis, PRInt64 *objectSize);
15865 
15866     nsresult (*GetAllocatedSize)(IFsObjInfo *pThis, PRInt64 *allocatedSize);
15867 
15868     nsresult (*GetAccessTime)(IFsObjInfo *pThis, PRInt64 *accessTime);
15869 
15870     nsresult (*GetBirthTime)(IFsObjInfo *pThis, PRInt64 *birthTime);
15871 
15872     nsresult (*GetChangeTime)(IFsObjInfo *pThis, PRInt64 *changeTime);
15873 
15874     nsresult (*GetModificationTime)(IFsObjInfo *pThis, PRInt64 *modificationTime);
15875 
15876     nsresult (*GetUID)(IFsObjInfo *pThis, PRInt32 *UID);
15877 
15878     nsresult (*GetUserName)(IFsObjInfo *pThis, PRUnichar * *userName);
15879 
15880     nsresult (*GetGID)(IFsObjInfo *pThis, PRInt32 *GID);
15881 
15882     nsresult (*GetGroupName)(IFsObjInfo *pThis, PRUnichar * *groupName);
15883 
15884     nsresult (*GetNodeId)(IFsObjInfo *pThis, PRInt64 *nodeId);
15885 
15886     nsresult (*GetNodeIdDevice)(IFsObjInfo *pThis, PRUint32 *nodeIdDevice);
15887 
15888     nsresult (*GetHardLinks)(IFsObjInfo *pThis, PRUint32 *hardLinks);
15889 
15890     nsresult (*GetDeviceNumber)(IFsObjInfo *pThis, PRUint32 *deviceNumber);
15891 
15892     nsresult (*GetGenerationId)(IFsObjInfo *pThis, PRUint32 *generationId);
15893 
15894     nsresult (*GetUserFlags)(IFsObjInfo *pThis, PRUint32 *userFlags);
15895 
15896     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15897 
15898     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15899 
15900     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15901 
15902     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15903 
15904     nsresult (*GetInternalAndReservedAttribute5IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15905 
15906     nsresult (*GetInternalAndReservedAttribute6IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15907 
15908     nsresult (*GetInternalAndReservedAttribute7IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15909 
15910     nsresult (*GetInternalAndReservedAttribute8IFsObjInfo)(IFsObjInfo *pThis, PRUint32 *reserved);
15911 
15912 };
15913 #    define IFsObjInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
15914 #    define IFsObjInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
15915 #    define IFsObjInfo_Release(p) ((p)->lpVtbl->Release(p))
15916 #    define IFsObjInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
15917 #    define IFsObjInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
15918 #    define IFsObjInfo_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
15919 #    define IFsObjInfo_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
15920 #    define IFsObjInfo_get_FileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
15921 #    define IFsObjInfo_GetFileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
15922 #    define IFsObjInfo_get_ObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
15923 #    define IFsObjInfo_GetObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
15924 #    define IFsObjInfo_get_AllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
15925 #    define IFsObjInfo_GetAllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
15926 #    define IFsObjInfo_get_AccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
15927 #    define IFsObjInfo_GetAccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
15928 #    define IFsObjInfo_get_BirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
15929 #    define IFsObjInfo_GetBirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
15930 #    define IFsObjInfo_get_ChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
15931 #    define IFsObjInfo_GetChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
15932 #    define IFsObjInfo_get_ModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
15933 #    define IFsObjInfo_GetModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
15934 #    define IFsObjInfo_get_UID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
15935 #    define IFsObjInfo_GetUID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
15936 #    define IFsObjInfo_get_UserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
15937 #    define IFsObjInfo_GetUserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
15938 #    define IFsObjInfo_get_GID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
15939 #    define IFsObjInfo_GetGID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
15940 #    define IFsObjInfo_get_GroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
15941 #    define IFsObjInfo_GetGroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
15942 #    define IFsObjInfo_get_NodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
15943 #    define IFsObjInfo_GetNodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
15944 #    define IFsObjInfo_get_NodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
15945 #    define IFsObjInfo_GetNodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
15946 #    define IFsObjInfo_get_HardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
15947 #    define IFsObjInfo_GetHardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
15948 #    define IFsObjInfo_get_DeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
15949 #    define IFsObjInfo_GetDeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
15950 #    define IFsObjInfo_get_GenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
15951 #    define IFsObjInfo_GetGenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
15952 #    define IFsObjInfo_get_UserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
15953 #    define IFsObjInfo_GetUserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
15954 #   endif /* VBOX_WITH_GLUE */
15955 
15956 interface IFsObjInfo
15957 {
15958 #   ifndef VBOX_WITH_GLUE
15959     struct IFsObjInfo_vtbl *vtbl;
15960 #   else /* VBOX_WITH_GLUE */
15961     CONST_VTBL struct IFsObjInfoVtbl *lpVtbl;
15962 #   endif /* VBOX_WITH_GLUE */
15963 };
15964 /* End of struct IFsObjInfo declaration */
15965 
15966 
15967 /* Start of struct IGuestFsObjInfo declaration */
15968 #   define IGUESTFSOBJINFO_IID_STR "6620db85-44e0-ca69-e9e0-d4907ceccbe5"
15969 #   define IGUESTFSOBJINFO_IID { \
15970     0x6620db85, 0x44e0, 0xca69, \
15971     { 0xe9, 0xe0, 0xd4, 0x90, 0x7c, 0xec, 0xcb, 0xe5 } \
15972 }
15973 /* COM compatibility */
15974 VBOX_EXTERN_CONST(nsIID, IID_IGuestFsObjInfo);
15975 #   ifndef VBOX_WITH_GLUE
15976 struct IGuestFsObjInfo_vtbl
15977 {
15978     struct IFsObjInfo_vtbl ifsobjinfo;
15979 
15980     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFsObjInfo *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
15981 
15982 };
15983 #   else /* VBOX_WITH_GLUE */
15984 struct IGuestFsObjInfoVtbl
15985 {
15986     nsresult (*QueryInterface)(IGuestFsObjInfo *pThis, const nsID *iid, void **resultp);
15987     nsrefcnt (*AddRef)(IGuestFsObjInfo *pThis);
15988     nsrefcnt (*Release)(IGuestFsObjInfo *pThis);
15989     nsresult (*GetName)(IGuestFsObjInfo *pThis, PRUnichar * *name);
15990 
15991     nsresult (*GetType)(IGuestFsObjInfo *pThis, PRUint32 *type);
15992 
15993     nsresult (*GetFileAttributes)(IGuestFsObjInfo *pThis, PRUnichar * *fileAttributes);
15994 
15995     nsresult (*GetObjectSize)(IGuestFsObjInfo *pThis, PRInt64 *objectSize);
15996 
15997     nsresult (*GetAllocatedSize)(IGuestFsObjInfo *pThis, PRInt64 *allocatedSize);
15998 
15999     nsresult (*GetAccessTime)(IGuestFsObjInfo *pThis, PRInt64 *accessTime);
16000 
16001     nsresult (*GetBirthTime)(IGuestFsObjInfo *pThis, PRInt64 *birthTime);
16002 
16003     nsresult (*GetChangeTime)(IGuestFsObjInfo *pThis, PRInt64 *changeTime);
16004 
16005     nsresult (*GetModificationTime)(IGuestFsObjInfo *pThis, PRInt64 *modificationTime);
16006 
16007     nsresult (*GetUID)(IGuestFsObjInfo *pThis, PRInt32 *UID);
16008 
16009     nsresult (*GetUserName)(IGuestFsObjInfo *pThis, PRUnichar * *userName);
16010 
16011     nsresult (*GetGID)(IGuestFsObjInfo *pThis, PRInt32 *GID);
16012 
16013     nsresult (*GetGroupName)(IGuestFsObjInfo *pThis, PRUnichar * *groupName);
16014 
16015     nsresult (*GetNodeId)(IGuestFsObjInfo *pThis, PRInt64 *nodeId);
16016 
16017     nsresult (*GetNodeIdDevice)(IGuestFsObjInfo *pThis, PRUint32 *nodeIdDevice);
16018 
16019     nsresult (*GetHardLinks)(IGuestFsObjInfo *pThis, PRUint32 *hardLinks);
16020 
16021     nsresult (*GetDeviceNumber)(IGuestFsObjInfo *pThis, PRUint32 *deviceNumber);
16022 
16023     nsresult (*GetGenerationId)(IGuestFsObjInfo *pThis, PRUint32 *generationId);
16024 
16025     nsresult (*GetUserFlags)(IGuestFsObjInfo *pThis, PRUint32 *userFlags);
16026 
16027     nsresult (*GetInternalAndReservedAttribute1IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16028 
16029     nsresult (*GetInternalAndReservedAttribute2IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16030 
16031     nsresult (*GetInternalAndReservedAttribute3IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16032 
16033     nsresult (*GetInternalAndReservedAttribute4IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16034 
16035     nsresult (*GetInternalAndReservedAttribute5IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16036 
16037     nsresult (*GetInternalAndReservedAttribute6IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16038 
16039     nsresult (*GetInternalAndReservedAttribute7IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16040 
16041     nsresult (*GetInternalAndReservedAttribute8IFsObjInfo)(IGuestFsObjInfo *pThis, PRUint32 *reserved);
16042 
16043     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFsObjInfo *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
16044 
16045 };
16046 #    define IGuestFsObjInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16047 #    define IGuestFsObjInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
16048 #    define IGuestFsObjInfo_Release(p) ((p)->lpVtbl->Release(p))
16049 #    define IGuestFsObjInfo_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
16050 #    define IGuestFsObjInfo_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
16051 #    define IGuestFsObjInfo_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
16052 #    define IGuestFsObjInfo_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
16053 #    define IGuestFsObjInfo_get_FileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
16054 #    define IGuestFsObjInfo_GetFileAttributes(p, aFileAttributes) ((p)->lpVtbl->GetFileAttributes(p, aFileAttributes))
16055 #    define IGuestFsObjInfo_get_ObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
16056 #    define IGuestFsObjInfo_GetObjectSize(p, aObjectSize) ((p)->lpVtbl->GetObjectSize(p, aObjectSize))
16057 #    define IGuestFsObjInfo_get_AllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
16058 #    define IGuestFsObjInfo_GetAllocatedSize(p, aAllocatedSize) ((p)->lpVtbl->GetAllocatedSize(p, aAllocatedSize))
16059 #    define IGuestFsObjInfo_get_AccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
16060 #    define IGuestFsObjInfo_GetAccessTime(p, aAccessTime) ((p)->lpVtbl->GetAccessTime(p, aAccessTime))
16061 #    define IGuestFsObjInfo_get_BirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
16062 #    define IGuestFsObjInfo_GetBirthTime(p, aBirthTime) ((p)->lpVtbl->GetBirthTime(p, aBirthTime))
16063 #    define IGuestFsObjInfo_get_ChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
16064 #    define IGuestFsObjInfo_GetChangeTime(p, aChangeTime) ((p)->lpVtbl->GetChangeTime(p, aChangeTime))
16065 #    define IGuestFsObjInfo_get_ModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
16066 #    define IGuestFsObjInfo_GetModificationTime(p, aModificationTime) ((p)->lpVtbl->GetModificationTime(p, aModificationTime))
16067 #    define IGuestFsObjInfo_get_UID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
16068 #    define IGuestFsObjInfo_GetUID(p, aUID) ((p)->lpVtbl->GetUID(p, aUID))
16069 #    define IGuestFsObjInfo_get_UserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
16070 #    define IGuestFsObjInfo_GetUserName(p, aUserName) ((p)->lpVtbl->GetUserName(p, aUserName))
16071 #    define IGuestFsObjInfo_get_GID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
16072 #    define IGuestFsObjInfo_GetGID(p, aGID) ((p)->lpVtbl->GetGID(p, aGID))
16073 #    define IGuestFsObjInfo_get_GroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
16074 #    define IGuestFsObjInfo_GetGroupName(p, aGroupName) ((p)->lpVtbl->GetGroupName(p, aGroupName))
16075 #    define IGuestFsObjInfo_get_NodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
16076 #    define IGuestFsObjInfo_GetNodeId(p, aNodeId) ((p)->lpVtbl->GetNodeId(p, aNodeId))
16077 #    define IGuestFsObjInfo_get_NodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
16078 #    define IGuestFsObjInfo_GetNodeIdDevice(p, aNodeIdDevice) ((p)->lpVtbl->GetNodeIdDevice(p, aNodeIdDevice))
16079 #    define IGuestFsObjInfo_get_HardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
16080 #    define IGuestFsObjInfo_GetHardLinks(p, aHardLinks) ((p)->lpVtbl->GetHardLinks(p, aHardLinks))
16081 #    define IGuestFsObjInfo_get_DeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
16082 #    define IGuestFsObjInfo_GetDeviceNumber(p, aDeviceNumber) ((p)->lpVtbl->GetDeviceNumber(p, aDeviceNumber))
16083 #    define IGuestFsObjInfo_get_GenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
16084 #    define IGuestFsObjInfo_GetGenerationId(p, aGenerationId) ((p)->lpVtbl->GetGenerationId(p, aGenerationId))
16085 #    define IGuestFsObjInfo_get_UserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
16086 #    define IGuestFsObjInfo_GetUserFlags(p, aUserFlags) ((p)->lpVtbl->GetUserFlags(p, aUserFlags))
16087 #    define IGuestFsObjInfo_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
16088 #    define IGuestFsObjInfo_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
16089 #   endif /* VBOX_WITH_GLUE */
16090 
16091 interface IGuestFsObjInfo
16092 {
16093 #   ifndef VBOX_WITH_GLUE
16094     struct IGuestFsObjInfo_vtbl *vtbl;
16095 #   else /* VBOX_WITH_GLUE */
16096     CONST_VTBL struct IGuestFsObjInfoVtbl *lpVtbl;
16097 #   endif /* VBOX_WITH_GLUE */
16098 };
16099 /* End of struct IGuestFsObjInfo declaration */
16100 
16101 
16102 /* Start of struct IGuest declaration */
16103 #   define IGUEST_IID_STR "13a11514-402e-022e-6180-c3944de3f9c8"
16104 #   define IGUEST_IID { \
16105     0x13a11514, 0x402e, 0x022e, \
16106     { 0x61, 0x80, 0xc3, 0x94, 0x4d, 0xe3, 0xf9, 0xc8 } \
16107 }
16108 /* COM compatibility */
16109 VBOX_EXTERN_CONST(nsIID, IID_IGuest);
16110 #   ifndef VBOX_WITH_GLUE
16111 struct IGuest_vtbl
16112 {
16113     struct nsISupports_vtbl nsisupports;
16114 
16115     nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
16116 
16117     nsresult (*GetAdditionsRunLevel)(IGuest *pThis, PRUint32 *additionsRunLevel);
16118 
16119     nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
16120 
16121     nsresult (*GetAdditionsRevision)(IGuest *pThis, PRUint32 *additionsRevision);
16122 
16123     nsresult (*GetDnDSource)(IGuest *pThis, IGuestDnDSource * *dnDSource);
16124 
16125     nsresult (*GetDnDTarget)(IGuest *pThis, IGuestDnDTarget * *dnDTarget);
16126 
16127     nsresult (*GetEventSource)(IGuest *pThis, IEventSource * *eventSource);
16128 
16129     nsresult (*GetFacilities)(IGuest *pThis, PRUint32 *facilitiesSize, IAdditionsFacility * **facilities);
16130 
16131     nsresult (*GetSessions)(IGuest *pThis, PRUint32 *sessionsSize, IGuestSession * **sessions);
16132 
16133     nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
16134     nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
16135 
16136     nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
16137     nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
16138 
16139     nsresult (*GetInternalAndReservedAttribute1IGuest)(IGuest *pThis, PRUint32 *reserved);
16140 
16141     nsresult (*GetInternalAndReservedAttribute2IGuest)(IGuest *pThis, PRUint32 *reserved);
16142 
16143     nsresult (*GetInternalAndReservedAttribute3IGuest)(IGuest *pThis, PRUint32 *reserved);
16144 
16145     nsresult (*GetInternalAndReservedAttribute4IGuest)(IGuest *pThis, PRUint32 *reserved);
16146 
16147     nsresult (*GetInternalAndReservedAttribute5IGuest)(IGuest *pThis, PRUint32 *reserved);
16148 
16149     nsresult (*GetInternalAndReservedAttribute6IGuest)(IGuest *pThis, PRUint32 *reserved);
16150 
16151     nsresult (*GetInternalAndReservedAttribute7IGuest)(IGuest *pThis, PRUint32 *reserved);
16152 
16153     nsresult (*GetInternalAndReservedAttribute8IGuest)(IGuest *pThis, PRUint32 *reserved);
16154 
16155     nsresult (*GetInternalAndReservedAttribute9IGuest)(IGuest *pThis, PRUint32 *reserved);
16156 
16157     nsresult (*GetInternalAndReservedAttribute10IGuest)(IGuest *pThis, PRUint32 *reserved);
16158 
16159     nsresult (*GetInternalAndReservedAttribute11IGuest)(IGuest *pThis, PRUint32 *reserved);
16160 
16161     nsresult (*GetInternalAndReservedAttribute12IGuest)(IGuest *pThis, PRUint32 *reserved);
16162 
16163     nsresult (*GetInternalAndReservedAttribute13IGuest)(IGuest *pThis, PRUint32 *reserved);
16164 
16165     nsresult (*GetInternalAndReservedAttribute14IGuest)(IGuest *pThis, PRUint32 *reserved);
16166 
16167     nsresult (*GetInternalAndReservedAttribute15IGuest)(IGuest *pThis, PRUint32 *reserved);
16168 
16169     nsresult (*GetInternalAndReservedAttribute16IGuest)(IGuest *pThis, PRUint32 *reserved);
16170 
16171     nsresult (*InternalGetStatistics)(
16172         IGuest *pThis,
16173         PRUint32 * cpuUser,
16174         PRUint32 * cpuKernel,
16175         PRUint32 * cpuIdle,
16176         PRUint32 * memTotal,
16177         PRUint32 * memFree,
16178         PRUint32 * memBalloon,
16179         PRUint32 * memShared,
16180         PRUint32 * memCache,
16181         PRUint32 * pagedTotal,
16182         PRUint32 * memAllocTotal,
16183         PRUint32 * memFreeTotal,
16184         PRUint32 * memBalloonTotal,
16185         PRUint32 * memSharedTotal
16186     );
16187 
16188     nsresult (*GetFacilityStatus)(
16189         IGuest *pThis,
16190         PRUint32 facility,
16191         PRInt64 * timestamp,
16192         PRUint32 * status
16193     );
16194 
16195     nsresult (*GetAdditionsStatus)(
16196         IGuest *pThis,
16197         PRUint32 level,
16198         PRBool * active
16199     );
16200 
16201     nsresult (*SetCredentials)(
16202         IGuest *pThis,
16203         PRUnichar * userName,
16204         PRUnichar * password,
16205         PRUnichar * domain,
16206         PRBool allowInteractiveLogon
16207     );
16208 
16209     nsresult (*CreateSession)(
16210         IGuest *pThis,
16211         PRUnichar * user,
16212         PRUnichar * password,
16213         PRUnichar * domain,
16214         PRUnichar * sessionName,
16215         IGuestSession * * guestSession
16216     );
16217 
16218     nsresult (*FindSession)(
16219         IGuest *pThis,
16220         PRUnichar * sessionName,
16221         PRUint32 *sessionsSize,
16222         IGuestSession *** sessions
16223     );
16224 
16225     nsresult (*UpdateGuestAdditions)(
16226         IGuest *pThis,
16227         PRUnichar * source,
16228         PRUint32 argumentsSize,
16229         PRUnichar ** arguments,
16230         PRUint32 flagsSize,
16231         PRUint32* flags,
16232         IProgress * * progress
16233     );
16234 
16235     nsresult (*InternalAndReservedMethod1IGuest)(IGuest *pThis);
16236 
16237     nsresult (*InternalAndReservedMethod2IGuest)(IGuest *pThis);
16238 
16239     nsresult (*InternalAndReservedMethod3IGuest)(IGuest *pThis);
16240 
16241     nsresult (*InternalAndReservedMethod4IGuest)(IGuest *pThis);
16242 
16243     nsresult (*InternalAndReservedMethod5IGuest)(IGuest *pThis);
16244 
16245     nsresult (*InternalAndReservedMethod6IGuest)(IGuest *pThis);
16246 
16247     nsresult (*InternalAndReservedMethod7IGuest)(IGuest *pThis);
16248 
16249     nsresult (*InternalAndReservedMethod8IGuest)(IGuest *pThis);
16250 
16251 };
16252 #   else /* VBOX_WITH_GLUE */
16253 struct IGuestVtbl
16254 {
16255     nsresult (*QueryInterface)(IGuest *pThis, const nsID *iid, void **resultp);
16256     nsrefcnt (*AddRef)(IGuest *pThis);
16257     nsrefcnt (*Release)(IGuest *pThis);
16258     nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
16259 
16260     nsresult (*GetAdditionsRunLevel)(IGuest *pThis, PRUint32 *additionsRunLevel);
16261 
16262     nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
16263 
16264     nsresult (*GetAdditionsRevision)(IGuest *pThis, PRUint32 *additionsRevision);
16265 
16266     nsresult (*GetDnDSource)(IGuest *pThis, IGuestDnDSource * *dnDSource);
16267 
16268     nsresult (*GetDnDTarget)(IGuest *pThis, IGuestDnDTarget * *dnDTarget);
16269 
16270     nsresult (*GetEventSource)(IGuest *pThis, IEventSource * *eventSource);
16271 
16272     nsresult (*GetFacilities)(IGuest *pThis, PRUint32 *facilitiesSize, IAdditionsFacility * **facilities);
16273 
16274     nsresult (*GetSessions)(IGuest *pThis, PRUint32 *sessionsSize, IGuestSession * **sessions);
16275 
16276     nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
16277     nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
16278 
16279     nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
16280     nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
16281 
16282     nsresult (*GetInternalAndReservedAttribute1IGuest)(IGuest *pThis, PRUint32 *reserved);
16283 
16284     nsresult (*GetInternalAndReservedAttribute2IGuest)(IGuest *pThis, PRUint32 *reserved);
16285 
16286     nsresult (*GetInternalAndReservedAttribute3IGuest)(IGuest *pThis, PRUint32 *reserved);
16287 
16288     nsresult (*GetInternalAndReservedAttribute4IGuest)(IGuest *pThis, PRUint32 *reserved);
16289 
16290     nsresult (*GetInternalAndReservedAttribute5IGuest)(IGuest *pThis, PRUint32 *reserved);
16291 
16292     nsresult (*GetInternalAndReservedAttribute6IGuest)(IGuest *pThis, PRUint32 *reserved);
16293 
16294     nsresult (*GetInternalAndReservedAttribute7IGuest)(IGuest *pThis, PRUint32 *reserved);
16295 
16296     nsresult (*GetInternalAndReservedAttribute8IGuest)(IGuest *pThis, PRUint32 *reserved);
16297 
16298     nsresult (*GetInternalAndReservedAttribute9IGuest)(IGuest *pThis, PRUint32 *reserved);
16299 
16300     nsresult (*GetInternalAndReservedAttribute10IGuest)(IGuest *pThis, PRUint32 *reserved);
16301 
16302     nsresult (*GetInternalAndReservedAttribute11IGuest)(IGuest *pThis, PRUint32 *reserved);
16303 
16304     nsresult (*GetInternalAndReservedAttribute12IGuest)(IGuest *pThis, PRUint32 *reserved);
16305 
16306     nsresult (*GetInternalAndReservedAttribute13IGuest)(IGuest *pThis, PRUint32 *reserved);
16307 
16308     nsresult (*GetInternalAndReservedAttribute14IGuest)(IGuest *pThis, PRUint32 *reserved);
16309 
16310     nsresult (*GetInternalAndReservedAttribute15IGuest)(IGuest *pThis, PRUint32 *reserved);
16311 
16312     nsresult (*GetInternalAndReservedAttribute16IGuest)(IGuest *pThis, PRUint32 *reserved);
16313 
16314     nsresult (*InternalGetStatistics)(
16315         IGuest *pThis,
16316         PRUint32 * cpuUser,
16317         PRUint32 * cpuKernel,
16318         PRUint32 * cpuIdle,
16319         PRUint32 * memTotal,
16320         PRUint32 * memFree,
16321         PRUint32 * memBalloon,
16322         PRUint32 * memShared,
16323         PRUint32 * memCache,
16324         PRUint32 * pagedTotal,
16325         PRUint32 * memAllocTotal,
16326         PRUint32 * memFreeTotal,
16327         PRUint32 * memBalloonTotal,
16328         PRUint32 * memSharedTotal
16329     );
16330 
16331     nsresult (*GetFacilityStatus)(
16332         IGuest *pThis,
16333         PRUint32 facility,
16334         PRInt64 * timestamp,
16335         PRUint32 * status
16336     );
16337 
16338     nsresult (*GetAdditionsStatus)(
16339         IGuest *pThis,
16340         PRUint32 level,
16341         PRBool * active
16342     );
16343 
16344     nsresult (*SetCredentials)(
16345         IGuest *pThis,
16346         PRUnichar * userName,
16347         PRUnichar * password,
16348         PRUnichar * domain,
16349         PRBool allowInteractiveLogon
16350     );
16351 
16352     nsresult (*CreateSession)(
16353         IGuest *pThis,
16354         PRUnichar * user,
16355         PRUnichar * password,
16356         PRUnichar * domain,
16357         PRUnichar * sessionName,
16358         IGuestSession * * guestSession
16359     );
16360 
16361     nsresult (*FindSession)(
16362         IGuest *pThis,
16363         PRUnichar * sessionName,
16364         PRUint32 *sessionsSize,
16365         IGuestSession *** sessions
16366     );
16367 
16368     nsresult (*UpdateGuestAdditions)(
16369         IGuest *pThis,
16370         PRUnichar * source,
16371         PRUint32 argumentsSize,
16372         PRUnichar ** arguments,
16373         PRUint32 flagsSize,
16374         PRUint32* flags,
16375         IProgress * * progress
16376     );
16377 
16378     nsresult (*InternalAndReservedMethod1IGuest)(IGuest *pThis);
16379 
16380     nsresult (*InternalAndReservedMethod2IGuest)(IGuest *pThis);
16381 
16382     nsresult (*InternalAndReservedMethod3IGuest)(IGuest *pThis);
16383 
16384     nsresult (*InternalAndReservedMethod4IGuest)(IGuest *pThis);
16385 
16386     nsresult (*InternalAndReservedMethod5IGuest)(IGuest *pThis);
16387 
16388     nsresult (*InternalAndReservedMethod6IGuest)(IGuest *pThis);
16389 
16390     nsresult (*InternalAndReservedMethod7IGuest)(IGuest *pThis);
16391 
16392     nsresult (*InternalAndReservedMethod8IGuest)(IGuest *pThis);
16393 
16394 };
16395 #    define IGuest_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16396 #    define IGuest_AddRef(p) ((p)->lpVtbl->AddRef(p))
16397 #    define IGuest_Release(p) ((p)->lpVtbl->Release(p))
16398 #    define IGuest_get_OSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
16399 #    define IGuest_GetOSTypeId(p, aOSTypeId) ((p)->lpVtbl->GetOSTypeId(p, aOSTypeId))
16400 #    define IGuest_get_AdditionsRunLevel(p, aAdditionsRunLevel) ((p)->lpVtbl->GetAdditionsRunLevel(p, aAdditionsRunLevel))
16401 #    define IGuest_GetAdditionsRunLevel(p, aAdditionsRunLevel) ((p)->lpVtbl->GetAdditionsRunLevel(p, aAdditionsRunLevel))
16402 #    define IGuest_get_AdditionsVersion(p, aAdditionsVersion) ((p)->lpVtbl->GetAdditionsVersion(p, aAdditionsVersion))
16403 #    define IGuest_GetAdditionsVersion(p, aAdditionsVersion) ((p)->lpVtbl->GetAdditionsVersion(p, aAdditionsVersion))
16404 #    define IGuest_get_AdditionsRevision(p, aAdditionsRevision) ((p)->lpVtbl->GetAdditionsRevision(p, aAdditionsRevision))
16405 #    define IGuest_GetAdditionsRevision(p, aAdditionsRevision) ((p)->lpVtbl->GetAdditionsRevision(p, aAdditionsRevision))
16406 #    define IGuest_get_DnDSource(p, aDnDSource) ((p)->lpVtbl->GetDnDSource(p, aDnDSource))
16407 #    define IGuest_GetDnDSource(p, aDnDSource) ((p)->lpVtbl->GetDnDSource(p, aDnDSource))
16408 #    define IGuest_get_DnDTarget(p, aDnDTarget) ((p)->lpVtbl->GetDnDTarget(p, aDnDTarget))
16409 #    define IGuest_GetDnDTarget(p, aDnDTarget) ((p)->lpVtbl->GetDnDTarget(p, aDnDTarget))
16410 #    define IGuest_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16411 #    define IGuest_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16412 #    define IGuest_get_Facilities(p, aFacilities) ((p)->lpVtbl->GetFacilities(p, aFacilities))
16413 #    define IGuest_GetFacilities(p, aFacilities) ((p)->lpVtbl->GetFacilities(p, aFacilities))
16414 #    define IGuest_get_Sessions(p, aSessions) ((p)->lpVtbl->GetSessions(p, aSessions))
16415 #    define IGuest_GetSessions(p, aSessions) ((p)->lpVtbl->GetSessions(p, aSessions))
16416 #    define IGuest_get_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
16417 #    define IGuest_GetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->GetMemoryBalloonSize(p, aMemoryBalloonSize))
16418 #    define IGuest_put_MemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
16419 #    define IGuest_SetMemoryBalloonSize(p, aMemoryBalloonSize) ((p)->lpVtbl->SetMemoryBalloonSize(p, aMemoryBalloonSize))
16420 #    define IGuest_get_StatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
16421 #    define IGuest_GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->GetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
16422 #    define IGuest_put_StatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
16423 #    define IGuest_SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval) ((p)->lpVtbl->SetStatisticsUpdateInterval(p, aStatisticsUpdateInterval))
16424 #    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))
16425 #    define IGuest_GetFacilityStatus(p, aFacility, aTimestamp, aStatus) ((p)->lpVtbl->GetFacilityStatus(p, aFacility, aTimestamp, aStatus))
16426 #    define IGuest_GetAdditionsStatus(p, aLevel, aActive) ((p)->lpVtbl->GetAdditionsStatus(p, aLevel, aActive))
16427 #    define IGuest_SetCredentials(p, aUserName, aPassword, aDomain, aAllowInteractiveLogon) ((p)->lpVtbl->SetCredentials(p, aUserName, aPassword, aDomain, aAllowInteractiveLogon))
16428 #    define IGuest_CreateSession(p, aUser, aPassword, aDomain, aSessionName, aGuestSession) ((p)->lpVtbl->CreateSession(p, aUser, aPassword, aDomain, aSessionName, aGuestSession))
16429 #    define IGuest_FindSession(p, aSessionName, aSessions) ((p)->lpVtbl->FindSession(p, aSessionName, aSessions))
16430 #    define IGuest_UpdateGuestAdditions(p, aSource, aArguments, aFlags, aProgress) ((p)->lpVtbl->UpdateGuestAdditions(p, aSource, aArguments, aFlags, aProgress))
16431 #   endif /* VBOX_WITH_GLUE */
16432 
16433 interface IGuest
16434 {
16435 #   ifndef VBOX_WITH_GLUE
16436     struct IGuest_vtbl *vtbl;
16437 #   else /* VBOX_WITH_GLUE */
16438     CONST_VTBL struct IGuestVtbl *lpVtbl;
16439 #   endif /* VBOX_WITH_GLUE */
16440 };
16441 /* End of struct IGuest declaration */
16442 
16443 
16444 /* Start of struct IProgress declaration */
16445 #   define IPROGRESS_IID_STR "d7b98d2b-30e8-447e-99cb-e31becae6ae4"
16446 #   define IPROGRESS_IID { \
16447     0xd7b98d2b, 0x30e8, 0x447e, \
16448     { 0x99, 0xcb, 0xe3, 0x1b, 0xec, 0xae, 0x6a, 0xe4 } \
16449 }
16450 /* COM compatibility */
16451 VBOX_EXTERN_CONST(nsIID, IID_IProgress);
16452 #   ifndef VBOX_WITH_GLUE
16453 struct IProgress_vtbl
16454 {
16455     struct nsISupports_vtbl nsisupports;
16456 
16457     nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
16458 
16459     nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
16460 
16461     nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
16462 
16463     nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
16464 
16465     nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
16466 
16467     nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
16468 
16469     nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
16470 
16471     nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
16472 
16473     nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
16474 
16475     nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
16476 
16477     nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
16478 
16479     nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
16480 
16481     nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
16482 
16483     nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
16484 
16485     nsresult (*GetOperationWeight)(IProgress *pThis, PRUint32 *operationWeight);
16486 
16487     nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
16488     nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
16489 
16490     nsresult (*GetEventSource)(IProgress *pThis, IEventSource * *eventSource);
16491 
16492     nsresult (*GetInternalAndReservedAttribute1IProgress)(IProgress *pThis, PRUint32 *reserved);
16493 
16494     nsresult (*GetInternalAndReservedAttribute2IProgress)(IProgress *pThis, PRUint32 *reserved);
16495 
16496     nsresult (*GetInternalAndReservedAttribute3IProgress)(IProgress *pThis, PRUint32 *reserved);
16497 
16498     nsresult (*GetInternalAndReservedAttribute4IProgress)(IProgress *pThis, PRUint32 *reserved);
16499 
16500     nsresult (*GetInternalAndReservedAttribute5IProgress)(IProgress *pThis, PRUint32 *reserved);
16501 
16502     nsresult (*GetInternalAndReservedAttribute6IProgress)(IProgress *pThis, PRUint32 *reserved);
16503 
16504     nsresult (*GetInternalAndReservedAttribute7IProgress)(IProgress *pThis, PRUint32 *reserved);
16505 
16506     nsresult (*GetInternalAndReservedAttribute8IProgress)(IProgress *pThis, PRUint32 *reserved);
16507 
16508     nsresult (*GetInternalAndReservedAttribute9IProgress)(IProgress *pThis, PRUint32 *reserved);
16509 
16510     nsresult (*GetInternalAndReservedAttribute10IProgress)(IProgress *pThis, PRUint32 *reserved);
16511 
16512     nsresult (*GetInternalAndReservedAttribute11IProgress)(IProgress *pThis, PRUint32 *reserved);
16513 
16514     nsresult (*GetInternalAndReservedAttribute12IProgress)(IProgress *pThis, PRUint32 *reserved);
16515 
16516     nsresult (*WaitForCompletion)(
16517         IProgress *pThis,
16518         PRInt32 timeout
16519     );
16520 
16521     nsresult (*WaitForOperationCompletion)(
16522         IProgress *pThis,
16523         PRUint32 operation,
16524         PRInt32 timeout
16525     );
16526 
16527     nsresult (*Cancel)(IProgress *pThis );
16528 
16529     nsresult (*InternalAndReservedMethod1IProgress)(IProgress *pThis);
16530 
16531     nsresult (*InternalAndReservedMethod2IProgress)(IProgress *pThis);
16532 
16533     nsresult (*InternalAndReservedMethod3IProgress)(IProgress *pThis);
16534 
16535     nsresult (*InternalAndReservedMethod4IProgress)(IProgress *pThis);
16536 
16537     nsresult (*InternalAndReservedMethod5IProgress)(IProgress *pThis);
16538 
16539     nsresult (*InternalAndReservedMethod6IProgress)(IProgress *pThis);
16540 
16541     nsresult (*InternalAndReservedMethod7IProgress)(IProgress *pThis);
16542 
16543     nsresult (*InternalAndReservedMethod8IProgress)(IProgress *pThis);
16544 
16545 };
16546 #   else /* VBOX_WITH_GLUE */
16547 struct IProgressVtbl
16548 {
16549     nsresult (*QueryInterface)(IProgress *pThis, const nsID *iid, void **resultp);
16550     nsrefcnt (*AddRef)(IProgress *pThis);
16551     nsrefcnt (*Release)(IProgress *pThis);
16552     nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
16553 
16554     nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
16555 
16556     nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
16557 
16558     nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
16559 
16560     nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
16561 
16562     nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
16563 
16564     nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
16565 
16566     nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
16567 
16568     nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
16569 
16570     nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
16571 
16572     nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
16573 
16574     nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
16575 
16576     nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
16577 
16578     nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
16579 
16580     nsresult (*GetOperationWeight)(IProgress *pThis, PRUint32 *operationWeight);
16581 
16582     nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
16583     nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
16584 
16585     nsresult (*GetEventSource)(IProgress *pThis, IEventSource * *eventSource);
16586 
16587     nsresult (*GetInternalAndReservedAttribute1IProgress)(IProgress *pThis, PRUint32 *reserved);
16588 
16589     nsresult (*GetInternalAndReservedAttribute2IProgress)(IProgress *pThis, PRUint32 *reserved);
16590 
16591     nsresult (*GetInternalAndReservedAttribute3IProgress)(IProgress *pThis, PRUint32 *reserved);
16592 
16593     nsresult (*GetInternalAndReservedAttribute4IProgress)(IProgress *pThis, PRUint32 *reserved);
16594 
16595     nsresult (*GetInternalAndReservedAttribute5IProgress)(IProgress *pThis, PRUint32 *reserved);
16596 
16597     nsresult (*GetInternalAndReservedAttribute6IProgress)(IProgress *pThis, PRUint32 *reserved);
16598 
16599     nsresult (*GetInternalAndReservedAttribute7IProgress)(IProgress *pThis, PRUint32 *reserved);
16600 
16601     nsresult (*GetInternalAndReservedAttribute8IProgress)(IProgress *pThis, PRUint32 *reserved);
16602 
16603     nsresult (*GetInternalAndReservedAttribute9IProgress)(IProgress *pThis, PRUint32 *reserved);
16604 
16605     nsresult (*GetInternalAndReservedAttribute10IProgress)(IProgress *pThis, PRUint32 *reserved);
16606 
16607     nsresult (*GetInternalAndReservedAttribute11IProgress)(IProgress *pThis, PRUint32 *reserved);
16608 
16609     nsresult (*GetInternalAndReservedAttribute12IProgress)(IProgress *pThis, PRUint32 *reserved);
16610 
16611     nsresult (*WaitForCompletion)(
16612         IProgress *pThis,
16613         PRInt32 timeout
16614     );
16615 
16616     nsresult (*WaitForOperationCompletion)(
16617         IProgress *pThis,
16618         PRUint32 operation,
16619         PRInt32 timeout
16620     );
16621 
16622     nsresult (*Cancel)(IProgress *pThis );
16623 
16624     nsresult (*InternalAndReservedMethod1IProgress)(IProgress *pThis);
16625 
16626     nsresult (*InternalAndReservedMethod2IProgress)(IProgress *pThis);
16627 
16628     nsresult (*InternalAndReservedMethod3IProgress)(IProgress *pThis);
16629 
16630     nsresult (*InternalAndReservedMethod4IProgress)(IProgress *pThis);
16631 
16632     nsresult (*InternalAndReservedMethod5IProgress)(IProgress *pThis);
16633 
16634     nsresult (*InternalAndReservedMethod6IProgress)(IProgress *pThis);
16635 
16636     nsresult (*InternalAndReservedMethod7IProgress)(IProgress *pThis);
16637 
16638     nsresult (*InternalAndReservedMethod8IProgress)(IProgress *pThis);
16639 
16640 };
16641 #    define IProgress_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16642 #    define IProgress_AddRef(p) ((p)->lpVtbl->AddRef(p))
16643 #    define IProgress_Release(p) ((p)->lpVtbl->Release(p))
16644 #    define IProgress_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
16645 #    define IProgress_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
16646 #    define IProgress_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
16647 #    define IProgress_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
16648 #    define IProgress_get_Initiator(p, aInitiator) ((p)->lpVtbl->GetInitiator(p, aInitiator))
16649 #    define IProgress_GetInitiator(p, aInitiator) ((p)->lpVtbl->GetInitiator(p, aInitiator))
16650 #    define IProgress_get_Cancelable(p, aCancelable) ((p)->lpVtbl->GetCancelable(p, aCancelable))
16651 #    define IProgress_GetCancelable(p, aCancelable) ((p)->lpVtbl->GetCancelable(p, aCancelable))
16652 #    define IProgress_get_Percent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
16653 #    define IProgress_GetPercent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
16654 #    define IProgress_get_TimeRemaining(p, aTimeRemaining) ((p)->lpVtbl->GetTimeRemaining(p, aTimeRemaining))
16655 #    define IProgress_GetTimeRemaining(p, aTimeRemaining) ((p)->lpVtbl->GetTimeRemaining(p, aTimeRemaining))
16656 #    define IProgress_get_Completed(p, aCompleted) ((p)->lpVtbl->GetCompleted(p, aCompleted))
16657 #    define IProgress_GetCompleted(p, aCompleted) ((p)->lpVtbl->GetCompleted(p, aCompleted))
16658 #    define IProgress_get_Canceled(p, aCanceled) ((p)->lpVtbl->GetCanceled(p, aCanceled))
16659 #    define IProgress_GetCanceled(p, aCanceled) ((p)->lpVtbl->GetCanceled(p, aCanceled))
16660 #    define IProgress_get_ResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
16661 #    define IProgress_GetResultCode(p, aResultCode) ((p)->lpVtbl->GetResultCode(p, aResultCode))
16662 #    define IProgress_get_ErrorInfo(p, aErrorInfo) ((p)->lpVtbl->GetErrorInfo(p, aErrorInfo))
16663 #    define IProgress_GetErrorInfo(p, aErrorInfo) ((p)->lpVtbl->GetErrorInfo(p, aErrorInfo))
16664 #    define IProgress_get_OperationCount(p, aOperationCount) ((p)->lpVtbl->GetOperationCount(p, aOperationCount))
16665 #    define IProgress_GetOperationCount(p, aOperationCount) ((p)->lpVtbl->GetOperationCount(p, aOperationCount))
16666 #    define IProgress_get_Operation(p, aOperation) ((p)->lpVtbl->GetOperation(p, aOperation))
16667 #    define IProgress_GetOperation(p, aOperation) ((p)->lpVtbl->GetOperation(p, aOperation))
16668 #    define IProgress_get_OperationDescription(p, aOperationDescription) ((p)->lpVtbl->GetOperationDescription(p, aOperationDescription))
16669 #    define IProgress_GetOperationDescription(p, aOperationDescription) ((p)->lpVtbl->GetOperationDescription(p, aOperationDescription))
16670 #    define IProgress_get_OperationPercent(p, aOperationPercent) ((p)->lpVtbl->GetOperationPercent(p, aOperationPercent))
16671 #    define IProgress_GetOperationPercent(p, aOperationPercent) ((p)->lpVtbl->GetOperationPercent(p, aOperationPercent))
16672 #    define IProgress_get_OperationWeight(p, aOperationWeight) ((p)->lpVtbl->GetOperationWeight(p, aOperationWeight))
16673 #    define IProgress_GetOperationWeight(p, aOperationWeight) ((p)->lpVtbl->GetOperationWeight(p, aOperationWeight))
16674 #    define IProgress_get_Timeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
16675 #    define IProgress_GetTimeout(p, aTimeout) ((p)->lpVtbl->GetTimeout(p, aTimeout))
16676 #    define IProgress_put_Timeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
16677 #    define IProgress_SetTimeout(p, aTimeout) ((p)->lpVtbl->SetTimeout(p, aTimeout))
16678 #    define IProgress_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16679 #    define IProgress_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
16680 #    define IProgress_WaitForCompletion(p, aTimeout) ((p)->lpVtbl->WaitForCompletion(p, aTimeout))
16681 #    define IProgress_WaitForOperationCompletion(p, aOperation, aTimeout) ((p)->lpVtbl->WaitForOperationCompletion(p, aOperation, aTimeout))
16682 #    define IProgress_Cancel(p) ((p)->lpVtbl->Cancel(p))
16683 #   endif /* VBOX_WITH_GLUE */
16684 
16685 interface IProgress
16686 {
16687 #   ifndef VBOX_WITH_GLUE
16688     struct IProgress_vtbl *vtbl;
16689 #   else /* VBOX_WITH_GLUE */
16690     CONST_VTBL struct IProgressVtbl *lpVtbl;
16691 #   endif /* VBOX_WITH_GLUE */
16692 };
16693 /* End of struct IProgress declaration */
16694 
16695 
16696 /* Start of struct ISnapshot declaration */
16697 #   define ISNAPSHOT_IID_STR "6cc49055-dad4-4496-85cf-3f76bcb3b5fa"
16698 #   define ISNAPSHOT_IID { \
16699     0x6cc49055, 0xdad4, 0x4496, \
16700     { 0x85, 0xcf, 0x3f, 0x76, 0xbc, 0xb3, 0xb5, 0xfa } \
16701 }
16702 /* COM compatibility */
16703 VBOX_EXTERN_CONST(nsIID, IID_ISnapshot);
16704 #   ifndef VBOX_WITH_GLUE
16705 struct ISnapshot_vtbl
16706 {
16707     struct nsISupports_vtbl nsisupports;
16708 
16709     nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
16710 
16711     nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
16712     nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
16713 
16714     nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
16715     nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
16716 
16717     nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
16718 
16719     nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
16720 
16721     nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
16722 
16723     nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
16724 
16725     nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
16726 
16727     nsresult (*GetChildrenCount)(ISnapshot *pThis, PRUint32 *childrenCount);
16728 
16729     nsresult (*GetInternalAndReservedAttribute1ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16730 
16731     nsresult (*GetInternalAndReservedAttribute2ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16732 
16733     nsresult (*GetInternalAndReservedAttribute3ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16734 
16735     nsresult (*GetInternalAndReservedAttribute4ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16736 
16737     nsresult (*GetInternalAndReservedAttribute5ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16738 
16739     nsresult (*GetInternalAndReservedAttribute6ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16740 
16741     nsresult (*GetInternalAndReservedAttribute7ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16742 
16743     nsresult (*GetInternalAndReservedAttribute8ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16744 
16745     nsresult (*InternalAndReservedMethod1ISnapshot)(ISnapshot *pThis);
16746 
16747     nsresult (*InternalAndReservedMethod2ISnapshot)(ISnapshot *pThis);
16748 
16749     nsresult (*InternalAndReservedMethod3ISnapshot)(ISnapshot *pThis);
16750 
16751     nsresult (*InternalAndReservedMethod4ISnapshot)(ISnapshot *pThis);
16752 
16753 };
16754 #   else /* VBOX_WITH_GLUE */
16755 struct ISnapshotVtbl
16756 {
16757     nsresult (*QueryInterface)(ISnapshot *pThis, const nsID *iid, void **resultp);
16758     nsrefcnt (*AddRef)(ISnapshot *pThis);
16759     nsrefcnt (*Release)(ISnapshot *pThis);
16760     nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
16761 
16762     nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
16763     nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
16764 
16765     nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
16766     nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
16767 
16768     nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
16769 
16770     nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
16771 
16772     nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
16773 
16774     nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
16775 
16776     nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
16777 
16778     nsresult (*GetChildrenCount)(ISnapshot *pThis, PRUint32 *childrenCount);
16779 
16780     nsresult (*GetInternalAndReservedAttribute1ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16781 
16782     nsresult (*GetInternalAndReservedAttribute2ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16783 
16784     nsresult (*GetInternalAndReservedAttribute3ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16785 
16786     nsresult (*GetInternalAndReservedAttribute4ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16787 
16788     nsresult (*GetInternalAndReservedAttribute5ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16789 
16790     nsresult (*GetInternalAndReservedAttribute6ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16791 
16792     nsresult (*GetInternalAndReservedAttribute7ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16793 
16794     nsresult (*GetInternalAndReservedAttribute8ISnapshot)(ISnapshot *pThis, PRUint32 *reserved);
16795 
16796     nsresult (*InternalAndReservedMethod1ISnapshot)(ISnapshot *pThis);
16797 
16798     nsresult (*InternalAndReservedMethod2ISnapshot)(ISnapshot *pThis);
16799 
16800     nsresult (*InternalAndReservedMethod3ISnapshot)(ISnapshot *pThis);
16801 
16802     nsresult (*InternalAndReservedMethod4ISnapshot)(ISnapshot *pThis);
16803 
16804 };
16805 #    define ISnapshot_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16806 #    define ISnapshot_AddRef(p) ((p)->lpVtbl->AddRef(p))
16807 #    define ISnapshot_Release(p) ((p)->lpVtbl->Release(p))
16808 #    define ISnapshot_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
16809 #    define ISnapshot_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
16810 #    define ISnapshot_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
16811 #    define ISnapshot_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
16812 #    define ISnapshot_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
16813 #    define ISnapshot_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
16814 #    define ISnapshot_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
16815 #    define ISnapshot_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
16816 #    define ISnapshot_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
16817 #    define ISnapshot_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
16818 #    define ISnapshot_get_TimeStamp(p, aTimeStamp) ((p)->lpVtbl->GetTimeStamp(p, aTimeStamp))
16819 #    define ISnapshot_GetTimeStamp(p, aTimeStamp) ((p)->lpVtbl->GetTimeStamp(p, aTimeStamp))
16820 #    define ISnapshot_get_Online(p, aOnline) ((p)->lpVtbl->GetOnline(p, aOnline))
16821 #    define ISnapshot_GetOnline(p, aOnline) ((p)->lpVtbl->GetOnline(p, aOnline))
16822 #    define ISnapshot_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
16823 #    define ISnapshot_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
16824 #    define ISnapshot_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
16825 #    define ISnapshot_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
16826 #    define ISnapshot_get_Children(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
16827 #    define ISnapshot_GetChildren(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
16828 #    define ISnapshot_get_ChildrenCount(p, aChildrenCount) ((p)->lpVtbl->GetChildrenCount(p, aChildrenCount))
16829 #    define ISnapshot_GetChildrenCount(p, aChildrenCount) ((p)->lpVtbl->GetChildrenCount(p, aChildrenCount))
16830 #   endif /* VBOX_WITH_GLUE */
16831 
16832 interface ISnapshot
16833 {
16834 #   ifndef VBOX_WITH_GLUE
16835     struct ISnapshot_vtbl *vtbl;
16836 #   else /* VBOX_WITH_GLUE */
16837     CONST_VTBL struct ISnapshotVtbl *lpVtbl;
16838 #   endif /* VBOX_WITH_GLUE */
16839 };
16840 /* End of struct ISnapshot declaration */
16841 
16842 
16843 /* Start of struct IMediumAttachment declaration */
16844 #   define IMEDIUMATTACHMENT_IID_STR "8d095cb0-0126-43e0-b05d-326e74abb356"
16845 #   define IMEDIUMATTACHMENT_IID { \
16846     0x8d095cb0, 0x0126, 0x43e0, \
16847     { 0xb0, 0x5d, 0x32, 0x6e, 0x74, 0xab, 0xb3, 0x56 } \
16848 }
16849 /* COM compatibility */
16850 VBOX_EXTERN_CONST(nsIID, IID_IMediumAttachment);
16851 #   ifndef VBOX_WITH_GLUE
16852 struct IMediumAttachment_vtbl
16853 {
16854     struct nsISupports_vtbl nsisupports;
16855 
16856     nsresult (*GetMachine)(IMediumAttachment *pThis, IMachine * *machine);
16857 
16858     nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
16859 
16860     nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
16861 
16862     nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
16863 
16864     nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
16865 
16866     nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
16867 
16868     nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
16869 
16870     nsresult (*GetTemporaryEject)(IMediumAttachment *pThis, PRBool *temporaryEject);
16871 
16872     nsresult (*GetIsEjected)(IMediumAttachment *pThis, PRBool *isEjected);
16873 
16874     nsresult (*GetNonRotational)(IMediumAttachment *pThis, PRBool *nonRotational);
16875 
16876     nsresult (*GetDiscard)(IMediumAttachment *pThis, PRBool *discard);
16877 
16878     nsresult (*GetHotPluggable)(IMediumAttachment *pThis, PRBool *hotPluggable);
16879 
16880     nsresult (*GetBandwidthGroup)(IMediumAttachment *pThis, IBandwidthGroup * *bandwidthGroup);
16881 
16882     nsresult (*GetInternalAndReservedAttribute1IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16883 
16884     nsresult (*GetInternalAndReservedAttribute2IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16885 
16886     nsresult (*GetInternalAndReservedAttribute3IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16887 
16888     nsresult (*GetInternalAndReservedAttribute4IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16889 
16890     nsresult (*GetInternalAndReservedAttribute5IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16891 
16892     nsresult (*GetInternalAndReservedAttribute6IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16893 
16894     nsresult (*GetInternalAndReservedAttribute7IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16895 
16896     nsresult (*GetInternalAndReservedAttribute8IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16897 
16898 };
16899 #   else /* VBOX_WITH_GLUE */
16900 struct IMediumAttachmentVtbl
16901 {
16902     nsresult (*QueryInterface)(IMediumAttachment *pThis, const nsID *iid, void **resultp);
16903     nsrefcnt (*AddRef)(IMediumAttachment *pThis);
16904     nsrefcnt (*Release)(IMediumAttachment *pThis);
16905     nsresult (*GetMachine)(IMediumAttachment *pThis, IMachine * *machine);
16906 
16907     nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
16908 
16909     nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
16910 
16911     nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
16912 
16913     nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
16914 
16915     nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
16916 
16917     nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
16918 
16919     nsresult (*GetTemporaryEject)(IMediumAttachment *pThis, PRBool *temporaryEject);
16920 
16921     nsresult (*GetIsEjected)(IMediumAttachment *pThis, PRBool *isEjected);
16922 
16923     nsresult (*GetNonRotational)(IMediumAttachment *pThis, PRBool *nonRotational);
16924 
16925     nsresult (*GetDiscard)(IMediumAttachment *pThis, PRBool *discard);
16926 
16927     nsresult (*GetHotPluggable)(IMediumAttachment *pThis, PRBool *hotPluggable);
16928 
16929     nsresult (*GetBandwidthGroup)(IMediumAttachment *pThis, IBandwidthGroup * *bandwidthGroup);
16930 
16931     nsresult (*GetInternalAndReservedAttribute1IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16932 
16933     nsresult (*GetInternalAndReservedAttribute2IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16934 
16935     nsresult (*GetInternalAndReservedAttribute3IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16936 
16937     nsresult (*GetInternalAndReservedAttribute4IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16938 
16939     nsresult (*GetInternalAndReservedAttribute5IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16940 
16941     nsresult (*GetInternalAndReservedAttribute6IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16942 
16943     nsresult (*GetInternalAndReservedAttribute7IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16944 
16945     nsresult (*GetInternalAndReservedAttribute8IMediumAttachment)(IMediumAttachment *pThis, PRUint32 *reserved);
16946 
16947 };
16948 #    define IMediumAttachment_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
16949 #    define IMediumAttachment_AddRef(p) ((p)->lpVtbl->AddRef(p))
16950 #    define IMediumAttachment_Release(p) ((p)->lpVtbl->Release(p))
16951 #    define IMediumAttachment_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
16952 #    define IMediumAttachment_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
16953 #    define IMediumAttachment_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
16954 #    define IMediumAttachment_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
16955 #    define IMediumAttachment_get_Controller(p, aController) ((p)->lpVtbl->GetController(p, aController))
16956 #    define IMediumAttachment_GetController(p, aController) ((p)->lpVtbl->GetController(p, aController))
16957 #    define IMediumAttachment_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
16958 #    define IMediumAttachment_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
16959 #    define IMediumAttachment_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
16960 #    define IMediumAttachment_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
16961 #    define IMediumAttachment_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
16962 #    define IMediumAttachment_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
16963 #    define IMediumAttachment_get_Passthrough(p, aPassthrough) ((p)->lpVtbl->GetPassthrough(p, aPassthrough))
16964 #    define IMediumAttachment_GetPassthrough(p, aPassthrough) ((p)->lpVtbl->GetPassthrough(p, aPassthrough))
16965 #    define IMediumAttachment_get_TemporaryEject(p, aTemporaryEject) ((p)->lpVtbl->GetTemporaryEject(p, aTemporaryEject))
16966 #    define IMediumAttachment_GetTemporaryEject(p, aTemporaryEject) ((p)->lpVtbl->GetTemporaryEject(p, aTemporaryEject))
16967 #    define IMediumAttachment_get_IsEjected(p, aIsEjected) ((p)->lpVtbl->GetIsEjected(p, aIsEjected))
16968 #    define IMediumAttachment_GetIsEjected(p, aIsEjected) ((p)->lpVtbl->GetIsEjected(p, aIsEjected))
16969 #    define IMediumAttachment_get_NonRotational(p, aNonRotational) ((p)->lpVtbl->GetNonRotational(p, aNonRotational))
16970 #    define IMediumAttachment_GetNonRotational(p, aNonRotational) ((p)->lpVtbl->GetNonRotational(p, aNonRotational))
16971 #    define IMediumAttachment_get_Discard(p, aDiscard) ((p)->lpVtbl->GetDiscard(p, aDiscard))
16972 #    define IMediumAttachment_GetDiscard(p, aDiscard) ((p)->lpVtbl->GetDiscard(p, aDiscard))
16973 #    define IMediumAttachment_get_HotPluggable(p, aHotPluggable) ((p)->lpVtbl->GetHotPluggable(p, aHotPluggable))
16974 #    define IMediumAttachment_GetHotPluggable(p, aHotPluggable) ((p)->lpVtbl->GetHotPluggable(p, aHotPluggable))
16975 #    define IMediumAttachment_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
16976 #    define IMediumAttachment_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
16977 #   endif /* VBOX_WITH_GLUE */
16978 
16979 interface IMediumAttachment
16980 {
16981 #   ifndef VBOX_WITH_GLUE
16982     struct IMediumAttachment_vtbl *vtbl;
16983 #   else /* VBOX_WITH_GLUE */
16984     CONST_VTBL struct IMediumAttachmentVtbl *lpVtbl;
16985 #   endif /* VBOX_WITH_GLUE */
16986 };
16987 /* End of struct IMediumAttachment declaration */
16988 
16989 
16990 /* Start of struct IMedium declaration */
16991 #   define IMEDIUM_IID_STR "ad47ad09-787b-44ab-b343-a082a3f2dfb1"
16992 #   define IMEDIUM_IID { \
16993     0xad47ad09, 0x787b, 0x44ab, \
16994     { 0xb3, 0x43, 0xa0, 0x82, 0xa3, 0xf2, 0xdf, 0xb1 } \
16995 }
16996 /* COM compatibility */
16997 VBOX_EXTERN_CONST(nsIID, IID_IMedium);
16998 #   ifndef VBOX_WITH_GLUE
16999 struct IMedium_vtbl
17000 {
17001     struct nsISupports_vtbl nsisupports;
17002 
17003     nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
17004 
17005     nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
17006     nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
17007 
17008     nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
17009 
17010     nsresult (*GetVariant)(IMedium *pThis, PRUint32 *variantSize, PRUint32 **variant);
17011 
17012     nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
17013     nsresult (*SetLocation)(IMedium *pThis, PRUnichar * location);
17014 
17015     nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
17016 
17017     nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
17018 
17019     nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
17020 
17021     nsresult (*GetSize)(IMedium *pThis, PRInt64 *size);
17022 
17023     nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
17024 
17025     nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
17026 
17027     nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
17028     nsresult (*SetType)(IMedium *pThis, PRUint32 type);
17029 
17030     nsresult (*GetAllowedTypes)(IMedium *pThis, PRUint32 *allowedTypesSize, PRUint32 **allowedTypes);
17031 
17032     nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
17033 
17034     nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
17035 
17036     nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
17037 
17038     nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
17039 
17040     nsresult (*GetLogicalSize)(IMedium *pThis, PRInt64 *logicalSize);
17041 
17042     nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
17043     nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
17044 
17045     nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
17046 
17047     nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
17048 
17049     nsresult (*GetInternalAndReservedAttribute1IMedium)(IMedium *pThis, PRUint32 *reserved);
17050 
17051     nsresult (*GetInternalAndReservedAttribute2IMedium)(IMedium *pThis, PRUint32 *reserved);
17052 
17053     nsresult (*GetInternalAndReservedAttribute3IMedium)(IMedium *pThis, PRUint32 *reserved);
17054 
17055     nsresult (*GetInternalAndReservedAttribute4IMedium)(IMedium *pThis, PRUint32 *reserved);
17056 
17057     nsresult (*GetInternalAndReservedAttribute5IMedium)(IMedium *pThis, PRUint32 *reserved);
17058 
17059     nsresult (*GetInternalAndReservedAttribute6IMedium)(IMedium *pThis, PRUint32 *reserved);
17060 
17061     nsresult (*GetInternalAndReservedAttribute7IMedium)(IMedium *pThis, PRUint32 *reserved);
17062 
17063     nsresult (*GetInternalAndReservedAttribute8IMedium)(IMedium *pThis, PRUint32 *reserved);
17064 
17065     nsresult (*GetInternalAndReservedAttribute9IMedium)(IMedium *pThis, PRUint32 *reserved);
17066 
17067     nsresult (*GetInternalAndReservedAttribute10IMedium)(IMedium *pThis, PRUint32 *reserved);
17068 
17069     nsresult (*GetInternalAndReservedAttribute11IMedium)(IMedium *pThis, PRUint32 *reserved);
17070 
17071     nsresult (*GetInternalAndReservedAttribute12IMedium)(IMedium *pThis, PRUint32 *reserved);
17072 
17073     nsresult (*SetIds)(
17074         IMedium *pThis,
17075         PRBool setImageId,
17076         PRUnichar * imageId,
17077         PRBool setParentId,
17078         PRUnichar * parentId
17079     );
17080 
17081     nsresult (*RefreshState)(
17082         IMedium *pThis,
17083         PRUint32 * state
17084     );
17085 
17086     nsresult (*GetSnapshotIds)(
17087         IMedium *pThis,
17088         PRUnichar * machineId,
17089         PRUint32 *snapshotIdsSize,
17090         PRUnichar *** snapshotIds
17091     );
17092 
17093     nsresult (*LockRead)(
17094         IMedium *pThis,
17095         IToken * * token
17096     );
17097 
17098     nsresult (*LockWrite)(
17099         IMedium *pThis,
17100         IToken * * token
17101     );
17102 
17103     nsresult (*Close)(IMedium *pThis );
17104 
17105     nsresult (*GetProperty)(
17106         IMedium *pThis,
17107         PRUnichar * name,
17108         PRUnichar * * value
17109     );
17110 
17111     nsresult (*SetProperty)(
17112         IMedium *pThis,
17113         PRUnichar * name,
17114         PRUnichar * value
17115     );
17116 
17117     nsresult (*GetProperties)(
17118         IMedium *pThis,
17119         PRUnichar * names,
17120         PRUint32 *returnNamesSize,
17121         PRUnichar *** returnNames,
17122         PRUint32 *returnValuesSize,
17123         PRUnichar *** returnValues
17124     );
17125 
17126     nsresult (*SetProperties)(
17127         IMedium *pThis,
17128         PRUint32 namesSize,
17129         PRUnichar ** names,
17130         PRUint32 valuesSize,
17131         PRUnichar ** values
17132     );
17133 
17134     nsresult (*CreateBaseStorage)(
17135         IMedium *pThis,
17136         PRInt64 logicalSize,
17137         PRUint32 variantSize,
17138         PRUint32* variant,
17139         IProgress * * progress
17140     );
17141 
17142     nsresult (*DeleteStorage)(
17143         IMedium *pThis,
17144         IProgress * * progress
17145     );
17146 
17147     nsresult (*CreateDiffStorage)(
17148         IMedium *pThis,
17149         IMedium * target,
17150         PRUint32 variantSize,
17151         PRUint32* variant,
17152         IProgress * * progress
17153     );
17154 
17155     nsresult (*MergeTo)(
17156         IMedium *pThis,
17157         IMedium * target,
17158         IProgress * * progress
17159     );
17160 
17161     nsresult (*CloneTo)(
17162         IMedium *pThis,
17163         IMedium * target,
17164         PRUint32 variantSize,
17165         PRUint32* variant,
17166         IMedium * parent,
17167         IProgress * * progress
17168     );
17169 
17170     nsresult (*CloneToBase)(
17171         IMedium *pThis,
17172         IMedium * target,
17173         PRUint32 variantSize,
17174         PRUint32* variant,
17175         IProgress * * progress
17176     );
17177 
17178     nsresult (*MoveTo)(
17179         IMedium *pThis,
17180         PRUnichar * location,
17181         IProgress * * progress
17182     );
17183 
17184     nsresult (*Compact)(
17185         IMedium *pThis,
17186         IProgress * * progress
17187     );
17188 
17189     nsresult (*Resize)(
17190         IMedium *pThis,
17191         PRInt64 logicalSize,
17192         IProgress * * progress
17193     );
17194 
17195     nsresult (*Reset)(
17196         IMedium *pThis,
17197         IProgress * * progress
17198     );
17199 
17200     nsresult (*ChangeEncryption)(
17201         IMedium *pThis,
17202         PRUnichar * currentPassword,
17203         PRUnichar * cipher,
17204         PRUnichar * newPassword,
17205         PRUnichar * newPasswordId,
17206         IProgress * * progress
17207     );
17208 
17209     nsresult (*GetEncryptionSettings)(
17210         IMedium *pThis,
17211         PRUnichar * * cipher,
17212         PRUnichar * * passwordId
17213     );
17214 
17215     nsresult (*CheckEncryptionPassword)(
17216         IMedium *pThis,
17217         PRUnichar * password
17218     );
17219 
17220     nsresult (*OpenForIO)(
17221         IMedium *pThis,
17222         PRBool writable,
17223         PRUnichar * password,
17224         IMediumIO * * mediumIO
17225     );
17226 
17227     nsresult (*InternalAndReservedMethod1IMedium)(IMedium *pThis);
17228 
17229     nsresult (*InternalAndReservedMethod2IMedium)(IMedium *pThis);
17230 
17231     nsresult (*InternalAndReservedMethod3IMedium)(IMedium *pThis);
17232 
17233     nsresult (*InternalAndReservedMethod4IMedium)(IMedium *pThis);
17234 
17235     nsresult (*InternalAndReservedMethod5IMedium)(IMedium *pThis);
17236 
17237     nsresult (*InternalAndReservedMethod6IMedium)(IMedium *pThis);
17238 
17239     nsresult (*InternalAndReservedMethod7IMedium)(IMedium *pThis);
17240 
17241     nsresult (*InternalAndReservedMethod8IMedium)(IMedium *pThis);
17242 
17243 };
17244 #   else /* VBOX_WITH_GLUE */
17245 struct IMediumVtbl
17246 {
17247     nsresult (*QueryInterface)(IMedium *pThis, const nsID *iid, void **resultp);
17248     nsrefcnt (*AddRef)(IMedium *pThis);
17249     nsrefcnt (*Release)(IMedium *pThis);
17250     nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
17251 
17252     nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
17253     nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
17254 
17255     nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
17256 
17257     nsresult (*GetVariant)(IMedium *pThis, PRUint32 *variantSize, PRUint32 **variant);
17258 
17259     nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
17260     nsresult (*SetLocation)(IMedium *pThis, PRUnichar * location);
17261 
17262     nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
17263 
17264     nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
17265 
17266     nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
17267 
17268     nsresult (*GetSize)(IMedium *pThis, PRInt64 *size);
17269 
17270     nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
17271 
17272     nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
17273 
17274     nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
17275     nsresult (*SetType)(IMedium *pThis, PRUint32 type);
17276 
17277     nsresult (*GetAllowedTypes)(IMedium *pThis, PRUint32 *allowedTypesSize, PRUint32 **allowedTypes);
17278 
17279     nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
17280 
17281     nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
17282 
17283     nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
17284 
17285     nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
17286 
17287     nsresult (*GetLogicalSize)(IMedium *pThis, PRInt64 *logicalSize);
17288 
17289     nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
17290     nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
17291 
17292     nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
17293 
17294     nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
17295 
17296     nsresult (*GetInternalAndReservedAttribute1IMedium)(IMedium *pThis, PRUint32 *reserved);
17297 
17298     nsresult (*GetInternalAndReservedAttribute2IMedium)(IMedium *pThis, PRUint32 *reserved);
17299 
17300     nsresult (*GetInternalAndReservedAttribute3IMedium)(IMedium *pThis, PRUint32 *reserved);
17301 
17302     nsresult (*GetInternalAndReservedAttribute4IMedium)(IMedium *pThis, PRUint32 *reserved);
17303 
17304     nsresult (*GetInternalAndReservedAttribute5IMedium)(IMedium *pThis, PRUint32 *reserved);
17305 
17306     nsresult (*GetInternalAndReservedAttribute6IMedium)(IMedium *pThis, PRUint32 *reserved);
17307 
17308     nsresult (*GetInternalAndReservedAttribute7IMedium)(IMedium *pThis, PRUint32 *reserved);
17309 
17310     nsresult (*GetInternalAndReservedAttribute8IMedium)(IMedium *pThis, PRUint32 *reserved);
17311 
17312     nsresult (*GetInternalAndReservedAttribute9IMedium)(IMedium *pThis, PRUint32 *reserved);
17313 
17314     nsresult (*GetInternalAndReservedAttribute10IMedium)(IMedium *pThis, PRUint32 *reserved);
17315 
17316     nsresult (*GetInternalAndReservedAttribute11IMedium)(IMedium *pThis, PRUint32 *reserved);
17317 
17318     nsresult (*GetInternalAndReservedAttribute12IMedium)(IMedium *pThis, PRUint32 *reserved);
17319 
17320     nsresult (*SetIds)(
17321         IMedium *pThis,
17322         PRBool setImageId,
17323         PRUnichar * imageId,
17324         PRBool setParentId,
17325         PRUnichar * parentId
17326     );
17327 
17328     nsresult (*RefreshState)(
17329         IMedium *pThis,
17330         PRUint32 * state
17331     );
17332 
17333     nsresult (*GetSnapshotIds)(
17334         IMedium *pThis,
17335         PRUnichar * machineId,
17336         PRUint32 *snapshotIdsSize,
17337         PRUnichar *** snapshotIds
17338     );
17339 
17340     nsresult (*LockRead)(
17341         IMedium *pThis,
17342         IToken * * token
17343     );
17344 
17345     nsresult (*LockWrite)(
17346         IMedium *pThis,
17347         IToken * * token
17348     );
17349 
17350     nsresult (*Close)(IMedium *pThis );
17351 
17352     nsresult (*GetProperty)(
17353         IMedium *pThis,
17354         PRUnichar * name,
17355         PRUnichar * * value
17356     );
17357 
17358     nsresult (*SetProperty)(
17359         IMedium *pThis,
17360         PRUnichar * name,
17361         PRUnichar * value
17362     );
17363 
17364     nsresult (*GetProperties)(
17365         IMedium *pThis,
17366         PRUnichar * names,
17367         PRUint32 *returnNamesSize,
17368         PRUnichar *** returnNames,
17369         PRUint32 *returnValuesSize,
17370         PRUnichar *** returnValues
17371     );
17372 
17373     nsresult (*SetProperties)(
17374         IMedium *pThis,
17375         PRUint32 namesSize,
17376         PRUnichar ** names,
17377         PRUint32 valuesSize,
17378         PRUnichar ** values
17379     );
17380 
17381     nsresult (*CreateBaseStorage)(
17382         IMedium *pThis,
17383         PRInt64 logicalSize,
17384         PRUint32 variantSize,
17385         PRUint32* variant,
17386         IProgress * * progress
17387     );
17388 
17389     nsresult (*DeleteStorage)(
17390         IMedium *pThis,
17391         IProgress * * progress
17392     );
17393 
17394     nsresult (*CreateDiffStorage)(
17395         IMedium *pThis,
17396         IMedium * target,
17397         PRUint32 variantSize,
17398         PRUint32* variant,
17399         IProgress * * progress
17400     );
17401 
17402     nsresult (*MergeTo)(
17403         IMedium *pThis,
17404         IMedium * target,
17405         IProgress * * progress
17406     );
17407 
17408     nsresult (*CloneTo)(
17409         IMedium *pThis,
17410         IMedium * target,
17411         PRUint32 variantSize,
17412         PRUint32* variant,
17413         IMedium * parent,
17414         IProgress * * progress
17415     );
17416 
17417     nsresult (*CloneToBase)(
17418         IMedium *pThis,
17419         IMedium * target,
17420         PRUint32 variantSize,
17421         PRUint32* variant,
17422         IProgress * * progress
17423     );
17424 
17425     nsresult (*MoveTo)(
17426         IMedium *pThis,
17427         PRUnichar * location,
17428         IProgress * * progress
17429     );
17430 
17431     nsresult (*Compact)(
17432         IMedium *pThis,
17433         IProgress * * progress
17434     );
17435 
17436     nsresult (*Resize)(
17437         IMedium *pThis,
17438         PRInt64 logicalSize,
17439         IProgress * * progress
17440     );
17441 
17442     nsresult (*Reset)(
17443         IMedium *pThis,
17444         IProgress * * progress
17445     );
17446 
17447     nsresult (*ChangeEncryption)(
17448         IMedium *pThis,
17449         PRUnichar * currentPassword,
17450         PRUnichar * cipher,
17451         PRUnichar * newPassword,
17452         PRUnichar * newPasswordId,
17453         IProgress * * progress
17454     );
17455 
17456     nsresult (*GetEncryptionSettings)(
17457         IMedium *pThis,
17458         PRUnichar * * cipher,
17459         PRUnichar * * passwordId
17460     );
17461 
17462     nsresult (*CheckEncryptionPassword)(
17463         IMedium *pThis,
17464         PRUnichar * password
17465     );
17466 
17467     nsresult (*OpenForIO)(
17468         IMedium *pThis,
17469         PRBool writable,
17470         PRUnichar * password,
17471         IMediumIO * * mediumIO
17472     );
17473 
17474     nsresult (*InternalAndReservedMethod1IMedium)(IMedium *pThis);
17475 
17476     nsresult (*InternalAndReservedMethod2IMedium)(IMedium *pThis);
17477 
17478     nsresult (*InternalAndReservedMethod3IMedium)(IMedium *pThis);
17479 
17480     nsresult (*InternalAndReservedMethod4IMedium)(IMedium *pThis);
17481 
17482     nsresult (*InternalAndReservedMethod5IMedium)(IMedium *pThis);
17483 
17484     nsresult (*InternalAndReservedMethod6IMedium)(IMedium *pThis);
17485 
17486     nsresult (*InternalAndReservedMethod7IMedium)(IMedium *pThis);
17487 
17488     nsresult (*InternalAndReservedMethod8IMedium)(IMedium *pThis);
17489 
17490 };
17491 #    define IMedium_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17492 #    define IMedium_AddRef(p) ((p)->lpVtbl->AddRef(p))
17493 #    define IMedium_Release(p) ((p)->lpVtbl->Release(p))
17494 #    define IMedium_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
17495 #    define IMedium_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
17496 #    define IMedium_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
17497 #    define IMedium_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
17498 #    define IMedium_put_Description(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
17499 #    define IMedium_SetDescription(p, aDescription) ((p)->lpVtbl->SetDescription(p, aDescription))
17500 #    define IMedium_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
17501 #    define IMedium_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
17502 #    define IMedium_get_Variant(p, aVariant) ((p)->lpVtbl->GetVariant(p, aVariant))
17503 #    define IMedium_GetVariant(p, aVariant) ((p)->lpVtbl->GetVariant(p, aVariant))
17504 #    define IMedium_get_Location(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
17505 #    define IMedium_GetLocation(p, aLocation) ((p)->lpVtbl->GetLocation(p, aLocation))
17506 #    define IMedium_put_Location(p, aLocation) ((p)->lpVtbl->SetLocation(p, aLocation))
17507 #    define IMedium_SetLocation(p, aLocation) ((p)->lpVtbl->SetLocation(p, aLocation))
17508 #    define IMedium_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
17509 #    define IMedium_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
17510 #    define IMedium_get_DeviceType(p, aDeviceType) ((p)->lpVtbl->GetDeviceType(p, aDeviceType))
17511 #    define IMedium_GetDeviceType(p, aDeviceType) ((p)->lpVtbl->GetDeviceType(p, aDeviceType))
17512 #    define IMedium_get_HostDrive(p, aHostDrive) ((p)->lpVtbl->GetHostDrive(p, aHostDrive))
17513 #    define IMedium_GetHostDrive(p, aHostDrive) ((p)->lpVtbl->GetHostDrive(p, aHostDrive))
17514 #    define IMedium_get_Size(p, aSize) ((p)->lpVtbl->GetSize(p, aSize))
17515 #    define IMedium_GetSize(p, aSize) ((p)->lpVtbl->GetSize(p, aSize))
17516 #    define IMedium_get_Format(p, aFormat) ((p)->lpVtbl->GetFormat(p, aFormat))
17517 #    define IMedium_GetFormat(p, aFormat) ((p)->lpVtbl->GetFormat(p, aFormat))
17518 #    define IMedium_get_MediumFormat(p, aMediumFormat) ((p)->lpVtbl->GetMediumFormat(p, aMediumFormat))
17519 #    define IMedium_GetMediumFormat(p, aMediumFormat) ((p)->lpVtbl->GetMediumFormat(p, aMediumFormat))
17520 #    define IMedium_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
17521 #    define IMedium_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
17522 #    define IMedium_put_Type(p, aType) ((p)->lpVtbl->SetType(p, aType))
17523 #    define IMedium_SetType(p, aType) ((p)->lpVtbl->SetType(p, aType))
17524 #    define IMedium_get_AllowedTypes(p, aAllowedTypes) ((p)->lpVtbl->GetAllowedTypes(p, aAllowedTypes))
17525 #    define IMedium_GetAllowedTypes(p, aAllowedTypes) ((p)->lpVtbl->GetAllowedTypes(p, aAllowedTypes))
17526 #    define IMedium_get_Parent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
17527 #    define IMedium_GetParent(p, aParent) ((p)->lpVtbl->GetParent(p, aParent))
17528 #    define IMedium_get_Children(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
17529 #    define IMedium_GetChildren(p, aChildren) ((p)->lpVtbl->GetChildren(p, aChildren))
17530 #    define IMedium_get_Base(p, aBase) ((p)->lpVtbl->GetBase(p, aBase))
17531 #    define IMedium_GetBase(p, aBase) ((p)->lpVtbl->GetBase(p, aBase))
17532 #    define IMedium_get_ReadOnly(p, aReadOnly) ((p)->lpVtbl->GetReadOnly(p, aReadOnly))
17533 #    define IMedium_GetReadOnly(p, aReadOnly) ((p)->lpVtbl->GetReadOnly(p, aReadOnly))
17534 #    define IMedium_get_LogicalSize(p, aLogicalSize) ((p)->lpVtbl->GetLogicalSize(p, aLogicalSize))
17535 #    define IMedium_GetLogicalSize(p, aLogicalSize) ((p)->lpVtbl->GetLogicalSize(p, aLogicalSize))
17536 #    define IMedium_get_AutoReset(p, aAutoReset) ((p)->lpVtbl->GetAutoReset(p, aAutoReset))
17537 #    define IMedium_GetAutoReset(p, aAutoReset) ((p)->lpVtbl->GetAutoReset(p, aAutoReset))
17538 #    define IMedium_put_AutoReset(p, aAutoReset) ((p)->lpVtbl->SetAutoReset(p, aAutoReset))
17539 #    define IMedium_SetAutoReset(p, aAutoReset) ((p)->lpVtbl->SetAutoReset(p, aAutoReset))
17540 #    define IMedium_get_LastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
17541 #    define IMedium_GetLastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
17542 #    define IMedium_get_MachineIds(p, aMachineIds) ((p)->lpVtbl->GetMachineIds(p, aMachineIds))
17543 #    define IMedium_GetMachineIds(p, aMachineIds) ((p)->lpVtbl->GetMachineIds(p, aMachineIds))
17544 #    define IMedium_SetIds(p, aSetImageId, aImageId, aSetParentId, aParentId) ((p)->lpVtbl->SetIds(p, aSetImageId, aImageId, aSetParentId, aParentId))
17545 #    define IMedium_RefreshState(p, aState) ((p)->lpVtbl->RefreshState(p, aState))
17546 #    define IMedium_GetSnapshotIds(p, aMachineId, aSnapshotIds) ((p)->lpVtbl->GetSnapshotIds(p, aMachineId, aSnapshotIds))
17547 #    define IMedium_LockRead(p, aToken) ((p)->lpVtbl->LockRead(p, aToken))
17548 #    define IMedium_LockWrite(p, aToken) ((p)->lpVtbl->LockWrite(p, aToken))
17549 #    define IMedium_Close(p) ((p)->lpVtbl->Close(p))
17550 #    define IMedium_GetProperty(p, aName, aValue) ((p)->lpVtbl->GetProperty(p, aName, aValue))
17551 #    define IMedium_SetProperty(p, aName, aValue) ((p)->lpVtbl->SetProperty(p, aName, aValue))
17552 #    define IMedium_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
17553 #    define IMedium_SetProperties(p, aNames, aValues) ((p)->lpVtbl->SetProperties(p, aNames, aValues))
17554 #    define IMedium_CreateBaseStorage(p, aLogicalSize, aVariant, aProgress) ((p)->lpVtbl->CreateBaseStorage(p, aLogicalSize, aVariant, aProgress))
17555 #    define IMedium_DeleteStorage(p, aProgress) ((p)->lpVtbl->DeleteStorage(p, aProgress))
17556 #    define IMedium_CreateDiffStorage(p, aTarget, aVariant, aProgress) ((p)->lpVtbl->CreateDiffStorage(p, aTarget, aVariant, aProgress))
17557 #    define IMedium_MergeTo(p, aTarget, aProgress) ((p)->lpVtbl->MergeTo(p, aTarget, aProgress))
17558 #    define IMedium_CloneTo(p, aTarget, aVariant, aParent, aProgress) ((p)->lpVtbl->CloneTo(p, aTarget, aVariant, aParent, aProgress))
17559 #    define IMedium_CloneToBase(p, aTarget, aVariant, aProgress) ((p)->lpVtbl->CloneToBase(p, aTarget, aVariant, aProgress))
17560 #    define IMedium_MoveTo(p, aLocation, aProgress) ((p)->lpVtbl->MoveTo(p, aLocation, aProgress))
17561 #    define IMedium_Compact(p, aProgress) ((p)->lpVtbl->Compact(p, aProgress))
17562 #    define IMedium_Resize(p, aLogicalSize, aProgress) ((p)->lpVtbl->Resize(p, aLogicalSize, aProgress))
17563 #    define IMedium_Reset(p, aProgress) ((p)->lpVtbl->Reset(p, aProgress))
17564 #    define IMedium_ChangeEncryption(p, aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aProgress) ((p)->lpVtbl->ChangeEncryption(p, aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aProgress))
17565 #    define IMedium_GetEncryptionSettings(p, aCipher, aPasswordId) ((p)->lpVtbl->GetEncryptionSettings(p, aCipher, aPasswordId))
17566 #    define IMedium_CheckEncryptionPassword(p, aPassword) ((p)->lpVtbl->CheckEncryptionPassword(p, aPassword))
17567 #    define IMedium_OpenForIO(p, aWritable, aPassword, aMediumIO) ((p)->lpVtbl->OpenForIO(p, aWritable, aPassword, aMediumIO))
17568 #   endif /* VBOX_WITH_GLUE */
17569 
17570 interface IMedium
17571 {
17572 #   ifndef VBOX_WITH_GLUE
17573     struct IMedium_vtbl *vtbl;
17574 #   else /* VBOX_WITH_GLUE */
17575     CONST_VTBL struct IMediumVtbl *lpVtbl;
17576 #   endif /* VBOX_WITH_GLUE */
17577 };
17578 /* End of struct IMedium declaration */
17579 
17580 
17581 /* Start of struct IMediumFormat declaration */
17582 #   define IMEDIUMFORMAT_IID_STR "11be93c7-a862-4dc9-8c89-bf4ba74a886a"
17583 #   define IMEDIUMFORMAT_IID { \
17584     0x11be93c7, 0xa862, 0x4dc9, \
17585     { 0x8c, 0x89, 0xbf, 0x4b, 0xa7, 0x4a, 0x88, 0x6a } \
17586 }
17587 /* COM compatibility */
17588 VBOX_EXTERN_CONST(nsIID, IID_IMediumFormat);
17589 #   ifndef VBOX_WITH_GLUE
17590 struct IMediumFormat_vtbl
17591 {
17592     struct nsISupports_vtbl nsisupports;
17593 
17594     nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
17595 
17596     nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
17597 
17598     nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
17599 
17600     nsresult (*GetInternalAndReservedAttribute1IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17601 
17602     nsresult (*GetInternalAndReservedAttribute2IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17603 
17604     nsresult (*GetInternalAndReservedAttribute3IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17605 
17606     nsresult (*GetInternalAndReservedAttribute4IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17607 
17608     nsresult (*DescribeFileExtensions)(
17609         IMediumFormat *pThis,
17610         PRUint32 *extensionsSize,
17611         PRUnichar *** extensions,
17612         PRUint32 *typesSize,
17613         PRUint32** types
17614     );
17615 
17616     nsresult (*DescribeProperties)(
17617         IMediumFormat *pThis,
17618         PRUint32 *namesSize,
17619         PRUnichar *** names,
17620         PRUint32 *descriptionsSize,
17621         PRUnichar *** descriptions,
17622         PRUint32 *typesSize,
17623         PRUint32** types,
17624         PRUint32 *flagsSize,
17625         PRUint32** flags,
17626         PRUint32 *defaultsSize,
17627         PRUnichar *** defaults
17628     );
17629 
17630     nsresult (*InternalAndReservedMethod1IMediumFormat)(IMediumFormat *pThis);
17631 
17632     nsresult (*InternalAndReservedMethod2IMediumFormat)(IMediumFormat *pThis);
17633 
17634 };
17635 #   else /* VBOX_WITH_GLUE */
17636 struct IMediumFormatVtbl
17637 {
17638     nsresult (*QueryInterface)(IMediumFormat *pThis, const nsID *iid, void **resultp);
17639     nsrefcnt (*AddRef)(IMediumFormat *pThis);
17640     nsrefcnt (*Release)(IMediumFormat *pThis);
17641     nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
17642 
17643     nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
17644 
17645     nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
17646 
17647     nsresult (*GetInternalAndReservedAttribute1IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17648 
17649     nsresult (*GetInternalAndReservedAttribute2IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17650 
17651     nsresult (*GetInternalAndReservedAttribute3IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17652 
17653     nsresult (*GetInternalAndReservedAttribute4IMediumFormat)(IMediumFormat *pThis, PRUint32 *reserved);
17654 
17655     nsresult (*DescribeFileExtensions)(
17656         IMediumFormat *pThis,
17657         PRUint32 *extensionsSize,
17658         PRUnichar *** extensions,
17659         PRUint32 *typesSize,
17660         PRUint32** types
17661     );
17662 
17663     nsresult (*DescribeProperties)(
17664         IMediumFormat *pThis,
17665         PRUint32 *namesSize,
17666         PRUnichar *** names,
17667         PRUint32 *descriptionsSize,
17668         PRUnichar *** descriptions,
17669         PRUint32 *typesSize,
17670         PRUint32** types,
17671         PRUint32 *flagsSize,
17672         PRUint32** flags,
17673         PRUint32 *defaultsSize,
17674         PRUnichar *** defaults
17675     );
17676 
17677     nsresult (*InternalAndReservedMethod1IMediumFormat)(IMediumFormat *pThis);
17678 
17679     nsresult (*InternalAndReservedMethod2IMediumFormat)(IMediumFormat *pThis);
17680 
17681 };
17682 #    define IMediumFormat_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17683 #    define IMediumFormat_AddRef(p) ((p)->lpVtbl->AddRef(p))
17684 #    define IMediumFormat_Release(p) ((p)->lpVtbl->Release(p))
17685 #    define IMediumFormat_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
17686 #    define IMediumFormat_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
17687 #    define IMediumFormat_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
17688 #    define IMediumFormat_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
17689 #    define IMediumFormat_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
17690 #    define IMediumFormat_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
17691 #    define IMediumFormat_DescribeFileExtensions(p, aExtensions, aTypes) ((p)->lpVtbl->DescribeFileExtensions(p, aExtensions, aTypes))
17692 #    define IMediumFormat_DescribeProperties(p, aNames, aDescriptions, aTypes, aFlags, aDefaults) ((p)->lpVtbl->DescribeProperties(p, aNames, aDescriptions, aTypes, aFlags, aDefaults))
17693 #   endif /* VBOX_WITH_GLUE */
17694 
17695 interface IMediumFormat
17696 {
17697 #   ifndef VBOX_WITH_GLUE
17698     struct IMediumFormat_vtbl *vtbl;
17699 #   else /* VBOX_WITH_GLUE */
17700     CONST_VTBL struct IMediumFormatVtbl *lpVtbl;
17701 #   endif /* VBOX_WITH_GLUE */
17702 };
17703 /* End of struct IMediumFormat declaration */
17704 
17705 
17706 /* Start of struct IDataStream declaration */
17707 #   define IDATASTREAM_IID_STR "a338ed20-58d9-43ae-8b03-c1fd7088ef15"
17708 #   define IDATASTREAM_IID { \
17709     0xa338ed20, 0x58d9, 0x43ae, \
17710     { 0x8b, 0x03, 0xc1, 0xfd, 0x70, 0x88, 0xef, 0x15 } \
17711 }
17712 /* COM compatibility */
17713 VBOX_EXTERN_CONST(nsIID, IID_IDataStream);
17714 #   ifndef VBOX_WITH_GLUE
17715 struct IDataStream_vtbl
17716 {
17717     struct nsISupports_vtbl nsisupports;
17718 
17719     nsresult (*GetReadSize)(IDataStream *pThis, PRUint32 *readSize);
17720 
17721     nsresult (*GetInternalAndReservedAttribute1IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17722 
17723     nsresult (*GetInternalAndReservedAttribute2IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17724 
17725     nsresult (*GetInternalAndReservedAttribute3IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17726 
17727     nsresult (*GetInternalAndReservedAttribute4IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17728 
17729     nsresult (*GetInternalAndReservedAttribute5IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17730 
17731     nsresult (*GetInternalAndReservedAttribute6IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17732 
17733     nsresult (*GetInternalAndReservedAttribute7IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17734 
17735     nsresult (*GetInternalAndReservedAttribute8IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17736 
17737     nsresult (*Read)(
17738         IDataStream *pThis,
17739         PRUint32 size,
17740         PRUint32 timeoutMS,
17741         PRUint32 *dataSize,
17742         PRUint8** data
17743     );
17744 
17745     nsresult (*InternalAndReservedMethod1IDataStream)(IDataStream *pThis);
17746 
17747     nsresult (*InternalAndReservedMethod2IDataStream)(IDataStream *pThis);
17748 
17749     nsresult (*InternalAndReservedMethod3IDataStream)(IDataStream *pThis);
17750 
17751     nsresult (*InternalAndReservedMethod4IDataStream)(IDataStream *pThis);
17752 
17753 };
17754 #   else /* VBOX_WITH_GLUE */
17755 struct IDataStreamVtbl
17756 {
17757     nsresult (*QueryInterface)(IDataStream *pThis, const nsID *iid, void **resultp);
17758     nsrefcnt (*AddRef)(IDataStream *pThis);
17759     nsrefcnt (*Release)(IDataStream *pThis);
17760     nsresult (*GetReadSize)(IDataStream *pThis, PRUint32 *readSize);
17761 
17762     nsresult (*GetInternalAndReservedAttribute1IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17763 
17764     nsresult (*GetInternalAndReservedAttribute2IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17765 
17766     nsresult (*GetInternalAndReservedAttribute3IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17767 
17768     nsresult (*GetInternalAndReservedAttribute4IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17769 
17770     nsresult (*GetInternalAndReservedAttribute5IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17771 
17772     nsresult (*GetInternalAndReservedAttribute6IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17773 
17774     nsresult (*GetInternalAndReservedAttribute7IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17775 
17776     nsresult (*GetInternalAndReservedAttribute8IDataStream)(IDataStream *pThis, PRUint32 *reserved);
17777 
17778     nsresult (*Read)(
17779         IDataStream *pThis,
17780         PRUint32 size,
17781         PRUint32 timeoutMS,
17782         PRUint32 *dataSize,
17783         PRUint8** data
17784     );
17785 
17786     nsresult (*InternalAndReservedMethod1IDataStream)(IDataStream *pThis);
17787 
17788     nsresult (*InternalAndReservedMethod2IDataStream)(IDataStream *pThis);
17789 
17790     nsresult (*InternalAndReservedMethod3IDataStream)(IDataStream *pThis);
17791 
17792     nsresult (*InternalAndReservedMethod4IDataStream)(IDataStream *pThis);
17793 
17794 };
17795 #    define IDataStream_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17796 #    define IDataStream_AddRef(p) ((p)->lpVtbl->AddRef(p))
17797 #    define IDataStream_Release(p) ((p)->lpVtbl->Release(p))
17798 #    define IDataStream_get_ReadSize(p, aReadSize) ((p)->lpVtbl->GetReadSize(p, aReadSize))
17799 #    define IDataStream_GetReadSize(p, aReadSize) ((p)->lpVtbl->GetReadSize(p, aReadSize))
17800 #    define IDataStream_Read(p, aSize, aTimeoutMS, aData) ((p)->lpVtbl->Read(p, aSize, aTimeoutMS, aData))
17801 #   endif /* VBOX_WITH_GLUE */
17802 
17803 interface IDataStream
17804 {
17805 #   ifndef VBOX_WITH_GLUE
17806     struct IDataStream_vtbl *vtbl;
17807 #   else /* VBOX_WITH_GLUE */
17808     CONST_VTBL struct IDataStreamVtbl *lpVtbl;
17809 #   endif /* VBOX_WITH_GLUE */
17810 };
17811 /* End of struct IDataStream declaration */
17812 
17813 
17814 /* Start of struct IMediumIO declaration */
17815 #   define IMEDIUMIO_IID_STR "e4b301a9-5f86-4d65-ad1b-87ca284fb1c8"
17816 #   define IMEDIUMIO_IID { \
17817     0xe4b301a9, 0x5f86, 0x4d65, \
17818     { 0xad, 0x1b, 0x87, 0xca, 0x28, 0x4f, 0xb1, 0xc8 } \
17819 }
17820 /* COM compatibility */
17821 VBOX_EXTERN_CONST(nsIID, IID_IMediumIO);
17822 #   ifndef VBOX_WITH_GLUE
17823 struct IMediumIO_vtbl
17824 {
17825     struct nsISupports_vtbl nsisupports;
17826 
17827     nsresult (*GetMedium)(IMediumIO *pThis, IMedium * *medium);
17828 
17829     nsresult (*GetWritable)(IMediumIO *pThis, PRBool *writable);
17830 
17831     nsresult (*GetExplorer)(IMediumIO *pThis, IVFSExplorer * *explorer);
17832 
17833     nsresult (*GetInternalAndReservedAttribute1IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17834 
17835     nsresult (*GetInternalAndReservedAttribute2IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17836 
17837     nsresult (*GetInternalAndReservedAttribute3IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17838 
17839     nsresult (*GetInternalAndReservedAttribute4IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17840 
17841     nsresult (*GetInternalAndReservedAttribute5IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17842 
17843     nsresult (*GetInternalAndReservedAttribute6IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17844 
17845     nsresult (*GetInternalAndReservedAttribute7IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17846 
17847     nsresult (*GetInternalAndReservedAttribute8IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17848 
17849     nsresult (*Read)(
17850         IMediumIO *pThis,
17851         PRInt64 offset,
17852         PRUint32 size,
17853         PRUint32 *dataSize,
17854         PRUint8** data
17855     );
17856 
17857     nsresult (*Write)(
17858         IMediumIO *pThis,
17859         PRInt64 offset,
17860         PRUint32 dataSize,
17861         PRUint8* data,
17862         PRUint32 * written
17863     );
17864 
17865     nsresult (*FormatFAT)(
17866         IMediumIO *pThis,
17867         PRBool quick
17868     );
17869 
17870     nsresult (*InitializePartitionTable)(
17871         IMediumIO *pThis,
17872         PRUint32 format,
17873         PRBool wholeDiskInOneEntry
17874     );
17875 
17876     nsresult (*ConvertToStream)(
17877         IMediumIO *pThis,
17878         PRUnichar * format,
17879         PRUint32 variantSize,
17880         PRUint32* variant,
17881         PRUint32 bufferSize,
17882         IDataStream * * stream,
17883         IProgress * * progress
17884     );
17885 
17886     nsresult (*Close)(IMediumIO *pThis );
17887 
17888     nsresult (*InternalAndReservedMethod1IMediumIO)(IMediumIO *pThis);
17889 
17890     nsresult (*InternalAndReservedMethod2IMediumIO)(IMediumIO *pThis);
17891 
17892     nsresult (*InternalAndReservedMethod3IMediumIO)(IMediumIO *pThis);
17893 
17894     nsresult (*InternalAndReservedMethod4IMediumIO)(IMediumIO *pThis);
17895 
17896 };
17897 #   else /* VBOX_WITH_GLUE */
17898 struct IMediumIOVtbl
17899 {
17900     nsresult (*QueryInterface)(IMediumIO *pThis, const nsID *iid, void **resultp);
17901     nsrefcnt (*AddRef)(IMediumIO *pThis);
17902     nsrefcnt (*Release)(IMediumIO *pThis);
17903     nsresult (*GetMedium)(IMediumIO *pThis, IMedium * *medium);
17904 
17905     nsresult (*GetWritable)(IMediumIO *pThis, PRBool *writable);
17906 
17907     nsresult (*GetExplorer)(IMediumIO *pThis, IVFSExplorer * *explorer);
17908 
17909     nsresult (*GetInternalAndReservedAttribute1IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17910 
17911     nsresult (*GetInternalAndReservedAttribute2IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17912 
17913     nsresult (*GetInternalAndReservedAttribute3IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17914 
17915     nsresult (*GetInternalAndReservedAttribute4IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17916 
17917     nsresult (*GetInternalAndReservedAttribute5IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17918 
17919     nsresult (*GetInternalAndReservedAttribute6IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17920 
17921     nsresult (*GetInternalAndReservedAttribute7IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17922 
17923     nsresult (*GetInternalAndReservedAttribute8IMediumIO)(IMediumIO *pThis, PRUint32 *reserved);
17924 
17925     nsresult (*Read)(
17926         IMediumIO *pThis,
17927         PRInt64 offset,
17928         PRUint32 size,
17929         PRUint32 *dataSize,
17930         PRUint8** data
17931     );
17932 
17933     nsresult (*Write)(
17934         IMediumIO *pThis,
17935         PRInt64 offset,
17936         PRUint32 dataSize,
17937         PRUint8* data,
17938         PRUint32 * written
17939     );
17940 
17941     nsresult (*FormatFAT)(
17942         IMediumIO *pThis,
17943         PRBool quick
17944     );
17945 
17946     nsresult (*InitializePartitionTable)(
17947         IMediumIO *pThis,
17948         PRUint32 format,
17949         PRBool wholeDiskInOneEntry
17950     );
17951 
17952     nsresult (*ConvertToStream)(
17953         IMediumIO *pThis,
17954         PRUnichar * format,
17955         PRUint32 variantSize,
17956         PRUint32* variant,
17957         PRUint32 bufferSize,
17958         IDataStream * * stream,
17959         IProgress * * progress
17960     );
17961 
17962     nsresult (*Close)(IMediumIO *pThis );
17963 
17964     nsresult (*InternalAndReservedMethod1IMediumIO)(IMediumIO *pThis);
17965 
17966     nsresult (*InternalAndReservedMethod2IMediumIO)(IMediumIO *pThis);
17967 
17968     nsresult (*InternalAndReservedMethod3IMediumIO)(IMediumIO *pThis);
17969 
17970     nsresult (*InternalAndReservedMethod4IMediumIO)(IMediumIO *pThis);
17971 
17972 };
17973 #    define IMediumIO_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
17974 #    define IMediumIO_AddRef(p) ((p)->lpVtbl->AddRef(p))
17975 #    define IMediumIO_Release(p) ((p)->lpVtbl->Release(p))
17976 #    define IMediumIO_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
17977 #    define IMediumIO_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
17978 #    define IMediumIO_get_Writable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
17979 #    define IMediumIO_GetWritable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
17980 #    define IMediumIO_get_Explorer(p, aExplorer) ((p)->lpVtbl->GetExplorer(p, aExplorer))
17981 #    define IMediumIO_GetExplorer(p, aExplorer) ((p)->lpVtbl->GetExplorer(p, aExplorer))
17982 #    define IMediumIO_Read(p, aOffset, aSize, aData) ((p)->lpVtbl->Read(p, aOffset, aSize, aData))
17983 #    define IMediumIO_Write(p, aOffset, aData, aWritten) ((p)->lpVtbl->Write(p, aOffset, aData, aWritten))
17984 #    define IMediumIO_FormatFAT(p, aQuick) ((p)->lpVtbl->FormatFAT(p, aQuick))
17985 #    define IMediumIO_InitializePartitionTable(p, aFormat, aWholeDiskInOneEntry) ((p)->lpVtbl->InitializePartitionTable(p, aFormat, aWholeDiskInOneEntry))
17986 #    define IMediumIO_ConvertToStream(p, aFormat, aVariant, aBufferSize, aStream, aProgress) ((p)->lpVtbl->ConvertToStream(p, aFormat, aVariant, aBufferSize, aStream, aProgress))
17987 #    define IMediumIO_Close(p) ((p)->lpVtbl->Close(p))
17988 #   endif /* VBOX_WITH_GLUE */
17989 
17990 interface IMediumIO
17991 {
17992 #   ifndef VBOX_WITH_GLUE
17993     struct IMediumIO_vtbl *vtbl;
17994 #   else /* VBOX_WITH_GLUE */
17995     CONST_VTBL struct IMediumIOVtbl *lpVtbl;
17996 #   endif /* VBOX_WITH_GLUE */
17997 };
17998 /* End of struct IMediumIO declaration */
17999 
18000 
18001 /* Start of struct IToken declaration */
18002 #   define ITOKEN_IID_STR "20479eaf-d8ed-44cf-85ac-c83a26c95a4d"
18003 #   define ITOKEN_IID { \
18004     0x20479eaf, 0xd8ed, 0x44cf, \
18005     { 0x85, 0xac, 0xc8, 0x3a, 0x26, 0xc9, 0x5a, 0x4d } \
18006 }
18007 /* COM compatibility */
18008 VBOX_EXTERN_CONST(nsIID, IID_IToken);
18009 #   ifndef VBOX_WITH_GLUE
18010 struct IToken_vtbl
18011 {
18012     struct nsISupports_vtbl nsisupports;
18013 
18014     nsresult (*GetInternalAndReservedAttribute1IToken)(IToken *pThis, PRUint32 *reserved);
18015 
18016     nsresult (*GetInternalAndReservedAttribute2IToken)(IToken *pThis, PRUint32 *reserved);
18017 
18018     nsresult (*Abandon)(IToken *pThis );
18019 
18020     nsresult (*Dummy)(IToken *pThis );
18021 
18022     nsresult (*InternalAndReservedMethod1IToken)(IToken *pThis);
18023 
18024 };
18025 #   else /* VBOX_WITH_GLUE */
18026 struct ITokenVtbl
18027 {
18028     nsresult (*QueryInterface)(IToken *pThis, const nsID *iid, void **resultp);
18029     nsrefcnt (*AddRef)(IToken *pThis);
18030     nsrefcnt (*Release)(IToken *pThis);
18031     nsresult (*GetInternalAndReservedAttribute1IToken)(IToken *pThis, PRUint32 *reserved);
18032 
18033     nsresult (*GetInternalAndReservedAttribute2IToken)(IToken *pThis, PRUint32 *reserved);
18034 
18035     nsresult (*Abandon)(IToken *pThis );
18036 
18037     nsresult (*Dummy)(IToken *pThis );
18038 
18039     nsresult (*InternalAndReservedMethod1IToken)(IToken *pThis);
18040 
18041 };
18042 #    define IToken_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18043 #    define IToken_AddRef(p) ((p)->lpVtbl->AddRef(p))
18044 #    define IToken_Release(p) ((p)->lpVtbl->Release(p))
18045 #    define IToken_Abandon(p) ((p)->lpVtbl->Abandon(p))
18046 #    define IToken_Dummy(p) ((p)->lpVtbl->Dummy(p))
18047 #   endif /* VBOX_WITH_GLUE */
18048 
18049 interface IToken
18050 {
18051 #   ifndef VBOX_WITH_GLUE
18052     struct IToken_vtbl *vtbl;
18053 #   else /* VBOX_WITH_GLUE */
18054     CONST_VTBL struct ITokenVtbl *lpVtbl;
18055 #   endif /* VBOX_WITH_GLUE */
18056 };
18057 /* End of struct IToken declaration */
18058 
18059 
18060 /* Start of struct IKeyboard declaration */
18061 #   define IKEYBOARD_IID_STR "755e6bdf-1640-41f9-bd74-3ef5fd653250"
18062 #   define IKEYBOARD_IID { \
18063     0x755e6bdf, 0x1640, 0x41f9, \
18064     { 0xbd, 0x74, 0x3e, 0xf5, 0xfd, 0x65, 0x32, 0x50 } \
18065 }
18066 /* COM compatibility */
18067 VBOX_EXTERN_CONST(nsIID, IID_IKeyboard);
18068 #   ifndef VBOX_WITH_GLUE
18069 struct IKeyboard_vtbl
18070 {
18071     struct nsISupports_vtbl nsisupports;
18072 
18073     nsresult (*GetKeyboardLEDs)(IKeyboard *pThis, PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs);
18074 
18075     nsresult (*GetEventSource)(IKeyboard *pThis, IEventSource * *eventSource);
18076 
18077     nsresult (*GetInternalAndReservedAttribute1IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18078 
18079     nsresult (*GetInternalAndReservedAttribute2IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18080 
18081     nsresult (*GetInternalAndReservedAttribute3IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18082 
18083     nsresult (*GetInternalAndReservedAttribute4IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18084 
18085     nsresult (*PutScancode)(
18086         IKeyboard *pThis,
18087         PRInt32 scancode
18088     );
18089 
18090     nsresult (*PutScancodes)(
18091         IKeyboard *pThis,
18092         PRUint32 scancodesSize,
18093         PRInt32* scancodes,
18094         PRUint32 * codesStored
18095     );
18096 
18097     nsresult (*PutCAD)(IKeyboard *pThis );
18098 
18099     nsresult (*ReleaseKeys)(IKeyboard *pThis );
18100 
18101     nsresult (*PutUsageCode)(
18102         IKeyboard *pThis,
18103         PRInt32 usageCode,
18104         PRInt32 usagePage,
18105         PRBool keyRelease
18106     );
18107 
18108     nsresult (*InternalAndReservedMethod1IKeyboard)(IKeyboard *pThis);
18109 
18110     nsresult (*InternalAndReservedMethod2IKeyboard)(IKeyboard *pThis);
18111 
18112     nsresult (*InternalAndReservedMethod3IKeyboard)(IKeyboard *pThis);
18113 
18114     nsresult (*InternalAndReservedMethod4IKeyboard)(IKeyboard *pThis);
18115 
18116 };
18117 #   else /* VBOX_WITH_GLUE */
18118 struct IKeyboardVtbl
18119 {
18120     nsresult (*QueryInterface)(IKeyboard *pThis, const nsID *iid, void **resultp);
18121     nsrefcnt (*AddRef)(IKeyboard *pThis);
18122     nsrefcnt (*Release)(IKeyboard *pThis);
18123     nsresult (*GetKeyboardLEDs)(IKeyboard *pThis, PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs);
18124 
18125     nsresult (*GetEventSource)(IKeyboard *pThis, IEventSource * *eventSource);
18126 
18127     nsresult (*GetInternalAndReservedAttribute1IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18128 
18129     nsresult (*GetInternalAndReservedAttribute2IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18130 
18131     nsresult (*GetInternalAndReservedAttribute3IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18132 
18133     nsresult (*GetInternalAndReservedAttribute4IKeyboard)(IKeyboard *pThis, PRUint32 *reserved);
18134 
18135     nsresult (*PutScancode)(
18136         IKeyboard *pThis,
18137         PRInt32 scancode
18138     );
18139 
18140     nsresult (*PutScancodes)(
18141         IKeyboard *pThis,
18142         PRUint32 scancodesSize,
18143         PRInt32* scancodes,
18144         PRUint32 * codesStored
18145     );
18146 
18147     nsresult (*PutCAD)(IKeyboard *pThis );
18148 
18149     nsresult (*ReleaseKeys)(IKeyboard *pThis );
18150 
18151     nsresult (*PutUsageCode)(
18152         IKeyboard *pThis,
18153         PRInt32 usageCode,
18154         PRInt32 usagePage,
18155         PRBool keyRelease
18156     );
18157 
18158     nsresult (*InternalAndReservedMethod1IKeyboard)(IKeyboard *pThis);
18159 
18160     nsresult (*InternalAndReservedMethod2IKeyboard)(IKeyboard *pThis);
18161 
18162     nsresult (*InternalAndReservedMethod3IKeyboard)(IKeyboard *pThis);
18163 
18164     nsresult (*InternalAndReservedMethod4IKeyboard)(IKeyboard *pThis);
18165 
18166 };
18167 #    define IKeyboard_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18168 #    define IKeyboard_AddRef(p) ((p)->lpVtbl->AddRef(p))
18169 #    define IKeyboard_Release(p) ((p)->lpVtbl->Release(p))
18170 #    define IKeyboard_get_KeyboardLEDs(p, aKeyboardLEDs) ((p)->lpVtbl->GetKeyboardLEDs(p, aKeyboardLEDs))
18171 #    define IKeyboard_GetKeyboardLEDs(p, aKeyboardLEDs) ((p)->lpVtbl->GetKeyboardLEDs(p, aKeyboardLEDs))
18172 #    define IKeyboard_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
18173 #    define IKeyboard_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
18174 #    define IKeyboard_PutScancode(p, aScancode) ((p)->lpVtbl->PutScancode(p, aScancode))
18175 #    define IKeyboard_PutScancodes(p, aScancodes, aCodesStored) ((p)->lpVtbl->PutScancodes(p, aScancodes, aCodesStored))
18176 #    define IKeyboard_PutCAD(p) ((p)->lpVtbl->PutCAD(p))
18177 #    define IKeyboard_ReleaseKeys(p) ((p)->lpVtbl->ReleaseKeys(p))
18178 #    define IKeyboard_PutUsageCode(p, aUsageCode, aUsagePage, aKeyRelease) ((p)->lpVtbl->PutUsageCode(p, aUsageCode, aUsagePage, aKeyRelease))
18179 #   endif /* VBOX_WITH_GLUE */
18180 
18181 interface IKeyboard
18182 {
18183 #   ifndef VBOX_WITH_GLUE
18184     struct IKeyboard_vtbl *vtbl;
18185 #   else /* VBOX_WITH_GLUE */
18186     CONST_VTBL struct IKeyboardVtbl *lpVtbl;
18187 #   endif /* VBOX_WITH_GLUE */
18188 };
18189 /* End of struct IKeyboard declaration */
18190 
18191 
18192 /* Start of struct IMousePointerShape declaration */
18193 #   define IMOUSEPOINTERSHAPE_IID_STR "1e775ea3-9070-4f9c-b0d5-53054496dbe0"
18194 #   define IMOUSEPOINTERSHAPE_IID { \
18195     0x1e775ea3, 0x9070, 0x4f9c, \
18196     { 0xb0, 0xd5, 0x53, 0x05, 0x44, 0x96, 0xdb, 0xe0 } \
18197 }
18198 /* COM compatibility */
18199 VBOX_EXTERN_CONST(nsIID, IID_IMousePointerShape);
18200 #   ifndef VBOX_WITH_GLUE
18201 struct IMousePointerShape_vtbl
18202 {
18203     struct nsISupports_vtbl nsisupports;
18204 
18205     nsresult (*GetVisible)(IMousePointerShape *pThis, PRBool *visible);
18206 
18207     nsresult (*GetAlpha)(IMousePointerShape *pThis, PRBool *alpha);
18208 
18209     nsresult (*GetHotX)(IMousePointerShape *pThis, PRUint32 *hotX);
18210 
18211     nsresult (*GetHotY)(IMousePointerShape *pThis, PRUint32 *hotY);
18212 
18213     nsresult (*GetWidth)(IMousePointerShape *pThis, PRUint32 *width);
18214 
18215     nsresult (*GetHeight)(IMousePointerShape *pThis, PRUint32 *height);
18216 
18217     nsresult (*GetShape)(IMousePointerShape *pThis, PRUint32 *shapeSize, PRUint8 **shape);
18218 
18219     nsresult (*GetInternalAndReservedAttribute1IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18220 
18221     nsresult (*GetInternalAndReservedAttribute2IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18222 
18223     nsresult (*GetInternalAndReservedAttribute3IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18224 
18225     nsresult (*GetInternalAndReservedAttribute4IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18226 
18227 };
18228 #   else /* VBOX_WITH_GLUE */
18229 struct IMousePointerShapeVtbl
18230 {
18231     nsresult (*QueryInterface)(IMousePointerShape *pThis, const nsID *iid, void **resultp);
18232     nsrefcnt (*AddRef)(IMousePointerShape *pThis);
18233     nsrefcnt (*Release)(IMousePointerShape *pThis);
18234     nsresult (*GetVisible)(IMousePointerShape *pThis, PRBool *visible);
18235 
18236     nsresult (*GetAlpha)(IMousePointerShape *pThis, PRBool *alpha);
18237 
18238     nsresult (*GetHotX)(IMousePointerShape *pThis, PRUint32 *hotX);
18239 
18240     nsresult (*GetHotY)(IMousePointerShape *pThis, PRUint32 *hotY);
18241 
18242     nsresult (*GetWidth)(IMousePointerShape *pThis, PRUint32 *width);
18243 
18244     nsresult (*GetHeight)(IMousePointerShape *pThis, PRUint32 *height);
18245 
18246     nsresult (*GetShape)(IMousePointerShape *pThis, PRUint32 *shapeSize, PRUint8 **shape);
18247 
18248     nsresult (*GetInternalAndReservedAttribute1IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18249 
18250     nsresult (*GetInternalAndReservedAttribute2IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18251 
18252     nsresult (*GetInternalAndReservedAttribute3IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18253 
18254     nsresult (*GetInternalAndReservedAttribute4IMousePointerShape)(IMousePointerShape *pThis, PRUint32 *reserved);
18255 
18256 };
18257 #    define IMousePointerShape_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18258 #    define IMousePointerShape_AddRef(p) ((p)->lpVtbl->AddRef(p))
18259 #    define IMousePointerShape_Release(p) ((p)->lpVtbl->Release(p))
18260 #    define IMousePointerShape_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
18261 #    define IMousePointerShape_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
18262 #    define IMousePointerShape_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
18263 #    define IMousePointerShape_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
18264 #    define IMousePointerShape_get_HotX(p, aHotX) ((p)->lpVtbl->GetHotX(p, aHotX))
18265 #    define IMousePointerShape_GetHotX(p, aHotX) ((p)->lpVtbl->GetHotX(p, aHotX))
18266 #    define IMousePointerShape_get_HotY(p, aHotY) ((p)->lpVtbl->GetHotY(p, aHotY))
18267 #    define IMousePointerShape_GetHotY(p, aHotY) ((p)->lpVtbl->GetHotY(p, aHotY))
18268 #    define IMousePointerShape_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
18269 #    define IMousePointerShape_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
18270 #    define IMousePointerShape_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
18271 #    define IMousePointerShape_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
18272 #    define IMousePointerShape_get_Shape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
18273 #    define IMousePointerShape_GetShape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
18274 #   endif /* VBOX_WITH_GLUE */
18275 
18276 interface IMousePointerShape
18277 {
18278 #   ifndef VBOX_WITH_GLUE
18279     struct IMousePointerShape_vtbl *vtbl;
18280 #   else /* VBOX_WITH_GLUE */
18281     CONST_VTBL struct IMousePointerShapeVtbl *lpVtbl;
18282 #   endif /* VBOX_WITH_GLUE */
18283 };
18284 /* End of struct IMousePointerShape declaration */
18285 
18286 
18287 /* Start of struct IMouse declaration */
18288 #   define IMOUSE_IID_STR "10cd08d0-e8b8-4838-b10c-45ba193734c1"
18289 #   define IMOUSE_IID { \
18290     0x10cd08d0, 0xe8b8, 0x4838, \
18291     { 0xb1, 0x0c, 0x45, 0xba, 0x19, 0x37, 0x34, 0xc1 } \
18292 }
18293 /* COM compatibility */
18294 VBOX_EXTERN_CONST(nsIID, IID_IMouse);
18295 #   ifndef VBOX_WITH_GLUE
18296 struct IMouse_vtbl
18297 {
18298     struct nsISupports_vtbl nsisupports;
18299 
18300     nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
18301 
18302     nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
18303 
18304     nsresult (*GetMultiTouchSupported)(IMouse *pThis, PRBool *multiTouchSupported);
18305 
18306     nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
18307 
18308     nsresult (*GetPointerShape)(IMouse *pThis, IMousePointerShape * *pointerShape);
18309 
18310     nsresult (*GetEventSource)(IMouse *pThis, IEventSource * *eventSource);
18311 
18312     nsresult (*GetInternalAndReservedAttribute1IMouse)(IMouse *pThis, PRUint32 *reserved);
18313 
18314     nsresult (*GetInternalAndReservedAttribute2IMouse)(IMouse *pThis, PRUint32 *reserved);
18315 
18316     nsresult (*GetInternalAndReservedAttribute3IMouse)(IMouse *pThis, PRUint32 *reserved);
18317 
18318     nsresult (*GetInternalAndReservedAttribute4IMouse)(IMouse *pThis, PRUint32 *reserved);
18319 
18320     nsresult (*PutMouseEvent)(
18321         IMouse *pThis,
18322         PRInt32 dx,
18323         PRInt32 dy,
18324         PRInt32 dz,
18325         PRInt32 dw,
18326         PRInt32 buttonState
18327     );
18328 
18329     nsresult (*PutMouseEventAbsolute)(
18330         IMouse *pThis,
18331         PRInt32 x,
18332         PRInt32 y,
18333         PRInt32 dz,
18334         PRInt32 dw,
18335         PRInt32 buttonState
18336     );
18337 
18338     nsresult (*PutEventMultiTouch)(
18339         IMouse *pThis,
18340         PRInt32 count,
18341         PRUint32 contactsSize,
18342         PRInt64* contacts,
18343         PRUint32 scanTime
18344     );
18345 
18346     nsresult (*PutEventMultiTouchString)(
18347         IMouse *pThis,
18348         PRInt32 count,
18349         PRUnichar * contacts,
18350         PRUint32 scanTime
18351     );
18352 
18353     nsresult (*InternalAndReservedMethod1IMouse)(IMouse *pThis);
18354 
18355     nsresult (*InternalAndReservedMethod2IMouse)(IMouse *pThis);
18356 
18357     nsresult (*InternalAndReservedMethod3IMouse)(IMouse *pThis);
18358 
18359     nsresult (*InternalAndReservedMethod4IMouse)(IMouse *pThis);
18360 
18361 };
18362 #   else /* VBOX_WITH_GLUE */
18363 struct IMouseVtbl
18364 {
18365     nsresult (*QueryInterface)(IMouse *pThis, const nsID *iid, void **resultp);
18366     nsrefcnt (*AddRef)(IMouse *pThis);
18367     nsrefcnt (*Release)(IMouse *pThis);
18368     nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
18369 
18370     nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
18371 
18372     nsresult (*GetMultiTouchSupported)(IMouse *pThis, PRBool *multiTouchSupported);
18373 
18374     nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
18375 
18376     nsresult (*GetPointerShape)(IMouse *pThis, IMousePointerShape * *pointerShape);
18377 
18378     nsresult (*GetEventSource)(IMouse *pThis, IEventSource * *eventSource);
18379 
18380     nsresult (*GetInternalAndReservedAttribute1IMouse)(IMouse *pThis, PRUint32 *reserved);
18381 
18382     nsresult (*GetInternalAndReservedAttribute2IMouse)(IMouse *pThis, PRUint32 *reserved);
18383 
18384     nsresult (*GetInternalAndReservedAttribute3IMouse)(IMouse *pThis, PRUint32 *reserved);
18385 
18386     nsresult (*GetInternalAndReservedAttribute4IMouse)(IMouse *pThis, PRUint32 *reserved);
18387 
18388     nsresult (*PutMouseEvent)(
18389         IMouse *pThis,
18390         PRInt32 dx,
18391         PRInt32 dy,
18392         PRInt32 dz,
18393         PRInt32 dw,
18394         PRInt32 buttonState
18395     );
18396 
18397     nsresult (*PutMouseEventAbsolute)(
18398         IMouse *pThis,
18399         PRInt32 x,
18400         PRInt32 y,
18401         PRInt32 dz,
18402         PRInt32 dw,
18403         PRInt32 buttonState
18404     );
18405 
18406     nsresult (*PutEventMultiTouch)(
18407         IMouse *pThis,
18408         PRInt32 count,
18409         PRUint32 contactsSize,
18410         PRInt64* contacts,
18411         PRUint32 scanTime
18412     );
18413 
18414     nsresult (*PutEventMultiTouchString)(
18415         IMouse *pThis,
18416         PRInt32 count,
18417         PRUnichar * contacts,
18418         PRUint32 scanTime
18419     );
18420 
18421     nsresult (*InternalAndReservedMethod1IMouse)(IMouse *pThis);
18422 
18423     nsresult (*InternalAndReservedMethod2IMouse)(IMouse *pThis);
18424 
18425     nsresult (*InternalAndReservedMethod3IMouse)(IMouse *pThis);
18426 
18427     nsresult (*InternalAndReservedMethod4IMouse)(IMouse *pThis);
18428 
18429 };
18430 #    define IMouse_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18431 #    define IMouse_AddRef(p) ((p)->lpVtbl->AddRef(p))
18432 #    define IMouse_Release(p) ((p)->lpVtbl->Release(p))
18433 #    define IMouse_get_AbsoluteSupported(p, aAbsoluteSupported) ((p)->lpVtbl->GetAbsoluteSupported(p, aAbsoluteSupported))
18434 #    define IMouse_GetAbsoluteSupported(p, aAbsoluteSupported) ((p)->lpVtbl->GetAbsoluteSupported(p, aAbsoluteSupported))
18435 #    define IMouse_get_RelativeSupported(p, aRelativeSupported) ((p)->lpVtbl->GetRelativeSupported(p, aRelativeSupported))
18436 #    define IMouse_GetRelativeSupported(p, aRelativeSupported) ((p)->lpVtbl->GetRelativeSupported(p, aRelativeSupported))
18437 #    define IMouse_get_MultiTouchSupported(p, aMultiTouchSupported) ((p)->lpVtbl->GetMultiTouchSupported(p, aMultiTouchSupported))
18438 #    define IMouse_GetMultiTouchSupported(p, aMultiTouchSupported) ((p)->lpVtbl->GetMultiTouchSupported(p, aMultiTouchSupported))
18439 #    define IMouse_get_NeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
18440 #    define IMouse_GetNeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
18441 #    define IMouse_get_PointerShape(p, aPointerShape) ((p)->lpVtbl->GetPointerShape(p, aPointerShape))
18442 #    define IMouse_GetPointerShape(p, aPointerShape) ((p)->lpVtbl->GetPointerShape(p, aPointerShape))
18443 #    define IMouse_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
18444 #    define IMouse_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
18445 #    define IMouse_PutMouseEvent(p, aDx, aDy, aDz, aDw, aButtonState) ((p)->lpVtbl->PutMouseEvent(p, aDx, aDy, aDz, aDw, aButtonState))
18446 #    define IMouse_PutMouseEventAbsolute(p, aX, aY, aDz, aDw, aButtonState) ((p)->lpVtbl->PutMouseEventAbsolute(p, aX, aY, aDz, aDw, aButtonState))
18447 #    define IMouse_PutEventMultiTouch(p, aCount, aContacts, aScanTime) ((p)->lpVtbl->PutEventMultiTouch(p, aCount, aContacts, aScanTime))
18448 #    define IMouse_PutEventMultiTouchString(p, aCount, aContacts, aScanTime) ((p)->lpVtbl->PutEventMultiTouchString(p, aCount, aContacts, aScanTime))
18449 #   endif /* VBOX_WITH_GLUE */
18450 
18451 interface IMouse
18452 {
18453 #   ifndef VBOX_WITH_GLUE
18454     struct IMouse_vtbl *vtbl;
18455 #   else /* VBOX_WITH_GLUE */
18456     CONST_VTBL struct IMouseVtbl *lpVtbl;
18457 #   endif /* VBOX_WITH_GLUE */
18458 };
18459 /* End of struct IMouse declaration */
18460 
18461 
18462 /* Start of struct IDisplaySourceBitmap declaration */
18463 #   define IDISPLAYSOURCEBITMAP_IID_STR "5094f67a-8084-11e9-b185-dbe296e54799"
18464 #   define IDISPLAYSOURCEBITMAP_IID { \
18465     0x5094f67a, 0x8084, 0x11e9, \
18466     { 0xb1, 0x85, 0xdb, 0xe2, 0x96, 0xe5, 0x47, 0x99 } \
18467 }
18468 /* COM compatibility */
18469 VBOX_EXTERN_CONST(nsIID, IID_IDisplaySourceBitmap);
18470 #   ifndef VBOX_WITH_GLUE
18471 struct IDisplaySourceBitmap_vtbl
18472 {
18473     struct nsISupports_vtbl nsisupports;
18474 
18475     nsresult (*GetScreenId)(IDisplaySourceBitmap *pThis, PRUint32 *screenId);
18476 
18477     nsresult (*QueryBitmapInfo)(
18478         IDisplaySourceBitmap *pThis,
18479         PRUint8 * * address,
18480         PRUint32 * width,
18481         PRUint32 * height,
18482         PRUint32 * bitsPerPixel,
18483         PRUint32 * bytesPerLine,
18484         PRUint32 * bitmapFormat
18485     );
18486 
18487 };
18488 #   else /* VBOX_WITH_GLUE */
18489 struct IDisplaySourceBitmapVtbl
18490 {
18491     nsresult (*QueryInterface)(IDisplaySourceBitmap *pThis, const nsID *iid, void **resultp);
18492     nsrefcnt (*AddRef)(IDisplaySourceBitmap *pThis);
18493     nsrefcnt (*Release)(IDisplaySourceBitmap *pThis);
18494     nsresult (*GetScreenId)(IDisplaySourceBitmap *pThis, PRUint32 *screenId);
18495 
18496     nsresult (*QueryBitmapInfo)(
18497         IDisplaySourceBitmap *pThis,
18498         PRUint8 * * address,
18499         PRUint32 * width,
18500         PRUint32 * height,
18501         PRUint32 * bitsPerPixel,
18502         PRUint32 * bytesPerLine,
18503         PRUint32 * bitmapFormat
18504     );
18505 
18506 };
18507 #    define IDisplaySourceBitmap_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18508 #    define IDisplaySourceBitmap_AddRef(p) ((p)->lpVtbl->AddRef(p))
18509 #    define IDisplaySourceBitmap_Release(p) ((p)->lpVtbl->Release(p))
18510 #    define IDisplaySourceBitmap_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
18511 #    define IDisplaySourceBitmap_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
18512 #    define IDisplaySourceBitmap_QueryBitmapInfo(p, aAddress, aWidth, aHeight, aBitsPerPixel, aBytesPerLine, aBitmapFormat) ((p)->lpVtbl->QueryBitmapInfo(p, aAddress, aWidth, aHeight, aBitsPerPixel, aBytesPerLine, aBitmapFormat))
18513 #   endif /* VBOX_WITH_GLUE */
18514 
18515 interface IDisplaySourceBitmap
18516 {
18517 #   ifndef VBOX_WITH_GLUE
18518     struct IDisplaySourceBitmap_vtbl *vtbl;
18519 #   else /* VBOX_WITH_GLUE */
18520     CONST_VTBL struct IDisplaySourceBitmapVtbl *lpVtbl;
18521 #   endif /* VBOX_WITH_GLUE */
18522 };
18523 /* End of struct IDisplaySourceBitmap declaration */
18524 
18525 
18526 /* Start of struct IFramebuffer declaration */
18527 #   define IFRAMEBUFFER_IID_STR "1e8d3f27-b45c-48ae-8b36-d35e83d207aa"
18528 #   define IFRAMEBUFFER_IID { \
18529     0x1e8d3f27, 0xb45c, 0x48ae, \
18530     { 0x8b, 0x36, 0xd3, 0x5e, 0x83, 0xd2, 0x07, 0xaa } \
18531 }
18532 /* COM compatibility */
18533 VBOX_EXTERN_CONST(nsIID, IID_IFramebuffer);
18534 #   ifndef VBOX_WITH_GLUE
18535 struct IFramebuffer_vtbl
18536 {
18537     struct nsISupports_vtbl nsisupports;
18538 
18539     nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
18540 
18541     nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
18542 
18543     nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
18544 
18545     nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
18546 
18547     nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
18548 
18549     nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
18550 
18551     nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
18552 
18553     nsresult (*GetWinId)(IFramebuffer *pThis, PRInt64 *winId);
18554 
18555     nsresult (*GetCapabilities)(IFramebuffer *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
18556 
18557     nsresult (*NotifyUpdate)(
18558         IFramebuffer *pThis,
18559         PRUint32 x,
18560         PRUint32 y,
18561         PRUint32 width,
18562         PRUint32 height
18563     );
18564 
18565     nsresult (*NotifyUpdateImage)(
18566         IFramebuffer *pThis,
18567         PRUint32 x,
18568         PRUint32 y,
18569         PRUint32 width,
18570         PRUint32 height,
18571         PRUint32 imageSize,
18572         PRUint8* image
18573     );
18574 
18575     nsresult (*NotifyChange)(
18576         IFramebuffer *pThis,
18577         PRUint32 screenId,
18578         PRUint32 xOrigin,
18579         PRUint32 yOrigin,
18580         PRUint32 width,
18581         PRUint32 height
18582     );
18583 
18584     nsresult (*VideoModeSupported)(
18585         IFramebuffer *pThis,
18586         PRUint32 width,
18587         PRUint32 height,
18588         PRUint32 bpp,
18589         PRBool * supported
18590     );
18591 
18592     nsresult (*GetVisibleRegion)(
18593         IFramebuffer *pThis,
18594         PRUint8 * rectangles,
18595         PRUint32 count,
18596         PRUint32 * countCopied
18597     );
18598 
18599     nsresult (*SetVisibleRegion)(
18600         IFramebuffer *pThis,
18601         PRUint8 * rectangles,
18602         PRUint32 count
18603     );
18604 
18605     nsresult (*ProcessVHWACommand)(
18606         IFramebuffer *pThis,
18607         PRUint8 * command,
18608         PRInt32 enmCmd,
18609         PRBool fromGuest
18610     );
18611 
18612     nsresult (*Notify3DEvent)(
18613         IFramebuffer *pThis,
18614         PRUint32 type,
18615         PRUint32 dataSize,
18616         PRUint8* data
18617     );
18618 
18619 };
18620 #   else /* VBOX_WITH_GLUE */
18621 struct IFramebufferVtbl
18622 {
18623     nsresult (*QueryInterface)(IFramebuffer *pThis, const nsID *iid, void **resultp);
18624     nsrefcnt (*AddRef)(IFramebuffer *pThis);
18625     nsrefcnt (*Release)(IFramebuffer *pThis);
18626     nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
18627 
18628     nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
18629 
18630     nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
18631 
18632     nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
18633 
18634     nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
18635 
18636     nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
18637 
18638     nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
18639 
18640     nsresult (*GetWinId)(IFramebuffer *pThis, PRInt64 *winId);
18641 
18642     nsresult (*GetCapabilities)(IFramebuffer *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
18643 
18644     nsresult (*NotifyUpdate)(
18645         IFramebuffer *pThis,
18646         PRUint32 x,
18647         PRUint32 y,
18648         PRUint32 width,
18649         PRUint32 height
18650     );
18651 
18652     nsresult (*NotifyUpdateImage)(
18653         IFramebuffer *pThis,
18654         PRUint32 x,
18655         PRUint32 y,
18656         PRUint32 width,
18657         PRUint32 height,
18658         PRUint32 imageSize,
18659         PRUint8* image
18660     );
18661 
18662     nsresult (*NotifyChange)(
18663         IFramebuffer *pThis,
18664         PRUint32 screenId,
18665         PRUint32 xOrigin,
18666         PRUint32 yOrigin,
18667         PRUint32 width,
18668         PRUint32 height
18669     );
18670 
18671     nsresult (*VideoModeSupported)(
18672         IFramebuffer *pThis,
18673         PRUint32 width,
18674         PRUint32 height,
18675         PRUint32 bpp,
18676         PRBool * supported
18677     );
18678 
18679     nsresult (*GetVisibleRegion)(
18680         IFramebuffer *pThis,
18681         PRUint8 * rectangles,
18682         PRUint32 count,
18683         PRUint32 * countCopied
18684     );
18685 
18686     nsresult (*SetVisibleRegion)(
18687         IFramebuffer *pThis,
18688         PRUint8 * rectangles,
18689         PRUint32 count
18690     );
18691 
18692     nsresult (*ProcessVHWACommand)(
18693         IFramebuffer *pThis,
18694         PRUint8 * command,
18695         PRInt32 enmCmd,
18696         PRBool fromGuest
18697     );
18698 
18699     nsresult (*Notify3DEvent)(
18700         IFramebuffer *pThis,
18701         PRUint32 type,
18702         PRUint32 dataSize,
18703         PRUint8* data
18704     );
18705 
18706 };
18707 #    define IFramebuffer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18708 #    define IFramebuffer_AddRef(p) ((p)->lpVtbl->AddRef(p))
18709 #    define IFramebuffer_Release(p) ((p)->lpVtbl->Release(p))
18710 #    define IFramebuffer_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
18711 #    define IFramebuffer_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
18712 #    define IFramebuffer_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
18713 #    define IFramebuffer_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
18714 #    define IFramebuffer_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
18715 #    define IFramebuffer_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
18716 #    define IFramebuffer_get_BytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
18717 #    define IFramebuffer_GetBytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
18718 #    define IFramebuffer_get_PixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
18719 #    define IFramebuffer_GetPixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
18720 #    define IFramebuffer_get_HeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
18721 #    define IFramebuffer_GetHeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
18722 #    define IFramebuffer_get_Overlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
18723 #    define IFramebuffer_GetOverlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
18724 #    define IFramebuffer_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
18725 #    define IFramebuffer_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
18726 #    define IFramebuffer_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
18727 #    define IFramebuffer_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
18728 #    define IFramebuffer_NotifyUpdate(p, aX, aY, aWidth, aHeight) ((p)->lpVtbl->NotifyUpdate(p, aX, aY, aWidth, aHeight))
18729 #    define IFramebuffer_NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage) ((p)->lpVtbl->NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage))
18730 #    define IFramebuffer_NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight) ((p)->lpVtbl->NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight))
18731 #    define IFramebuffer_VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported) ((p)->lpVtbl->VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported))
18732 #    define IFramebuffer_GetVisibleRegion(p, aRectangles, aCount, aCountCopied) ((p)->lpVtbl->GetVisibleRegion(p, aRectangles, aCount, aCountCopied))
18733 #    define IFramebuffer_SetVisibleRegion(p, aRectangles, aCount) ((p)->lpVtbl->SetVisibleRegion(p, aRectangles, aCount))
18734 #    define IFramebuffer_ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest) ((p)->lpVtbl->ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest))
18735 #    define IFramebuffer_Notify3DEvent(p, aType, aData) ((p)->lpVtbl->Notify3DEvent(p, aType, aData))
18736 #   endif /* VBOX_WITH_GLUE */
18737 
18738 interface IFramebuffer
18739 {
18740 #   ifndef VBOX_WITH_GLUE
18741     struct IFramebuffer_vtbl *vtbl;
18742 #   else /* VBOX_WITH_GLUE */
18743     CONST_VTBL struct IFramebufferVtbl *lpVtbl;
18744 #   endif /* VBOX_WITH_GLUE */
18745 };
18746 /* End of struct IFramebuffer declaration */
18747 
18748 
18749 /* Start of struct IFramebufferOverlay declaration */
18750 #   define IFRAMEBUFFEROVERLAY_IID_STR "af398a9a-6b76-4805-8fab-00a9dcf4732b"
18751 #   define IFRAMEBUFFEROVERLAY_IID { \
18752     0xaf398a9a, 0x6b76, 0x4805, \
18753     { 0x8f, 0xab, 0x00, 0xa9, 0xdc, 0xf4, 0x73, 0x2b } \
18754 }
18755 /* COM compatibility */
18756 VBOX_EXTERN_CONST(nsIID, IID_IFramebufferOverlay);
18757 #   ifndef VBOX_WITH_GLUE
18758 struct IFramebufferOverlay_vtbl
18759 {
18760     struct IFramebuffer_vtbl iframebuffer;
18761 
18762     nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
18763 
18764     nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
18765 
18766     nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
18767     nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
18768 
18769     nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
18770     nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
18771 
18772     nsresult (*Move)(
18773         IFramebufferOverlay *pThis,
18774         PRUint32 x,
18775         PRUint32 y
18776     );
18777 
18778 };
18779 #   else /* VBOX_WITH_GLUE */
18780 struct IFramebufferOverlayVtbl
18781 {
18782     nsresult (*QueryInterface)(IFramebufferOverlay *pThis, const nsID *iid, void **resultp);
18783     nsrefcnt (*AddRef)(IFramebufferOverlay *pThis);
18784     nsrefcnt (*Release)(IFramebufferOverlay *pThis);
18785     nsresult (*GetWidth)(IFramebufferOverlay *pThis, PRUint32 *width);
18786 
18787     nsresult (*GetHeight)(IFramebufferOverlay *pThis, PRUint32 *height);
18788 
18789     nsresult (*GetBitsPerPixel)(IFramebufferOverlay *pThis, PRUint32 *bitsPerPixel);
18790 
18791     nsresult (*GetBytesPerLine)(IFramebufferOverlay *pThis, PRUint32 *bytesPerLine);
18792 
18793     nsresult (*GetPixelFormat)(IFramebufferOverlay *pThis, PRUint32 *pixelFormat);
18794 
18795     nsresult (*GetHeightReduction)(IFramebufferOverlay *pThis, PRUint32 *heightReduction);
18796 
18797     nsresult (*GetOverlay)(IFramebufferOverlay *pThis, IFramebufferOverlay * *overlay);
18798 
18799     nsresult (*GetWinId)(IFramebufferOverlay *pThis, PRInt64 *winId);
18800 
18801     nsresult (*GetCapabilities)(IFramebufferOverlay *pThis, PRUint32 *capabilitiesSize, PRUint32 **capabilities);
18802 
18803     nsresult (*NotifyUpdate)(
18804         IFramebufferOverlay *pThis,
18805         PRUint32 x,
18806         PRUint32 y,
18807         PRUint32 width,
18808         PRUint32 height
18809     );
18810 
18811     nsresult (*NotifyUpdateImage)(
18812         IFramebufferOverlay *pThis,
18813         PRUint32 x,
18814         PRUint32 y,
18815         PRUint32 width,
18816         PRUint32 height,
18817         PRUint32 imageSize,
18818         PRUint8* image
18819     );
18820 
18821     nsresult (*NotifyChange)(
18822         IFramebufferOverlay *pThis,
18823         PRUint32 screenId,
18824         PRUint32 xOrigin,
18825         PRUint32 yOrigin,
18826         PRUint32 width,
18827         PRUint32 height
18828     );
18829 
18830     nsresult (*VideoModeSupported)(
18831         IFramebufferOverlay *pThis,
18832         PRUint32 width,
18833         PRUint32 height,
18834         PRUint32 bpp,
18835         PRBool * supported
18836     );
18837 
18838     nsresult (*GetVisibleRegion)(
18839         IFramebufferOverlay *pThis,
18840         PRUint8 * rectangles,
18841         PRUint32 count,
18842         PRUint32 * countCopied
18843     );
18844 
18845     nsresult (*SetVisibleRegion)(
18846         IFramebufferOverlay *pThis,
18847         PRUint8 * rectangles,
18848         PRUint32 count
18849     );
18850 
18851     nsresult (*ProcessVHWACommand)(
18852         IFramebufferOverlay *pThis,
18853         PRUint8 * command,
18854         PRInt32 enmCmd,
18855         PRBool fromGuest
18856     );
18857 
18858     nsresult (*Notify3DEvent)(
18859         IFramebufferOverlay *pThis,
18860         PRUint32 type,
18861         PRUint32 dataSize,
18862         PRUint8* data
18863     );
18864 
18865     nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
18866 
18867     nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
18868 
18869     nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
18870     nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
18871 
18872     nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
18873     nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
18874 
18875     nsresult (*Move)(
18876         IFramebufferOverlay *pThis,
18877         PRUint32 x,
18878         PRUint32 y
18879     );
18880 
18881 };
18882 #    define IFramebufferOverlay_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18883 #    define IFramebufferOverlay_AddRef(p) ((p)->lpVtbl->AddRef(p))
18884 #    define IFramebufferOverlay_Release(p) ((p)->lpVtbl->Release(p))
18885 #    define IFramebufferOverlay_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
18886 #    define IFramebufferOverlay_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
18887 #    define IFramebufferOverlay_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
18888 #    define IFramebufferOverlay_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
18889 #    define IFramebufferOverlay_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
18890 #    define IFramebufferOverlay_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
18891 #    define IFramebufferOverlay_get_BytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
18892 #    define IFramebufferOverlay_GetBytesPerLine(p, aBytesPerLine) ((p)->lpVtbl->GetBytesPerLine(p, aBytesPerLine))
18893 #    define IFramebufferOverlay_get_PixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
18894 #    define IFramebufferOverlay_GetPixelFormat(p, aPixelFormat) ((p)->lpVtbl->GetPixelFormat(p, aPixelFormat))
18895 #    define IFramebufferOverlay_get_HeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
18896 #    define IFramebufferOverlay_GetHeightReduction(p, aHeightReduction) ((p)->lpVtbl->GetHeightReduction(p, aHeightReduction))
18897 #    define IFramebufferOverlay_get_Overlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
18898 #    define IFramebufferOverlay_GetOverlay(p, aOverlay) ((p)->lpVtbl->GetOverlay(p, aOverlay))
18899 #    define IFramebufferOverlay_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
18900 #    define IFramebufferOverlay_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
18901 #    define IFramebufferOverlay_get_Capabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
18902 #    define IFramebufferOverlay_GetCapabilities(p, aCapabilities) ((p)->lpVtbl->GetCapabilities(p, aCapabilities))
18903 #    define IFramebufferOverlay_NotifyUpdate(p, aX, aY, aWidth, aHeight) ((p)->lpVtbl->NotifyUpdate(p, aX, aY, aWidth, aHeight))
18904 #    define IFramebufferOverlay_NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage) ((p)->lpVtbl->NotifyUpdateImage(p, aX, aY, aWidth, aHeight, aImage))
18905 #    define IFramebufferOverlay_NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight) ((p)->lpVtbl->NotifyChange(p, aScreenId, aXOrigin, aYOrigin, aWidth, aHeight))
18906 #    define IFramebufferOverlay_VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported) ((p)->lpVtbl->VideoModeSupported(p, aWidth, aHeight, aBpp, aSupported))
18907 #    define IFramebufferOverlay_GetVisibleRegion(p, aRectangles, aCount, aCountCopied) ((p)->lpVtbl->GetVisibleRegion(p, aRectangles, aCount, aCountCopied))
18908 #    define IFramebufferOverlay_SetVisibleRegion(p, aRectangles, aCount) ((p)->lpVtbl->SetVisibleRegion(p, aRectangles, aCount))
18909 #    define IFramebufferOverlay_ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest) ((p)->lpVtbl->ProcessVHWACommand(p, aCommand, aEnmCmd, aFromGuest))
18910 #    define IFramebufferOverlay_Notify3DEvent(p, aType, aData) ((p)->lpVtbl->Notify3DEvent(p, aType, aData))
18911 #    define IFramebufferOverlay_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
18912 #    define IFramebufferOverlay_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
18913 #    define IFramebufferOverlay_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
18914 #    define IFramebufferOverlay_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
18915 #    define IFramebufferOverlay_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
18916 #    define IFramebufferOverlay_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
18917 #    define IFramebufferOverlay_put_Visible(p, aVisible) ((p)->lpVtbl->SetVisible(p, aVisible))
18918 #    define IFramebufferOverlay_SetVisible(p, aVisible) ((p)->lpVtbl->SetVisible(p, aVisible))
18919 #    define IFramebufferOverlay_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
18920 #    define IFramebufferOverlay_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
18921 #    define IFramebufferOverlay_put_Alpha(p, aAlpha) ((p)->lpVtbl->SetAlpha(p, aAlpha))
18922 #    define IFramebufferOverlay_SetAlpha(p, aAlpha) ((p)->lpVtbl->SetAlpha(p, aAlpha))
18923 #    define IFramebufferOverlay_Move(p, aX, aY) ((p)->lpVtbl->Move(p, aX, aY))
18924 #   endif /* VBOX_WITH_GLUE */
18925 
18926 interface IFramebufferOverlay
18927 {
18928 #   ifndef VBOX_WITH_GLUE
18929     struct IFramebufferOverlay_vtbl *vtbl;
18930 #   else /* VBOX_WITH_GLUE */
18931     CONST_VTBL struct IFramebufferOverlayVtbl *lpVtbl;
18932 #   endif /* VBOX_WITH_GLUE */
18933 };
18934 /* End of struct IFramebufferOverlay declaration */
18935 
18936 
18937 /* Start of struct IGuestScreenInfo declaration */
18938 #   define IGUESTSCREENINFO_IID_STR "6b2f98f8-9641-4397-854a-040439d0114b"
18939 #   define IGUESTSCREENINFO_IID { \
18940     0x6b2f98f8, 0x9641, 0x4397, \
18941     { 0x85, 0x4a, 0x04, 0x04, 0x39, 0xd0, 0x11, 0x4b } \
18942 }
18943 /* COM compatibility */
18944 VBOX_EXTERN_CONST(nsIID, IID_IGuestScreenInfo);
18945 #   ifndef VBOX_WITH_GLUE
18946 struct IGuestScreenInfo_vtbl
18947 {
18948     struct nsISupports_vtbl nsisupports;
18949 
18950     nsresult (*GetScreenId)(IGuestScreenInfo *pThis, PRUint32 *screenId);
18951 
18952     nsresult (*GetGuestMonitorStatus)(IGuestScreenInfo *pThis, PRUint32 *guestMonitorStatus);
18953 
18954     nsresult (*GetPrimary)(IGuestScreenInfo *pThis, PRBool *primary);
18955 
18956     nsresult (*GetOrigin)(IGuestScreenInfo *pThis, PRBool *origin);
18957 
18958     nsresult (*GetOriginX)(IGuestScreenInfo *pThis, PRInt32 *originX);
18959 
18960     nsresult (*GetOriginY)(IGuestScreenInfo *pThis, PRInt32 *originY);
18961 
18962     nsresult (*GetWidth)(IGuestScreenInfo *pThis, PRUint32 *width);
18963 
18964     nsresult (*GetHeight)(IGuestScreenInfo *pThis, PRUint32 *height);
18965 
18966     nsresult (*GetBitsPerPixel)(IGuestScreenInfo *pThis, PRUint32 *bitsPerPixel);
18967 
18968     nsresult (*GetExtendedInfo)(IGuestScreenInfo *pThis, PRUnichar * *extendedInfo);
18969 
18970 };
18971 #   else /* VBOX_WITH_GLUE */
18972 struct IGuestScreenInfoVtbl
18973 {
18974     nsresult (*QueryInterface)(IGuestScreenInfo *pThis, const nsID *iid, void **resultp);
18975     nsrefcnt (*AddRef)(IGuestScreenInfo *pThis);
18976     nsrefcnt (*Release)(IGuestScreenInfo *pThis);
18977     nsresult (*GetScreenId)(IGuestScreenInfo *pThis, PRUint32 *screenId);
18978 
18979     nsresult (*GetGuestMonitorStatus)(IGuestScreenInfo *pThis, PRUint32 *guestMonitorStatus);
18980 
18981     nsresult (*GetPrimary)(IGuestScreenInfo *pThis, PRBool *primary);
18982 
18983     nsresult (*GetOrigin)(IGuestScreenInfo *pThis, PRBool *origin);
18984 
18985     nsresult (*GetOriginX)(IGuestScreenInfo *pThis, PRInt32 *originX);
18986 
18987     nsresult (*GetOriginY)(IGuestScreenInfo *pThis, PRInt32 *originY);
18988 
18989     nsresult (*GetWidth)(IGuestScreenInfo *pThis, PRUint32 *width);
18990 
18991     nsresult (*GetHeight)(IGuestScreenInfo *pThis, PRUint32 *height);
18992 
18993     nsresult (*GetBitsPerPixel)(IGuestScreenInfo *pThis, PRUint32 *bitsPerPixel);
18994 
18995     nsresult (*GetExtendedInfo)(IGuestScreenInfo *pThis, PRUnichar * *extendedInfo);
18996 
18997 };
18998 #    define IGuestScreenInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
18999 #    define IGuestScreenInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
19000 #    define IGuestScreenInfo_Release(p) ((p)->lpVtbl->Release(p))
19001 #    define IGuestScreenInfo_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
19002 #    define IGuestScreenInfo_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
19003 #    define IGuestScreenInfo_get_GuestMonitorStatus(p, aGuestMonitorStatus) ((p)->lpVtbl->GetGuestMonitorStatus(p, aGuestMonitorStatus))
19004 #    define IGuestScreenInfo_GetGuestMonitorStatus(p, aGuestMonitorStatus) ((p)->lpVtbl->GetGuestMonitorStatus(p, aGuestMonitorStatus))
19005 #    define IGuestScreenInfo_get_Primary(p, aPrimary) ((p)->lpVtbl->GetPrimary(p, aPrimary))
19006 #    define IGuestScreenInfo_GetPrimary(p, aPrimary) ((p)->lpVtbl->GetPrimary(p, aPrimary))
19007 #    define IGuestScreenInfo_get_Origin(p, aOrigin) ((p)->lpVtbl->GetOrigin(p, aOrigin))
19008 #    define IGuestScreenInfo_GetOrigin(p, aOrigin) ((p)->lpVtbl->GetOrigin(p, aOrigin))
19009 #    define IGuestScreenInfo_get_OriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
19010 #    define IGuestScreenInfo_GetOriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
19011 #    define IGuestScreenInfo_get_OriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
19012 #    define IGuestScreenInfo_GetOriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
19013 #    define IGuestScreenInfo_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
19014 #    define IGuestScreenInfo_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
19015 #    define IGuestScreenInfo_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
19016 #    define IGuestScreenInfo_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
19017 #    define IGuestScreenInfo_get_BitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
19018 #    define IGuestScreenInfo_GetBitsPerPixel(p, aBitsPerPixel) ((p)->lpVtbl->GetBitsPerPixel(p, aBitsPerPixel))
19019 #    define IGuestScreenInfo_get_ExtendedInfo(p, aExtendedInfo) ((p)->lpVtbl->GetExtendedInfo(p, aExtendedInfo))
19020 #    define IGuestScreenInfo_GetExtendedInfo(p, aExtendedInfo) ((p)->lpVtbl->GetExtendedInfo(p, aExtendedInfo))
19021 #   endif /* VBOX_WITH_GLUE */
19022 
19023 interface IGuestScreenInfo
19024 {
19025 #   ifndef VBOX_WITH_GLUE
19026     struct IGuestScreenInfo_vtbl *vtbl;
19027 #   else /* VBOX_WITH_GLUE */
19028     CONST_VTBL struct IGuestScreenInfoVtbl *lpVtbl;
19029 #   endif /* VBOX_WITH_GLUE */
19030 };
19031 /* End of struct IGuestScreenInfo declaration */
19032 
19033 
19034 /* Start of struct IDisplay declaration */
19035 #   define IDISPLAY_IID_STR "4680b2de-8690-11e9-b83d-5719e53cf1de"
19036 #   define IDISPLAY_IID { \
19037     0x4680b2de, 0x8690, 0x11e9, \
19038     { 0xb8, 0x3d, 0x57, 0x19, 0xe5, 0x3c, 0xf1, 0xde } \
19039 }
19040 /* COM compatibility */
19041 VBOX_EXTERN_CONST(nsIID, IID_IDisplay);
19042 #   ifndef VBOX_WITH_GLUE
19043 struct IDisplay_vtbl
19044 {
19045     struct nsISupports_vtbl nsisupports;
19046 
19047     nsresult (*GetGuestScreenLayout)(IDisplay *pThis, PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout);
19048 
19049     nsresult (*GetInternalAndReservedAttribute1IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19050 
19051     nsresult (*GetInternalAndReservedAttribute2IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19052 
19053     nsresult (*GetInternalAndReservedAttribute3IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19054 
19055     nsresult (*GetInternalAndReservedAttribute4IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19056 
19057     nsresult (*GetInternalAndReservedAttribute5IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19058 
19059     nsresult (*GetInternalAndReservedAttribute6IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19060 
19061     nsresult (*GetInternalAndReservedAttribute7IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19062 
19063     nsresult (*GetInternalAndReservedAttribute8IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19064 
19065     nsresult (*GetInternalAndReservedAttribute9IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19066 
19067     nsresult (*GetInternalAndReservedAttribute10IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19068 
19069     nsresult (*GetInternalAndReservedAttribute11IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19070 
19071     nsresult (*GetInternalAndReservedAttribute12IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19072 
19073     nsresult (*GetInternalAndReservedAttribute13IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19074 
19075     nsresult (*GetInternalAndReservedAttribute14IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19076 
19077     nsresult (*GetInternalAndReservedAttribute15IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19078 
19079     nsresult (*GetInternalAndReservedAttribute16IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19080 
19081     nsresult (*GetScreenResolution)(
19082         IDisplay *pThis,
19083         PRUint32 screenId,
19084         PRUint32 * width,
19085         PRUint32 * height,
19086         PRUint32 * bitsPerPixel,
19087         PRInt32 * xOrigin,
19088         PRInt32 * yOrigin,
19089         PRUint32 * guestMonitorStatus
19090     );
19091 
19092     nsresult (*AttachFramebuffer)(
19093         IDisplay *pThis,
19094         PRUint32 screenId,
19095         IFramebuffer * framebuffer,
19096         PRUnichar * * id
19097     );
19098 
19099     nsresult (*DetachFramebuffer)(
19100         IDisplay *pThis,
19101         PRUint32 screenId,
19102         PRUnichar * id
19103     );
19104 
19105     nsresult (*QueryFramebuffer)(
19106         IDisplay *pThis,
19107         PRUint32 screenId,
19108         IFramebuffer * * framebuffer
19109     );
19110 
19111     nsresult (*SetVideoModeHint)(
19112         IDisplay *pThis,
19113         PRUint32 display,
19114         PRBool enabled,
19115         PRBool changeOrigin,
19116         PRInt32 originX,
19117         PRInt32 originY,
19118         PRUint32 width,
19119         PRUint32 height,
19120         PRUint32 bitsPerPixel,
19121         PRBool notify
19122     );
19123 
19124     nsresult (*GetVideoModeHint)(
19125         IDisplay *pThis,
19126         PRUint32 display,
19127         PRBool * enabled,
19128         PRBool * changeOrigin,
19129         PRInt32 * originX,
19130         PRInt32 * originY,
19131         PRUint32 * width,
19132         PRUint32 * height,
19133         PRUint32 * bitsPerPixel
19134     );
19135 
19136     nsresult (*SetSeamlessMode)(
19137         IDisplay *pThis,
19138         PRBool enabled
19139     );
19140 
19141     nsresult (*TakeScreenShot)(
19142         IDisplay *pThis,
19143         PRUint32 screenId,
19144         PRUint8 * address,
19145         PRUint32 width,
19146         PRUint32 height,
19147         PRUint32 bitmapFormat
19148     );
19149 
19150     nsresult (*TakeScreenShotToArray)(
19151         IDisplay *pThis,
19152         PRUint32 screenId,
19153         PRUint32 width,
19154         PRUint32 height,
19155         PRUint32 bitmapFormat,
19156         PRUint32 *screenDataSize,
19157         PRUint8** screenData
19158     );
19159 
19160     nsresult (*DrawToScreen)(
19161         IDisplay *pThis,
19162         PRUint32 screenId,
19163         PRUint8 * address,
19164         PRUint32 x,
19165         PRUint32 y,
19166         PRUint32 width,
19167         PRUint32 height
19168     );
19169 
19170     nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
19171 
19172     nsresult (*InvalidateAndUpdateScreen)(
19173         IDisplay *pThis,
19174         PRUint32 screenId
19175     );
19176 
19177     nsresult (*CompleteVHWACommand)(
19178         IDisplay *pThis,
19179         PRUint8 * command
19180     );
19181 
19182     nsresult (*ViewportChanged)(
19183         IDisplay *pThis,
19184         PRUint32 screenId,
19185         PRUint32 x,
19186         PRUint32 y,
19187         PRUint32 width,
19188         PRUint32 height
19189     );
19190 
19191     nsresult (*QuerySourceBitmap)(
19192         IDisplay *pThis,
19193         PRUint32 screenId,
19194         IDisplaySourceBitmap * * displaySourceBitmap
19195     );
19196 
19197     nsresult (*NotifyScaleFactorChange)(
19198         IDisplay *pThis,
19199         PRUint32 screenId,
19200         PRUint32 u32ScaleFactorWMultiplied,
19201         PRUint32 u32ScaleFactorHMultiplied
19202     );
19203 
19204     nsresult (*NotifyHiDPIOutputPolicyChange)(
19205         IDisplay *pThis,
19206         PRBool fUnscaledHiDPI
19207     );
19208 
19209     nsresult (*SetScreenLayout)(
19210         IDisplay *pThis,
19211         PRUint32 screenLayoutMode,
19212         PRUint32 guestScreenInfoSize,
19213         IGuestScreenInfo ** guestScreenInfo
19214     );
19215 
19216     nsresult (*DetachScreens)(
19217         IDisplay *pThis,
19218         PRUint32 screenIdsSize,
19219         PRInt32* screenIds
19220     );
19221 
19222     nsresult (*CreateGuestScreenInfo)(
19223         IDisplay *pThis,
19224         PRUint32 display,
19225         PRUint32 status,
19226         PRBool primary,
19227         PRBool changeOrigin,
19228         PRInt32 originX,
19229         PRInt32 originY,
19230         PRUint32 width,
19231         PRUint32 height,
19232         PRUint32 bitsPerPixel,
19233         IGuestScreenInfo * * guestScreenInfo
19234     );
19235 
19236     nsresult (*InternalAndReservedMethod1IDisplay)(IDisplay *pThis);
19237 
19238     nsresult (*InternalAndReservedMethod2IDisplay)(IDisplay *pThis);
19239 
19240     nsresult (*InternalAndReservedMethod3IDisplay)(IDisplay *pThis);
19241 
19242     nsresult (*InternalAndReservedMethod4IDisplay)(IDisplay *pThis);
19243 
19244     nsresult (*InternalAndReservedMethod5IDisplay)(IDisplay *pThis);
19245 
19246     nsresult (*InternalAndReservedMethod6IDisplay)(IDisplay *pThis);
19247 
19248     nsresult (*InternalAndReservedMethod7IDisplay)(IDisplay *pThis);
19249 
19250     nsresult (*InternalAndReservedMethod8IDisplay)(IDisplay *pThis);
19251 
19252 };
19253 #   else /* VBOX_WITH_GLUE */
19254 struct IDisplayVtbl
19255 {
19256     nsresult (*QueryInterface)(IDisplay *pThis, const nsID *iid, void **resultp);
19257     nsrefcnt (*AddRef)(IDisplay *pThis);
19258     nsrefcnt (*Release)(IDisplay *pThis);
19259     nsresult (*GetGuestScreenLayout)(IDisplay *pThis, PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout);
19260 
19261     nsresult (*GetInternalAndReservedAttribute1IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19262 
19263     nsresult (*GetInternalAndReservedAttribute2IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19264 
19265     nsresult (*GetInternalAndReservedAttribute3IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19266 
19267     nsresult (*GetInternalAndReservedAttribute4IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19268 
19269     nsresult (*GetInternalAndReservedAttribute5IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19270 
19271     nsresult (*GetInternalAndReservedAttribute6IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19272 
19273     nsresult (*GetInternalAndReservedAttribute7IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19274 
19275     nsresult (*GetInternalAndReservedAttribute8IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19276 
19277     nsresult (*GetInternalAndReservedAttribute9IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19278 
19279     nsresult (*GetInternalAndReservedAttribute10IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19280 
19281     nsresult (*GetInternalAndReservedAttribute11IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19282 
19283     nsresult (*GetInternalAndReservedAttribute12IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19284 
19285     nsresult (*GetInternalAndReservedAttribute13IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19286 
19287     nsresult (*GetInternalAndReservedAttribute14IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19288 
19289     nsresult (*GetInternalAndReservedAttribute15IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19290 
19291     nsresult (*GetInternalAndReservedAttribute16IDisplay)(IDisplay *pThis, PRUint32 *reserved);
19292 
19293     nsresult (*GetScreenResolution)(
19294         IDisplay *pThis,
19295         PRUint32 screenId,
19296         PRUint32 * width,
19297         PRUint32 * height,
19298         PRUint32 * bitsPerPixel,
19299         PRInt32 * xOrigin,
19300         PRInt32 * yOrigin,
19301         PRUint32 * guestMonitorStatus
19302     );
19303 
19304     nsresult (*AttachFramebuffer)(
19305         IDisplay *pThis,
19306         PRUint32 screenId,
19307         IFramebuffer * framebuffer,
19308         PRUnichar * * id
19309     );
19310 
19311     nsresult (*DetachFramebuffer)(
19312         IDisplay *pThis,
19313         PRUint32 screenId,
19314         PRUnichar * id
19315     );
19316 
19317     nsresult (*QueryFramebuffer)(
19318         IDisplay *pThis,
19319         PRUint32 screenId,
19320         IFramebuffer * * framebuffer
19321     );
19322 
19323     nsresult (*SetVideoModeHint)(
19324         IDisplay *pThis,
19325         PRUint32 display,
19326         PRBool enabled,
19327         PRBool changeOrigin,
19328         PRInt32 originX,
19329         PRInt32 originY,
19330         PRUint32 width,
19331         PRUint32 height,
19332         PRUint32 bitsPerPixel,
19333         PRBool notify
19334     );
19335 
19336     nsresult (*GetVideoModeHint)(
19337         IDisplay *pThis,
19338         PRUint32 display,
19339         PRBool * enabled,
19340         PRBool * changeOrigin,
19341         PRInt32 * originX,
19342         PRInt32 * originY,
19343         PRUint32 * width,
19344         PRUint32 * height,
19345         PRUint32 * bitsPerPixel
19346     );
19347 
19348     nsresult (*SetSeamlessMode)(
19349         IDisplay *pThis,
19350         PRBool enabled
19351     );
19352 
19353     nsresult (*TakeScreenShot)(
19354         IDisplay *pThis,
19355         PRUint32 screenId,
19356         PRUint8 * address,
19357         PRUint32 width,
19358         PRUint32 height,
19359         PRUint32 bitmapFormat
19360     );
19361 
19362     nsresult (*TakeScreenShotToArray)(
19363         IDisplay *pThis,
19364         PRUint32 screenId,
19365         PRUint32 width,
19366         PRUint32 height,
19367         PRUint32 bitmapFormat,
19368         PRUint32 *screenDataSize,
19369         PRUint8** screenData
19370     );
19371 
19372     nsresult (*DrawToScreen)(
19373         IDisplay *pThis,
19374         PRUint32 screenId,
19375         PRUint8 * address,
19376         PRUint32 x,
19377         PRUint32 y,
19378         PRUint32 width,
19379         PRUint32 height
19380     );
19381 
19382     nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
19383 
19384     nsresult (*InvalidateAndUpdateScreen)(
19385         IDisplay *pThis,
19386         PRUint32 screenId
19387     );
19388 
19389     nsresult (*CompleteVHWACommand)(
19390         IDisplay *pThis,
19391         PRUint8 * command
19392     );
19393 
19394     nsresult (*ViewportChanged)(
19395         IDisplay *pThis,
19396         PRUint32 screenId,
19397         PRUint32 x,
19398         PRUint32 y,
19399         PRUint32 width,
19400         PRUint32 height
19401     );
19402 
19403     nsresult (*QuerySourceBitmap)(
19404         IDisplay *pThis,
19405         PRUint32 screenId,
19406         IDisplaySourceBitmap * * displaySourceBitmap
19407     );
19408 
19409     nsresult (*NotifyScaleFactorChange)(
19410         IDisplay *pThis,
19411         PRUint32 screenId,
19412         PRUint32 u32ScaleFactorWMultiplied,
19413         PRUint32 u32ScaleFactorHMultiplied
19414     );
19415 
19416     nsresult (*NotifyHiDPIOutputPolicyChange)(
19417         IDisplay *pThis,
19418         PRBool fUnscaledHiDPI
19419     );
19420 
19421     nsresult (*SetScreenLayout)(
19422         IDisplay *pThis,
19423         PRUint32 screenLayoutMode,
19424         PRUint32 guestScreenInfoSize,
19425         IGuestScreenInfo ** guestScreenInfo
19426     );
19427 
19428     nsresult (*DetachScreens)(
19429         IDisplay *pThis,
19430         PRUint32 screenIdsSize,
19431         PRInt32* screenIds
19432     );
19433 
19434     nsresult (*CreateGuestScreenInfo)(
19435         IDisplay *pThis,
19436         PRUint32 display,
19437         PRUint32 status,
19438         PRBool primary,
19439         PRBool changeOrigin,
19440         PRInt32 originX,
19441         PRInt32 originY,
19442         PRUint32 width,
19443         PRUint32 height,
19444         PRUint32 bitsPerPixel,
19445         IGuestScreenInfo * * guestScreenInfo
19446     );
19447 
19448     nsresult (*InternalAndReservedMethod1IDisplay)(IDisplay *pThis);
19449 
19450     nsresult (*InternalAndReservedMethod2IDisplay)(IDisplay *pThis);
19451 
19452     nsresult (*InternalAndReservedMethod3IDisplay)(IDisplay *pThis);
19453 
19454     nsresult (*InternalAndReservedMethod4IDisplay)(IDisplay *pThis);
19455 
19456     nsresult (*InternalAndReservedMethod5IDisplay)(IDisplay *pThis);
19457 
19458     nsresult (*InternalAndReservedMethod6IDisplay)(IDisplay *pThis);
19459 
19460     nsresult (*InternalAndReservedMethod7IDisplay)(IDisplay *pThis);
19461 
19462     nsresult (*InternalAndReservedMethod8IDisplay)(IDisplay *pThis);
19463 
19464 };
19465 #    define IDisplay_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19466 #    define IDisplay_AddRef(p) ((p)->lpVtbl->AddRef(p))
19467 #    define IDisplay_Release(p) ((p)->lpVtbl->Release(p))
19468 #    define IDisplay_get_GuestScreenLayout(p, aGuestScreenLayout) ((p)->lpVtbl->GetGuestScreenLayout(p, aGuestScreenLayout))
19469 #    define IDisplay_GetGuestScreenLayout(p, aGuestScreenLayout) ((p)->lpVtbl->GetGuestScreenLayout(p, aGuestScreenLayout))
19470 #    define IDisplay_GetScreenResolution(p, aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus) ((p)->lpVtbl->GetScreenResolution(p, aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus))
19471 #    define IDisplay_AttachFramebuffer(p, aScreenId, aFramebuffer, aId) ((p)->lpVtbl->AttachFramebuffer(p, aScreenId, aFramebuffer, aId))
19472 #    define IDisplay_DetachFramebuffer(p, aScreenId, aId) ((p)->lpVtbl->DetachFramebuffer(p, aScreenId, aId))
19473 #    define IDisplay_QueryFramebuffer(p, aScreenId, aFramebuffer) ((p)->lpVtbl->QueryFramebuffer(p, aScreenId, aFramebuffer))
19474 #    define IDisplay_SetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aNotify) ((p)->lpVtbl->SetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aNotify))
19475 #    define IDisplay_GetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel) ((p)->lpVtbl->GetVideoModeHint(p, aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel))
19476 #    define IDisplay_SetSeamlessMode(p, aEnabled) ((p)->lpVtbl->SetSeamlessMode(p, aEnabled))
19477 #    define IDisplay_TakeScreenShot(p, aScreenId, aAddress, aWidth, aHeight, aBitmapFormat) ((p)->lpVtbl->TakeScreenShot(p, aScreenId, aAddress, aWidth, aHeight, aBitmapFormat))
19478 #    define IDisplay_TakeScreenShotToArray(p, aScreenId, aWidth, aHeight, aBitmapFormat, aScreenData) ((p)->lpVtbl->TakeScreenShotToArray(p, aScreenId, aWidth, aHeight, aBitmapFormat, aScreenData))
19479 #    define IDisplay_DrawToScreen(p, aScreenId, aAddress, aX, aY, aWidth, aHeight) ((p)->lpVtbl->DrawToScreen(p, aScreenId, aAddress, aX, aY, aWidth, aHeight))
19480 #    define IDisplay_InvalidateAndUpdate(p) ((p)->lpVtbl->InvalidateAndUpdate(p))
19481 #    define IDisplay_InvalidateAndUpdateScreen(p, aScreenId) ((p)->lpVtbl->InvalidateAndUpdateScreen(p, aScreenId))
19482 #    define IDisplay_CompleteVHWACommand(p, aCommand) ((p)->lpVtbl->CompleteVHWACommand(p, aCommand))
19483 #    define IDisplay_ViewportChanged(p, aScreenId, aX, aY, aWidth, aHeight) ((p)->lpVtbl->ViewportChanged(p, aScreenId, aX, aY, aWidth, aHeight))
19484 #    define IDisplay_QuerySourceBitmap(p, aScreenId, aDisplaySourceBitmap) ((p)->lpVtbl->QuerySourceBitmap(p, aScreenId, aDisplaySourceBitmap))
19485 #    define IDisplay_NotifyScaleFactorChange(p, aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied) ((p)->lpVtbl->NotifyScaleFactorChange(p, aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied))
19486 #    define IDisplay_NotifyHiDPIOutputPolicyChange(p, aFUnscaledHiDPI) ((p)->lpVtbl->NotifyHiDPIOutputPolicyChange(p, aFUnscaledHiDPI))
19487 #    define IDisplay_SetScreenLayout(p, aScreenLayoutMode, aGuestScreenInfo) ((p)->lpVtbl->SetScreenLayout(p, aScreenLayoutMode, aGuestScreenInfo))
19488 #    define IDisplay_DetachScreens(p, aScreenIds) ((p)->lpVtbl->DetachScreens(p, aScreenIds))
19489 #    define IDisplay_CreateGuestScreenInfo(p, aDisplay, aStatus, aPrimary, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aGuestScreenInfo) ((p)->lpVtbl->CreateGuestScreenInfo(p, aDisplay, aStatus, aPrimary, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aGuestScreenInfo))
19490 #   endif /* VBOX_WITH_GLUE */
19491 
19492 interface IDisplay
19493 {
19494 #   ifndef VBOX_WITH_GLUE
19495     struct IDisplay_vtbl *vtbl;
19496 #   else /* VBOX_WITH_GLUE */
19497     CONST_VTBL struct IDisplayVtbl *lpVtbl;
19498 #   endif /* VBOX_WITH_GLUE */
19499 };
19500 /* End of struct IDisplay declaration */
19501 
19502 
19503 /* Start of struct INetworkAdapter declaration */
19504 #   define INETWORKADAPTER_IID_STR "e9a0c183-7071-4894-93d6-dcbec010fa91"
19505 #   define INETWORKADAPTER_IID { \
19506     0xe9a0c183, 0x7071, 0x4894, \
19507     { 0x93, 0xd6, 0xdc, 0xbe, 0xc0, 0x10, 0xfa, 0x91 } \
19508 }
19509 /* COM compatibility */
19510 VBOX_EXTERN_CONST(nsIID, IID_INetworkAdapter);
19511 #   ifndef VBOX_WITH_GLUE
19512 struct INetworkAdapter_vtbl
19513 {
19514     struct nsISupports_vtbl nsisupports;
19515 
19516     nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
19517     nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
19518 
19519     nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
19520 
19521     nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
19522     nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
19523 
19524     nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
19525     nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
19526 
19527     nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
19528     nsresult (*SetAttachmentType)(INetworkAdapter *pThis, PRUint32 attachmentType);
19529 
19530     nsresult (*GetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * *bridgedInterface);
19531     nsresult (*SetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * bridgedInterface);
19532 
19533     nsresult (*GetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * *hostOnlyInterface);
19534     nsresult (*SetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * hostOnlyInterface);
19535 
19536     nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
19537     nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
19538 
19539     nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
19540     nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
19541 
19542     nsresult (*GetGenericDriver)(INetworkAdapter *pThis, PRUnichar * *genericDriver);
19543     nsresult (*SetGenericDriver)(INetworkAdapter *pThis, PRUnichar * genericDriver);
19544 
19545     nsresult (*GetCloudNetwork)(INetworkAdapter *pThis, PRUnichar * *cloudNetwork);
19546     nsresult (*SetCloudNetwork)(INetworkAdapter *pThis, PRUnichar * cloudNetwork);
19547 
19548     nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
19549     nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
19550 
19551     nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
19552     nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
19553 
19554     nsresult (*GetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 *promiscModePolicy);
19555     nsresult (*SetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 promiscModePolicy);
19556 
19557     nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
19558     nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
19559 
19560     nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
19561     nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
19562 
19563     nsresult (*GetNATEngine)(INetworkAdapter *pThis, INATEngine * *NATEngine);
19564 
19565     nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
19566     nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
19567 
19568     nsresult (*GetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * *bandwidthGroup);
19569     nsresult (*SetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * bandwidthGroup);
19570 
19571     nsresult (*GetInternalAndReservedAttribute1INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19572 
19573     nsresult (*GetInternalAndReservedAttribute2INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19574 
19575     nsresult (*GetInternalAndReservedAttribute3INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19576 
19577     nsresult (*GetInternalAndReservedAttribute4INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19578 
19579     nsresult (*GetInternalAndReservedAttribute5INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19580 
19581     nsresult (*GetInternalAndReservedAttribute6INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19582 
19583     nsresult (*GetInternalAndReservedAttribute7INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19584 
19585     nsresult (*GetInternalAndReservedAttribute8INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19586 
19587     nsresult (*GetProperty)(
19588         INetworkAdapter *pThis,
19589         PRUnichar * key,
19590         PRUnichar * * value
19591     );
19592 
19593     nsresult (*SetProperty)(
19594         INetworkAdapter *pThis,
19595         PRUnichar * key,
19596         PRUnichar * value
19597     );
19598 
19599     nsresult (*GetProperties)(
19600         INetworkAdapter *pThis,
19601         PRUnichar * names,
19602         PRUint32 *returnNamesSize,
19603         PRUnichar *** returnNames,
19604         PRUint32 *returnValuesSize,
19605         PRUnichar *** returnValues
19606     );
19607 
19608     nsresult (*InternalAndReservedMethod1INetworkAdapter)(INetworkAdapter *pThis);
19609 
19610     nsresult (*InternalAndReservedMethod2INetworkAdapter)(INetworkAdapter *pThis);
19611 
19612     nsresult (*InternalAndReservedMethod3INetworkAdapter)(INetworkAdapter *pThis);
19613 
19614     nsresult (*InternalAndReservedMethod4INetworkAdapter)(INetworkAdapter *pThis);
19615 
19616 };
19617 #   else /* VBOX_WITH_GLUE */
19618 struct INetworkAdapterVtbl
19619 {
19620     nsresult (*QueryInterface)(INetworkAdapter *pThis, const nsID *iid, void **resultp);
19621     nsrefcnt (*AddRef)(INetworkAdapter *pThis);
19622     nsrefcnt (*Release)(INetworkAdapter *pThis);
19623     nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
19624     nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
19625 
19626     nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
19627 
19628     nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
19629     nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
19630 
19631     nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
19632     nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
19633 
19634     nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
19635     nsresult (*SetAttachmentType)(INetworkAdapter *pThis, PRUint32 attachmentType);
19636 
19637     nsresult (*GetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * *bridgedInterface);
19638     nsresult (*SetBridgedInterface)(INetworkAdapter *pThis, PRUnichar * bridgedInterface);
19639 
19640     nsresult (*GetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * *hostOnlyInterface);
19641     nsresult (*SetHostOnlyInterface)(INetworkAdapter *pThis, PRUnichar * hostOnlyInterface);
19642 
19643     nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
19644     nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
19645 
19646     nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
19647     nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
19648 
19649     nsresult (*GetGenericDriver)(INetworkAdapter *pThis, PRUnichar * *genericDriver);
19650     nsresult (*SetGenericDriver)(INetworkAdapter *pThis, PRUnichar * genericDriver);
19651 
19652     nsresult (*GetCloudNetwork)(INetworkAdapter *pThis, PRUnichar * *cloudNetwork);
19653     nsresult (*SetCloudNetwork)(INetworkAdapter *pThis, PRUnichar * cloudNetwork);
19654 
19655     nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
19656     nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
19657 
19658     nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
19659     nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
19660 
19661     nsresult (*GetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 *promiscModePolicy);
19662     nsresult (*SetPromiscModePolicy)(INetworkAdapter *pThis, PRUint32 promiscModePolicy);
19663 
19664     nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
19665     nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
19666 
19667     nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
19668     nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
19669 
19670     nsresult (*GetNATEngine)(INetworkAdapter *pThis, INATEngine * *NATEngine);
19671 
19672     nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
19673     nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
19674 
19675     nsresult (*GetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * *bandwidthGroup);
19676     nsresult (*SetBandwidthGroup)(INetworkAdapter *pThis, IBandwidthGroup * bandwidthGroup);
19677 
19678     nsresult (*GetInternalAndReservedAttribute1INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19679 
19680     nsresult (*GetInternalAndReservedAttribute2INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19681 
19682     nsresult (*GetInternalAndReservedAttribute3INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19683 
19684     nsresult (*GetInternalAndReservedAttribute4INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19685 
19686     nsresult (*GetInternalAndReservedAttribute5INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19687 
19688     nsresult (*GetInternalAndReservedAttribute6INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19689 
19690     nsresult (*GetInternalAndReservedAttribute7INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19691 
19692     nsresult (*GetInternalAndReservedAttribute8INetworkAdapter)(INetworkAdapter *pThis, PRUint32 *reserved);
19693 
19694     nsresult (*GetProperty)(
19695         INetworkAdapter *pThis,
19696         PRUnichar * key,
19697         PRUnichar * * value
19698     );
19699 
19700     nsresult (*SetProperty)(
19701         INetworkAdapter *pThis,
19702         PRUnichar * key,
19703         PRUnichar * value
19704     );
19705 
19706     nsresult (*GetProperties)(
19707         INetworkAdapter *pThis,
19708         PRUnichar * names,
19709         PRUint32 *returnNamesSize,
19710         PRUnichar *** returnNames,
19711         PRUint32 *returnValuesSize,
19712         PRUnichar *** returnValues
19713     );
19714 
19715     nsresult (*InternalAndReservedMethod1INetworkAdapter)(INetworkAdapter *pThis);
19716 
19717     nsresult (*InternalAndReservedMethod2INetworkAdapter)(INetworkAdapter *pThis);
19718 
19719     nsresult (*InternalAndReservedMethod3INetworkAdapter)(INetworkAdapter *pThis);
19720 
19721     nsresult (*InternalAndReservedMethod4INetworkAdapter)(INetworkAdapter *pThis);
19722 
19723 };
19724 #    define INetworkAdapter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19725 #    define INetworkAdapter_AddRef(p) ((p)->lpVtbl->AddRef(p))
19726 #    define INetworkAdapter_Release(p) ((p)->lpVtbl->Release(p))
19727 #    define INetworkAdapter_get_AdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
19728 #    define INetworkAdapter_GetAdapterType(p, aAdapterType) ((p)->lpVtbl->GetAdapterType(p, aAdapterType))
19729 #    define INetworkAdapter_put_AdapterType(p, aAdapterType) ((p)->lpVtbl->SetAdapterType(p, aAdapterType))
19730 #    define INetworkAdapter_SetAdapterType(p, aAdapterType) ((p)->lpVtbl->SetAdapterType(p, aAdapterType))
19731 #    define INetworkAdapter_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
19732 #    define INetworkAdapter_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
19733 #    define INetworkAdapter_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
19734 #    define INetworkAdapter_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
19735 #    define INetworkAdapter_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
19736 #    define INetworkAdapter_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
19737 #    define INetworkAdapter_get_MACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
19738 #    define INetworkAdapter_GetMACAddress(p, aMACAddress) ((p)->lpVtbl->GetMACAddress(p, aMACAddress))
19739 #    define INetworkAdapter_put_MACAddress(p, aMACAddress) ((p)->lpVtbl->SetMACAddress(p, aMACAddress))
19740 #    define INetworkAdapter_SetMACAddress(p, aMACAddress) ((p)->lpVtbl->SetMACAddress(p, aMACAddress))
19741 #    define INetworkAdapter_get_AttachmentType(p, aAttachmentType) ((p)->lpVtbl->GetAttachmentType(p, aAttachmentType))
19742 #    define INetworkAdapter_GetAttachmentType(p, aAttachmentType) ((p)->lpVtbl->GetAttachmentType(p, aAttachmentType))
19743 #    define INetworkAdapter_put_AttachmentType(p, aAttachmentType) ((p)->lpVtbl->SetAttachmentType(p, aAttachmentType))
19744 #    define INetworkAdapter_SetAttachmentType(p, aAttachmentType) ((p)->lpVtbl->SetAttachmentType(p, aAttachmentType))
19745 #    define INetworkAdapter_get_BridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->GetBridgedInterface(p, aBridgedInterface))
19746 #    define INetworkAdapter_GetBridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->GetBridgedInterface(p, aBridgedInterface))
19747 #    define INetworkAdapter_put_BridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->SetBridgedInterface(p, aBridgedInterface))
19748 #    define INetworkAdapter_SetBridgedInterface(p, aBridgedInterface) ((p)->lpVtbl->SetBridgedInterface(p, aBridgedInterface))
19749 #    define INetworkAdapter_get_HostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->GetHostOnlyInterface(p, aHostOnlyInterface))
19750 #    define INetworkAdapter_GetHostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->GetHostOnlyInterface(p, aHostOnlyInterface))
19751 #    define INetworkAdapter_put_HostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->SetHostOnlyInterface(p, aHostOnlyInterface))
19752 #    define INetworkAdapter_SetHostOnlyInterface(p, aHostOnlyInterface) ((p)->lpVtbl->SetHostOnlyInterface(p, aHostOnlyInterface))
19753 #    define INetworkAdapter_get_InternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->GetInternalNetwork(p, aInternalNetwork))
19754 #    define INetworkAdapter_GetInternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->GetInternalNetwork(p, aInternalNetwork))
19755 #    define INetworkAdapter_put_InternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->SetInternalNetwork(p, aInternalNetwork))
19756 #    define INetworkAdapter_SetInternalNetwork(p, aInternalNetwork) ((p)->lpVtbl->SetInternalNetwork(p, aInternalNetwork))
19757 #    define INetworkAdapter_get_NATNetwork(p, aNATNetwork) ((p)->lpVtbl->GetNATNetwork(p, aNATNetwork))
19758 #    define INetworkAdapter_GetNATNetwork(p, aNATNetwork) ((p)->lpVtbl->GetNATNetwork(p, aNATNetwork))
19759 #    define INetworkAdapter_put_NATNetwork(p, aNATNetwork) ((p)->lpVtbl->SetNATNetwork(p, aNATNetwork))
19760 #    define INetworkAdapter_SetNATNetwork(p, aNATNetwork) ((p)->lpVtbl->SetNATNetwork(p, aNATNetwork))
19761 #    define INetworkAdapter_get_GenericDriver(p, aGenericDriver) ((p)->lpVtbl->GetGenericDriver(p, aGenericDriver))
19762 #    define INetworkAdapter_GetGenericDriver(p, aGenericDriver) ((p)->lpVtbl->GetGenericDriver(p, aGenericDriver))
19763 #    define INetworkAdapter_put_GenericDriver(p, aGenericDriver) ((p)->lpVtbl->SetGenericDriver(p, aGenericDriver))
19764 #    define INetworkAdapter_SetGenericDriver(p, aGenericDriver) ((p)->lpVtbl->SetGenericDriver(p, aGenericDriver))
19765 #    define INetworkAdapter_get_CloudNetwork(p, aCloudNetwork) ((p)->lpVtbl->GetCloudNetwork(p, aCloudNetwork))
19766 #    define INetworkAdapter_GetCloudNetwork(p, aCloudNetwork) ((p)->lpVtbl->GetCloudNetwork(p, aCloudNetwork))
19767 #    define INetworkAdapter_put_CloudNetwork(p, aCloudNetwork) ((p)->lpVtbl->SetCloudNetwork(p, aCloudNetwork))
19768 #    define INetworkAdapter_SetCloudNetwork(p, aCloudNetwork) ((p)->lpVtbl->SetCloudNetwork(p, aCloudNetwork))
19769 #    define INetworkAdapter_get_CableConnected(p, aCableConnected) ((p)->lpVtbl->GetCableConnected(p, aCableConnected))
19770 #    define INetworkAdapter_GetCableConnected(p, aCableConnected) ((p)->lpVtbl->GetCableConnected(p, aCableConnected))
19771 #    define INetworkAdapter_put_CableConnected(p, aCableConnected) ((p)->lpVtbl->SetCableConnected(p, aCableConnected))
19772 #    define INetworkAdapter_SetCableConnected(p, aCableConnected) ((p)->lpVtbl->SetCableConnected(p, aCableConnected))
19773 #    define INetworkAdapter_get_LineSpeed(p, aLineSpeed) ((p)->lpVtbl->GetLineSpeed(p, aLineSpeed))
19774 #    define INetworkAdapter_GetLineSpeed(p, aLineSpeed) ((p)->lpVtbl->GetLineSpeed(p, aLineSpeed))
19775 #    define INetworkAdapter_put_LineSpeed(p, aLineSpeed) ((p)->lpVtbl->SetLineSpeed(p, aLineSpeed))
19776 #    define INetworkAdapter_SetLineSpeed(p, aLineSpeed) ((p)->lpVtbl->SetLineSpeed(p, aLineSpeed))
19777 #    define INetworkAdapter_get_PromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->GetPromiscModePolicy(p, aPromiscModePolicy))
19778 #    define INetworkAdapter_GetPromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->GetPromiscModePolicy(p, aPromiscModePolicy))
19779 #    define INetworkAdapter_put_PromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->SetPromiscModePolicy(p, aPromiscModePolicy))
19780 #    define INetworkAdapter_SetPromiscModePolicy(p, aPromiscModePolicy) ((p)->lpVtbl->SetPromiscModePolicy(p, aPromiscModePolicy))
19781 #    define INetworkAdapter_get_TraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->GetTraceEnabled(p, aTraceEnabled))
19782 #    define INetworkAdapter_GetTraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->GetTraceEnabled(p, aTraceEnabled))
19783 #    define INetworkAdapter_put_TraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->SetTraceEnabled(p, aTraceEnabled))
19784 #    define INetworkAdapter_SetTraceEnabled(p, aTraceEnabled) ((p)->lpVtbl->SetTraceEnabled(p, aTraceEnabled))
19785 #    define INetworkAdapter_get_TraceFile(p, aTraceFile) ((p)->lpVtbl->GetTraceFile(p, aTraceFile))
19786 #    define INetworkAdapter_GetTraceFile(p, aTraceFile) ((p)->lpVtbl->GetTraceFile(p, aTraceFile))
19787 #    define INetworkAdapter_put_TraceFile(p, aTraceFile) ((p)->lpVtbl->SetTraceFile(p, aTraceFile))
19788 #    define INetworkAdapter_SetTraceFile(p, aTraceFile) ((p)->lpVtbl->SetTraceFile(p, aTraceFile))
19789 #    define INetworkAdapter_get_NATEngine(p, aNATEngine) ((p)->lpVtbl->GetNATEngine(p, aNATEngine))
19790 #    define INetworkAdapter_GetNATEngine(p, aNATEngine) ((p)->lpVtbl->GetNATEngine(p, aNATEngine))
19791 #    define INetworkAdapter_get_BootPriority(p, aBootPriority) ((p)->lpVtbl->GetBootPriority(p, aBootPriority))
19792 #    define INetworkAdapter_GetBootPriority(p, aBootPriority) ((p)->lpVtbl->GetBootPriority(p, aBootPriority))
19793 #    define INetworkAdapter_put_BootPriority(p, aBootPriority) ((p)->lpVtbl->SetBootPriority(p, aBootPriority))
19794 #    define INetworkAdapter_SetBootPriority(p, aBootPriority) ((p)->lpVtbl->SetBootPriority(p, aBootPriority))
19795 #    define INetworkAdapter_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
19796 #    define INetworkAdapter_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
19797 #    define INetworkAdapter_put_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroup(p, aBandwidthGroup))
19798 #    define INetworkAdapter_SetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->SetBandwidthGroup(p, aBandwidthGroup))
19799 #    define INetworkAdapter_GetProperty(p, aKey, aValue) ((p)->lpVtbl->GetProperty(p, aKey, aValue))
19800 #    define INetworkAdapter_SetProperty(p, aKey, aValue) ((p)->lpVtbl->SetProperty(p, aKey, aValue))
19801 #    define INetworkAdapter_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
19802 #   endif /* VBOX_WITH_GLUE */
19803 
19804 interface INetworkAdapter
19805 {
19806 #   ifndef VBOX_WITH_GLUE
19807     struct INetworkAdapter_vtbl *vtbl;
19808 #   else /* VBOX_WITH_GLUE */
19809     CONST_VTBL struct INetworkAdapterVtbl *lpVtbl;
19810 #   endif /* VBOX_WITH_GLUE */
19811 };
19812 /* End of struct INetworkAdapter declaration */
19813 
19814 
19815 /* Start of struct ISerialPort declaration */
19816 #   define ISERIALPORT_IID_STR "5587d0f6-a227-4f23-8278-2f675eea1bb2"
19817 #   define ISERIALPORT_IID { \
19818     0x5587d0f6, 0xa227, 0x4f23, \
19819     { 0x82, 0x78, 0x2f, 0x67, 0x5e, 0xea, 0x1b, 0xb2 } \
19820 }
19821 /* COM compatibility */
19822 VBOX_EXTERN_CONST(nsIID, IID_ISerialPort);
19823 #   ifndef VBOX_WITH_GLUE
19824 struct ISerialPort_vtbl
19825 {
19826     struct nsISupports_vtbl nsisupports;
19827 
19828     nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
19829 
19830     nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
19831     nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
19832 
19833     nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
19834     nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
19835 
19836     nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
19837     nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
19838 
19839     nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
19840     nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
19841 
19842     nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
19843     nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
19844 
19845     nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
19846     nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
19847 
19848     nsresult (*GetUartType)(ISerialPort *pThis, PRUint32 *uartType);
19849     nsresult (*SetUartType)(ISerialPort *pThis, PRUint32 uartType);
19850 
19851     nsresult (*GetInternalAndReservedAttribute1ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19852 
19853     nsresult (*GetInternalAndReservedAttribute2ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19854 
19855     nsresult (*GetInternalAndReservedAttribute3ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19856 
19857     nsresult (*GetInternalAndReservedAttribute4ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19858 
19859 };
19860 #   else /* VBOX_WITH_GLUE */
19861 struct ISerialPortVtbl
19862 {
19863     nsresult (*QueryInterface)(ISerialPort *pThis, const nsID *iid, void **resultp);
19864     nsrefcnt (*AddRef)(ISerialPort *pThis);
19865     nsrefcnt (*Release)(ISerialPort *pThis);
19866     nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
19867 
19868     nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
19869     nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
19870 
19871     nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
19872     nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
19873 
19874     nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
19875     nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
19876 
19877     nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
19878     nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
19879 
19880     nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
19881     nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
19882 
19883     nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
19884     nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
19885 
19886     nsresult (*GetUartType)(ISerialPort *pThis, PRUint32 *uartType);
19887     nsresult (*SetUartType)(ISerialPort *pThis, PRUint32 uartType);
19888 
19889     nsresult (*GetInternalAndReservedAttribute1ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19890 
19891     nsresult (*GetInternalAndReservedAttribute2ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19892 
19893     nsresult (*GetInternalAndReservedAttribute3ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19894 
19895     nsresult (*GetInternalAndReservedAttribute4ISerialPort)(ISerialPort *pThis, PRUint32 *reserved);
19896 
19897 };
19898 #    define ISerialPort_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
19899 #    define ISerialPort_AddRef(p) ((p)->lpVtbl->AddRef(p))
19900 #    define ISerialPort_Release(p) ((p)->lpVtbl->Release(p))
19901 #    define ISerialPort_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
19902 #    define ISerialPort_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
19903 #    define ISerialPort_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
19904 #    define ISerialPort_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
19905 #    define ISerialPort_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
19906 #    define ISerialPort_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
19907 #    define ISerialPort_get_IOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
19908 #    define ISerialPort_GetIOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
19909 #    define ISerialPort_put_IOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
19910 #    define ISerialPort_SetIOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
19911 #    define ISerialPort_get_IRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
19912 #    define ISerialPort_GetIRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
19913 #    define ISerialPort_put_IRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
19914 #    define ISerialPort_SetIRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
19915 #    define ISerialPort_get_HostMode(p, aHostMode) ((p)->lpVtbl->GetHostMode(p, aHostMode))
19916 #    define ISerialPort_GetHostMode(p, aHostMode) ((p)->lpVtbl->GetHostMode(p, aHostMode))
19917 #    define ISerialPort_put_HostMode(p, aHostMode) ((p)->lpVtbl->SetHostMode(p, aHostMode))
19918 #    define ISerialPort_SetHostMode(p, aHostMode) ((p)->lpVtbl->SetHostMode(p, aHostMode))
19919 #    define ISerialPort_get_Server(p, aServer) ((p)->lpVtbl->GetServer(p, aServer))
19920 #    define ISerialPort_GetServer(p, aServer) ((p)->lpVtbl->GetServer(p, aServer))
19921 #    define ISerialPort_put_Server(p, aServer) ((p)->lpVtbl->SetServer(p, aServer))
19922 #    define ISerialPort_SetServer(p, aServer) ((p)->lpVtbl->SetServer(p, aServer))
19923 #    define ISerialPort_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
19924 #    define ISerialPort_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
19925 #    define ISerialPort_put_Path(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
19926 #    define ISerialPort_SetPath(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
19927 #    define ISerialPort_get_UartType(p, aUartType) ((p)->lpVtbl->GetUartType(p, aUartType))
19928 #    define ISerialPort_GetUartType(p, aUartType) ((p)->lpVtbl->GetUartType(p, aUartType))
19929 #    define ISerialPort_put_UartType(p, aUartType) ((p)->lpVtbl->SetUartType(p, aUartType))
19930 #    define ISerialPort_SetUartType(p, aUartType) ((p)->lpVtbl->SetUartType(p, aUartType))
19931 #   endif /* VBOX_WITH_GLUE */
19932 
19933 interface ISerialPort
19934 {
19935 #   ifndef VBOX_WITH_GLUE
19936     struct ISerialPort_vtbl *vtbl;
19937 #   else /* VBOX_WITH_GLUE */
19938     CONST_VTBL struct ISerialPortVtbl *lpVtbl;
19939 #   endif /* VBOX_WITH_GLUE */
19940 };
19941 /* End of struct ISerialPort declaration */
19942 
19943 
19944 /* Start of struct IParallelPort declaration */
19945 #   define IPARALLELPORT_IID_STR "788b87df-7708-444b-9eef-c116ce423d39"
19946 #   define IPARALLELPORT_IID { \
19947     0x788b87df, 0x7708, 0x444b, \
19948     { 0x9e, 0xef, 0xc1, 0x16, 0xce, 0x42, 0x3d, 0x39 } \
19949 }
19950 /* COM compatibility */
19951 VBOX_EXTERN_CONST(nsIID, IID_IParallelPort);
19952 #   ifndef VBOX_WITH_GLUE
19953 struct IParallelPort_vtbl
19954 {
19955     struct nsISupports_vtbl nsisupports;
19956 
19957     nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
19958 
19959     nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
19960     nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
19961 
19962     nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
19963     nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
19964 
19965     nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
19966     nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
19967 
19968     nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
19969     nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
19970 
19971     nsresult (*GetInternalAndReservedAttribute1IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
19972 
19973     nsresult (*GetInternalAndReservedAttribute2IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
19974 
19975     nsresult (*GetInternalAndReservedAttribute3IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
19976 
19977     nsresult (*GetInternalAndReservedAttribute4IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
19978 
19979 };
19980 #   else /* VBOX_WITH_GLUE */
19981 struct IParallelPortVtbl
19982 {
19983     nsresult (*QueryInterface)(IParallelPort *pThis, const nsID *iid, void **resultp);
19984     nsrefcnt (*AddRef)(IParallelPort *pThis);
19985     nsrefcnt (*Release)(IParallelPort *pThis);
19986     nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
19987 
19988     nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
19989     nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
19990 
19991     nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
19992     nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
19993 
19994     nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
19995     nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
19996 
19997     nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
19998     nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
19999 
20000     nsresult (*GetInternalAndReservedAttribute1IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
20001 
20002     nsresult (*GetInternalAndReservedAttribute2IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
20003 
20004     nsresult (*GetInternalAndReservedAttribute3IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
20005 
20006     nsresult (*GetInternalAndReservedAttribute4IParallelPort)(IParallelPort *pThis, PRUint32 *reserved);
20007 
20008 };
20009 #    define IParallelPort_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20010 #    define IParallelPort_AddRef(p) ((p)->lpVtbl->AddRef(p))
20011 #    define IParallelPort_Release(p) ((p)->lpVtbl->Release(p))
20012 #    define IParallelPort_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
20013 #    define IParallelPort_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
20014 #    define IParallelPort_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
20015 #    define IParallelPort_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
20016 #    define IParallelPort_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
20017 #    define IParallelPort_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
20018 #    define IParallelPort_get_IOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
20019 #    define IParallelPort_GetIOBase(p, aIOBase) ((p)->lpVtbl->GetIOBase(p, aIOBase))
20020 #    define IParallelPort_put_IOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
20021 #    define IParallelPort_SetIOBase(p, aIOBase) ((p)->lpVtbl->SetIOBase(p, aIOBase))
20022 #    define IParallelPort_get_IRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
20023 #    define IParallelPort_GetIRQ(p, aIRQ) ((p)->lpVtbl->GetIRQ(p, aIRQ))
20024 #    define IParallelPort_put_IRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
20025 #    define IParallelPort_SetIRQ(p, aIRQ) ((p)->lpVtbl->SetIRQ(p, aIRQ))
20026 #    define IParallelPort_get_Path(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
20027 #    define IParallelPort_GetPath(p, aPath) ((p)->lpVtbl->GetPath(p, aPath))
20028 #    define IParallelPort_put_Path(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
20029 #    define IParallelPort_SetPath(p, aPath) ((p)->lpVtbl->SetPath(p, aPath))
20030 #   endif /* VBOX_WITH_GLUE */
20031 
20032 interface IParallelPort
20033 {
20034 #   ifndef VBOX_WITH_GLUE
20035     struct IParallelPort_vtbl *vtbl;
20036 #   else /* VBOX_WITH_GLUE */
20037     CONST_VTBL struct IParallelPortVtbl *lpVtbl;
20038 #   endif /* VBOX_WITH_GLUE */
20039 };
20040 /* End of struct IParallelPort declaration */
20041 
20042 
20043 /* Start of struct IMachineDebugger declaration */
20044 #   define IMACHINEDEBUGGER_IID_STR "00ae6af4-00a7-4104-0009-49bc00b2da80"
20045 #   define IMACHINEDEBUGGER_IID { \
20046     0x00ae6af4, 0x00a7, 0x4104, \
20047     { 0x00, 0x09, 0x49, 0xbc, 0x00, 0xb2, 0xda, 0x80 } \
20048 }
20049 /* COM compatibility */
20050 VBOX_EXTERN_CONST(nsIID, IID_IMachineDebugger);
20051 #   ifndef VBOX_WITH_GLUE
20052 struct IMachineDebugger_vtbl
20053 {
20054     struct nsISupports_vtbl nsisupports;
20055 
20056     nsresult (*GetSingleStep)(IMachineDebugger *pThis, PRBool *singleStep);
20057     nsresult (*SetSingleStep)(IMachineDebugger *pThis, PRBool singleStep);
20058 
20059     nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
20060     nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
20061 
20062     nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
20063     nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
20064 
20065     nsresult (*GetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool *executeAllInIEM);
20066     nsresult (*SetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool executeAllInIEM);
20067 
20068     nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
20069     nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
20070 
20071     nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
20072     nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
20073 
20074     nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
20075     nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
20076 
20077     nsresult (*GetLogDbgFlags)(IMachineDebugger *pThis, PRUnichar * *logDbgFlags);
20078 
20079     nsresult (*GetLogDbgGroups)(IMachineDebugger *pThis, PRUnichar * *logDbgGroups);
20080 
20081     nsresult (*GetLogDbgDestinations)(IMachineDebugger *pThis, PRUnichar * *logDbgDestinations);
20082 
20083     nsresult (*GetLogRelFlags)(IMachineDebugger *pThis, PRUnichar * *logRelFlags);
20084 
20085     nsresult (*GetLogRelGroups)(IMachineDebugger *pThis, PRUnichar * *logRelGroups);
20086 
20087     nsresult (*GetLogRelDestinations)(IMachineDebugger *pThis, PRUnichar * *logRelDestinations);
20088 
20089     nsresult (*GetExecutionEngine)(IMachineDebugger *pThis, PRUint32 *executionEngine);
20090 
20091     nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
20092 
20093     nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
20094 
20095     nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
20096 
20097     nsresult (*GetHWVirtExUXEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExUXEnabled);
20098 
20099     nsresult (*GetOSName)(IMachineDebugger *pThis, PRUnichar * *OSName);
20100 
20101     nsresult (*GetOSVersion)(IMachineDebugger *pThis, PRUnichar * *OSVersion);
20102 
20103     nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
20104 
20105     nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
20106     nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
20107 
20108     nsresult (*GetVM)(IMachineDebugger *pThis, PRInt64 *VM);
20109 
20110     nsresult (*GetUptime)(IMachineDebugger *pThis, PRInt64 *uptime);
20111 
20112     nsresult (*GetInternalAndReservedAttribute1IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20113 
20114     nsresult (*GetInternalAndReservedAttribute2IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20115 
20116     nsresult (*GetInternalAndReservedAttribute3IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20117 
20118     nsresult (*GetInternalAndReservedAttribute4IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20119 
20120     nsresult (*GetInternalAndReservedAttribute5IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20121 
20122     nsresult (*GetInternalAndReservedAttribute6IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20123 
20124     nsresult (*GetInternalAndReservedAttribute7IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20125 
20126     nsresult (*GetInternalAndReservedAttribute8IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20127 
20128     nsresult (*GetInternalAndReservedAttribute9IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20129 
20130     nsresult (*GetInternalAndReservedAttribute10IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20131 
20132     nsresult (*GetInternalAndReservedAttribute11IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20133 
20134     nsresult (*GetInternalAndReservedAttribute12IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20135 
20136     nsresult (*GetInternalAndReservedAttribute13IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20137 
20138     nsresult (*GetInternalAndReservedAttribute14IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20139 
20140     nsresult (*GetInternalAndReservedAttribute15IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20141 
20142     nsresult (*GetInternalAndReservedAttribute16IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20143 
20144     nsresult (*DumpGuestCore)(
20145         IMachineDebugger *pThis,
20146         PRUnichar * filename,
20147         PRUnichar * compression
20148     );
20149 
20150     nsresult (*DumpHostProcessCore)(
20151         IMachineDebugger *pThis,
20152         PRUnichar * filename,
20153         PRUnichar * compression
20154     );
20155 
20156     nsresult (*Info)(
20157         IMachineDebugger *pThis,
20158         PRUnichar * name,
20159         PRUnichar * args,
20160         PRUnichar * * info
20161     );
20162 
20163     nsresult (*InjectNMI)(IMachineDebugger *pThis );
20164 
20165     nsresult (*ModifyLogGroups)(
20166         IMachineDebugger *pThis,
20167         PRUnichar * settings
20168     );
20169 
20170     nsresult (*ModifyLogFlags)(
20171         IMachineDebugger *pThis,
20172         PRUnichar * settings
20173     );
20174 
20175     nsresult (*ModifyLogDestinations)(
20176         IMachineDebugger *pThis,
20177         PRUnichar * settings
20178     );
20179 
20180     nsresult (*ReadPhysicalMemory)(
20181         IMachineDebugger *pThis,
20182         PRInt64 address,
20183         PRUint32 size,
20184         PRUint32 *bytesSize,
20185         PRUint8** bytes
20186     );
20187 
20188     nsresult (*WritePhysicalMemory)(
20189         IMachineDebugger *pThis,
20190         PRInt64 address,
20191         PRUint32 size,
20192         PRUint32 bytesSize,
20193         PRUint8* bytes
20194     );
20195 
20196     nsresult (*ReadVirtualMemory)(
20197         IMachineDebugger *pThis,
20198         PRUint32 cpuId,
20199         PRInt64 address,
20200         PRUint32 size,
20201         PRUint32 *bytesSize,
20202         PRUint8** bytes
20203     );
20204 
20205     nsresult (*WriteVirtualMemory)(
20206         IMachineDebugger *pThis,
20207         PRUint32 cpuId,
20208         PRInt64 address,
20209         PRUint32 size,
20210         PRUint32 bytesSize,
20211         PRUint8* bytes
20212     );
20213 
20214     nsresult (*LoadPlugIn)(
20215         IMachineDebugger *pThis,
20216         PRUnichar * name,
20217         PRUnichar * * plugInName
20218     );
20219 
20220     nsresult (*UnloadPlugIn)(
20221         IMachineDebugger *pThis,
20222         PRUnichar * name
20223     );
20224 
20225     nsresult (*DetectOS)(
20226         IMachineDebugger *pThis,
20227         PRUnichar * * os
20228     );
20229 
20230     nsresult (*QueryOSKernelLog)(
20231         IMachineDebugger *pThis,
20232         PRUint32 maxMessages,
20233         PRUnichar * * dmesg
20234     );
20235 
20236     nsresult (*GetRegister)(
20237         IMachineDebugger *pThis,
20238         PRUint32 cpuId,
20239         PRUnichar * name,
20240         PRUnichar * * value
20241     );
20242 
20243     nsresult (*GetRegisters)(
20244         IMachineDebugger *pThis,
20245         PRUint32 cpuId,
20246         PRUint32 *namesSize,
20247         PRUnichar *** names,
20248         PRUint32 *valuesSize,
20249         PRUnichar *** values
20250     );
20251 
20252     nsresult (*SetRegister)(
20253         IMachineDebugger *pThis,
20254         PRUint32 cpuId,
20255         PRUnichar * name,
20256         PRUnichar * value
20257     );
20258 
20259     nsresult (*SetRegisters)(
20260         IMachineDebugger *pThis,
20261         PRUint32 cpuId,
20262         PRUint32 namesSize,
20263         PRUnichar ** names,
20264         PRUint32 valuesSize,
20265         PRUnichar ** values
20266     );
20267 
20268     nsresult (*DumpGuestStack)(
20269         IMachineDebugger *pThis,
20270         PRUint32 cpuId,
20271         PRUnichar * * stack
20272     );
20273 
20274     nsresult (*ResetStats)(
20275         IMachineDebugger *pThis,
20276         PRUnichar * pattern
20277     );
20278 
20279     nsresult (*DumpStats)(
20280         IMachineDebugger *pThis,
20281         PRUnichar * pattern
20282     );
20283 
20284     nsresult (*GetStats)(
20285         IMachineDebugger *pThis,
20286         PRUnichar * pattern,
20287         PRBool withDescriptions,
20288         PRUnichar * * stats
20289     );
20290 
20291     nsresult (*GetCPULoad)(
20292         IMachineDebugger *pThis,
20293         PRUint32 cpuId,
20294         PRUint32 * pctExecuting,
20295         PRUint32 * pctHalted,
20296         PRUint32 * pctOther,
20297         PRInt64 * msInterval
20298     );
20299 
20300     nsresult (*InternalAndReservedMethod1IMachineDebugger)(IMachineDebugger *pThis);
20301 
20302     nsresult (*InternalAndReservedMethod2IMachineDebugger)(IMachineDebugger *pThis);
20303 
20304     nsresult (*InternalAndReservedMethod3IMachineDebugger)(IMachineDebugger *pThis);
20305 
20306     nsresult (*InternalAndReservedMethod4IMachineDebugger)(IMachineDebugger *pThis);
20307 
20308     nsresult (*InternalAndReservedMethod5IMachineDebugger)(IMachineDebugger *pThis);
20309 
20310     nsresult (*InternalAndReservedMethod6IMachineDebugger)(IMachineDebugger *pThis);
20311 
20312     nsresult (*InternalAndReservedMethod7IMachineDebugger)(IMachineDebugger *pThis);
20313 
20314     nsresult (*InternalAndReservedMethod8IMachineDebugger)(IMachineDebugger *pThis);
20315 
20316     nsresult (*InternalAndReservedMethod9IMachineDebugger)(IMachineDebugger *pThis);
20317 
20318     nsresult (*InternalAndReservedMethod10IMachineDebugger)(IMachineDebugger *pThis);
20319 
20320     nsresult (*InternalAndReservedMethod11IMachineDebugger)(IMachineDebugger *pThis);
20321 
20322     nsresult (*InternalAndReservedMethod12IMachineDebugger)(IMachineDebugger *pThis);
20323 
20324     nsresult (*InternalAndReservedMethod13IMachineDebugger)(IMachineDebugger *pThis);
20325 
20326     nsresult (*InternalAndReservedMethod14IMachineDebugger)(IMachineDebugger *pThis);
20327 
20328     nsresult (*InternalAndReservedMethod15IMachineDebugger)(IMachineDebugger *pThis);
20329 
20330     nsresult (*InternalAndReservedMethod16IMachineDebugger)(IMachineDebugger *pThis);
20331 
20332 };
20333 #   else /* VBOX_WITH_GLUE */
20334 struct IMachineDebuggerVtbl
20335 {
20336     nsresult (*QueryInterface)(IMachineDebugger *pThis, const nsID *iid, void **resultp);
20337     nsrefcnt (*AddRef)(IMachineDebugger *pThis);
20338     nsrefcnt (*Release)(IMachineDebugger *pThis);
20339     nsresult (*GetSingleStep)(IMachineDebugger *pThis, PRBool *singleStep);
20340     nsresult (*SetSingleStep)(IMachineDebugger *pThis, PRBool singleStep);
20341 
20342     nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
20343     nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
20344 
20345     nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
20346     nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
20347 
20348     nsresult (*GetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool *executeAllInIEM);
20349     nsresult (*SetExecuteAllInIEM)(IMachineDebugger *pThis, PRBool executeAllInIEM);
20350 
20351     nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
20352     nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
20353 
20354     nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
20355     nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
20356 
20357     nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
20358     nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
20359 
20360     nsresult (*GetLogDbgFlags)(IMachineDebugger *pThis, PRUnichar * *logDbgFlags);
20361 
20362     nsresult (*GetLogDbgGroups)(IMachineDebugger *pThis, PRUnichar * *logDbgGroups);
20363 
20364     nsresult (*GetLogDbgDestinations)(IMachineDebugger *pThis, PRUnichar * *logDbgDestinations);
20365 
20366     nsresult (*GetLogRelFlags)(IMachineDebugger *pThis, PRUnichar * *logRelFlags);
20367 
20368     nsresult (*GetLogRelGroups)(IMachineDebugger *pThis, PRUnichar * *logRelGroups);
20369 
20370     nsresult (*GetLogRelDestinations)(IMachineDebugger *pThis, PRUnichar * *logRelDestinations);
20371 
20372     nsresult (*GetExecutionEngine)(IMachineDebugger *pThis, PRUint32 *executionEngine);
20373 
20374     nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
20375 
20376     nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
20377 
20378     nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
20379 
20380     nsresult (*GetHWVirtExUXEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExUXEnabled);
20381 
20382     nsresult (*GetOSName)(IMachineDebugger *pThis, PRUnichar * *OSName);
20383 
20384     nsresult (*GetOSVersion)(IMachineDebugger *pThis, PRUnichar * *OSVersion);
20385 
20386     nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
20387 
20388     nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
20389     nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
20390 
20391     nsresult (*GetVM)(IMachineDebugger *pThis, PRInt64 *VM);
20392 
20393     nsresult (*GetUptime)(IMachineDebugger *pThis, PRInt64 *uptime);
20394 
20395     nsresult (*GetInternalAndReservedAttribute1IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20396 
20397     nsresult (*GetInternalAndReservedAttribute2IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20398 
20399     nsresult (*GetInternalAndReservedAttribute3IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20400 
20401     nsresult (*GetInternalAndReservedAttribute4IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20402 
20403     nsresult (*GetInternalAndReservedAttribute5IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20404 
20405     nsresult (*GetInternalAndReservedAttribute6IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20406 
20407     nsresult (*GetInternalAndReservedAttribute7IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20408 
20409     nsresult (*GetInternalAndReservedAttribute8IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20410 
20411     nsresult (*GetInternalAndReservedAttribute9IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20412 
20413     nsresult (*GetInternalAndReservedAttribute10IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20414 
20415     nsresult (*GetInternalAndReservedAttribute11IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20416 
20417     nsresult (*GetInternalAndReservedAttribute12IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20418 
20419     nsresult (*GetInternalAndReservedAttribute13IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20420 
20421     nsresult (*GetInternalAndReservedAttribute14IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20422 
20423     nsresult (*GetInternalAndReservedAttribute15IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20424 
20425     nsresult (*GetInternalAndReservedAttribute16IMachineDebugger)(IMachineDebugger *pThis, PRUint32 *reserved);
20426 
20427     nsresult (*DumpGuestCore)(
20428         IMachineDebugger *pThis,
20429         PRUnichar * filename,
20430         PRUnichar * compression
20431     );
20432 
20433     nsresult (*DumpHostProcessCore)(
20434         IMachineDebugger *pThis,
20435         PRUnichar * filename,
20436         PRUnichar * compression
20437     );
20438 
20439     nsresult (*Info)(
20440         IMachineDebugger *pThis,
20441         PRUnichar * name,
20442         PRUnichar * args,
20443         PRUnichar * * info
20444     );
20445 
20446     nsresult (*InjectNMI)(IMachineDebugger *pThis );
20447 
20448     nsresult (*ModifyLogGroups)(
20449         IMachineDebugger *pThis,
20450         PRUnichar * settings
20451     );
20452 
20453     nsresult (*ModifyLogFlags)(
20454         IMachineDebugger *pThis,
20455         PRUnichar * settings
20456     );
20457 
20458     nsresult (*ModifyLogDestinations)(
20459         IMachineDebugger *pThis,
20460         PRUnichar * settings
20461     );
20462 
20463     nsresult (*ReadPhysicalMemory)(
20464         IMachineDebugger *pThis,
20465         PRInt64 address,
20466         PRUint32 size,
20467         PRUint32 *bytesSize,
20468         PRUint8** bytes
20469     );
20470 
20471     nsresult (*WritePhysicalMemory)(
20472         IMachineDebugger *pThis,
20473         PRInt64 address,
20474         PRUint32 size,
20475         PRUint32 bytesSize,
20476         PRUint8* bytes
20477     );
20478 
20479     nsresult (*ReadVirtualMemory)(
20480         IMachineDebugger *pThis,
20481         PRUint32 cpuId,
20482         PRInt64 address,
20483         PRUint32 size,
20484         PRUint32 *bytesSize,
20485         PRUint8** bytes
20486     );
20487 
20488     nsresult (*WriteVirtualMemory)(
20489         IMachineDebugger *pThis,
20490         PRUint32 cpuId,
20491         PRInt64 address,
20492         PRUint32 size,
20493         PRUint32 bytesSize,
20494         PRUint8* bytes
20495     );
20496 
20497     nsresult (*LoadPlugIn)(
20498         IMachineDebugger *pThis,
20499         PRUnichar * name,
20500         PRUnichar * * plugInName
20501     );
20502 
20503     nsresult (*UnloadPlugIn)(
20504         IMachineDebugger *pThis,
20505         PRUnichar * name
20506     );
20507 
20508     nsresult (*DetectOS)(
20509         IMachineDebugger *pThis,
20510         PRUnichar * * os
20511     );
20512 
20513     nsresult (*QueryOSKernelLog)(
20514         IMachineDebugger *pThis,
20515         PRUint32 maxMessages,
20516         PRUnichar * * dmesg
20517     );
20518 
20519     nsresult (*GetRegister)(
20520         IMachineDebugger *pThis,
20521         PRUint32 cpuId,
20522         PRUnichar * name,
20523         PRUnichar * * value
20524     );
20525 
20526     nsresult (*GetRegisters)(
20527         IMachineDebugger *pThis,
20528         PRUint32 cpuId,
20529         PRUint32 *namesSize,
20530         PRUnichar *** names,
20531         PRUint32 *valuesSize,
20532         PRUnichar *** values
20533     );
20534 
20535     nsresult (*SetRegister)(
20536         IMachineDebugger *pThis,
20537         PRUint32 cpuId,
20538         PRUnichar * name,
20539         PRUnichar * value
20540     );
20541 
20542     nsresult (*SetRegisters)(
20543         IMachineDebugger *pThis,
20544         PRUint32 cpuId,
20545         PRUint32 namesSize,
20546         PRUnichar ** names,
20547         PRUint32 valuesSize,
20548         PRUnichar ** values
20549     );
20550 
20551     nsresult (*DumpGuestStack)(
20552         IMachineDebugger *pThis,
20553         PRUint32 cpuId,
20554         PRUnichar * * stack
20555     );
20556 
20557     nsresult (*ResetStats)(
20558         IMachineDebugger *pThis,
20559         PRUnichar * pattern
20560     );
20561 
20562     nsresult (*DumpStats)(
20563         IMachineDebugger *pThis,
20564         PRUnichar * pattern
20565     );
20566 
20567     nsresult (*GetStats)(
20568         IMachineDebugger *pThis,
20569         PRUnichar * pattern,
20570         PRBool withDescriptions,
20571         PRUnichar * * stats
20572     );
20573 
20574     nsresult (*GetCPULoad)(
20575         IMachineDebugger *pThis,
20576         PRUint32 cpuId,
20577         PRUint32 * pctExecuting,
20578         PRUint32 * pctHalted,
20579         PRUint32 * pctOther,
20580         PRInt64 * msInterval
20581     );
20582 
20583     nsresult (*InternalAndReservedMethod1IMachineDebugger)(IMachineDebugger *pThis);
20584 
20585     nsresult (*InternalAndReservedMethod2IMachineDebugger)(IMachineDebugger *pThis);
20586 
20587     nsresult (*InternalAndReservedMethod3IMachineDebugger)(IMachineDebugger *pThis);
20588 
20589     nsresult (*InternalAndReservedMethod4IMachineDebugger)(IMachineDebugger *pThis);
20590 
20591     nsresult (*InternalAndReservedMethod5IMachineDebugger)(IMachineDebugger *pThis);
20592 
20593     nsresult (*InternalAndReservedMethod6IMachineDebugger)(IMachineDebugger *pThis);
20594 
20595     nsresult (*InternalAndReservedMethod7IMachineDebugger)(IMachineDebugger *pThis);
20596 
20597     nsresult (*InternalAndReservedMethod8IMachineDebugger)(IMachineDebugger *pThis);
20598 
20599     nsresult (*InternalAndReservedMethod9IMachineDebugger)(IMachineDebugger *pThis);
20600 
20601     nsresult (*InternalAndReservedMethod10IMachineDebugger)(IMachineDebugger *pThis);
20602 
20603     nsresult (*InternalAndReservedMethod11IMachineDebugger)(IMachineDebugger *pThis);
20604 
20605     nsresult (*InternalAndReservedMethod12IMachineDebugger)(IMachineDebugger *pThis);
20606 
20607     nsresult (*InternalAndReservedMethod13IMachineDebugger)(IMachineDebugger *pThis);
20608 
20609     nsresult (*InternalAndReservedMethod14IMachineDebugger)(IMachineDebugger *pThis);
20610 
20611     nsresult (*InternalAndReservedMethod15IMachineDebugger)(IMachineDebugger *pThis);
20612 
20613     nsresult (*InternalAndReservedMethod16IMachineDebugger)(IMachineDebugger *pThis);
20614 
20615 };
20616 #    define IMachineDebugger_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20617 #    define IMachineDebugger_AddRef(p) ((p)->lpVtbl->AddRef(p))
20618 #    define IMachineDebugger_Release(p) ((p)->lpVtbl->Release(p))
20619 #    define IMachineDebugger_get_SingleStep(p, aSingleStep) ((p)->lpVtbl->GetSingleStep(p, aSingleStep))
20620 #    define IMachineDebugger_GetSingleStep(p, aSingleStep) ((p)->lpVtbl->GetSingleStep(p, aSingleStep))
20621 #    define IMachineDebugger_put_SingleStep(p, aSingleStep) ((p)->lpVtbl->SetSingleStep(p, aSingleStep))
20622 #    define IMachineDebugger_SetSingleStep(p, aSingleStep) ((p)->lpVtbl->SetSingleStep(p, aSingleStep))
20623 #    define IMachineDebugger_get_RecompileUser(p, aRecompileUser) ((p)->lpVtbl->GetRecompileUser(p, aRecompileUser))
20624 #    define IMachineDebugger_GetRecompileUser(p, aRecompileUser) ((p)->lpVtbl->GetRecompileUser(p, aRecompileUser))
20625 #    define IMachineDebugger_put_RecompileUser(p, aRecompileUser) ((p)->lpVtbl->SetRecompileUser(p, aRecompileUser))
20626 #    define IMachineDebugger_SetRecompileUser(p, aRecompileUser) ((p)->lpVtbl->SetRecompileUser(p, aRecompileUser))
20627 #    define IMachineDebugger_get_RecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->GetRecompileSupervisor(p, aRecompileSupervisor))
20628 #    define IMachineDebugger_GetRecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->GetRecompileSupervisor(p, aRecompileSupervisor))
20629 #    define IMachineDebugger_put_RecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->SetRecompileSupervisor(p, aRecompileSupervisor))
20630 #    define IMachineDebugger_SetRecompileSupervisor(p, aRecompileSupervisor) ((p)->lpVtbl->SetRecompileSupervisor(p, aRecompileSupervisor))
20631 #    define IMachineDebugger_get_ExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->GetExecuteAllInIEM(p, aExecuteAllInIEM))
20632 #    define IMachineDebugger_GetExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->GetExecuteAllInIEM(p, aExecuteAllInIEM))
20633 #    define IMachineDebugger_put_ExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->SetExecuteAllInIEM(p, aExecuteAllInIEM))
20634 #    define IMachineDebugger_SetExecuteAllInIEM(p, aExecuteAllInIEM) ((p)->lpVtbl->SetExecuteAllInIEM(p, aExecuteAllInIEM))
20635 #    define IMachineDebugger_get_PATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->GetPATMEnabled(p, aPATMEnabled))
20636 #    define IMachineDebugger_GetPATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->GetPATMEnabled(p, aPATMEnabled))
20637 #    define IMachineDebugger_put_PATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->SetPATMEnabled(p, aPATMEnabled))
20638 #    define IMachineDebugger_SetPATMEnabled(p, aPATMEnabled) ((p)->lpVtbl->SetPATMEnabled(p, aPATMEnabled))
20639 #    define IMachineDebugger_get_CSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->GetCSAMEnabled(p, aCSAMEnabled))
20640 #    define IMachineDebugger_GetCSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->GetCSAMEnabled(p, aCSAMEnabled))
20641 #    define IMachineDebugger_put_CSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->SetCSAMEnabled(p, aCSAMEnabled))
20642 #    define IMachineDebugger_SetCSAMEnabled(p, aCSAMEnabled) ((p)->lpVtbl->SetCSAMEnabled(p, aCSAMEnabled))
20643 #    define IMachineDebugger_get_LogEnabled(p, aLogEnabled) ((p)->lpVtbl->GetLogEnabled(p, aLogEnabled))
20644 #    define IMachineDebugger_GetLogEnabled(p, aLogEnabled) ((p)->lpVtbl->GetLogEnabled(p, aLogEnabled))
20645 #    define IMachineDebugger_put_LogEnabled(p, aLogEnabled) ((p)->lpVtbl->SetLogEnabled(p, aLogEnabled))
20646 #    define IMachineDebugger_SetLogEnabled(p, aLogEnabled) ((p)->lpVtbl->SetLogEnabled(p, aLogEnabled))
20647 #    define IMachineDebugger_get_LogDbgFlags(p, aLogDbgFlags) ((p)->lpVtbl->GetLogDbgFlags(p, aLogDbgFlags))
20648 #    define IMachineDebugger_GetLogDbgFlags(p, aLogDbgFlags) ((p)->lpVtbl->GetLogDbgFlags(p, aLogDbgFlags))
20649 #    define IMachineDebugger_get_LogDbgGroups(p, aLogDbgGroups) ((p)->lpVtbl->GetLogDbgGroups(p, aLogDbgGroups))
20650 #    define IMachineDebugger_GetLogDbgGroups(p, aLogDbgGroups) ((p)->lpVtbl->GetLogDbgGroups(p, aLogDbgGroups))
20651 #    define IMachineDebugger_get_LogDbgDestinations(p, aLogDbgDestinations) ((p)->lpVtbl->GetLogDbgDestinations(p, aLogDbgDestinations))
20652 #    define IMachineDebugger_GetLogDbgDestinations(p, aLogDbgDestinations) ((p)->lpVtbl->GetLogDbgDestinations(p, aLogDbgDestinations))
20653 #    define IMachineDebugger_get_LogRelFlags(p, aLogRelFlags) ((p)->lpVtbl->GetLogRelFlags(p, aLogRelFlags))
20654 #    define IMachineDebugger_GetLogRelFlags(p, aLogRelFlags) ((p)->lpVtbl->GetLogRelFlags(p, aLogRelFlags))
20655 #    define IMachineDebugger_get_LogRelGroups(p, aLogRelGroups) ((p)->lpVtbl->GetLogRelGroups(p, aLogRelGroups))
20656 #    define IMachineDebugger_GetLogRelGroups(p, aLogRelGroups) ((p)->lpVtbl->GetLogRelGroups(p, aLogRelGroups))
20657 #    define IMachineDebugger_get_LogRelDestinations(p, aLogRelDestinations) ((p)->lpVtbl->GetLogRelDestinations(p, aLogRelDestinations))
20658 #    define IMachineDebugger_GetLogRelDestinations(p, aLogRelDestinations) ((p)->lpVtbl->GetLogRelDestinations(p, aLogRelDestinations))
20659 #    define IMachineDebugger_get_ExecutionEngine(p, aExecutionEngine) ((p)->lpVtbl->GetExecutionEngine(p, aExecutionEngine))
20660 #    define IMachineDebugger_GetExecutionEngine(p, aExecutionEngine) ((p)->lpVtbl->GetExecutionEngine(p, aExecutionEngine))
20661 #    define IMachineDebugger_get_HWVirtExEnabled(p, aHWVirtExEnabled) ((p)->lpVtbl->GetHWVirtExEnabled(p, aHWVirtExEnabled))
20662 #    define IMachineDebugger_GetHWVirtExEnabled(p, aHWVirtExEnabled) ((p)->lpVtbl->GetHWVirtExEnabled(p, aHWVirtExEnabled))
20663 #    define IMachineDebugger_get_HWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled) ((p)->lpVtbl->GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled))
20664 #    define IMachineDebugger_GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled) ((p)->lpVtbl->GetHWVirtExNestedPagingEnabled(p, aHWVirtExNestedPagingEnabled))
20665 #    define IMachineDebugger_get_HWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled) ((p)->lpVtbl->GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled))
20666 #    define IMachineDebugger_GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled) ((p)->lpVtbl->GetHWVirtExVPIDEnabled(p, aHWVirtExVPIDEnabled))
20667 #    define IMachineDebugger_get_HWVirtExUXEnabled(p, aHWVirtExUXEnabled) ((p)->lpVtbl->GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled))
20668 #    define IMachineDebugger_GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled) ((p)->lpVtbl->GetHWVirtExUXEnabled(p, aHWVirtExUXEnabled))
20669 #    define IMachineDebugger_get_OSName(p, aOSName) ((p)->lpVtbl->GetOSName(p, aOSName))
20670 #    define IMachineDebugger_GetOSName(p, aOSName) ((p)->lpVtbl->GetOSName(p, aOSName))
20671 #    define IMachineDebugger_get_OSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
20672 #    define IMachineDebugger_GetOSVersion(p, aOSVersion) ((p)->lpVtbl->GetOSVersion(p, aOSVersion))
20673 #    define IMachineDebugger_get_PAEEnabled(p, aPAEEnabled) ((p)->lpVtbl->GetPAEEnabled(p, aPAEEnabled))
20674 #    define IMachineDebugger_GetPAEEnabled(p, aPAEEnabled) ((p)->lpVtbl->GetPAEEnabled(p, aPAEEnabled))
20675 #    define IMachineDebugger_get_VirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->GetVirtualTimeRate(p, aVirtualTimeRate))
20676 #    define IMachineDebugger_GetVirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->GetVirtualTimeRate(p, aVirtualTimeRate))
20677 #    define IMachineDebugger_put_VirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->SetVirtualTimeRate(p, aVirtualTimeRate))
20678 #    define IMachineDebugger_SetVirtualTimeRate(p, aVirtualTimeRate) ((p)->lpVtbl->SetVirtualTimeRate(p, aVirtualTimeRate))
20679 #    define IMachineDebugger_get_VM(p, aVM) ((p)->lpVtbl->GetVM(p, aVM))
20680 #    define IMachineDebugger_GetVM(p, aVM) ((p)->lpVtbl->GetVM(p, aVM))
20681 #    define IMachineDebugger_get_Uptime(p, aUptime) ((p)->lpVtbl->GetUptime(p, aUptime))
20682 #    define IMachineDebugger_GetUptime(p, aUptime) ((p)->lpVtbl->GetUptime(p, aUptime))
20683 #    define IMachineDebugger_DumpGuestCore(p, aFilename, aCompression) ((p)->lpVtbl->DumpGuestCore(p, aFilename, aCompression))
20684 #    define IMachineDebugger_DumpHostProcessCore(p, aFilename, aCompression) ((p)->lpVtbl->DumpHostProcessCore(p, aFilename, aCompression))
20685 #    define IMachineDebugger_Info(p, aName, aArgs, aInfo) ((p)->lpVtbl->Info(p, aName, aArgs, aInfo))
20686 #    define IMachineDebugger_InjectNMI(p) ((p)->lpVtbl->InjectNMI(p))
20687 #    define IMachineDebugger_ModifyLogGroups(p, aSettings) ((p)->lpVtbl->ModifyLogGroups(p, aSettings))
20688 #    define IMachineDebugger_ModifyLogFlags(p, aSettings) ((p)->lpVtbl->ModifyLogFlags(p, aSettings))
20689 #    define IMachineDebugger_ModifyLogDestinations(p, aSettings) ((p)->lpVtbl->ModifyLogDestinations(p, aSettings))
20690 #    define IMachineDebugger_ReadPhysicalMemory(p, aAddress, aSize, aBytes) ((p)->lpVtbl->ReadPhysicalMemory(p, aAddress, aSize, aBytes))
20691 #    define IMachineDebugger_WritePhysicalMemory(p, aAddress, aSize, aBytes) ((p)->lpVtbl->WritePhysicalMemory(p, aAddress, aSize, aBytes))
20692 #    define IMachineDebugger_ReadVirtualMemory(p, aCpuId, aAddress, aSize, aBytes) ((p)->lpVtbl->ReadVirtualMemory(p, aCpuId, aAddress, aSize, aBytes))
20693 #    define IMachineDebugger_WriteVirtualMemory(p, aCpuId, aAddress, aSize, aBytes) ((p)->lpVtbl->WriteVirtualMemory(p, aCpuId, aAddress, aSize, aBytes))
20694 #    define IMachineDebugger_LoadPlugIn(p, aName, aPlugInName) ((p)->lpVtbl->LoadPlugIn(p, aName, aPlugInName))
20695 #    define IMachineDebugger_UnloadPlugIn(p, aName) ((p)->lpVtbl->UnloadPlugIn(p, aName))
20696 #    define IMachineDebugger_DetectOS(p, aOs) ((p)->lpVtbl->DetectOS(p, aOs))
20697 #    define IMachineDebugger_QueryOSKernelLog(p, aMaxMessages, aDmesg) ((p)->lpVtbl->QueryOSKernelLog(p, aMaxMessages, aDmesg))
20698 #    define IMachineDebugger_GetRegister(p, aCpuId, aName, aValue) ((p)->lpVtbl->GetRegister(p, aCpuId, aName, aValue))
20699 #    define IMachineDebugger_GetRegisters(p, aCpuId, aNames, aValues) ((p)->lpVtbl->GetRegisters(p, aCpuId, aNames, aValues))
20700 #    define IMachineDebugger_SetRegister(p, aCpuId, aName, aValue) ((p)->lpVtbl->SetRegister(p, aCpuId, aName, aValue))
20701 #    define IMachineDebugger_SetRegisters(p, aCpuId, aNames, aValues) ((p)->lpVtbl->SetRegisters(p, aCpuId, aNames, aValues))
20702 #    define IMachineDebugger_DumpGuestStack(p, aCpuId, aStack) ((p)->lpVtbl->DumpGuestStack(p, aCpuId, aStack))
20703 #    define IMachineDebugger_ResetStats(p, aPattern) ((p)->lpVtbl->ResetStats(p, aPattern))
20704 #    define IMachineDebugger_DumpStats(p, aPattern) ((p)->lpVtbl->DumpStats(p, aPattern))
20705 #    define IMachineDebugger_GetStats(p, aPattern, aWithDescriptions, aStats) ((p)->lpVtbl->GetStats(p, aPattern, aWithDescriptions, aStats))
20706 #    define IMachineDebugger_GetCPULoad(p, aCpuId, aPctExecuting, aPctHalted, aPctOther, aMsInterval) ((p)->lpVtbl->GetCPULoad(p, aCpuId, aPctExecuting, aPctHalted, aPctOther, aMsInterval))
20707 #   endif /* VBOX_WITH_GLUE */
20708 
20709 interface IMachineDebugger
20710 {
20711 #   ifndef VBOX_WITH_GLUE
20712     struct IMachineDebugger_vtbl *vtbl;
20713 #   else /* VBOX_WITH_GLUE */
20714     CONST_VTBL struct IMachineDebuggerVtbl *lpVtbl;
20715 #   endif /* VBOX_WITH_GLUE */
20716 };
20717 /* End of struct IMachineDebugger declaration */
20718 
20719 
20720 /* Start of struct IUSBDeviceFilters declaration */
20721 #   define IUSBDEVICEFILTERS_IID_STR "9709db9b-3346-49d6-8f1c-41b0c4784ff2"
20722 #   define IUSBDEVICEFILTERS_IID { \
20723     0x9709db9b, 0x3346, 0x49d6, \
20724     { 0x8f, 0x1c, 0x41, 0xb0, 0xc4, 0x78, 0x4f, 0xf2 } \
20725 }
20726 /* COM compatibility */
20727 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceFilters);
20728 #   ifndef VBOX_WITH_GLUE
20729 struct IUSBDeviceFilters_vtbl
20730 {
20731     struct nsISupports_vtbl nsisupports;
20732 
20733     nsresult (*GetDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
20734 
20735     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
20736 
20737     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
20738 
20739     nsresult (*CreateDeviceFilter)(
20740         IUSBDeviceFilters *pThis,
20741         PRUnichar * name,
20742         IUSBDeviceFilter * * filter
20743     );
20744 
20745     nsresult (*InsertDeviceFilter)(
20746         IUSBDeviceFilters *pThis,
20747         PRUint32 position,
20748         IUSBDeviceFilter * filter
20749     );
20750 
20751     nsresult (*RemoveDeviceFilter)(
20752         IUSBDeviceFilters *pThis,
20753         PRUint32 position,
20754         IUSBDeviceFilter * * filter
20755     );
20756 
20757     nsresult (*InternalAndReservedMethod1IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
20758 
20759     nsresult (*InternalAndReservedMethod2IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
20760 
20761 };
20762 #   else /* VBOX_WITH_GLUE */
20763 struct IUSBDeviceFiltersVtbl
20764 {
20765     nsresult (*QueryInterface)(IUSBDeviceFilters *pThis, const nsID *iid, void **resultp);
20766     nsrefcnt (*AddRef)(IUSBDeviceFilters *pThis);
20767     nsrefcnt (*Release)(IUSBDeviceFilters *pThis);
20768     nsresult (*GetDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
20769 
20770     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
20771 
20772     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilters)(IUSBDeviceFilters *pThis, PRUint32 *reserved);
20773 
20774     nsresult (*CreateDeviceFilter)(
20775         IUSBDeviceFilters *pThis,
20776         PRUnichar * name,
20777         IUSBDeviceFilter * * filter
20778     );
20779 
20780     nsresult (*InsertDeviceFilter)(
20781         IUSBDeviceFilters *pThis,
20782         PRUint32 position,
20783         IUSBDeviceFilter * filter
20784     );
20785 
20786     nsresult (*RemoveDeviceFilter)(
20787         IUSBDeviceFilters *pThis,
20788         PRUint32 position,
20789         IUSBDeviceFilter * * filter
20790     );
20791 
20792     nsresult (*InternalAndReservedMethod1IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
20793 
20794     nsresult (*InternalAndReservedMethod2IUSBDeviceFilters)(IUSBDeviceFilters *pThis);
20795 
20796 };
20797 #    define IUSBDeviceFilters_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20798 #    define IUSBDeviceFilters_AddRef(p) ((p)->lpVtbl->AddRef(p))
20799 #    define IUSBDeviceFilters_Release(p) ((p)->lpVtbl->Release(p))
20800 #    define IUSBDeviceFilters_get_DeviceFilters(p, aDeviceFilters) ((p)->lpVtbl->GetDeviceFilters(p, aDeviceFilters))
20801 #    define IUSBDeviceFilters_GetDeviceFilters(p, aDeviceFilters) ((p)->lpVtbl->GetDeviceFilters(p, aDeviceFilters))
20802 #    define IUSBDeviceFilters_CreateDeviceFilter(p, aName, aFilter) ((p)->lpVtbl->CreateDeviceFilter(p, aName, aFilter))
20803 #    define IUSBDeviceFilters_InsertDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->InsertDeviceFilter(p, aPosition, aFilter))
20804 #    define IUSBDeviceFilters_RemoveDeviceFilter(p, aPosition, aFilter) ((p)->lpVtbl->RemoveDeviceFilter(p, aPosition, aFilter))
20805 #   endif /* VBOX_WITH_GLUE */
20806 
20807 interface IUSBDeviceFilters
20808 {
20809 #   ifndef VBOX_WITH_GLUE
20810     struct IUSBDeviceFilters_vtbl *vtbl;
20811 #   else /* VBOX_WITH_GLUE */
20812     CONST_VTBL struct IUSBDeviceFiltersVtbl *lpVtbl;
20813 #   endif /* VBOX_WITH_GLUE */
20814 };
20815 /* End of struct IUSBDeviceFilters declaration */
20816 
20817 
20818 /* Start of struct IUSBController declaration */
20819 #   define IUSBCONTROLLER_IID_STR "ee206a6e-7ff8-4a84-bd34-0c651e118bb5"
20820 #   define IUSBCONTROLLER_IID { \
20821     0xee206a6e, 0x7ff8, 0x4a84, \
20822     { 0xbd, 0x34, 0x0c, 0x65, 0x1e, 0x11, 0x8b, 0xb5 } \
20823 }
20824 /* COM compatibility */
20825 VBOX_EXTERN_CONST(nsIID, IID_IUSBController);
20826 #   ifndef VBOX_WITH_GLUE
20827 struct IUSBController_vtbl
20828 {
20829     struct nsISupports_vtbl nsisupports;
20830 
20831     nsresult (*GetName)(IUSBController *pThis, PRUnichar * *name);
20832     nsresult (*SetName)(IUSBController *pThis, PRUnichar * name);
20833 
20834     nsresult (*GetType)(IUSBController *pThis, PRUint32 *type);
20835     nsresult (*SetType)(IUSBController *pThis, PRUint32 type);
20836 
20837     nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
20838 
20839     nsresult (*GetInternalAndReservedAttribute1IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20840 
20841     nsresult (*GetInternalAndReservedAttribute2IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20842 
20843     nsresult (*GetInternalAndReservedAttribute3IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20844 
20845     nsresult (*GetInternalAndReservedAttribute4IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20846 
20847 };
20848 #   else /* VBOX_WITH_GLUE */
20849 struct IUSBControllerVtbl
20850 {
20851     nsresult (*QueryInterface)(IUSBController *pThis, const nsID *iid, void **resultp);
20852     nsrefcnt (*AddRef)(IUSBController *pThis);
20853     nsrefcnt (*Release)(IUSBController *pThis);
20854     nsresult (*GetName)(IUSBController *pThis, PRUnichar * *name);
20855     nsresult (*SetName)(IUSBController *pThis, PRUnichar * name);
20856 
20857     nsresult (*GetType)(IUSBController *pThis, PRUint32 *type);
20858     nsresult (*SetType)(IUSBController *pThis, PRUint32 type);
20859 
20860     nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
20861 
20862     nsresult (*GetInternalAndReservedAttribute1IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20863 
20864     nsresult (*GetInternalAndReservedAttribute2IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20865 
20866     nsresult (*GetInternalAndReservedAttribute3IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20867 
20868     nsresult (*GetInternalAndReservedAttribute4IUSBController)(IUSBController *pThis, PRUint32 *reserved);
20869 
20870 };
20871 #    define IUSBController_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20872 #    define IUSBController_AddRef(p) ((p)->lpVtbl->AddRef(p))
20873 #    define IUSBController_Release(p) ((p)->lpVtbl->Release(p))
20874 #    define IUSBController_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
20875 #    define IUSBController_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
20876 #    define IUSBController_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
20877 #    define IUSBController_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
20878 #    define IUSBController_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
20879 #    define IUSBController_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
20880 #    define IUSBController_put_Type(p, aType) ((p)->lpVtbl->SetType(p, aType))
20881 #    define IUSBController_SetType(p, aType) ((p)->lpVtbl->SetType(p, aType))
20882 #    define IUSBController_get_USBStandard(p, aUSBStandard) ((p)->lpVtbl->GetUSBStandard(p, aUSBStandard))
20883 #    define IUSBController_GetUSBStandard(p, aUSBStandard) ((p)->lpVtbl->GetUSBStandard(p, aUSBStandard))
20884 #   endif /* VBOX_WITH_GLUE */
20885 
20886 interface IUSBController
20887 {
20888 #   ifndef VBOX_WITH_GLUE
20889     struct IUSBController_vtbl *vtbl;
20890 #   else /* VBOX_WITH_GLUE */
20891     CONST_VTBL struct IUSBControllerVtbl *lpVtbl;
20892 #   endif /* VBOX_WITH_GLUE */
20893 };
20894 /* End of struct IUSBController declaration */
20895 
20896 
20897 /* Start of struct IUSBDevice declaration */
20898 #   define IUSBDEVICE_IID_STR "6dc83c2c-81a9-4005-9d52-fc45a78bf3f5"
20899 #   define IUSBDEVICE_IID { \
20900     0x6dc83c2c, 0x81a9, 0x4005, \
20901     { 0x9d, 0x52, 0xfc, 0x45, 0xa7, 0x8b, 0xf3, 0xf5 } \
20902 }
20903 /* COM compatibility */
20904 VBOX_EXTERN_CONST(nsIID, IID_IUSBDevice);
20905 #   ifndef VBOX_WITH_GLUE
20906 struct IUSBDevice_vtbl
20907 {
20908     struct nsISupports_vtbl nsisupports;
20909 
20910     nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
20911 
20912     nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
20913 
20914     nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
20915 
20916     nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
20917 
20918     nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
20919 
20920     nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
20921 
20922     nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
20923 
20924     nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
20925 
20926     nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
20927 
20928     nsresult (*GetPortPath)(IUSBDevice *pThis, PRUnichar * *portPath);
20929 
20930     nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
20931 
20932     nsresult (*GetSpeed)(IUSBDevice *pThis, PRUint32 *speed);
20933 
20934     nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
20935 
20936     nsresult (*GetDeviceInfo)(IUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
20937 
20938     nsresult (*GetBackend)(IUSBDevice *pThis, PRUnichar * *backend);
20939 
20940     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20941 
20942     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20943 
20944     nsresult (*GetInternalAndReservedAttribute3IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20945 
20946     nsresult (*GetInternalAndReservedAttribute4IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20947 
20948 };
20949 #   else /* VBOX_WITH_GLUE */
20950 struct IUSBDeviceVtbl
20951 {
20952     nsresult (*QueryInterface)(IUSBDevice *pThis, const nsID *iid, void **resultp);
20953     nsrefcnt (*AddRef)(IUSBDevice *pThis);
20954     nsrefcnt (*Release)(IUSBDevice *pThis);
20955     nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
20956 
20957     nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
20958 
20959     nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
20960 
20961     nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
20962 
20963     nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
20964 
20965     nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
20966 
20967     nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
20968 
20969     nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
20970 
20971     nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
20972 
20973     nsresult (*GetPortPath)(IUSBDevice *pThis, PRUnichar * *portPath);
20974 
20975     nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
20976 
20977     nsresult (*GetSpeed)(IUSBDevice *pThis, PRUint32 *speed);
20978 
20979     nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
20980 
20981     nsresult (*GetDeviceInfo)(IUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
20982 
20983     nsresult (*GetBackend)(IUSBDevice *pThis, PRUnichar * *backend);
20984 
20985     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20986 
20987     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20988 
20989     nsresult (*GetInternalAndReservedAttribute3IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20990 
20991     nsresult (*GetInternalAndReservedAttribute4IUSBDevice)(IUSBDevice *pThis, PRUint32 *reserved);
20992 
20993 };
20994 #    define IUSBDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
20995 #    define IUSBDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
20996 #    define IUSBDevice_Release(p) ((p)->lpVtbl->Release(p))
20997 #    define IUSBDevice_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
20998 #    define IUSBDevice_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
20999 #    define IUSBDevice_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21000 #    define IUSBDevice_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21001 #    define IUSBDevice_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21002 #    define IUSBDevice_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21003 #    define IUSBDevice_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21004 #    define IUSBDevice_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21005 #    define IUSBDevice_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21006 #    define IUSBDevice_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21007 #    define IUSBDevice_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21008 #    define IUSBDevice_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21009 #    define IUSBDevice_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21010 #    define IUSBDevice_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21011 #    define IUSBDevice_get_Address(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
21012 #    define IUSBDevice_GetAddress(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
21013 #    define IUSBDevice_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21014 #    define IUSBDevice_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21015 #    define IUSBDevice_get_PortPath(p, aPortPath) ((p)->lpVtbl->GetPortPath(p, aPortPath))
21016 #    define IUSBDevice_GetPortPath(p, aPortPath) ((p)->lpVtbl->GetPortPath(p, aPortPath))
21017 #    define IUSBDevice_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21018 #    define IUSBDevice_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21019 #    define IUSBDevice_get_Speed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
21020 #    define IUSBDevice_GetSpeed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
21021 #    define IUSBDevice_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21022 #    define IUSBDevice_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21023 #    define IUSBDevice_get_DeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
21024 #    define IUSBDevice_GetDeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
21025 #    define IUSBDevice_get_Backend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
21026 #    define IUSBDevice_GetBackend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
21027 #   endif /* VBOX_WITH_GLUE */
21028 
21029 interface IUSBDevice
21030 {
21031 #   ifndef VBOX_WITH_GLUE
21032     struct IUSBDevice_vtbl *vtbl;
21033 #   else /* VBOX_WITH_GLUE */
21034     CONST_VTBL struct IUSBDeviceVtbl *lpVtbl;
21035 #   endif /* VBOX_WITH_GLUE */
21036 };
21037 /* End of struct IUSBDevice declaration */
21038 
21039 
21040 /* Start of struct IUSBDeviceFilter declaration */
21041 #   define IUSBDEVICEFILTER_IID_STR "45587218-4289-ef4e-8e6a-e5b07816b631"
21042 #   define IUSBDEVICEFILTER_IID { \
21043     0x45587218, 0x4289, 0xef4e, \
21044     { 0x8e, 0x6a, 0xe5, 0xb0, 0x78, 0x16, 0xb6, 0x31 } \
21045 }
21046 /* COM compatibility */
21047 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceFilter);
21048 #   ifndef VBOX_WITH_GLUE
21049 struct IUSBDeviceFilter_vtbl
21050 {
21051     struct nsISupports_vtbl nsisupports;
21052 
21053     nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
21054     nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
21055 
21056     nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
21057     nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
21058 
21059     nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
21060     nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
21061 
21062     nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
21063     nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
21064 
21065     nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
21066     nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
21067 
21068     nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
21069     nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
21070 
21071     nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
21072     nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
21073 
21074     nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
21075     nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
21076 
21077     nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
21078     nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
21079 
21080     nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
21081     nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
21082 
21083     nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
21084     nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
21085 
21086     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21087 
21088     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21089 
21090     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21091 
21092     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21093 
21094     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21095 
21096     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21097 
21098     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21099 
21100     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21101 
21102 };
21103 #   else /* VBOX_WITH_GLUE */
21104 struct IUSBDeviceFilterVtbl
21105 {
21106     nsresult (*QueryInterface)(IUSBDeviceFilter *pThis, const nsID *iid, void **resultp);
21107     nsrefcnt (*AddRef)(IUSBDeviceFilter *pThis);
21108     nsrefcnt (*Release)(IUSBDeviceFilter *pThis);
21109     nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
21110     nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
21111 
21112     nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
21113     nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
21114 
21115     nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
21116     nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
21117 
21118     nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
21119     nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
21120 
21121     nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
21122     nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
21123 
21124     nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
21125     nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
21126 
21127     nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
21128     nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
21129 
21130     nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
21131     nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
21132 
21133     nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
21134     nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
21135 
21136     nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
21137     nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
21138 
21139     nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
21140     nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
21141 
21142     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21143 
21144     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21145 
21146     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21147 
21148     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21149 
21150     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21151 
21152     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21153 
21154     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21155 
21156     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IUSBDeviceFilter *pThis, PRUint32 *reserved);
21157 
21158 };
21159 #    define IUSBDeviceFilter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21160 #    define IUSBDeviceFilter_AddRef(p) ((p)->lpVtbl->AddRef(p))
21161 #    define IUSBDeviceFilter_Release(p) ((p)->lpVtbl->Release(p))
21162 #    define IUSBDeviceFilter_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21163 #    define IUSBDeviceFilter_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21164 #    define IUSBDeviceFilter_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
21165 #    define IUSBDeviceFilter_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
21166 #    define IUSBDeviceFilter_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
21167 #    define IUSBDeviceFilter_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
21168 #    define IUSBDeviceFilter_put_Active(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
21169 #    define IUSBDeviceFilter_SetActive(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
21170 #    define IUSBDeviceFilter_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21171 #    define IUSBDeviceFilter_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21172 #    define IUSBDeviceFilter_put_VendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
21173 #    define IUSBDeviceFilter_SetVendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
21174 #    define IUSBDeviceFilter_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21175 #    define IUSBDeviceFilter_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21176 #    define IUSBDeviceFilter_put_ProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
21177 #    define IUSBDeviceFilter_SetProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
21178 #    define IUSBDeviceFilter_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21179 #    define IUSBDeviceFilter_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21180 #    define IUSBDeviceFilter_put_Revision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
21181 #    define IUSBDeviceFilter_SetRevision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
21182 #    define IUSBDeviceFilter_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21183 #    define IUSBDeviceFilter_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21184 #    define IUSBDeviceFilter_put_Manufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
21185 #    define IUSBDeviceFilter_SetManufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
21186 #    define IUSBDeviceFilter_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21187 #    define IUSBDeviceFilter_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21188 #    define IUSBDeviceFilter_put_Product(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
21189 #    define IUSBDeviceFilter_SetProduct(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
21190 #    define IUSBDeviceFilter_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21191 #    define IUSBDeviceFilter_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21192 #    define IUSBDeviceFilter_put_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
21193 #    define IUSBDeviceFilter_SetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
21194 #    define IUSBDeviceFilter_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21195 #    define IUSBDeviceFilter_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21196 #    define IUSBDeviceFilter_put_Port(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
21197 #    define IUSBDeviceFilter_SetPort(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
21198 #    define IUSBDeviceFilter_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21199 #    define IUSBDeviceFilter_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21200 #    define IUSBDeviceFilter_put_Remote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
21201 #    define IUSBDeviceFilter_SetRemote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
21202 #    define IUSBDeviceFilter_get_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
21203 #    define IUSBDeviceFilter_GetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
21204 #    define IUSBDeviceFilter_put_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
21205 #    define IUSBDeviceFilter_SetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
21206 #   endif /* VBOX_WITH_GLUE */
21207 
21208 interface IUSBDeviceFilter
21209 {
21210 #   ifndef VBOX_WITH_GLUE
21211     struct IUSBDeviceFilter_vtbl *vtbl;
21212 #   else /* VBOX_WITH_GLUE */
21213     CONST_VTBL struct IUSBDeviceFilterVtbl *lpVtbl;
21214 #   endif /* VBOX_WITH_GLUE */
21215 };
21216 /* End of struct IUSBDeviceFilter declaration */
21217 
21218 
21219 /* Start of struct IHostUSBDevice declaration */
21220 #   define IHOSTUSBDEVICE_IID_STR "c19073dd-cc7b-431b-98b2-951fda8eab89"
21221 #   define IHOSTUSBDEVICE_IID { \
21222     0xc19073dd, 0xcc7b, 0x431b, \
21223     { 0x98, 0xb2, 0x95, 0x1f, 0xda, 0x8e, 0xab, 0x89 } \
21224 }
21225 /* COM compatibility */
21226 VBOX_EXTERN_CONST(nsIID, IID_IHostUSBDevice);
21227 #   ifndef VBOX_WITH_GLUE
21228 struct IHostUSBDevice_vtbl
21229 {
21230     struct IUSBDevice_vtbl iusbdevice;
21231 
21232     nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
21233 
21234     nsresult (*GetInternalAndReservedAttribute1IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21235 
21236     nsresult (*GetInternalAndReservedAttribute2IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21237 
21238     nsresult (*GetInternalAndReservedAttribute3IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21239 
21240     nsresult (*GetInternalAndReservedAttribute4IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21241 
21242 };
21243 #   else /* VBOX_WITH_GLUE */
21244 struct IHostUSBDeviceVtbl
21245 {
21246     nsresult (*QueryInterface)(IHostUSBDevice *pThis, const nsID *iid, void **resultp);
21247     nsrefcnt (*AddRef)(IHostUSBDevice *pThis);
21248     nsrefcnt (*Release)(IHostUSBDevice *pThis);
21249     nsresult (*GetId)(IHostUSBDevice *pThis, PRUnichar * *id);
21250 
21251     nsresult (*GetVendorId)(IHostUSBDevice *pThis, PRUint16 *vendorId);
21252 
21253     nsresult (*GetProductId)(IHostUSBDevice *pThis, PRUint16 *productId);
21254 
21255     nsresult (*GetRevision)(IHostUSBDevice *pThis, PRUint16 *revision);
21256 
21257     nsresult (*GetManufacturer)(IHostUSBDevice *pThis, PRUnichar * *manufacturer);
21258 
21259     nsresult (*GetProduct)(IHostUSBDevice *pThis, PRUnichar * *product);
21260 
21261     nsresult (*GetSerialNumber)(IHostUSBDevice *pThis, PRUnichar * *serialNumber);
21262 
21263     nsresult (*GetAddress)(IHostUSBDevice *pThis, PRUnichar * *address);
21264 
21265     nsresult (*GetPort)(IHostUSBDevice *pThis, PRUint16 *port);
21266 
21267     nsresult (*GetPortPath)(IHostUSBDevice *pThis, PRUnichar * *portPath);
21268 
21269     nsresult (*GetVersion)(IHostUSBDevice *pThis, PRUint16 *version);
21270 
21271     nsresult (*GetSpeed)(IHostUSBDevice *pThis, PRUint32 *speed);
21272 
21273     nsresult (*GetRemote)(IHostUSBDevice *pThis, PRBool *remote);
21274 
21275     nsresult (*GetDeviceInfo)(IHostUSBDevice *pThis, PRUint32 *deviceInfoSize, PRUnichar * **deviceInfo);
21276 
21277     nsresult (*GetBackend)(IHostUSBDevice *pThis, PRUnichar * *backend);
21278 
21279     nsresult (*GetInternalAndReservedAttribute1IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21280 
21281     nsresult (*GetInternalAndReservedAttribute2IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21282 
21283     nsresult (*GetInternalAndReservedAttribute3IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21284 
21285     nsresult (*GetInternalAndReservedAttribute4IUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21286 
21287     nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
21288 
21289     nsresult (*GetInternalAndReservedAttribute1IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21290 
21291     nsresult (*GetInternalAndReservedAttribute2IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21292 
21293     nsresult (*GetInternalAndReservedAttribute3IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21294 
21295     nsresult (*GetInternalAndReservedAttribute4IHostUSBDevice)(IHostUSBDevice *pThis, PRUint32 *reserved);
21296 
21297 };
21298 #    define IHostUSBDevice_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21299 #    define IHostUSBDevice_AddRef(p) ((p)->lpVtbl->AddRef(p))
21300 #    define IHostUSBDevice_Release(p) ((p)->lpVtbl->Release(p))
21301 #    define IHostUSBDevice_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
21302 #    define IHostUSBDevice_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
21303 #    define IHostUSBDevice_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21304 #    define IHostUSBDevice_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21305 #    define IHostUSBDevice_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21306 #    define IHostUSBDevice_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21307 #    define IHostUSBDevice_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21308 #    define IHostUSBDevice_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21309 #    define IHostUSBDevice_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21310 #    define IHostUSBDevice_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21311 #    define IHostUSBDevice_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21312 #    define IHostUSBDevice_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21313 #    define IHostUSBDevice_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21314 #    define IHostUSBDevice_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21315 #    define IHostUSBDevice_get_Address(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
21316 #    define IHostUSBDevice_GetAddress(p, aAddress) ((p)->lpVtbl->GetAddress(p, aAddress))
21317 #    define IHostUSBDevice_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21318 #    define IHostUSBDevice_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21319 #    define IHostUSBDevice_get_PortPath(p, aPortPath) ((p)->lpVtbl->GetPortPath(p, aPortPath))
21320 #    define IHostUSBDevice_GetPortPath(p, aPortPath) ((p)->lpVtbl->GetPortPath(p, aPortPath))
21321 #    define IHostUSBDevice_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21322 #    define IHostUSBDevice_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
21323 #    define IHostUSBDevice_get_Speed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
21324 #    define IHostUSBDevice_GetSpeed(p, aSpeed) ((p)->lpVtbl->GetSpeed(p, aSpeed))
21325 #    define IHostUSBDevice_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21326 #    define IHostUSBDevice_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21327 #    define IHostUSBDevice_get_DeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
21328 #    define IHostUSBDevice_GetDeviceInfo(p, aDeviceInfo) ((p)->lpVtbl->GetDeviceInfo(p, aDeviceInfo))
21329 #    define IHostUSBDevice_get_Backend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
21330 #    define IHostUSBDevice_GetBackend(p, aBackend) ((p)->lpVtbl->GetBackend(p, aBackend))
21331 #    define IHostUSBDevice_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
21332 #    define IHostUSBDevice_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
21333 #   endif /* VBOX_WITH_GLUE */
21334 
21335 interface IHostUSBDevice
21336 {
21337 #   ifndef VBOX_WITH_GLUE
21338     struct IHostUSBDevice_vtbl *vtbl;
21339 #   else /* VBOX_WITH_GLUE */
21340     CONST_VTBL struct IHostUSBDeviceVtbl *lpVtbl;
21341 #   endif /* VBOX_WITH_GLUE */
21342 };
21343 /* End of struct IHostUSBDevice declaration */
21344 
21345 
21346 /* Start of struct IHostUSBDeviceFilter declaration */
21347 #   define IHOSTUSBDEVICEFILTER_IID_STR "01adb2d6-aedf-461c-be2c-99e91bdad8a1"
21348 #   define IHOSTUSBDEVICEFILTER_IID { \
21349     0x01adb2d6, 0xaedf, 0x461c, \
21350     { 0xbe, 0x2c, 0x99, 0xe9, 0x1b, 0xda, 0xd8, 0xa1 } \
21351 }
21352 /* COM compatibility */
21353 VBOX_EXTERN_CONST(nsIID, IID_IHostUSBDeviceFilter);
21354 #   ifndef VBOX_WITH_GLUE
21355 struct IHostUSBDeviceFilter_vtbl
21356 {
21357     struct IUSBDeviceFilter_vtbl iusbdevicefilter;
21358 
21359     nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
21360     nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
21361 
21362     nsresult (*GetInternalAndReservedAttribute1IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21363 
21364     nsresult (*GetInternalAndReservedAttribute2IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21365 
21366     nsresult (*GetInternalAndReservedAttribute3IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21367 
21368     nsresult (*GetInternalAndReservedAttribute4IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21369 
21370     nsresult (*GetInternalAndReservedAttribute5IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21371 
21372     nsresult (*GetInternalAndReservedAttribute6IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21373 
21374     nsresult (*GetInternalAndReservedAttribute7IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21375 
21376     nsresult (*GetInternalAndReservedAttribute8IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21377 
21378 };
21379 #   else /* VBOX_WITH_GLUE */
21380 struct IHostUSBDeviceFilterVtbl
21381 {
21382     nsresult (*QueryInterface)(IHostUSBDeviceFilter *pThis, const nsID *iid, void **resultp);
21383     nsrefcnt (*AddRef)(IHostUSBDeviceFilter *pThis);
21384     nsrefcnt (*Release)(IHostUSBDeviceFilter *pThis);
21385     nsresult (*GetName)(IHostUSBDeviceFilter *pThis, PRUnichar * *name);
21386     nsresult (*SetName)(IHostUSBDeviceFilter *pThis, PRUnichar * name);
21387 
21388     nsresult (*GetActive)(IHostUSBDeviceFilter *pThis, PRBool *active);
21389     nsresult (*SetActive)(IHostUSBDeviceFilter *pThis, PRBool active);
21390 
21391     nsresult (*GetVendorId)(IHostUSBDeviceFilter *pThis, PRUnichar * *vendorId);
21392     nsresult (*SetVendorId)(IHostUSBDeviceFilter *pThis, PRUnichar * vendorId);
21393 
21394     nsresult (*GetProductId)(IHostUSBDeviceFilter *pThis, PRUnichar * *productId);
21395     nsresult (*SetProductId)(IHostUSBDeviceFilter *pThis, PRUnichar * productId);
21396 
21397     nsresult (*GetRevision)(IHostUSBDeviceFilter *pThis, PRUnichar * *revision);
21398     nsresult (*SetRevision)(IHostUSBDeviceFilter *pThis, PRUnichar * revision);
21399 
21400     nsresult (*GetManufacturer)(IHostUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
21401     nsresult (*SetManufacturer)(IHostUSBDeviceFilter *pThis, PRUnichar * manufacturer);
21402 
21403     nsresult (*GetProduct)(IHostUSBDeviceFilter *pThis, PRUnichar * *product);
21404     nsresult (*SetProduct)(IHostUSBDeviceFilter *pThis, PRUnichar * product);
21405 
21406     nsresult (*GetSerialNumber)(IHostUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
21407     nsresult (*SetSerialNumber)(IHostUSBDeviceFilter *pThis, PRUnichar * serialNumber);
21408 
21409     nsresult (*GetPort)(IHostUSBDeviceFilter *pThis, PRUnichar * *port);
21410     nsresult (*SetPort)(IHostUSBDeviceFilter *pThis, PRUnichar * port);
21411 
21412     nsresult (*GetRemote)(IHostUSBDeviceFilter *pThis, PRUnichar * *remote);
21413     nsresult (*SetRemote)(IHostUSBDeviceFilter *pThis, PRUnichar * remote);
21414 
21415     nsresult (*GetMaskedInterfaces)(IHostUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
21416     nsresult (*SetMaskedInterfaces)(IHostUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
21417 
21418     nsresult (*GetInternalAndReservedAttribute1IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21419 
21420     nsresult (*GetInternalAndReservedAttribute2IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21421 
21422     nsresult (*GetInternalAndReservedAttribute3IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21423 
21424     nsresult (*GetInternalAndReservedAttribute4IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21425 
21426     nsresult (*GetInternalAndReservedAttribute5IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21427 
21428     nsresult (*GetInternalAndReservedAttribute6IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21429 
21430     nsresult (*GetInternalAndReservedAttribute7IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21431 
21432     nsresult (*GetInternalAndReservedAttribute8IUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21433 
21434     nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
21435     nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
21436 
21437     nsresult (*GetInternalAndReservedAttribute1IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21438 
21439     nsresult (*GetInternalAndReservedAttribute2IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21440 
21441     nsresult (*GetInternalAndReservedAttribute3IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21442 
21443     nsresult (*GetInternalAndReservedAttribute4IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21444 
21445     nsresult (*GetInternalAndReservedAttribute5IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21446 
21447     nsresult (*GetInternalAndReservedAttribute6IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21448 
21449     nsresult (*GetInternalAndReservedAttribute7IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21450 
21451     nsresult (*GetInternalAndReservedAttribute8IHostUSBDeviceFilter)(IHostUSBDeviceFilter *pThis, PRUint32 *reserved);
21452 
21453 };
21454 #    define IHostUSBDeviceFilter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21455 #    define IHostUSBDeviceFilter_AddRef(p) ((p)->lpVtbl->AddRef(p))
21456 #    define IHostUSBDeviceFilter_Release(p) ((p)->lpVtbl->Release(p))
21457 #    define IHostUSBDeviceFilter_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21458 #    define IHostUSBDeviceFilter_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21459 #    define IHostUSBDeviceFilter_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
21460 #    define IHostUSBDeviceFilter_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
21461 #    define IHostUSBDeviceFilter_get_Active(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
21462 #    define IHostUSBDeviceFilter_GetActive(p, aActive) ((p)->lpVtbl->GetActive(p, aActive))
21463 #    define IHostUSBDeviceFilter_put_Active(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
21464 #    define IHostUSBDeviceFilter_SetActive(p, aActive) ((p)->lpVtbl->SetActive(p, aActive))
21465 #    define IHostUSBDeviceFilter_get_VendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21466 #    define IHostUSBDeviceFilter_GetVendorId(p, aVendorId) ((p)->lpVtbl->GetVendorId(p, aVendorId))
21467 #    define IHostUSBDeviceFilter_put_VendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
21468 #    define IHostUSBDeviceFilter_SetVendorId(p, aVendorId) ((p)->lpVtbl->SetVendorId(p, aVendorId))
21469 #    define IHostUSBDeviceFilter_get_ProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21470 #    define IHostUSBDeviceFilter_GetProductId(p, aProductId) ((p)->lpVtbl->GetProductId(p, aProductId))
21471 #    define IHostUSBDeviceFilter_put_ProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
21472 #    define IHostUSBDeviceFilter_SetProductId(p, aProductId) ((p)->lpVtbl->SetProductId(p, aProductId))
21473 #    define IHostUSBDeviceFilter_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21474 #    define IHostUSBDeviceFilter_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
21475 #    define IHostUSBDeviceFilter_put_Revision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
21476 #    define IHostUSBDeviceFilter_SetRevision(p, aRevision) ((p)->lpVtbl->SetRevision(p, aRevision))
21477 #    define IHostUSBDeviceFilter_get_Manufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21478 #    define IHostUSBDeviceFilter_GetManufacturer(p, aManufacturer) ((p)->lpVtbl->GetManufacturer(p, aManufacturer))
21479 #    define IHostUSBDeviceFilter_put_Manufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
21480 #    define IHostUSBDeviceFilter_SetManufacturer(p, aManufacturer) ((p)->lpVtbl->SetManufacturer(p, aManufacturer))
21481 #    define IHostUSBDeviceFilter_get_Product(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21482 #    define IHostUSBDeviceFilter_GetProduct(p, aProduct) ((p)->lpVtbl->GetProduct(p, aProduct))
21483 #    define IHostUSBDeviceFilter_put_Product(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
21484 #    define IHostUSBDeviceFilter_SetProduct(p, aProduct) ((p)->lpVtbl->SetProduct(p, aProduct))
21485 #    define IHostUSBDeviceFilter_get_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21486 #    define IHostUSBDeviceFilter_GetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->GetSerialNumber(p, aSerialNumber))
21487 #    define IHostUSBDeviceFilter_put_SerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
21488 #    define IHostUSBDeviceFilter_SetSerialNumber(p, aSerialNumber) ((p)->lpVtbl->SetSerialNumber(p, aSerialNumber))
21489 #    define IHostUSBDeviceFilter_get_Port(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21490 #    define IHostUSBDeviceFilter_GetPort(p, aPort) ((p)->lpVtbl->GetPort(p, aPort))
21491 #    define IHostUSBDeviceFilter_put_Port(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
21492 #    define IHostUSBDeviceFilter_SetPort(p, aPort) ((p)->lpVtbl->SetPort(p, aPort))
21493 #    define IHostUSBDeviceFilter_get_Remote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21494 #    define IHostUSBDeviceFilter_GetRemote(p, aRemote) ((p)->lpVtbl->GetRemote(p, aRemote))
21495 #    define IHostUSBDeviceFilter_put_Remote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
21496 #    define IHostUSBDeviceFilter_SetRemote(p, aRemote) ((p)->lpVtbl->SetRemote(p, aRemote))
21497 #    define IHostUSBDeviceFilter_get_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
21498 #    define IHostUSBDeviceFilter_GetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->GetMaskedInterfaces(p, aMaskedInterfaces))
21499 #    define IHostUSBDeviceFilter_put_MaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
21500 #    define IHostUSBDeviceFilter_SetMaskedInterfaces(p, aMaskedInterfaces) ((p)->lpVtbl->SetMaskedInterfaces(p, aMaskedInterfaces))
21501 #    define IHostUSBDeviceFilter_get_Action(p, aAction) ((p)->lpVtbl->GetAction(p, aAction))
21502 #    define IHostUSBDeviceFilter_GetAction(p, aAction) ((p)->lpVtbl->GetAction(p, aAction))
21503 #    define IHostUSBDeviceFilter_put_Action(p, aAction) ((p)->lpVtbl->SetAction(p, aAction))
21504 #    define IHostUSBDeviceFilter_SetAction(p, aAction) ((p)->lpVtbl->SetAction(p, aAction))
21505 #   endif /* VBOX_WITH_GLUE */
21506 
21507 interface IHostUSBDeviceFilter
21508 {
21509 #   ifndef VBOX_WITH_GLUE
21510     struct IHostUSBDeviceFilter_vtbl *vtbl;
21511 #   else /* VBOX_WITH_GLUE */
21512     CONST_VTBL struct IHostUSBDeviceFilterVtbl *lpVtbl;
21513 #   endif /* VBOX_WITH_GLUE */
21514 };
21515 /* End of struct IHostUSBDeviceFilter declaration */
21516 
21517 
21518 /* Start of struct IUSBProxyBackend declaration */
21519 #   define IUSBPROXYBACKEND_IID_STR "dfe56449-6989-4002-80cf-3607f377d40c"
21520 #   define IUSBPROXYBACKEND_IID { \
21521     0xdfe56449, 0x6989, 0x4002, \
21522     { 0x80, 0xcf, 0x36, 0x07, 0xf3, 0x77, 0xd4, 0x0c } \
21523 }
21524 /* COM compatibility */
21525 VBOX_EXTERN_CONST(nsIID, IID_IUSBProxyBackend);
21526 #   ifndef VBOX_WITH_GLUE
21527 struct IUSBProxyBackend_vtbl
21528 {
21529     struct nsISupports_vtbl nsisupports;
21530 
21531     nsresult (*GetName)(IUSBProxyBackend *pThis, PRUnichar * *name);
21532 
21533     nsresult (*GetType)(IUSBProxyBackend *pThis, PRUnichar * *type);
21534 
21535     nsresult (*GetInternalAndReservedAttribute1IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21536 
21537     nsresult (*GetInternalAndReservedAttribute2IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21538 
21539     nsresult (*GetInternalAndReservedAttribute3IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21540 
21541     nsresult (*GetInternalAndReservedAttribute4IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21542 
21543     nsresult (*GetInternalAndReservedAttribute5IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21544 
21545     nsresult (*GetInternalAndReservedAttribute6IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21546 
21547     nsresult (*GetInternalAndReservedAttribute7IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21548 
21549     nsresult (*GetInternalAndReservedAttribute8IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21550 
21551     nsresult (*InternalAndReservedMethod1IUSBProxyBackend)(IUSBProxyBackend *pThis);
21552 
21553     nsresult (*InternalAndReservedMethod2IUSBProxyBackend)(IUSBProxyBackend *pThis);
21554 
21555     nsresult (*InternalAndReservedMethod3IUSBProxyBackend)(IUSBProxyBackend *pThis);
21556 
21557     nsresult (*InternalAndReservedMethod4IUSBProxyBackend)(IUSBProxyBackend *pThis);
21558 
21559 };
21560 #   else /* VBOX_WITH_GLUE */
21561 struct IUSBProxyBackendVtbl
21562 {
21563     nsresult (*QueryInterface)(IUSBProxyBackend *pThis, const nsID *iid, void **resultp);
21564     nsrefcnt (*AddRef)(IUSBProxyBackend *pThis);
21565     nsrefcnt (*Release)(IUSBProxyBackend *pThis);
21566     nsresult (*GetName)(IUSBProxyBackend *pThis, PRUnichar * *name);
21567 
21568     nsresult (*GetType)(IUSBProxyBackend *pThis, PRUnichar * *type);
21569 
21570     nsresult (*GetInternalAndReservedAttribute1IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21571 
21572     nsresult (*GetInternalAndReservedAttribute2IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21573 
21574     nsresult (*GetInternalAndReservedAttribute3IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21575 
21576     nsresult (*GetInternalAndReservedAttribute4IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21577 
21578     nsresult (*GetInternalAndReservedAttribute5IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21579 
21580     nsresult (*GetInternalAndReservedAttribute6IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21581 
21582     nsresult (*GetInternalAndReservedAttribute7IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21583 
21584     nsresult (*GetInternalAndReservedAttribute8IUSBProxyBackend)(IUSBProxyBackend *pThis, PRUint32 *reserved);
21585 
21586     nsresult (*InternalAndReservedMethod1IUSBProxyBackend)(IUSBProxyBackend *pThis);
21587 
21588     nsresult (*InternalAndReservedMethod2IUSBProxyBackend)(IUSBProxyBackend *pThis);
21589 
21590     nsresult (*InternalAndReservedMethod3IUSBProxyBackend)(IUSBProxyBackend *pThis);
21591 
21592     nsresult (*InternalAndReservedMethod4IUSBProxyBackend)(IUSBProxyBackend *pThis);
21593 
21594 };
21595 #    define IUSBProxyBackend_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21596 #    define IUSBProxyBackend_AddRef(p) ((p)->lpVtbl->AddRef(p))
21597 #    define IUSBProxyBackend_Release(p) ((p)->lpVtbl->Release(p))
21598 #    define IUSBProxyBackend_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
21599 #    define IUSBProxyBackend_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
21600 #    define IUSBProxyBackend_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
21601 #    define IUSBProxyBackend_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
21602 #   endif /* VBOX_WITH_GLUE */
21603 
21604 interface IUSBProxyBackend
21605 {
21606 #   ifndef VBOX_WITH_GLUE
21607     struct IUSBProxyBackend_vtbl *vtbl;
21608 #   else /* VBOX_WITH_GLUE */
21609     CONST_VTBL struct IUSBProxyBackendVtbl *lpVtbl;
21610 #   endif /* VBOX_WITH_GLUE */
21611 };
21612 /* End of struct IUSBProxyBackend declaration */
21613 
21614 
21615 /* Start of struct IAudioAdapter declaration */
21616 #   define IAUDIOADAPTER_IID_STR "5155bfd3-7ba7-45a8-b26d-c91ae3754e37"
21617 #   define IAUDIOADAPTER_IID { \
21618     0x5155bfd3, 0x7ba7, 0x45a8, \
21619     { 0xb2, 0x6d, 0xc9, 0x1a, 0xe3, 0x75, 0x4e, 0x37 } \
21620 }
21621 /* COM compatibility */
21622 VBOX_EXTERN_CONST(nsIID, IID_IAudioAdapter);
21623 #   ifndef VBOX_WITH_GLUE
21624 struct IAudioAdapter_vtbl
21625 {
21626     struct nsISupports_vtbl nsisupports;
21627 
21628     nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
21629     nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
21630 
21631     nsresult (*GetEnabledIn)(IAudioAdapter *pThis, PRBool *enabledIn);
21632     nsresult (*SetEnabledIn)(IAudioAdapter *pThis, PRBool enabledIn);
21633 
21634     nsresult (*GetEnabledOut)(IAudioAdapter *pThis, PRBool *enabledOut);
21635     nsresult (*SetEnabledOut)(IAudioAdapter *pThis, PRBool enabledOut);
21636 
21637     nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
21638     nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
21639 
21640     nsresult (*GetAudioCodec)(IAudioAdapter *pThis, PRUint32 *audioCodec);
21641     nsresult (*SetAudioCodec)(IAudioAdapter *pThis, PRUint32 audioCodec);
21642 
21643     nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
21644     nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
21645 
21646     nsresult (*GetPropertiesList)(IAudioAdapter *pThis, PRUint32 *propertiesListSize, PRUnichar * **propertiesList);
21647 
21648     nsresult (*GetInternalAndReservedAttribute1IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21649 
21650     nsresult (*GetInternalAndReservedAttribute2IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21651 
21652     nsresult (*GetInternalAndReservedAttribute3IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21653 
21654     nsresult (*GetInternalAndReservedAttribute4IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21655 
21656     nsresult (*GetInternalAndReservedAttribute5IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21657 
21658     nsresult (*GetInternalAndReservedAttribute6IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21659 
21660     nsresult (*GetInternalAndReservedAttribute7IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21661 
21662     nsresult (*GetInternalAndReservedAttribute8IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21663 
21664     nsresult (*SetProperty)(
21665         IAudioAdapter *pThis,
21666         PRUnichar * key,
21667         PRUnichar * value
21668     );
21669 
21670     nsresult (*GetProperty)(
21671         IAudioAdapter *pThis,
21672         PRUnichar * key,
21673         PRUnichar * * value
21674     );
21675 
21676     nsresult (*InternalAndReservedMethod1IAudioAdapter)(IAudioAdapter *pThis);
21677 
21678     nsresult (*InternalAndReservedMethod2IAudioAdapter)(IAudioAdapter *pThis);
21679 
21680     nsresult (*InternalAndReservedMethod3IAudioAdapter)(IAudioAdapter *pThis);
21681 
21682     nsresult (*InternalAndReservedMethod4IAudioAdapter)(IAudioAdapter *pThis);
21683 
21684 };
21685 #   else /* VBOX_WITH_GLUE */
21686 struct IAudioAdapterVtbl
21687 {
21688     nsresult (*QueryInterface)(IAudioAdapter *pThis, const nsID *iid, void **resultp);
21689     nsrefcnt (*AddRef)(IAudioAdapter *pThis);
21690     nsrefcnt (*Release)(IAudioAdapter *pThis);
21691     nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
21692     nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
21693 
21694     nsresult (*GetEnabledIn)(IAudioAdapter *pThis, PRBool *enabledIn);
21695     nsresult (*SetEnabledIn)(IAudioAdapter *pThis, PRBool enabledIn);
21696 
21697     nsresult (*GetEnabledOut)(IAudioAdapter *pThis, PRBool *enabledOut);
21698     nsresult (*SetEnabledOut)(IAudioAdapter *pThis, PRBool enabledOut);
21699 
21700     nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
21701     nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
21702 
21703     nsresult (*GetAudioCodec)(IAudioAdapter *pThis, PRUint32 *audioCodec);
21704     nsresult (*SetAudioCodec)(IAudioAdapter *pThis, PRUint32 audioCodec);
21705 
21706     nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
21707     nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
21708 
21709     nsresult (*GetPropertiesList)(IAudioAdapter *pThis, PRUint32 *propertiesListSize, PRUnichar * **propertiesList);
21710 
21711     nsresult (*GetInternalAndReservedAttribute1IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21712 
21713     nsresult (*GetInternalAndReservedAttribute2IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21714 
21715     nsresult (*GetInternalAndReservedAttribute3IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21716 
21717     nsresult (*GetInternalAndReservedAttribute4IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21718 
21719     nsresult (*GetInternalAndReservedAttribute5IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21720 
21721     nsresult (*GetInternalAndReservedAttribute6IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21722 
21723     nsresult (*GetInternalAndReservedAttribute7IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21724 
21725     nsresult (*GetInternalAndReservedAttribute8IAudioAdapter)(IAudioAdapter *pThis, PRUint32 *reserved);
21726 
21727     nsresult (*SetProperty)(
21728         IAudioAdapter *pThis,
21729         PRUnichar * key,
21730         PRUnichar * value
21731     );
21732 
21733     nsresult (*GetProperty)(
21734         IAudioAdapter *pThis,
21735         PRUnichar * key,
21736         PRUnichar * * value
21737     );
21738 
21739     nsresult (*InternalAndReservedMethod1IAudioAdapter)(IAudioAdapter *pThis);
21740 
21741     nsresult (*InternalAndReservedMethod2IAudioAdapter)(IAudioAdapter *pThis);
21742 
21743     nsresult (*InternalAndReservedMethod3IAudioAdapter)(IAudioAdapter *pThis);
21744 
21745     nsresult (*InternalAndReservedMethod4IAudioAdapter)(IAudioAdapter *pThis);
21746 
21747 };
21748 #    define IAudioAdapter_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21749 #    define IAudioAdapter_AddRef(p) ((p)->lpVtbl->AddRef(p))
21750 #    define IAudioAdapter_Release(p) ((p)->lpVtbl->Release(p))
21751 #    define IAudioAdapter_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
21752 #    define IAudioAdapter_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
21753 #    define IAudioAdapter_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
21754 #    define IAudioAdapter_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
21755 #    define IAudioAdapter_get_EnabledIn(p, aEnabledIn) ((p)->lpVtbl->GetEnabledIn(p, aEnabledIn))
21756 #    define IAudioAdapter_GetEnabledIn(p, aEnabledIn) ((p)->lpVtbl->GetEnabledIn(p, aEnabledIn))
21757 #    define IAudioAdapter_put_EnabledIn(p, aEnabledIn) ((p)->lpVtbl->SetEnabledIn(p, aEnabledIn))
21758 #    define IAudioAdapter_SetEnabledIn(p, aEnabledIn) ((p)->lpVtbl->SetEnabledIn(p, aEnabledIn))
21759 #    define IAudioAdapter_get_EnabledOut(p, aEnabledOut) ((p)->lpVtbl->GetEnabledOut(p, aEnabledOut))
21760 #    define IAudioAdapter_GetEnabledOut(p, aEnabledOut) ((p)->lpVtbl->GetEnabledOut(p, aEnabledOut))
21761 #    define IAudioAdapter_put_EnabledOut(p, aEnabledOut) ((p)->lpVtbl->SetEnabledOut(p, aEnabledOut))
21762 #    define IAudioAdapter_SetEnabledOut(p, aEnabledOut) ((p)->lpVtbl->SetEnabledOut(p, aEnabledOut))
21763 #    define IAudioAdapter_get_AudioController(p, aAudioController) ((p)->lpVtbl->GetAudioController(p, aAudioController))
21764 #    define IAudioAdapter_GetAudioController(p, aAudioController) ((p)->lpVtbl->GetAudioController(p, aAudioController))
21765 #    define IAudioAdapter_put_AudioController(p, aAudioController) ((p)->lpVtbl->SetAudioController(p, aAudioController))
21766 #    define IAudioAdapter_SetAudioController(p, aAudioController) ((p)->lpVtbl->SetAudioController(p, aAudioController))
21767 #    define IAudioAdapter_get_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
21768 #    define IAudioAdapter_GetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->GetAudioCodec(p, aAudioCodec))
21769 #    define IAudioAdapter_put_AudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
21770 #    define IAudioAdapter_SetAudioCodec(p, aAudioCodec) ((p)->lpVtbl->SetAudioCodec(p, aAudioCodec))
21771 #    define IAudioAdapter_get_AudioDriver(p, aAudioDriver) ((p)->lpVtbl->GetAudioDriver(p, aAudioDriver))
21772 #    define IAudioAdapter_GetAudioDriver(p, aAudioDriver) ((p)->lpVtbl->GetAudioDriver(p, aAudioDriver))
21773 #    define IAudioAdapter_put_AudioDriver(p, aAudioDriver) ((p)->lpVtbl->SetAudioDriver(p, aAudioDriver))
21774 #    define IAudioAdapter_SetAudioDriver(p, aAudioDriver) ((p)->lpVtbl->SetAudioDriver(p, aAudioDriver))
21775 #    define IAudioAdapter_get_PropertiesList(p, aPropertiesList) ((p)->lpVtbl->GetPropertiesList(p, aPropertiesList))
21776 #    define IAudioAdapter_GetPropertiesList(p, aPropertiesList) ((p)->lpVtbl->GetPropertiesList(p, aPropertiesList))
21777 #    define IAudioAdapter_SetProperty(p, aKey, aValue) ((p)->lpVtbl->SetProperty(p, aKey, aValue))
21778 #    define IAudioAdapter_GetProperty(p, aKey, aValue) ((p)->lpVtbl->GetProperty(p, aKey, aValue))
21779 #   endif /* VBOX_WITH_GLUE */
21780 
21781 interface IAudioAdapter
21782 {
21783 #   ifndef VBOX_WITH_GLUE
21784     struct IAudioAdapter_vtbl *vtbl;
21785 #   else /* VBOX_WITH_GLUE */
21786     CONST_VTBL struct IAudioAdapterVtbl *lpVtbl;
21787 #   endif /* VBOX_WITH_GLUE */
21788 };
21789 /* End of struct IAudioAdapter declaration */
21790 
21791 
21792 /* Start of struct IVRDEServer declaration */
21793 #   define IVRDESERVER_IID_STR "08e25756-08a2-41af-a05f-d7c661abaebe"
21794 #   define IVRDESERVER_IID { \
21795     0x08e25756, 0x08a2, 0x41af, \
21796     { 0xa0, 0x5f, 0xd7, 0xc6, 0x61, 0xab, 0xae, 0xbe } \
21797 }
21798 /* COM compatibility */
21799 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServer);
21800 #   ifndef VBOX_WITH_GLUE
21801 struct IVRDEServer_vtbl
21802 {
21803     struct nsISupports_vtbl nsisupports;
21804 
21805     nsresult (*GetEnabled)(IVRDEServer *pThis, PRBool *enabled);
21806     nsresult (*SetEnabled)(IVRDEServer *pThis, PRBool enabled);
21807 
21808     nsresult (*GetAuthType)(IVRDEServer *pThis, PRUint32 *authType);
21809     nsresult (*SetAuthType)(IVRDEServer *pThis, PRUint32 authType);
21810 
21811     nsresult (*GetAuthTimeout)(IVRDEServer *pThis, PRUint32 *authTimeout);
21812     nsresult (*SetAuthTimeout)(IVRDEServer *pThis, PRUint32 authTimeout);
21813 
21814     nsresult (*GetAllowMultiConnection)(IVRDEServer *pThis, PRBool *allowMultiConnection);
21815     nsresult (*SetAllowMultiConnection)(IVRDEServer *pThis, PRBool allowMultiConnection);
21816 
21817     nsresult (*GetReuseSingleConnection)(IVRDEServer *pThis, PRBool *reuseSingleConnection);
21818     nsresult (*SetReuseSingleConnection)(IVRDEServer *pThis, PRBool reuseSingleConnection);
21819 
21820     nsresult (*GetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * *VRDEExtPack);
21821     nsresult (*SetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * VRDEExtPack);
21822 
21823     nsresult (*GetAuthLibrary)(IVRDEServer *pThis, PRUnichar * *authLibrary);
21824     nsresult (*SetAuthLibrary)(IVRDEServer *pThis, PRUnichar * authLibrary);
21825 
21826     nsresult (*GetVRDEProperties)(IVRDEServer *pThis, PRUint32 *VRDEPropertiesSize, PRUnichar * **VRDEProperties);
21827 
21828     nsresult (*GetInternalAndReservedAttribute1IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21829 
21830     nsresult (*GetInternalAndReservedAttribute2IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21831 
21832     nsresult (*GetInternalAndReservedAttribute3IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21833 
21834     nsresult (*GetInternalAndReservedAttribute4IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21835 
21836     nsresult (*SetVRDEProperty)(
21837         IVRDEServer *pThis,
21838         PRUnichar * key,
21839         PRUnichar * value
21840     );
21841 
21842     nsresult (*GetVRDEProperty)(
21843         IVRDEServer *pThis,
21844         PRUnichar * key,
21845         PRUnichar * * value
21846     );
21847 
21848     nsresult (*InternalAndReservedMethod1IVRDEServer)(IVRDEServer *pThis);
21849 
21850     nsresult (*InternalAndReservedMethod2IVRDEServer)(IVRDEServer *pThis);
21851 
21852 };
21853 #   else /* VBOX_WITH_GLUE */
21854 struct IVRDEServerVtbl
21855 {
21856     nsresult (*QueryInterface)(IVRDEServer *pThis, const nsID *iid, void **resultp);
21857     nsrefcnt (*AddRef)(IVRDEServer *pThis);
21858     nsrefcnt (*Release)(IVRDEServer *pThis);
21859     nsresult (*GetEnabled)(IVRDEServer *pThis, PRBool *enabled);
21860     nsresult (*SetEnabled)(IVRDEServer *pThis, PRBool enabled);
21861 
21862     nsresult (*GetAuthType)(IVRDEServer *pThis, PRUint32 *authType);
21863     nsresult (*SetAuthType)(IVRDEServer *pThis, PRUint32 authType);
21864 
21865     nsresult (*GetAuthTimeout)(IVRDEServer *pThis, PRUint32 *authTimeout);
21866     nsresult (*SetAuthTimeout)(IVRDEServer *pThis, PRUint32 authTimeout);
21867 
21868     nsresult (*GetAllowMultiConnection)(IVRDEServer *pThis, PRBool *allowMultiConnection);
21869     nsresult (*SetAllowMultiConnection)(IVRDEServer *pThis, PRBool allowMultiConnection);
21870 
21871     nsresult (*GetReuseSingleConnection)(IVRDEServer *pThis, PRBool *reuseSingleConnection);
21872     nsresult (*SetReuseSingleConnection)(IVRDEServer *pThis, PRBool reuseSingleConnection);
21873 
21874     nsresult (*GetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * *VRDEExtPack);
21875     nsresult (*SetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * VRDEExtPack);
21876 
21877     nsresult (*GetAuthLibrary)(IVRDEServer *pThis, PRUnichar * *authLibrary);
21878     nsresult (*SetAuthLibrary)(IVRDEServer *pThis, PRUnichar * authLibrary);
21879 
21880     nsresult (*GetVRDEProperties)(IVRDEServer *pThis, PRUint32 *VRDEPropertiesSize, PRUnichar * **VRDEProperties);
21881 
21882     nsresult (*GetInternalAndReservedAttribute1IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21883 
21884     nsresult (*GetInternalAndReservedAttribute2IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21885 
21886     nsresult (*GetInternalAndReservedAttribute3IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21887 
21888     nsresult (*GetInternalAndReservedAttribute4IVRDEServer)(IVRDEServer *pThis, PRUint32 *reserved);
21889 
21890     nsresult (*SetVRDEProperty)(
21891         IVRDEServer *pThis,
21892         PRUnichar * key,
21893         PRUnichar * value
21894     );
21895 
21896     nsresult (*GetVRDEProperty)(
21897         IVRDEServer *pThis,
21898         PRUnichar * key,
21899         PRUnichar * * value
21900     );
21901 
21902     nsresult (*InternalAndReservedMethod1IVRDEServer)(IVRDEServer *pThis);
21903 
21904     nsresult (*InternalAndReservedMethod2IVRDEServer)(IVRDEServer *pThis);
21905 
21906 };
21907 #    define IVRDEServer_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
21908 #    define IVRDEServer_AddRef(p) ((p)->lpVtbl->AddRef(p))
21909 #    define IVRDEServer_Release(p) ((p)->lpVtbl->Release(p))
21910 #    define IVRDEServer_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
21911 #    define IVRDEServer_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
21912 #    define IVRDEServer_put_Enabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
21913 #    define IVRDEServer_SetEnabled(p, aEnabled) ((p)->lpVtbl->SetEnabled(p, aEnabled))
21914 #    define IVRDEServer_get_AuthType(p, aAuthType) ((p)->lpVtbl->GetAuthType(p, aAuthType))
21915 #    define IVRDEServer_GetAuthType(p, aAuthType) ((p)->lpVtbl->GetAuthType(p, aAuthType))
21916 #    define IVRDEServer_put_AuthType(p, aAuthType) ((p)->lpVtbl->SetAuthType(p, aAuthType))
21917 #    define IVRDEServer_SetAuthType(p, aAuthType) ((p)->lpVtbl->SetAuthType(p, aAuthType))
21918 #    define IVRDEServer_get_AuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->GetAuthTimeout(p, aAuthTimeout))
21919 #    define IVRDEServer_GetAuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->GetAuthTimeout(p, aAuthTimeout))
21920 #    define IVRDEServer_put_AuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->SetAuthTimeout(p, aAuthTimeout))
21921 #    define IVRDEServer_SetAuthTimeout(p, aAuthTimeout) ((p)->lpVtbl->SetAuthTimeout(p, aAuthTimeout))
21922 #    define IVRDEServer_get_AllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->GetAllowMultiConnection(p, aAllowMultiConnection))
21923 #    define IVRDEServer_GetAllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->GetAllowMultiConnection(p, aAllowMultiConnection))
21924 #    define IVRDEServer_put_AllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->SetAllowMultiConnection(p, aAllowMultiConnection))
21925 #    define IVRDEServer_SetAllowMultiConnection(p, aAllowMultiConnection) ((p)->lpVtbl->SetAllowMultiConnection(p, aAllowMultiConnection))
21926 #    define IVRDEServer_get_ReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->GetReuseSingleConnection(p, aReuseSingleConnection))
21927 #    define IVRDEServer_GetReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->GetReuseSingleConnection(p, aReuseSingleConnection))
21928 #    define IVRDEServer_put_ReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->SetReuseSingleConnection(p, aReuseSingleConnection))
21929 #    define IVRDEServer_SetReuseSingleConnection(p, aReuseSingleConnection) ((p)->lpVtbl->SetReuseSingleConnection(p, aReuseSingleConnection))
21930 #    define IVRDEServer_get_VRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->GetVRDEExtPack(p, aVRDEExtPack))
21931 #    define IVRDEServer_GetVRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->GetVRDEExtPack(p, aVRDEExtPack))
21932 #    define IVRDEServer_put_VRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->SetVRDEExtPack(p, aVRDEExtPack))
21933 #    define IVRDEServer_SetVRDEExtPack(p, aVRDEExtPack) ((p)->lpVtbl->SetVRDEExtPack(p, aVRDEExtPack))
21934 #    define IVRDEServer_get_AuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->GetAuthLibrary(p, aAuthLibrary))
21935 #    define IVRDEServer_GetAuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->GetAuthLibrary(p, aAuthLibrary))
21936 #    define IVRDEServer_put_AuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->SetAuthLibrary(p, aAuthLibrary))
21937 #    define IVRDEServer_SetAuthLibrary(p, aAuthLibrary) ((p)->lpVtbl->SetAuthLibrary(p, aAuthLibrary))
21938 #    define IVRDEServer_get_VRDEProperties(p, aVRDEProperties) ((p)->lpVtbl->GetVRDEProperties(p, aVRDEProperties))
21939 #    define IVRDEServer_GetVRDEProperties(p, aVRDEProperties) ((p)->lpVtbl->GetVRDEProperties(p, aVRDEProperties))
21940 #    define IVRDEServer_SetVRDEProperty(p, aKey, aValue) ((p)->lpVtbl->SetVRDEProperty(p, aKey, aValue))
21941 #    define IVRDEServer_GetVRDEProperty(p, aKey, aValue) ((p)->lpVtbl->GetVRDEProperty(p, aKey, aValue))
21942 #   endif /* VBOX_WITH_GLUE */
21943 
21944 interface IVRDEServer
21945 {
21946 #   ifndef VBOX_WITH_GLUE
21947     struct IVRDEServer_vtbl *vtbl;
21948 #   else /* VBOX_WITH_GLUE */
21949     CONST_VTBL struct IVRDEServerVtbl *lpVtbl;
21950 #   endif /* VBOX_WITH_GLUE */
21951 };
21952 /* End of struct IVRDEServer declaration */
21953 
21954 
21955 /* Start of struct ISharedFolder declaration */
21956 #   define ISHAREDFOLDER_IID_STR "9622225a-5409-414b-bd16-77df7ba3451e"
21957 #   define ISHAREDFOLDER_IID { \
21958     0x9622225a, 0x5409, 0x414b, \
21959     { 0xbd, 0x16, 0x77, 0xdf, 0x7b, 0xa3, 0x45, 0x1e } \
21960 }
21961 /* COM compatibility */
21962 VBOX_EXTERN_CONST(nsIID, IID_ISharedFolder);
21963 #   ifndef VBOX_WITH_GLUE
21964 struct ISharedFolder_vtbl
21965 {
21966     struct nsISupports_vtbl nsisupports;
21967 
21968     nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
21969 
21970     nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
21971 
21972     nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
21973 
21974     nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
21975     nsresult (*SetWritable)(ISharedFolder *pThis, PRBool writable);
21976 
21977     nsresult (*GetAutoMount)(ISharedFolder *pThis, PRBool *autoMount);
21978     nsresult (*SetAutoMount)(ISharedFolder *pThis, PRBool autoMount);
21979 
21980     nsresult (*GetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * *autoMountPoint);
21981     nsresult (*SetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * autoMountPoint);
21982 
21983     nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
21984 
21985     nsresult (*GetInternalAndReservedAttribute1ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
21986 
21987     nsresult (*GetInternalAndReservedAttribute2ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
21988 
21989     nsresult (*GetInternalAndReservedAttribute3ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
21990 
21991     nsresult (*GetInternalAndReservedAttribute4ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
21992 
21993     nsresult (*GetInternalAndReservedAttribute5ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
21994 
21995     nsresult (*GetInternalAndReservedAttribute6ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
21996 
21997     nsresult (*GetInternalAndReservedAttribute7ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
21998 
21999     nsresult (*GetInternalAndReservedAttribute8ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22000 
22001 };
22002 #   else /* VBOX_WITH_GLUE */
22003 struct ISharedFolderVtbl
22004 {
22005     nsresult (*QueryInterface)(ISharedFolder *pThis, const nsID *iid, void **resultp);
22006     nsrefcnt (*AddRef)(ISharedFolder *pThis);
22007     nsrefcnt (*Release)(ISharedFolder *pThis);
22008     nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
22009 
22010     nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
22011 
22012     nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
22013 
22014     nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
22015     nsresult (*SetWritable)(ISharedFolder *pThis, PRBool writable);
22016 
22017     nsresult (*GetAutoMount)(ISharedFolder *pThis, PRBool *autoMount);
22018     nsresult (*SetAutoMount)(ISharedFolder *pThis, PRBool autoMount);
22019 
22020     nsresult (*GetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * *autoMountPoint);
22021     nsresult (*SetAutoMountPoint)(ISharedFolder *pThis, PRUnichar * autoMountPoint);
22022 
22023     nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
22024 
22025     nsresult (*GetInternalAndReservedAttribute1ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22026 
22027     nsresult (*GetInternalAndReservedAttribute2ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22028 
22029     nsresult (*GetInternalAndReservedAttribute3ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22030 
22031     nsresult (*GetInternalAndReservedAttribute4ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22032 
22033     nsresult (*GetInternalAndReservedAttribute5ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22034 
22035     nsresult (*GetInternalAndReservedAttribute6ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22036 
22037     nsresult (*GetInternalAndReservedAttribute7ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22038 
22039     nsresult (*GetInternalAndReservedAttribute8ISharedFolder)(ISharedFolder *pThis, PRUint32 *reserved);
22040 
22041 };
22042 #    define ISharedFolder_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22043 #    define ISharedFolder_AddRef(p) ((p)->lpVtbl->AddRef(p))
22044 #    define ISharedFolder_Release(p) ((p)->lpVtbl->Release(p))
22045 #    define ISharedFolder_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
22046 #    define ISharedFolder_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
22047 #    define ISharedFolder_get_HostPath(p, aHostPath) ((p)->lpVtbl->GetHostPath(p, aHostPath))
22048 #    define ISharedFolder_GetHostPath(p, aHostPath) ((p)->lpVtbl->GetHostPath(p, aHostPath))
22049 #    define ISharedFolder_get_Accessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
22050 #    define ISharedFolder_GetAccessible(p, aAccessible) ((p)->lpVtbl->GetAccessible(p, aAccessible))
22051 #    define ISharedFolder_get_Writable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
22052 #    define ISharedFolder_GetWritable(p, aWritable) ((p)->lpVtbl->GetWritable(p, aWritable))
22053 #    define ISharedFolder_put_Writable(p, aWritable) ((p)->lpVtbl->SetWritable(p, aWritable))
22054 #    define ISharedFolder_SetWritable(p, aWritable) ((p)->lpVtbl->SetWritable(p, aWritable))
22055 #    define ISharedFolder_get_AutoMount(p, aAutoMount) ((p)->lpVtbl->GetAutoMount(p, aAutoMount))
22056 #    define ISharedFolder_GetAutoMount(p, aAutoMount) ((p)->lpVtbl->GetAutoMount(p, aAutoMount))
22057 #    define ISharedFolder_put_AutoMount(p, aAutoMount) ((p)->lpVtbl->SetAutoMount(p, aAutoMount))
22058 #    define ISharedFolder_SetAutoMount(p, aAutoMount) ((p)->lpVtbl->SetAutoMount(p, aAutoMount))
22059 #    define ISharedFolder_get_AutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->GetAutoMountPoint(p, aAutoMountPoint))
22060 #    define ISharedFolder_GetAutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->GetAutoMountPoint(p, aAutoMountPoint))
22061 #    define ISharedFolder_put_AutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->SetAutoMountPoint(p, aAutoMountPoint))
22062 #    define ISharedFolder_SetAutoMountPoint(p, aAutoMountPoint) ((p)->lpVtbl->SetAutoMountPoint(p, aAutoMountPoint))
22063 #    define ISharedFolder_get_LastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
22064 #    define ISharedFolder_GetLastAccessError(p, aLastAccessError) ((p)->lpVtbl->GetLastAccessError(p, aLastAccessError))
22065 #   endif /* VBOX_WITH_GLUE */
22066 
22067 interface ISharedFolder
22068 {
22069 #   ifndef VBOX_WITH_GLUE
22070     struct ISharedFolder_vtbl *vtbl;
22071 #   else /* VBOX_WITH_GLUE */
22072     CONST_VTBL struct ISharedFolderVtbl *lpVtbl;
22073 #   endif /* VBOX_WITH_GLUE */
22074 };
22075 /* End of struct ISharedFolder declaration */
22076 
22077 
22078 /* Start of struct ISession declaration */
22079 #   define ISESSION_IID_STR "c0447716-ff5a-4795-b57a-ecd5fffa18a4"
22080 #   define ISESSION_IID { \
22081     0xc0447716, 0xff5a, 0x4795, \
22082     { 0xb5, 0x7a, 0xec, 0xd5, 0xff, 0xfa, 0x18, 0xa4 } \
22083 }
22084 /* COM compatibility */
22085 VBOX_EXTERN_CONST(nsIID, IID_ISession);
22086 #   ifndef VBOX_WITH_GLUE
22087 struct ISession_vtbl
22088 {
22089     struct nsISupports_vtbl nsisupports;
22090 
22091     nsresult (*GetState)(ISession *pThis, PRUint32 *state);
22092 
22093     nsresult (*GetType)(ISession *pThis, PRUint32 *type);
22094 
22095     nsresult (*GetName)(ISession *pThis, PRUnichar * *name);
22096     nsresult (*SetName)(ISession *pThis, PRUnichar * name);
22097 
22098     nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
22099 
22100     nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
22101 
22102     nsresult (*GetInternalAndReservedAttribute1ISession)(ISession *pThis, PRUint32 *reserved);
22103 
22104     nsresult (*GetInternalAndReservedAttribute2ISession)(ISession *pThis, PRUint32 *reserved);
22105 
22106     nsresult (*GetInternalAndReservedAttribute3ISession)(ISession *pThis, PRUint32 *reserved);
22107 
22108     nsresult (*GetInternalAndReservedAttribute4ISession)(ISession *pThis, PRUint32 *reserved);
22109 
22110     nsresult (*GetInternalAndReservedAttribute5ISession)(ISession *pThis, PRUint32 *reserved);
22111 
22112     nsresult (*GetInternalAndReservedAttribute6ISession)(ISession *pThis, PRUint32 *reserved);
22113 
22114     nsresult (*GetInternalAndReservedAttribute7ISession)(ISession *pThis, PRUint32 *reserved);
22115 
22116     nsresult (*GetInternalAndReservedAttribute8ISession)(ISession *pThis, PRUint32 *reserved);
22117 
22118     nsresult (*UnlockMachine)(ISession *pThis );
22119 
22120     nsresult (*InternalAndReservedMethod1ISession)(ISession *pThis);
22121 
22122     nsresult (*InternalAndReservedMethod2ISession)(ISession *pThis);
22123 
22124     nsresult (*InternalAndReservedMethod3ISession)(ISession *pThis);
22125 
22126     nsresult (*InternalAndReservedMethod4ISession)(ISession *pThis);
22127 
22128 };
22129 #   else /* VBOX_WITH_GLUE */
22130 struct ISessionVtbl
22131 {
22132     nsresult (*QueryInterface)(ISession *pThis, const nsID *iid, void **resultp);
22133     nsrefcnt (*AddRef)(ISession *pThis);
22134     nsrefcnt (*Release)(ISession *pThis);
22135     nsresult (*GetState)(ISession *pThis, PRUint32 *state);
22136 
22137     nsresult (*GetType)(ISession *pThis, PRUint32 *type);
22138 
22139     nsresult (*GetName)(ISession *pThis, PRUnichar * *name);
22140     nsresult (*SetName)(ISession *pThis, PRUnichar * name);
22141 
22142     nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
22143 
22144     nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
22145 
22146     nsresult (*GetInternalAndReservedAttribute1ISession)(ISession *pThis, PRUint32 *reserved);
22147 
22148     nsresult (*GetInternalAndReservedAttribute2ISession)(ISession *pThis, PRUint32 *reserved);
22149 
22150     nsresult (*GetInternalAndReservedAttribute3ISession)(ISession *pThis, PRUint32 *reserved);
22151 
22152     nsresult (*GetInternalAndReservedAttribute4ISession)(ISession *pThis, PRUint32 *reserved);
22153 
22154     nsresult (*GetInternalAndReservedAttribute5ISession)(ISession *pThis, PRUint32 *reserved);
22155 
22156     nsresult (*GetInternalAndReservedAttribute6ISession)(ISession *pThis, PRUint32 *reserved);
22157 
22158     nsresult (*GetInternalAndReservedAttribute7ISession)(ISession *pThis, PRUint32 *reserved);
22159 
22160     nsresult (*GetInternalAndReservedAttribute8ISession)(ISession *pThis, PRUint32 *reserved);
22161 
22162     nsresult (*UnlockMachine)(ISession *pThis );
22163 
22164     nsresult (*InternalAndReservedMethod1ISession)(ISession *pThis);
22165 
22166     nsresult (*InternalAndReservedMethod2ISession)(ISession *pThis);
22167 
22168     nsresult (*InternalAndReservedMethod3ISession)(ISession *pThis);
22169 
22170     nsresult (*InternalAndReservedMethod4ISession)(ISession *pThis);
22171 
22172 };
22173 #    define ISession_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22174 #    define ISession_AddRef(p) ((p)->lpVtbl->AddRef(p))
22175 #    define ISession_Release(p) ((p)->lpVtbl->Release(p))
22176 #    define ISession_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
22177 #    define ISession_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
22178 #    define ISession_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
22179 #    define ISession_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
22180 #    define ISession_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
22181 #    define ISession_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
22182 #    define ISession_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
22183 #    define ISession_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
22184 #    define ISession_get_Machine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
22185 #    define ISession_GetMachine(p, aMachine) ((p)->lpVtbl->GetMachine(p, aMachine))
22186 #    define ISession_get_Console(p, aConsole) ((p)->lpVtbl->GetConsole(p, aConsole))
22187 #    define ISession_GetConsole(p, aConsole) ((p)->lpVtbl->GetConsole(p, aConsole))
22188 #    define ISession_UnlockMachine(p) ((p)->lpVtbl->UnlockMachine(p))
22189 #   endif /* VBOX_WITH_GLUE */
22190 
22191 interface ISession
22192 {
22193 #   ifndef VBOX_WITH_GLUE
22194     struct ISession_vtbl *vtbl;
22195 #   else /* VBOX_WITH_GLUE */
22196     CONST_VTBL struct ISessionVtbl *lpVtbl;
22197 #   endif /* VBOX_WITH_GLUE */
22198 };
22199 /* End of struct ISession declaration */
22200 
22201 
22202 /* Start of struct IStorageController declaration */
22203 #   define ISTORAGECONTROLLER_IID_STR "ddca7247-bf98-47fb-ab2f-b5177533f493"
22204 #   define ISTORAGECONTROLLER_IID { \
22205     0xddca7247, 0xbf98, 0x47fb, \
22206     { 0xab, 0x2f, 0xb5, 0x17, 0x75, 0x33, 0xf4, 0x93 } \
22207 }
22208 /* COM compatibility */
22209 VBOX_EXTERN_CONST(nsIID, IID_IStorageController);
22210 #   ifndef VBOX_WITH_GLUE
22211 struct IStorageController_vtbl
22212 {
22213     struct nsISupports_vtbl nsisupports;
22214 
22215     nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
22216     nsresult (*SetName)(IStorageController *pThis, PRUnichar * name);
22217 
22218     nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
22219 
22220     nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
22221 
22222     nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
22223 
22224     nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
22225     nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
22226 
22227     nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
22228     nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
22229 
22230     nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
22231 
22232     nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
22233     nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
22234 
22235     nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
22236     nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
22237 
22238     nsresult (*GetBootable)(IStorageController *pThis, PRBool *bootable);
22239 
22240     nsresult (*GetInternalAndReservedAttribute1IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22241 
22242     nsresult (*GetInternalAndReservedAttribute2IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22243 
22244     nsresult (*GetInternalAndReservedAttribute3IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22245 
22246     nsresult (*GetInternalAndReservedAttribute4IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22247 
22248     nsresult (*GetInternalAndReservedAttribute5IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22249 
22250     nsresult (*GetInternalAndReservedAttribute6IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22251 
22252     nsresult (*GetInternalAndReservedAttribute7IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22253 
22254     nsresult (*GetInternalAndReservedAttribute8IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22255 
22256     nsresult (*InternalAndReservedMethod1IStorageController)(IStorageController *pThis);
22257 
22258     nsresult (*InternalAndReservedMethod2IStorageController)(IStorageController *pThis);
22259 
22260     nsresult (*InternalAndReservedMethod3IStorageController)(IStorageController *pThis);
22261 
22262     nsresult (*InternalAndReservedMethod4IStorageController)(IStorageController *pThis);
22263 
22264 };
22265 #   else /* VBOX_WITH_GLUE */
22266 struct IStorageControllerVtbl
22267 {
22268     nsresult (*QueryInterface)(IStorageController *pThis, const nsID *iid, void **resultp);
22269     nsrefcnt (*AddRef)(IStorageController *pThis);
22270     nsrefcnt (*Release)(IStorageController *pThis);
22271     nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
22272     nsresult (*SetName)(IStorageController *pThis, PRUnichar * name);
22273 
22274     nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
22275 
22276     nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
22277 
22278     nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
22279 
22280     nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
22281     nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
22282 
22283     nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
22284     nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
22285 
22286     nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
22287 
22288     nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
22289     nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
22290 
22291     nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
22292     nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
22293 
22294     nsresult (*GetBootable)(IStorageController *pThis, PRBool *bootable);
22295 
22296     nsresult (*GetInternalAndReservedAttribute1IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22297 
22298     nsresult (*GetInternalAndReservedAttribute2IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22299 
22300     nsresult (*GetInternalAndReservedAttribute3IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22301 
22302     nsresult (*GetInternalAndReservedAttribute4IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22303 
22304     nsresult (*GetInternalAndReservedAttribute5IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22305 
22306     nsresult (*GetInternalAndReservedAttribute6IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22307 
22308     nsresult (*GetInternalAndReservedAttribute7IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22309 
22310     nsresult (*GetInternalAndReservedAttribute8IStorageController)(IStorageController *pThis, PRUint32 *reserved);
22311 
22312     nsresult (*InternalAndReservedMethod1IStorageController)(IStorageController *pThis);
22313 
22314     nsresult (*InternalAndReservedMethod2IStorageController)(IStorageController *pThis);
22315 
22316     nsresult (*InternalAndReservedMethod3IStorageController)(IStorageController *pThis);
22317 
22318     nsresult (*InternalAndReservedMethod4IStorageController)(IStorageController *pThis);
22319 
22320 };
22321 #    define IStorageController_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22322 #    define IStorageController_AddRef(p) ((p)->lpVtbl->AddRef(p))
22323 #    define IStorageController_Release(p) ((p)->lpVtbl->Release(p))
22324 #    define IStorageController_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
22325 #    define IStorageController_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
22326 #    define IStorageController_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
22327 #    define IStorageController_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
22328 #    define IStorageController_get_MaxDevicesPerPortCount(p, aMaxDevicesPerPortCount) ((p)->lpVtbl->GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount))
22329 #    define IStorageController_GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount) ((p)->lpVtbl->GetMaxDevicesPerPortCount(p, aMaxDevicesPerPortCount))
22330 #    define IStorageController_get_MinPortCount(p, aMinPortCount) ((p)->lpVtbl->GetMinPortCount(p, aMinPortCount))
22331 #    define IStorageController_GetMinPortCount(p, aMinPortCount) ((p)->lpVtbl->GetMinPortCount(p, aMinPortCount))
22332 #    define IStorageController_get_MaxPortCount(p, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCount(p, aMaxPortCount))
22333 #    define IStorageController_GetMaxPortCount(p, aMaxPortCount) ((p)->lpVtbl->GetMaxPortCount(p, aMaxPortCount))
22334 #    define IStorageController_get_Instance(p, aInstance) ((p)->lpVtbl->GetInstance(p, aInstance))
22335 #    define IStorageController_GetInstance(p, aInstance) ((p)->lpVtbl->GetInstance(p, aInstance))
22336 #    define IStorageController_put_Instance(p, aInstance) ((p)->lpVtbl->SetInstance(p, aInstance))
22337 #    define IStorageController_SetInstance(p, aInstance) ((p)->lpVtbl->SetInstance(p, aInstance))
22338 #    define IStorageController_get_PortCount(p, aPortCount) ((p)->lpVtbl->GetPortCount(p, aPortCount))
22339 #    define IStorageController_GetPortCount(p, aPortCount) ((p)->lpVtbl->GetPortCount(p, aPortCount))
22340 #    define IStorageController_put_PortCount(p, aPortCount) ((p)->lpVtbl->SetPortCount(p, aPortCount))
22341 #    define IStorageController_SetPortCount(p, aPortCount) ((p)->lpVtbl->SetPortCount(p, aPortCount))
22342 #    define IStorageController_get_Bus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
22343 #    define IStorageController_GetBus(p, aBus) ((p)->lpVtbl->GetBus(p, aBus))
22344 #    define IStorageController_get_ControllerType(p, aControllerType) ((p)->lpVtbl->GetControllerType(p, aControllerType))
22345 #    define IStorageController_GetControllerType(p, aControllerType) ((p)->lpVtbl->GetControllerType(p, aControllerType))
22346 #    define IStorageController_put_ControllerType(p, aControllerType) ((p)->lpVtbl->SetControllerType(p, aControllerType))
22347 #    define IStorageController_SetControllerType(p, aControllerType) ((p)->lpVtbl->SetControllerType(p, aControllerType))
22348 #    define IStorageController_get_UseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->GetUseHostIOCache(p, aUseHostIOCache))
22349 #    define IStorageController_GetUseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->GetUseHostIOCache(p, aUseHostIOCache))
22350 #    define IStorageController_put_UseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->SetUseHostIOCache(p, aUseHostIOCache))
22351 #    define IStorageController_SetUseHostIOCache(p, aUseHostIOCache) ((p)->lpVtbl->SetUseHostIOCache(p, aUseHostIOCache))
22352 #    define IStorageController_get_Bootable(p, aBootable) ((p)->lpVtbl->GetBootable(p, aBootable))
22353 #    define IStorageController_GetBootable(p, aBootable) ((p)->lpVtbl->GetBootable(p, aBootable))
22354 #   endif /* VBOX_WITH_GLUE */
22355 
22356 interface IStorageController
22357 {
22358 #   ifndef VBOX_WITH_GLUE
22359     struct IStorageController_vtbl *vtbl;
22360 #   else /* VBOX_WITH_GLUE */
22361     CONST_VTBL struct IStorageControllerVtbl *lpVtbl;
22362 #   endif /* VBOX_WITH_GLUE */
22363 };
22364 /* End of struct IStorageController declaration */
22365 
22366 
22367 /* Start of struct IPerformanceMetric declaration */
22368 #   define IPERFORMANCEMETRIC_IID_STR "81314d14-fd1c-411a-95c5-e9bb1414e632"
22369 #   define IPERFORMANCEMETRIC_IID { \
22370     0x81314d14, 0xfd1c, 0x411a, \
22371     { 0x95, 0xc5, 0xe9, 0xbb, 0x14, 0x14, 0xe6, 0x32 } \
22372 }
22373 /* COM compatibility */
22374 VBOX_EXTERN_CONST(nsIID, IID_IPerformanceMetric);
22375 #   ifndef VBOX_WITH_GLUE
22376 struct IPerformanceMetric_vtbl
22377 {
22378     struct nsISupports_vtbl nsisupports;
22379 
22380     nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
22381 
22382     nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
22383 
22384     nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
22385 
22386     nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
22387 
22388     nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
22389 
22390     nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
22391 
22392     nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
22393 
22394     nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
22395 
22396     nsresult (*GetInternalAndReservedAttribute1IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22397 
22398     nsresult (*GetInternalAndReservedAttribute2IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22399 
22400     nsresult (*GetInternalAndReservedAttribute3IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22401 
22402     nsresult (*GetInternalAndReservedAttribute4IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22403 
22404     nsresult (*GetInternalAndReservedAttribute5IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22405 
22406     nsresult (*GetInternalAndReservedAttribute6IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22407 
22408     nsresult (*GetInternalAndReservedAttribute7IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22409 
22410     nsresult (*GetInternalAndReservedAttribute8IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22411 
22412 };
22413 #   else /* VBOX_WITH_GLUE */
22414 struct IPerformanceMetricVtbl
22415 {
22416     nsresult (*QueryInterface)(IPerformanceMetric *pThis, const nsID *iid, void **resultp);
22417     nsrefcnt (*AddRef)(IPerformanceMetric *pThis);
22418     nsrefcnt (*Release)(IPerformanceMetric *pThis);
22419     nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
22420 
22421     nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
22422 
22423     nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
22424 
22425     nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
22426 
22427     nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
22428 
22429     nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
22430 
22431     nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
22432 
22433     nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
22434 
22435     nsresult (*GetInternalAndReservedAttribute1IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22436 
22437     nsresult (*GetInternalAndReservedAttribute2IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22438 
22439     nsresult (*GetInternalAndReservedAttribute3IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22440 
22441     nsresult (*GetInternalAndReservedAttribute4IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22442 
22443     nsresult (*GetInternalAndReservedAttribute5IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22444 
22445     nsresult (*GetInternalAndReservedAttribute6IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22446 
22447     nsresult (*GetInternalAndReservedAttribute7IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22448 
22449     nsresult (*GetInternalAndReservedAttribute8IPerformanceMetric)(IPerformanceMetric *pThis, PRUint32 *reserved);
22450 
22451 };
22452 #    define IPerformanceMetric_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22453 #    define IPerformanceMetric_AddRef(p) ((p)->lpVtbl->AddRef(p))
22454 #    define IPerformanceMetric_Release(p) ((p)->lpVtbl->Release(p))
22455 #    define IPerformanceMetric_get_MetricName(p, aMetricName) ((p)->lpVtbl->GetMetricName(p, aMetricName))
22456 #    define IPerformanceMetric_GetMetricName(p, aMetricName) ((p)->lpVtbl->GetMetricName(p, aMetricName))
22457 #    define IPerformanceMetric_get_Object(p, aObject) ((p)->lpVtbl->GetObject(p, aObject))
22458 #    define IPerformanceMetric_GetObject(p, aObject) ((p)->lpVtbl->GetObject(p, aObject))
22459 #    define IPerformanceMetric_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
22460 #    define IPerformanceMetric_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
22461 #    define IPerformanceMetric_get_Period(p, aPeriod) ((p)->lpVtbl->GetPeriod(p, aPeriod))
22462 #    define IPerformanceMetric_GetPeriod(p, aPeriod) ((p)->lpVtbl->GetPeriod(p, aPeriod))
22463 #    define IPerformanceMetric_get_Count(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
22464 #    define IPerformanceMetric_GetCount(p, aCount) ((p)->lpVtbl->GetCount(p, aCount))
22465 #    define IPerformanceMetric_get_Unit(p, aUnit) ((p)->lpVtbl->GetUnit(p, aUnit))
22466 #    define IPerformanceMetric_GetUnit(p, aUnit) ((p)->lpVtbl->GetUnit(p, aUnit))
22467 #    define IPerformanceMetric_get_MinimumValue(p, aMinimumValue) ((p)->lpVtbl->GetMinimumValue(p, aMinimumValue))
22468 #    define IPerformanceMetric_GetMinimumValue(p, aMinimumValue) ((p)->lpVtbl->GetMinimumValue(p, aMinimumValue))
22469 #    define IPerformanceMetric_get_MaximumValue(p, aMaximumValue) ((p)->lpVtbl->GetMaximumValue(p, aMaximumValue))
22470 #    define IPerformanceMetric_GetMaximumValue(p, aMaximumValue) ((p)->lpVtbl->GetMaximumValue(p, aMaximumValue))
22471 #   endif /* VBOX_WITH_GLUE */
22472 
22473 interface IPerformanceMetric
22474 {
22475 #   ifndef VBOX_WITH_GLUE
22476     struct IPerformanceMetric_vtbl *vtbl;
22477 #   else /* VBOX_WITH_GLUE */
22478     CONST_VTBL struct IPerformanceMetricVtbl *lpVtbl;
22479 #   endif /* VBOX_WITH_GLUE */
22480 };
22481 /* End of struct IPerformanceMetric declaration */
22482 
22483 
22484 /* Start of struct IPerformanceCollector declaration */
22485 #   define IPERFORMANCECOLLECTOR_IID_STR "b14290ad-cd54-400c-b858-797bcb82570e"
22486 #   define IPERFORMANCECOLLECTOR_IID { \
22487     0xb14290ad, 0xcd54, 0x400c, \
22488     { 0xb8, 0x58, 0x79, 0x7b, 0xcb, 0x82, 0x57, 0x0e } \
22489 }
22490 /* COM compatibility */
22491 VBOX_EXTERN_CONST(nsIID, IID_IPerformanceCollector);
22492 #   ifndef VBOX_WITH_GLUE
22493 struct IPerformanceCollector_vtbl
22494 {
22495     struct nsISupports_vtbl nsisupports;
22496 
22497     nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
22498 
22499     nsresult (*GetInternalAndReservedAttribute1IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22500 
22501     nsresult (*GetInternalAndReservedAttribute2IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22502 
22503     nsresult (*GetInternalAndReservedAttribute3IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22504 
22505     nsresult (*GetInternalAndReservedAttribute4IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22506 
22507     nsresult (*GetInternalAndReservedAttribute5IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22508 
22509     nsresult (*GetInternalAndReservedAttribute6IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22510 
22511     nsresult (*GetInternalAndReservedAttribute7IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22512 
22513     nsresult (*GetInternalAndReservedAttribute8IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22514 
22515     nsresult (*GetMetrics)(
22516         IPerformanceCollector *pThis,
22517         PRUint32 metricNamesSize,
22518         PRUnichar ** metricNames,
22519         PRUint32 objectsSize,
22520         nsISupports ** objects,
22521         PRUint32 *metricsSize,
22522         IPerformanceMetric *** metrics
22523     );
22524 
22525     nsresult (*SetupMetrics)(
22526         IPerformanceCollector *pThis,
22527         PRUint32 metricNamesSize,
22528         PRUnichar ** metricNames,
22529         PRUint32 objectsSize,
22530         nsISupports ** objects,
22531         PRUint32 period,
22532         PRUint32 count,
22533         PRUint32 *affectedMetricsSize,
22534         IPerformanceMetric *** affectedMetrics
22535     );
22536 
22537     nsresult (*EnableMetrics)(
22538         IPerformanceCollector *pThis,
22539         PRUint32 metricNamesSize,
22540         PRUnichar ** metricNames,
22541         PRUint32 objectsSize,
22542         nsISupports ** objects,
22543         PRUint32 *affectedMetricsSize,
22544         IPerformanceMetric *** affectedMetrics
22545     );
22546 
22547     nsresult (*DisableMetrics)(
22548         IPerformanceCollector *pThis,
22549         PRUint32 metricNamesSize,
22550         PRUnichar ** metricNames,
22551         PRUint32 objectsSize,
22552         nsISupports ** objects,
22553         PRUint32 *affectedMetricsSize,
22554         IPerformanceMetric *** affectedMetrics
22555     );
22556 
22557     nsresult (*QueryMetricsData)(
22558         IPerformanceCollector *pThis,
22559         PRUint32 metricNamesSize,
22560         PRUnichar ** metricNames,
22561         PRUint32 objectsSize,
22562         nsISupports ** objects,
22563         PRUint32 *returnMetricNamesSize,
22564         PRUnichar *** returnMetricNames,
22565         PRUint32 *returnObjectsSize,
22566         nsISupports *** returnObjects,
22567         PRUint32 *returnUnitsSize,
22568         PRUnichar *** returnUnits,
22569         PRUint32 *returnScalesSize,
22570         PRUint32** returnScales,
22571         PRUint32 *returnSequenceNumbersSize,
22572         PRUint32** returnSequenceNumbers,
22573         PRUint32 *returnDataIndicesSize,
22574         PRUint32** returnDataIndices,
22575         PRUint32 *returnDataLengthsSize,
22576         PRUint32** returnDataLengths,
22577         PRUint32 *returnDataSize,
22578         PRInt32** returnData
22579     );
22580 
22581     nsresult (*InternalAndReservedMethod1IPerformanceCollector)(IPerformanceCollector *pThis);
22582 
22583     nsresult (*InternalAndReservedMethod2IPerformanceCollector)(IPerformanceCollector *pThis);
22584 
22585     nsresult (*InternalAndReservedMethod3IPerformanceCollector)(IPerformanceCollector *pThis);
22586 
22587     nsresult (*InternalAndReservedMethod4IPerformanceCollector)(IPerformanceCollector *pThis);
22588 
22589 };
22590 #   else /* VBOX_WITH_GLUE */
22591 struct IPerformanceCollectorVtbl
22592 {
22593     nsresult (*QueryInterface)(IPerformanceCollector *pThis, const nsID *iid, void **resultp);
22594     nsrefcnt (*AddRef)(IPerformanceCollector *pThis);
22595     nsrefcnt (*Release)(IPerformanceCollector *pThis);
22596     nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
22597 
22598     nsresult (*GetInternalAndReservedAttribute1IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22599 
22600     nsresult (*GetInternalAndReservedAttribute2IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22601 
22602     nsresult (*GetInternalAndReservedAttribute3IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22603 
22604     nsresult (*GetInternalAndReservedAttribute4IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22605 
22606     nsresult (*GetInternalAndReservedAttribute5IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22607 
22608     nsresult (*GetInternalAndReservedAttribute6IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22609 
22610     nsresult (*GetInternalAndReservedAttribute7IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22611 
22612     nsresult (*GetInternalAndReservedAttribute8IPerformanceCollector)(IPerformanceCollector *pThis, PRUint32 *reserved);
22613 
22614     nsresult (*GetMetrics)(
22615         IPerformanceCollector *pThis,
22616         PRUint32 metricNamesSize,
22617         PRUnichar ** metricNames,
22618         PRUint32 objectsSize,
22619         nsISupports ** objects,
22620         PRUint32 *metricsSize,
22621         IPerformanceMetric *** metrics
22622     );
22623 
22624     nsresult (*SetupMetrics)(
22625         IPerformanceCollector *pThis,
22626         PRUint32 metricNamesSize,
22627         PRUnichar ** metricNames,
22628         PRUint32 objectsSize,
22629         nsISupports ** objects,
22630         PRUint32 period,
22631         PRUint32 count,
22632         PRUint32 *affectedMetricsSize,
22633         IPerformanceMetric *** affectedMetrics
22634     );
22635 
22636     nsresult (*EnableMetrics)(
22637         IPerformanceCollector *pThis,
22638         PRUint32 metricNamesSize,
22639         PRUnichar ** metricNames,
22640         PRUint32 objectsSize,
22641         nsISupports ** objects,
22642         PRUint32 *affectedMetricsSize,
22643         IPerformanceMetric *** affectedMetrics
22644     );
22645 
22646     nsresult (*DisableMetrics)(
22647         IPerformanceCollector *pThis,
22648         PRUint32 metricNamesSize,
22649         PRUnichar ** metricNames,
22650         PRUint32 objectsSize,
22651         nsISupports ** objects,
22652         PRUint32 *affectedMetricsSize,
22653         IPerformanceMetric *** affectedMetrics
22654     );
22655 
22656     nsresult (*QueryMetricsData)(
22657         IPerformanceCollector *pThis,
22658         PRUint32 metricNamesSize,
22659         PRUnichar ** metricNames,
22660         PRUint32 objectsSize,
22661         nsISupports ** objects,
22662         PRUint32 *returnMetricNamesSize,
22663         PRUnichar *** returnMetricNames,
22664         PRUint32 *returnObjectsSize,
22665         nsISupports *** returnObjects,
22666         PRUint32 *returnUnitsSize,
22667         PRUnichar *** returnUnits,
22668         PRUint32 *returnScalesSize,
22669         PRUint32** returnScales,
22670         PRUint32 *returnSequenceNumbersSize,
22671         PRUint32** returnSequenceNumbers,
22672         PRUint32 *returnDataIndicesSize,
22673         PRUint32** returnDataIndices,
22674         PRUint32 *returnDataLengthsSize,
22675         PRUint32** returnDataLengths,
22676         PRUint32 *returnDataSize,
22677         PRInt32** returnData
22678     );
22679 
22680     nsresult (*InternalAndReservedMethod1IPerformanceCollector)(IPerformanceCollector *pThis);
22681 
22682     nsresult (*InternalAndReservedMethod2IPerformanceCollector)(IPerformanceCollector *pThis);
22683 
22684     nsresult (*InternalAndReservedMethod3IPerformanceCollector)(IPerformanceCollector *pThis);
22685 
22686     nsresult (*InternalAndReservedMethod4IPerformanceCollector)(IPerformanceCollector *pThis);
22687 
22688 };
22689 #    define IPerformanceCollector_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22690 #    define IPerformanceCollector_AddRef(p) ((p)->lpVtbl->AddRef(p))
22691 #    define IPerformanceCollector_Release(p) ((p)->lpVtbl->Release(p))
22692 #    define IPerformanceCollector_get_MetricNames(p, aMetricNames) ((p)->lpVtbl->GetMetricNames(p, aMetricNames))
22693 #    define IPerformanceCollector_GetMetricNames(p, aMetricNames) ((p)->lpVtbl->GetMetricNames(p, aMetricNames))
22694 #    define IPerformanceCollector_GetMetrics(p, aMetricNames, aObjects, aMetrics) ((p)->lpVtbl->GetMetrics(p, aMetricNames, aObjects, aMetrics))
22695 #    define IPerformanceCollector_SetupMetrics(p, aMetricNames, aObjects, aPeriod, aCount, aAffectedMetrics) ((p)->lpVtbl->SetupMetrics(p, aMetricNames, aObjects, aPeriod, aCount, aAffectedMetrics))
22696 #    define IPerformanceCollector_EnableMetrics(p, aMetricNames, aObjects, aAffectedMetrics) ((p)->lpVtbl->EnableMetrics(p, aMetricNames, aObjects, aAffectedMetrics))
22697 #    define IPerformanceCollector_DisableMetrics(p, aMetricNames, aObjects, aAffectedMetrics) ((p)->lpVtbl->DisableMetrics(p, aMetricNames, aObjects, aAffectedMetrics))
22698 #    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))
22699 #   endif /* VBOX_WITH_GLUE */
22700 
22701 interface IPerformanceCollector
22702 {
22703 #   ifndef VBOX_WITH_GLUE
22704     struct IPerformanceCollector_vtbl *vtbl;
22705 #   else /* VBOX_WITH_GLUE */
22706     CONST_VTBL struct IPerformanceCollectorVtbl *lpVtbl;
22707 #   endif /* VBOX_WITH_GLUE */
22708 };
22709 /* End of struct IPerformanceCollector declaration */
22710 
22711 
22712 /* Start of struct INATEngine declaration */
22713 #   define INATENGINE_IID_STR "8faef61e-6e15-4f71-a6a5-94e707fafbcc"
22714 #   define INATENGINE_IID { \
22715     0x8faef61e, 0x6e15, 0x4f71, \
22716     { 0xa6, 0xa5, 0x94, 0xe7, 0x07, 0xfa, 0xfb, 0xcc } \
22717 }
22718 /* COM compatibility */
22719 VBOX_EXTERN_CONST(nsIID, IID_INATEngine);
22720 #   ifndef VBOX_WITH_GLUE
22721 struct INATEngine_vtbl
22722 {
22723     struct nsISupports_vtbl nsisupports;
22724 
22725     nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
22726     nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
22727 
22728     nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
22729     nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
22730 
22731     nsresult (*GetTFTPPrefix)(INATEngine *pThis, PRUnichar * *TFTPPrefix);
22732     nsresult (*SetTFTPPrefix)(INATEngine *pThis, PRUnichar * TFTPPrefix);
22733 
22734     nsresult (*GetTFTPBootFile)(INATEngine *pThis, PRUnichar * *TFTPBootFile);
22735     nsresult (*SetTFTPBootFile)(INATEngine *pThis, PRUnichar * TFTPBootFile);
22736 
22737     nsresult (*GetTFTPNextServer)(INATEngine *pThis, PRUnichar * *TFTPNextServer);
22738     nsresult (*SetTFTPNextServer)(INATEngine *pThis, PRUnichar * TFTPNextServer);
22739 
22740     nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
22741     nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
22742 
22743     nsresult (*GetDNSPassDomain)(INATEngine *pThis, PRBool *DNSPassDomain);
22744     nsresult (*SetDNSPassDomain)(INATEngine *pThis, PRBool DNSPassDomain);
22745 
22746     nsresult (*GetDNSProxy)(INATEngine *pThis, PRBool *DNSProxy);
22747     nsresult (*SetDNSProxy)(INATEngine *pThis, PRBool DNSProxy);
22748 
22749     nsresult (*GetDNSUseHostResolver)(INATEngine *pThis, PRBool *DNSUseHostResolver);
22750     nsresult (*SetDNSUseHostResolver)(INATEngine *pThis, PRBool DNSUseHostResolver);
22751 
22752     nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
22753 
22754     nsresult (*GetInternalAndReservedAttribute1INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22755 
22756     nsresult (*GetInternalAndReservedAttribute2INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22757 
22758     nsresult (*GetInternalAndReservedAttribute3INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22759 
22760     nsresult (*GetInternalAndReservedAttribute4INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22761 
22762     nsresult (*GetInternalAndReservedAttribute5INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22763 
22764     nsresult (*GetInternalAndReservedAttribute6INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22765 
22766     nsresult (*GetInternalAndReservedAttribute7INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22767 
22768     nsresult (*GetInternalAndReservedAttribute8INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22769 
22770     nsresult (*SetNetworkSettings)(
22771         INATEngine *pThis,
22772         PRUint32 mtu,
22773         PRUint32 sockSnd,
22774         PRUint32 sockRcv,
22775         PRUint32 TcpWndSnd,
22776         PRUint32 TcpWndRcv
22777     );
22778 
22779     nsresult (*GetNetworkSettings)(
22780         INATEngine *pThis,
22781         PRUint32 * mtu,
22782         PRUint32 * sockSnd,
22783         PRUint32 * sockRcv,
22784         PRUint32 * TcpWndSnd,
22785         PRUint32 * TcpWndRcv
22786     );
22787 
22788     nsresult (*AddRedirect)(
22789         INATEngine *pThis,
22790         PRUnichar * name,
22791         PRUint32 proto,
22792         PRUnichar * hostIP,
22793         PRUint16 hostPort,
22794         PRUnichar * guestIP,
22795         PRUint16 guestPort
22796     );
22797 
22798     nsresult (*RemoveRedirect)(
22799         INATEngine *pThis,
22800         PRUnichar * name
22801     );
22802 
22803     nsresult (*InternalAndReservedMethod1INATEngine)(INATEngine *pThis);
22804 
22805     nsresult (*InternalAndReservedMethod2INATEngine)(INATEngine *pThis);
22806 
22807     nsresult (*InternalAndReservedMethod3INATEngine)(INATEngine *pThis);
22808 
22809     nsresult (*InternalAndReservedMethod4INATEngine)(INATEngine *pThis);
22810 
22811 };
22812 #   else /* VBOX_WITH_GLUE */
22813 struct INATEngineVtbl
22814 {
22815     nsresult (*QueryInterface)(INATEngine *pThis, const nsID *iid, void **resultp);
22816     nsrefcnt (*AddRef)(INATEngine *pThis);
22817     nsrefcnt (*Release)(INATEngine *pThis);
22818     nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
22819     nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
22820 
22821     nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
22822     nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
22823 
22824     nsresult (*GetTFTPPrefix)(INATEngine *pThis, PRUnichar * *TFTPPrefix);
22825     nsresult (*SetTFTPPrefix)(INATEngine *pThis, PRUnichar * TFTPPrefix);
22826 
22827     nsresult (*GetTFTPBootFile)(INATEngine *pThis, PRUnichar * *TFTPBootFile);
22828     nsresult (*SetTFTPBootFile)(INATEngine *pThis, PRUnichar * TFTPBootFile);
22829 
22830     nsresult (*GetTFTPNextServer)(INATEngine *pThis, PRUnichar * *TFTPNextServer);
22831     nsresult (*SetTFTPNextServer)(INATEngine *pThis, PRUnichar * TFTPNextServer);
22832 
22833     nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
22834     nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
22835 
22836     nsresult (*GetDNSPassDomain)(INATEngine *pThis, PRBool *DNSPassDomain);
22837     nsresult (*SetDNSPassDomain)(INATEngine *pThis, PRBool DNSPassDomain);
22838 
22839     nsresult (*GetDNSProxy)(INATEngine *pThis, PRBool *DNSProxy);
22840     nsresult (*SetDNSProxy)(INATEngine *pThis, PRBool DNSProxy);
22841 
22842     nsresult (*GetDNSUseHostResolver)(INATEngine *pThis, PRBool *DNSUseHostResolver);
22843     nsresult (*SetDNSUseHostResolver)(INATEngine *pThis, PRBool DNSUseHostResolver);
22844 
22845     nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
22846 
22847     nsresult (*GetInternalAndReservedAttribute1INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22848 
22849     nsresult (*GetInternalAndReservedAttribute2INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22850 
22851     nsresult (*GetInternalAndReservedAttribute3INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22852 
22853     nsresult (*GetInternalAndReservedAttribute4INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22854 
22855     nsresult (*GetInternalAndReservedAttribute5INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22856 
22857     nsresult (*GetInternalAndReservedAttribute6INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22858 
22859     nsresult (*GetInternalAndReservedAttribute7INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22860 
22861     nsresult (*GetInternalAndReservedAttribute8INATEngine)(INATEngine *pThis, PRUint32 *reserved);
22862 
22863     nsresult (*SetNetworkSettings)(
22864         INATEngine *pThis,
22865         PRUint32 mtu,
22866         PRUint32 sockSnd,
22867         PRUint32 sockRcv,
22868         PRUint32 TcpWndSnd,
22869         PRUint32 TcpWndRcv
22870     );
22871 
22872     nsresult (*GetNetworkSettings)(
22873         INATEngine *pThis,
22874         PRUint32 * mtu,
22875         PRUint32 * sockSnd,
22876         PRUint32 * sockRcv,
22877         PRUint32 * TcpWndSnd,
22878         PRUint32 * TcpWndRcv
22879     );
22880 
22881     nsresult (*AddRedirect)(
22882         INATEngine *pThis,
22883         PRUnichar * name,
22884         PRUint32 proto,
22885         PRUnichar * hostIP,
22886         PRUint16 hostPort,
22887         PRUnichar * guestIP,
22888         PRUint16 guestPort
22889     );
22890 
22891     nsresult (*RemoveRedirect)(
22892         INATEngine *pThis,
22893         PRUnichar * name
22894     );
22895 
22896     nsresult (*InternalAndReservedMethod1INATEngine)(INATEngine *pThis);
22897 
22898     nsresult (*InternalAndReservedMethod2INATEngine)(INATEngine *pThis);
22899 
22900     nsresult (*InternalAndReservedMethod3INATEngine)(INATEngine *pThis);
22901 
22902     nsresult (*InternalAndReservedMethod4INATEngine)(INATEngine *pThis);
22903 
22904 };
22905 #    define INATEngine_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
22906 #    define INATEngine_AddRef(p) ((p)->lpVtbl->AddRef(p))
22907 #    define INATEngine_Release(p) ((p)->lpVtbl->Release(p))
22908 #    define INATEngine_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
22909 #    define INATEngine_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
22910 #    define INATEngine_put_Network(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
22911 #    define INATEngine_SetNetwork(p, aNetwork) ((p)->lpVtbl->SetNetwork(p, aNetwork))
22912 #    define INATEngine_get_HostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
22913 #    define INATEngine_GetHostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
22914 #    define INATEngine_put_HostIP(p, aHostIP) ((p)->lpVtbl->SetHostIP(p, aHostIP))
22915 #    define INATEngine_SetHostIP(p, aHostIP) ((p)->lpVtbl->SetHostIP(p, aHostIP))
22916 #    define INATEngine_get_TFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->GetTFTPPrefix(p, aTFTPPrefix))
22917 #    define INATEngine_GetTFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->GetTFTPPrefix(p, aTFTPPrefix))
22918 #    define INATEngine_put_TFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->SetTFTPPrefix(p, aTFTPPrefix))
22919 #    define INATEngine_SetTFTPPrefix(p, aTFTPPrefix) ((p)->lpVtbl->SetTFTPPrefix(p, aTFTPPrefix))
22920 #    define INATEngine_get_TFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->GetTFTPBootFile(p, aTFTPBootFile))
22921 #    define INATEngine_GetTFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->GetTFTPBootFile(p, aTFTPBootFile))
22922 #    define INATEngine_put_TFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->SetTFTPBootFile(p, aTFTPBootFile))
22923 #    define INATEngine_SetTFTPBootFile(p, aTFTPBootFile) ((p)->lpVtbl->SetTFTPBootFile(p, aTFTPBootFile))
22924 #    define INATEngine_get_TFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->GetTFTPNextServer(p, aTFTPNextServer))
22925 #    define INATEngine_GetTFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->GetTFTPNextServer(p, aTFTPNextServer))
22926 #    define INATEngine_put_TFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->SetTFTPNextServer(p, aTFTPNextServer))
22927 #    define INATEngine_SetTFTPNextServer(p, aTFTPNextServer) ((p)->lpVtbl->SetTFTPNextServer(p, aTFTPNextServer))
22928 #    define INATEngine_get_AliasMode(p, aAliasMode) ((p)->lpVtbl->GetAliasMode(p, aAliasMode))
22929 #    define INATEngine_GetAliasMode(p, aAliasMode) ((p)->lpVtbl->GetAliasMode(p, aAliasMode))
22930 #    define INATEngine_put_AliasMode(p, aAliasMode) ((p)->lpVtbl->SetAliasMode(p, aAliasMode))
22931 #    define INATEngine_SetAliasMode(p, aAliasMode) ((p)->lpVtbl->SetAliasMode(p, aAliasMode))
22932 #    define INATEngine_get_DNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->GetDNSPassDomain(p, aDNSPassDomain))
22933 #    define INATEngine_GetDNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->GetDNSPassDomain(p, aDNSPassDomain))
22934 #    define INATEngine_put_DNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->SetDNSPassDomain(p, aDNSPassDomain))
22935 #    define INATEngine_SetDNSPassDomain(p, aDNSPassDomain) ((p)->lpVtbl->SetDNSPassDomain(p, aDNSPassDomain))
22936 #    define INATEngine_get_DNSProxy(p, aDNSProxy) ((p)->lpVtbl->GetDNSProxy(p, aDNSProxy))
22937 #    define INATEngine_GetDNSProxy(p, aDNSProxy) ((p)->lpVtbl->GetDNSProxy(p, aDNSProxy))
22938 #    define INATEngine_put_DNSProxy(p, aDNSProxy) ((p)->lpVtbl->SetDNSProxy(p, aDNSProxy))
22939 #    define INATEngine_SetDNSProxy(p, aDNSProxy) ((p)->lpVtbl->SetDNSProxy(p, aDNSProxy))
22940 #    define INATEngine_get_DNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->GetDNSUseHostResolver(p, aDNSUseHostResolver))
22941 #    define INATEngine_GetDNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->GetDNSUseHostResolver(p, aDNSUseHostResolver))
22942 #    define INATEngine_put_DNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->SetDNSUseHostResolver(p, aDNSUseHostResolver))
22943 #    define INATEngine_SetDNSUseHostResolver(p, aDNSUseHostResolver) ((p)->lpVtbl->SetDNSUseHostResolver(p, aDNSUseHostResolver))
22944 #    define INATEngine_get_Redirects(p, aRedirects) ((p)->lpVtbl->GetRedirects(p, aRedirects))
22945 #    define INATEngine_GetRedirects(p, aRedirects) ((p)->lpVtbl->GetRedirects(p, aRedirects))
22946 #    define INATEngine_SetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv) ((p)->lpVtbl->SetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv))
22947 #    define INATEngine_GetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv) ((p)->lpVtbl->GetNetworkSettings(p, aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv))
22948 #    define INATEngine_AddRedirect(p, aName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort) ((p)->lpVtbl->AddRedirect(p, aName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort))
22949 #    define INATEngine_RemoveRedirect(p, aName) ((p)->lpVtbl->RemoveRedirect(p, aName))
22950 #   endif /* VBOX_WITH_GLUE */
22951 
22952 interface INATEngine
22953 {
22954 #   ifndef VBOX_WITH_GLUE
22955     struct INATEngine_vtbl *vtbl;
22956 #   else /* VBOX_WITH_GLUE */
22957     CONST_VTBL struct INATEngineVtbl *lpVtbl;
22958 #   endif /* VBOX_WITH_GLUE */
22959 };
22960 /* End of struct INATEngine declaration */
22961 
22962 
22963 /* Start of struct IExtPackPlugIn declaration */
22964 #   define IEXTPACKPLUGIN_IID_STR "78861431-d545-44aa-8013-181b8c288554"
22965 #   define IEXTPACKPLUGIN_IID { \
22966     0x78861431, 0xd545, 0x44aa, \
22967     { 0x80, 0x13, 0x18, 0x1b, 0x8c, 0x28, 0x85, 0x54 } \
22968 }
22969 /* COM compatibility */
22970 VBOX_EXTERN_CONST(nsIID, IID_IExtPackPlugIn);
22971 #   ifndef VBOX_WITH_GLUE
22972 struct IExtPackPlugIn_vtbl
22973 {
22974     struct nsISupports_vtbl nsisupports;
22975 
22976     nsresult (*GetName)(IExtPackPlugIn *pThis, PRUnichar * *name);
22977 
22978     nsresult (*GetDescription)(IExtPackPlugIn *pThis, PRUnichar * *description);
22979 
22980     nsresult (*GetFrontend)(IExtPackPlugIn *pThis, PRUnichar * *frontend);
22981 
22982     nsresult (*GetModulePath)(IExtPackPlugIn *pThis, PRUnichar * *modulePath);
22983 
22984     nsresult (*GetInternalAndReservedAttribute1IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
22985 
22986     nsresult (*GetInternalAndReservedAttribute2IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
22987 
22988     nsresult (*GetInternalAndReservedAttribute3IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
22989 
22990     nsresult (*GetInternalAndReservedAttribute4IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
22991 
22992 };
22993 #   else /* VBOX_WITH_GLUE */
22994 struct IExtPackPlugInVtbl
22995 {
22996     nsresult (*QueryInterface)(IExtPackPlugIn *pThis, const nsID *iid, void **resultp);
22997     nsrefcnt (*AddRef)(IExtPackPlugIn *pThis);
22998     nsrefcnt (*Release)(IExtPackPlugIn *pThis);
22999     nsresult (*GetName)(IExtPackPlugIn *pThis, PRUnichar * *name);
23000 
23001     nsresult (*GetDescription)(IExtPackPlugIn *pThis, PRUnichar * *description);
23002 
23003     nsresult (*GetFrontend)(IExtPackPlugIn *pThis, PRUnichar * *frontend);
23004 
23005     nsresult (*GetModulePath)(IExtPackPlugIn *pThis, PRUnichar * *modulePath);
23006 
23007     nsresult (*GetInternalAndReservedAttribute1IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
23008 
23009     nsresult (*GetInternalAndReservedAttribute2IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
23010 
23011     nsresult (*GetInternalAndReservedAttribute3IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
23012 
23013     nsresult (*GetInternalAndReservedAttribute4IExtPackPlugIn)(IExtPackPlugIn *pThis, PRUint32 *reserved);
23014 
23015 };
23016 #    define IExtPackPlugIn_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23017 #    define IExtPackPlugIn_AddRef(p) ((p)->lpVtbl->AddRef(p))
23018 #    define IExtPackPlugIn_Release(p) ((p)->lpVtbl->Release(p))
23019 #    define IExtPackPlugIn_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
23020 #    define IExtPackPlugIn_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
23021 #    define IExtPackPlugIn_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23022 #    define IExtPackPlugIn_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23023 #    define IExtPackPlugIn_get_Frontend(p, aFrontend) ((p)->lpVtbl->GetFrontend(p, aFrontend))
23024 #    define IExtPackPlugIn_GetFrontend(p, aFrontend) ((p)->lpVtbl->GetFrontend(p, aFrontend))
23025 #    define IExtPackPlugIn_get_ModulePath(p, aModulePath) ((p)->lpVtbl->GetModulePath(p, aModulePath))
23026 #    define IExtPackPlugIn_GetModulePath(p, aModulePath) ((p)->lpVtbl->GetModulePath(p, aModulePath))
23027 #   endif /* VBOX_WITH_GLUE */
23028 
23029 interface IExtPackPlugIn
23030 {
23031 #   ifndef VBOX_WITH_GLUE
23032     struct IExtPackPlugIn_vtbl *vtbl;
23033 #   else /* VBOX_WITH_GLUE */
23034     CONST_VTBL struct IExtPackPlugInVtbl *lpVtbl;
23035 #   endif /* VBOX_WITH_GLUE */
23036 };
23037 /* End of struct IExtPackPlugIn declaration */
23038 
23039 
23040 /* Start of struct IExtPackBase declaration */
23041 #   define IEXTPACKBASE_IID_STR "f25aca3d-0b79-4350-bdd9-a0376cd6e6e3"
23042 #   define IEXTPACKBASE_IID { \
23043     0xf25aca3d, 0x0b79, 0x4350, \
23044     { 0xbd, 0xd9, 0xa0, 0x37, 0x6c, 0xd6, 0xe6, 0xe3 } \
23045 }
23046 /* COM compatibility */
23047 VBOX_EXTERN_CONST(nsIID, IID_IExtPackBase);
23048 #   ifndef VBOX_WITH_GLUE
23049 struct IExtPackBase_vtbl
23050 {
23051     struct nsISupports_vtbl nsisupports;
23052 
23053     nsresult (*GetName)(IExtPackBase *pThis, PRUnichar * *name);
23054 
23055     nsresult (*GetDescription)(IExtPackBase *pThis, PRUnichar * *description);
23056 
23057     nsresult (*GetVersion)(IExtPackBase *pThis, PRUnichar * *version);
23058 
23059     nsresult (*GetRevision)(IExtPackBase *pThis, PRUint32 *revision);
23060 
23061     nsresult (*GetEdition)(IExtPackBase *pThis, PRUnichar * *edition);
23062 
23063     nsresult (*GetVRDEModule)(IExtPackBase *pThis, PRUnichar * *VRDEModule);
23064 
23065     nsresult (*GetPlugIns)(IExtPackBase *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
23066 
23067     nsresult (*GetUsable)(IExtPackBase *pThis, PRBool *usable);
23068 
23069     nsresult (*GetWhyUnusable)(IExtPackBase *pThis, PRUnichar * *whyUnusable);
23070 
23071     nsresult (*GetShowLicense)(IExtPackBase *pThis, PRBool *showLicense);
23072 
23073     nsresult (*GetLicense)(IExtPackBase *pThis, PRUnichar * *license);
23074 
23075     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23076 
23077     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23078 
23079     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23080 
23081     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23082 
23083     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23084 
23085     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23086 
23087     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23088 
23089     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23090 
23091     nsresult (*QueryLicense)(
23092         IExtPackBase *pThis,
23093         PRUnichar * preferredLocale,
23094         PRUnichar * preferredLanguage,
23095         PRUnichar * format,
23096         PRUnichar * * licenseText
23097     );
23098 
23099     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackBase *pThis);
23100 
23101     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPackBase *pThis);
23102 
23103     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPackBase *pThis);
23104 
23105     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPackBase *pThis);
23106 
23107 };
23108 #   else /* VBOX_WITH_GLUE */
23109 struct IExtPackBaseVtbl
23110 {
23111     nsresult (*QueryInterface)(IExtPackBase *pThis, const nsID *iid, void **resultp);
23112     nsrefcnt (*AddRef)(IExtPackBase *pThis);
23113     nsrefcnt (*Release)(IExtPackBase *pThis);
23114     nsresult (*GetName)(IExtPackBase *pThis, PRUnichar * *name);
23115 
23116     nsresult (*GetDescription)(IExtPackBase *pThis, PRUnichar * *description);
23117 
23118     nsresult (*GetVersion)(IExtPackBase *pThis, PRUnichar * *version);
23119 
23120     nsresult (*GetRevision)(IExtPackBase *pThis, PRUint32 *revision);
23121 
23122     nsresult (*GetEdition)(IExtPackBase *pThis, PRUnichar * *edition);
23123 
23124     nsresult (*GetVRDEModule)(IExtPackBase *pThis, PRUnichar * *VRDEModule);
23125 
23126     nsresult (*GetPlugIns)(IExtPackBase *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
23127 
23128     nsresult (*GetUsable)(IExtPackBase *pThis, PRBool *usable);
23129 
23130     nsresult (*GetWhyUnusable)(IExtPackBase *pThis, PRUnichar * *whyUnusable);
23131 
23132     nsresult (*GetShowLicense)(IExtPackBase *pThis, PRBool *showLicense);
23133 
23134     nsresult (*GetLicense)(IExtPackBase *pThis, PRUnichar * *license);
23135 
23136     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23137 
23138     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23139 
23140     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23141 
23142     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23143 
23144     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23145 
23146     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23147 
23148     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23149 
23150     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPackBase *pThis, PRUint32 *reserved);
23151 
23152     nsresult (*QueryLicense)(
23153         IExtPackBase *pThis,
23154         PRUnichar * preferredLocale,
23155         PRUnichar * preferredLanguage,
23156         PRUnichar * format,
23157         PRUnichar * * licenseText
23158     );
23159 
23160     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackBase *pThis);
23161 
23162     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPackBase *pThis);
23163 
23164     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPackBase *pThis);
23165 
23166     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPackBase *pThis);
23167 
23168 };
23169 #    define IExtPackBase_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23170 #    define IExtPackBase_AddRef(p) ((p)->lpVtbl->AddRef(p))
23171 #    define IExtPackBase_Release(p) ((p)->lpVtbl->Release(p))
23172 #    define IExtPackBase_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
23173 #    define IExtPackBase_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
23174 #    define IExtPackBase_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23175 #    define IExtPackBase_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23176 #    define IExtPackBase_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
23177 #    define IExtPackBase_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
23178 #    define IExtPackBase_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
23179 #    define IExtPackBase_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
23180 #    define IExtPackBase_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
23181 #    define IExtPackBase_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
23182 #    define IExtPackBase_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
23183 #    define IExtPackBase_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
23184 #    define IExtPackBase_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
23185 #    define IExtPackBase_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
23186 #    define IExtPackBase_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
23187 #    define IExtPackBase_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
23188 #    define IExtPackBase_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
23189 #    define IExtPackBase_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
23190 #    define IExtPackBase_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
23191 #    define IExtPackBase_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
23192 #    define IExtPackBase_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
23193 #    define IExtPackBase_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
23194 #    define IExtPackBase_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
23195 #   endif /* VBOX_WITH_GLUE */
23196 
23197 interface IExtPackBase
23198 {
23199 #   ifndef VBOX_WITH_GLUE
23200     struct IExtPackBase_vtbl *vtbl;
23201 #   else /* VBOX_WITH_GLUE */
23202     CONST_VTBL struct IExtPackBaseVtbl *lpVtbl;
23203 #   endif /* VBOX_WITH_GLUE */
23204 };
23205 /* End of struct IExtPackBase declaration */
23206 
23207 
23208 /* Start of struct IExtPack declaration */
23209 #   define IEXTPACK_IID_STR "431685da-3618-4ebc-b038-833ba829b4b2"
23210 #   define IEXTPACK_IID { \
23211     0x431685da, 0x3618, 0x4ebc, \
23212     { 0xb0, 0x38, 0x83, 0x3b, 0xa8, 0x29, 0xb4, 0xb2 } \
23213 }
23214 /* COM compatibility */
23215 VBOX_EXTERN_CONST(nsIID, IID_IExtPack);
23216 #   ifndef VBOX_WITH_GLUE
23217 struct IExtPack_vtbl
23218 {
23219     struct IExtPackBase_vtbl iextpackbase;
23220 
23221     nsresult (*QueryObject)(
23222         IExtPack *pThis,
23223         PRUnichar * objUuid,
23224         nsISupports * * returnInterface
23225     );
23226 
23227 };
23228 #   else /* VBOX_WITH_GLUE */
23229 struct IExtPackVtbl
23230 {
23231     nsresult (*QueryInterface)(IExtPack *pThis, const nsID *iid, void **resultp);
23232     nsrefcnt (*AddRef)(IExtPack *pThis);
23233     nsrefcnt (*Release)(IExtPack *pThis);
23234     nsresult (*GetName)(IExtPack *pThis, PRUnichar * *name);
23235 
23236     nsresult (*GetDescription)(IExtPack *pThis, PRUnichar * *description);
23237 
23238     nsresult (*GetVersion)(IExtPack *pThis, PRUnichar * *version);
23239 
23240     nsresult (*GetRevision)(IExtPack *pThis, PRUint32 *revision);
23241 
23242     nsresult (*GetEdition)(IExtPack *pThis, PRUnichar * *edition);
23243 
23244     nsresult (*GetVRDEModule)(IExtPack *pThis, PRUnichar * *VRDEModule);
23245 
23246     nsresult (*GetPlugIns)(IExtPack *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
23247 
23248     nsresult (*GetUsable)(IExtPack *pThis, PRBool *usable);
23249 
23250     nsresult (*GetWhyUnusable)(IExtPack *pThis, PRUnichar * *whyUnusable);
23251 
23252     nsresult (*GetShowLicense)(IExtPack *pThis, PRBool *showLicense);
23253 
23254     nsresult (*GetLicense)(IExtPack *pThis, PRUnichar * *license);
23255 
23256     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23257 
23258     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23259 
23260     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23261 
23262     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23263 
23264     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23265 
23266     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23267 
23268     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23269 
23270     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPack *pThis, PRUint32 *reserved);
23271 
23272     nsresult (*QueryLicense)(
23273         IExtPack *pThis,
23274         PRUnichar * preferredLocale,
23275         PRUnichar * preferredLanguage,
23276         PRUnichar * format,
23277         PRUnichar * * licenseText
23278     );
23279 
23280     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPack *pThis);
23281 
23282     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPack *pThis);
23283 
23284     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPack *pThis);
23285 
23286     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPack *pThis);
23287 
23288     nsresult (*QueryObject)(
23289         IExtPack *pThis,
23290         PRUnichar * objUuid,
23291         nsISupports * * returnInterface
23292     );
23293 
23294 };
23295 #    define IExtPack_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23296 #    define IExtPack_AddRef(p) ((p)->lpVtbl->AddRef(p))
23297 #    define IExtPack_Release(p) ((p)->lpVtbl->Release(p))
23298 #    define IExtPack_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
23299 #    define IExtPack_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
23300 #    define IExtPack_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23301 #    define IExtPack_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23302 #    define IExtPack_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
23303 #    define IExtPack_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
23304 #    define IExtPack_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
23305 #    define IExtPack_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
23306 #    define IExtPack_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
23307 #    define IExtPack_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
23308 #    define IExtPack_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
23309 #    define IExtPack_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
23310 #    define IExtPack_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
23311 #    define IExtPack_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
23312 #    define IExtPack_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
23313 #    define IExtPack_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
23314 #    define IExtPack_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
23315 #    define IExtPack_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
23316 #    define IExtPack_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
23317 #    define IExtPack_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
23318 #    define IExtPack_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
23319 #    define IExtPack_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
23320 #    define IExtPack_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
23321 #    define IExtPack_QueryObject(p, aObjUuid, aReturnInterface) ((p)->lpVtbl->QueryObject(p, aObjUuid, aReturnInterface))
23322 #   endif /* VBOX_WITH_GLUE */
23323 
23324 interface IExtPack
23325 {
23326 #   ifndef VBOX_WITH_GLUE
23327     struct IExtPack_vtbl *vtbl;
23328 #   else /* VBOX_WITH_GLUE */
23329     CONST_VTBL struct IExtPackVtbl *lpVtbl;
23330 #   endif /* VBOX_WITH_GLUE */
23331 };
23332 /* End of struct IExtPack declaration */
23333 
23334 
23335 /* Start of struct IExtPackFile declaration */
23336 #   define IEXTPACKFILE_IID_STR "41304f1b-7e72-4f34-b8f6-682785620c57"
23337 #   define IEXTPACKFILE_IID { \
23338     0x41304f1b, 0x7e72, 0x4f34, \
23339     { 0xb8, 0xf6, 0x68, 0x27, 0x85, 0x62, 0x0c, 0x57 } \
23340 }
23341 /* COM compatibility */
23342 VBOX_EXTERN_CONST(nsIID, IID_IExtPackFile);
23343 #   ifndef VBOX_WITH_GLUE
23344 struct IExtPackFile_vtbl
23345 {
23346     struct IExtPackBase_vtbl iextpackbase;
23347 
23348     nsresult (*GetFilePath)(IExtPackFile *pThis, PRUnichar * *filePath);
23349 
23350     nsresult (*GetInternalAndReservedAttribute1IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23351 
23352     nsresult (*GetInternalAndReservedAttribute2IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23353 
23354     nsresult (*GetInternalAndReservedAttribute3IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23355 
23356     nsresult (*GetInternalAndReservedAttribute4IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23357 
23358     nsresult (*Install)(
23359         IExtPackFile *pThis,
23360         PRBool replace,
23361         PRUnichar * displayInfo,
23362         IProgress * * progess
23363     );
23364 
23365     nsresult (*InternalAndReservedMethod1IExtPackFile)(IExtPackFile *pThis);
23366 
23367     nsresult (*InternalAndReservedMethod2IExtPackFile)(IExtPackFile *pThis);
23368 
23369 };
23370 #   else /* VBOX_WITH_GLUE */
23371 struct IExtPackFileVtbl
23372 {
23373     nsresult (*QueryInterface)(IExtPackFile *pThis, const nsID *iid, void **resultp);
23374     nsrefcnt (*AddRef)(IExtPackFile *pThis);
23375     nsrefcnt (*Release)(IExtPackFile *pThis);
23376     nsresult (*GetName)(IExtPackFile *pThis, PRUnichar * *name);
23377 
23378     nsresult (*GetDescription)(IExtPackFile *pThis, PRUnichar * *description);
23379 
23380     nsresult (*GetVersion)(IExtPackFile *pThis, PRUnichar * *version);
23381 
23382     nsresult (*GetRevision)(IExtPackFile *pThis, PRUint32 *revision);
23383 
23384     nsresult (*GetEdition)(IExtPackFile *pThis, PRUnichar * *edition);
23385 
23386     nsresult (*GetVRDEModule)(IExtPackFile *pThis, PRUnichar * *VRDEModule);
23387 
23388     nsresult (*GetPlugIns)(IExtPackFile *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
23389 
23390     nsresult (*GetUsable)(IExtPackFile *pThis, PRBool *usable);
23391 
23392     nsresult (*GetWhyUnusable)(IExtPackFile *pThis, PRUnichar * *whyUnusable);
23393 
23394     nsresult (*GetShowLicense)(IExtPackFile *pThis, PRBool *showLicense);
23395 
23396     nsresult (*GetLicense)(IExtPackFile *pThis, PRUnichar * *license);
23397 
23398     nsresult (*GetInternalAndReservedAttribute1IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23399 
23400     nsresult (*GetInternalAndReservedAttribute2IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23401 
23402     nsresult (*GetInternalAndReservedAttribute3IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23403 
23404     nsresult (*GetInternalAndReservedAttribute4IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23405 
23406     nsresult (*GetInternalAndReservedAttribute5IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23407 
23408     nsresult (*GetInternalAndReservedAttribute6IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23409 
23410     nsresult (*GetInternalAndReservedAttribute7IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23411 
23412     nsresult (*GetInternalAndReservedAttribute8IExtPackBase)(IExtPackFile *pThis, PRUint32 *reserved);
23413 
23414     nsresult (*QueryLicense)(
23415         IExtPackFile *pThis,
23416         PRUnichar * preferredLocale,
23417         PRUnichar * preferredLanguage,
23418         PRUnichar * format,
23419         PRUnichar * * licenseText
23420     );
23421 
23422     nsresult (*InternalAndReservedMethod1IExtPackBase)(IExtPackFile *pThis);
23423 
23424     nsresult (*InternalAndReservedMethod2IExtPackBase)(IExtPackFile *pThis);
23425 
23426     nsresult (*InternalAndReservedMethod3IExtPackBase)(IExtPackFile *pThis);
23427 
23428     nsresult (*InternalAndReservedMethod4IExtPackBase)(IExtPackFile *pThis);
23429 
23430     nsresult (*GetFilePath)(IExtPackFile *pThis, PRUnichar * *filePath);
23431 
23432     nsresult (*GetInternalAndReservedAttribute1IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23433 
23434     nsresult (*GetInternalAndReservedAttribute2IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23435 
23436     nsresult (*GetInternalAndReservedAttribute3IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23437 
23438     nsresult (*GetInternalAndReservedAttribute4IExtPackFile)(IExtPackFile *pThis, PRUint32 *reserved);
23439 
23440     nsresult (*Install)(
23441         IExtPackFile *pThis,
23442         PRBool replace,
23443         PRUnichar * displayInfo,
23444         IProgress * * progess
23445     );
23446 
23447     nsresult (*InternalAndReservedMethod1IExtPackFile)(IExtPackFile *pThis);
23448 
23449     nsresult (*InternalAndReservedMethod2IExtPackFile)(IExtPackFile *pThis);
23450 
23451 };
23452 #    define IExtPackFile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23453 #    define IExtPackFile_AddRef(p) ((p)->lpVtbl->AddRef(p))
23454 #    define IExtPackFile_Release(p) ((p)->lpVtbl->Release(p))
23455 #    define IExtPackFile_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
23456 #    define IExtPackFile_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
23457 #    define IExtPackFile_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23458 #    define IExtPackFile_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
23459 #    define IExtPackFile_get_Version(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
23460 #    define IExtPackFile_GetVersion(p, aVersion) ((p)->lpVtbl->GetVersion(p, aVersion))
23461 #    define IExtPackFile_get_Revision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
23462 #    define IExtPackFile_GetRevision(p, aRevision) ((p)->lpVtbl->GetRevision(p, aRevision))
23463 #    define IExtPackFile_get_Edition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
23464 #    define IExtPackFile_GetEdition(p, aEdition) ((p)->lpVtbl->GetEdition(p, aEdition))
23465 #    define IExtPackFile_get_VRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
23466 #    define IExtPackFile_GetVRDEModule(p, aVRDEModule) ((p)->lpVtbl->GetVRDEModule(p, aVRDEModule))
23467 #    define IExtPackFile_get_PlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
23468 #    define IExtPackFile_GetPlugIns(p, aPlugIns) ((p)->lpVtbl->GetPlugIns(p, aPlugIns))
23469 #    define IExtPackFile_get_Usable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
23470 #    define IExtPackFile_GetUsable(p, aUsable) ((p)->lpVtbl->GetUsable(p, aUsable))
23471 #    define IExtPackFile_get_WhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
23472 #    define IExtPackFile_GetWhyUnusable(p, aWhyUnusable) ((p)->lpVtbl->GetWhyUnusable(p, aWhyUnusable))
23473 #    define IExtPackFile_get_ShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
23474 #    define IExtPackFile_GetShowLicense(p, aShowLicense) ((p)->lpVtbl->GetShowLicense(p, aShowLicense))
23475 #    define IExtPackFile_get_License(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
23476 #    define IExtPackFile_GetLicense(p, aLicense) ((p)->lpVtbl->GetLicense(p, aLicense))
23477 #    define IExtPackFile_QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText) ((p)->lpVtbl->QueryLicense(p, aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText))
23478 #    define IExtPackFile_get_FilePath(p, aFilePath) ((p)->lpVtbl->GetFilePath(p, aFilePath))
23479 #    define IExtPackFile_GetFilePath(p, aFilePath) ((p)->lpVtbl->GetFilePath(p, aFilePath))
23480 #    define IExtPackFile_Install(p, aReplace, aDisplayInfo, aProgess) ((p)->lpVtbl->Install(p, aReplace, aDisplayInfo, aProgess))
23481 #   endif /* VBOX_WITH_GLUE */
23482 
23483 interface IExtPackFile
23484 {
23485 #   ifndef VBOX_WITH_GLUE
23486     struct IExtPackFile_vtbl *vtbl;
23487 #   else /* VBOX_WITH_GLUE */
23488     CONST_VTBL struct IExtPackFileVtbl *lpVtbl;
23489 #   endif /* VBOX_WITH_GLUE */
23490 };
23491 /* End of struct IExtPackFile declaration */
23492 
23493 
23494 /* Start of struct IExtPackManager declaration */
23495 #   define IEXTPACKMANAGER_IID_STR "70401eef-c8e9-466b-9660-45cb3e9979e4"
23496 #   define IEXTPACKMANAGER_IID { \
23497     0x70401eef, 0xc8e9, 0x466b, \
23498     { 0x96, 0x60, 0x45, 0xcb, 0x3e, 0x99, 0x79, 0xe4 } \
23499 }
23500 /* COM compatibility */
23501 VBOX_EXTERN_CONST(nsIID, IID_IExtPackManager);
23502 #   ifndef VBOX_WITH_GLUE
23503 struct IExtPackManager_vtbl
23504 {
23505     struct nsISupports_vtbl nsisupports;
23506 
23507     nsresult (*GetInstalledExtPacks)(IExtPackManager *pThis, PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks);
23508 
23509     nsresult (*GetInternalAndReservedAttribute1IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23510 
23511     nsresult (*GetInternalAndReservedAttribute2IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23512 
23513     nsresult (*GetInternalAndReservedAttribute3IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23514 
23515     nsresult (*GetInternalAndReservedAttribute4IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23516 
23517     nsresult (*GetInternalAndReservedAttribute5IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23518 
23519     nsresult (*GetInternalAndReservedAttribute6IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23520 
23521     nsresult (*GetInternalAndReservedAttribute7IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23522 
23523     nsresult (*GetInternalAndReservedAttribute8IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23524 
23525     nsresult (*Find)(
23526         IExtPackManager *pThis,
23527         PRUnichar * name,
23528         IExtPack * * returnData
23529     );
23530 
23531     nsresult (*OpenExtPackFile)(
23532         IExtPackManager *pThis,
23533         PRUnichar * path,
23534         IExtPackFile * * file
23535     );
23536 
23537     nsresult (*Uninstall)(
23538         IExtPackManager *pThis,
23539         PRUnichar * name,
23540         PRBool forcedRemoval,
23541         PRUnichar * displayInfo,
23542         IProgress * * progess
23543     );
23544 
23545     nsresult (*Cleanup)(IExtPackManager *pThis );
23546 
23547     nsresult (*QueryAllPlugInsForFrontend)(
23548         IExtPackManager *pThis,
23549         PRUnichar * frontendName,
23550         PRUint32 *plugInModulesSize,
23551         PRUnichar *** plugInModules
23552     );
23553 
23554     nsresult (*IsExtPackUsable)(
23555         IExtPackManager *pThis,
23556         PRUnichar * name,
23557         PRBool * usable
23558     );
23559 
23560     nsresult (*InternalAndReservedMethod1IExtPackManager)(IExtPackManager *pThis);
23561 
23562     nsresult (*InternalAndReservedMethod2IExtPackManager)(IExtPackManager *pThis);
23563 
23564     nsresult (*InternalAndReservedMethod3IExtPackManager)(IExtPackManager *pThis);
23565 
23566     nsresult (*InternalAndReservedMethod4IExtPackManager)(IExtPackManager *pThis);
23567 
23568 };
23569 #   else /* VBOX_WITH_GLUE */
23570 struct IExtPackManagerVtbl
23571 {
23572     nsresult (*QueryInterface)(IExtPackManager *pThis, const nsID *iid, void **resultp);
23573     nsrefcnt (*AddRef)(IExtPackManager *pThis);
23574     nsrefcnt (*Release)(IExtPackManager *pThis);
23575     nsresult (*GetInstalledExtPacks)(IExtPackManager *pThis, PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks);
23576 
23577     nsresult (*GetInternalAndReservedAttribute1IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23578 
23579     nsresult (*GetInternalAndReservedAttribute2IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23580 
23581     nsresult (*GetInternalAndReservedAttribute3IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23582 
23583     nsresult (*GetInternalAndReservedAttribute4IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23584 
23585     nsresult (*GetInternalAndReservedAttribute5IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23586 
23587     nsresult (*GetInternalAndReservedAttribute6IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23588 
23589     nsresult (*GetInternalAndReservedAttribute7IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23590 
23591     nsresult (*GetInternalAndReservedAttribute8IExtPackManager)(IExtPackManager *pThis, PRUint32 *reserved);
23592 
23593     nsresult (*Find)(
23594         IExtPackManager *pThis,
23595         PRUnichar * name,
23596         IExtPack * * returnData
23597     );
23598 
23599     nsresult (*OpenExtPackFile)(
23600         IExtPackManager *pThis,
23601         PRUnichar * path,
23602         IExtPackFile * * file
23603     );
23604 
23605     nsresult (*Uninstall)(
23606         IExtPackManager *pThis,
23607         PRUnichar * name,
23608         PRBool forcedRemoval,
23609         PRUnichar * displayInfo,
23610         IProgress * * progess
23611     );
23612 
23613     nsresult (*Cleanup)(IExtPackManager *pThis );
23614 
23615     nsresult (*QueryAllPlugInsForFrontend)(
23616         IExtPackManager *pThis,
23617         PRUnichar * frontendName,
23618         PRUint32 *plugInModulesSize,
23619         PRUnichar *** plugInModules
23620     );
23621 
23622     nsresult (*IsExtPackUsable)(
23623         IExtPackManager *pThis,
23624         PRUnichar * name,
23625         PRBool * usable
23626     );
23627 
23628     nsresult (*InternalAndReservedMethod1IExtPackManager)(IExtPackManager *pThis);
23629 
23630     nsresult (*InternalAndReservedMethod2IExtPackManager)(IExtPackManager *pThis);
23631 
23632     nsresult (*InternalAndReservedMethod3IExtPackManager)(IExtPackManager *pThis);
23633 
23634     nsresult (*InternalAndReservedMethod4IExtPackManager)(IExtPackManager *pThis);
23635 
23636 };
23637 #    define IExtPackManager_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23638 #    define IExtPackManager_AddRef(p) ((p)->lpVtbl->AddRef(p))
23639 #    define IExtPackManager_Release(p) ((p)->lpVtbl->Release(p))
23640 #    define IExtPackManager_get_InstalledExtPacks(p, aInstalledExtPacks) ((p)->lpVtbl->GetInstalledExtPacks(p, aInstalledExtPacks))
23641 #    define IExtPackManager_GetInstalledExtPacks(p, aInstalledExtPacks) ((p)->lpVtbl->GetInstalledExtPacks(p, aInstalledExtPacks))
23642 #    define IExtPackManager_Find(p, aName, aReturnData) ((p)->lpVtbl->Find(p, aName, aReturnData))
23643 #    define IExtPackManager_OpenExtPackFile(p, aPath, aFile) ((p)->lpVtbl->OpenExtPackFile(p, aPath, aFile))
23644 #    define IExtPackManager_Uninstall(p, aName, aForcedRemoval, aDisplayInfo, aProgess) ((p)->lpVtbl->Uninstall(p, aName, aForcedRemoval, aDisplayInfo, aProgess))
23645 #    define IExtPackManager_Cleanup(p) ((p)->lpVtbl->Cleanup(p))
23646 #    define IExtPackManager_QueryAllPlugInsForFrontend(p, aFrontendName, aPlugInModules) ((p)->lpVtbl->QueryAllPlugInsForFrontend(p, aFrontendName, aPlugInModules))
23647 #    define IExtPackManager_IsExtPackUsable(p, aName, aUsable) ((p)->lpVtbl->IsExtPackUsable(p, aName, aUsable))
23648 #   endif /* VBOX_WITH_GLUE */
23649 
23650 interface IExtPackManager
23651 {
23652 #   ifndef VBOX_WITH_GLUE
23653     struct IExtPackManager_vtbl *vtbl;
23654 #   else /* VBOX_WITH_GLUE */
23655     CONST_VTBL struct IExtPackManagerVtbl *lpVtbl;
23656 #   endif /* VBOX_WITH_GLUE */
23657 };
23658 /* End of struct IExtPackManager declaration */
23659 
23660 
23661 /* Start of struct IBandwidthGroup declaration */
23662 #   define IBANDWIDTHGROUP_IID_STR "31587f93-2d12-4d7c-ba6d-ce51d0d5b265"
23663 #   define IBANDWIDTHGROUP_IID { \
23664     0x31587f93, 0x2d12, 0x4d7c, \
23665     { 0xba, 0x6d, 0xce, 0x51, 0xd0, 0xd5, 0xb2, 0x65 } \
23666 }
23667 /* COM compatibility */
23668 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthGroup);
23669 #   ifndef VBOX_WITH_GLUE
23670 struct IBandwidthGroup_vtbl
23671 {
23672     struct nsISupports_vtbl nsisupports;
23673 
23674     nsresult (*GetName)(IBandwidthGroup *pThis, PRUnichar * *name);
23675 
23676     nsresult (*GetType)(IBandwidthGroup *pThis, PRUint32 *type);
23677 
23678     nsresult (*GetReference)(IBandwidthGroup *pThis, PRUint32 *reference);
23679 
23680     nsresult (*GetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 *maxBytesPerSec);
23681     nsresult (*SetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 maxBytesPerSec);
23682 
23683     nsresult (*GetInternalAndReservedAttribute1IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23684 
23685     nsresult (*GetInternalAndReservedAttribute2IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23686 
23687     nsresult (*GetInternalAndReservedAttribute3IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23688 
23689     nsresult (*GetInternalAndReservedAttribute4IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23690 
23691 };
23692 #   else /* VBOX_WITH_GLUE */
23693 struct IBandwidthGroupVtbl
23694 {
23695     nsresult (*QueryInterface)(IBandwidthGroup *pThis, const nsID *iid, void **resultp);
23696     nsrefcnt (*AddRef)(IBandwidthGroup *pThis);
23697     nsrefcnt (*Release)(IBandwidthGroup *pThis);
23698     nsresult (*GetName)(IBandwidthGroup *pThis, PRUnichar * *name);
23699 
23700     nsresult (*GetType)(IBandwidthGroup *pThis, PRUint32 *type);
23701 
23702     nsresult (*GetReference)(IBandwidthGroup *pThis, PRUint32 *reference);
23703 
23704     nsresult (*GetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 *maxBytesPerSec);
23705     nsresult (*SetMaxBytesPerSec)(IBandwidthGroup *pThis, PRInt64 maxBytesPerSec);
23706 
23707     nsresult (*GetInternalAndReservedAttribute1IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23708 
23709     nsresult (*GetInternalAndReservedAttribute2IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23710 
23711     nsresult (*GetInternalAndReservedAttribute3IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23712 
23713     nsresult (*GetInternalAndReservedAttribute4IBandwidthGroup)(IBandwidthGroup *pThis, PRUint32 *reserved);
23714 
23715 };
23716 #    define IBandwidthGroup_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23717 #    define IBandwidthGroup_AddRef(p) ((p)->lpVtbl->AddRef(p))
23718 #    define IBandwidthGroup_Release(p) ((p)->lpVtbl->Release(p))
23719 #    define IBandwidthGroup_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
23720 #    define IBandwidthGroup_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
23721 #    define IBandwidthGroup_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
23722 #    define IBandwidthGroup_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
23723 #    define IBandwidthGroup_get_Reference(p, aReference) ((p)->lpVtbl->GetReference(p, aReference))
23724 #    define IBandwidthGroup_GetReference(p, aReference) ((p)->lpVtbl->GetReference(p, aReference))
23725 #    define IBandwidthGroup_get_MaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->GetMaxBytesPerSec(p, aMaxBytesPerSec))
23726 #    define IBandwidthGroup_GetMaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->GetMaxBytesPerSec(p, aMaxBytesPerSec))
23727 #    define IBandwidthGroup_put_MaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->SetMaxBytesPerSec(p, aMaxBytesPerSec))
23728 #    define IBandwidthGroup_SetMaxBytesPerSec(p, aMaxBytesPerSec) ((p)->lpVtbl->SetMaxBytesPerSec(p, aMaxBytesPerSec))
23729 #   endif /* VBOX_WITH_GLUE */
23730 
23731 interface IBandwidthGroup
23732 {
23733 #   ifndef VBOX_WITH_GLUE
23734     struct IBandwidthGroup_vtbl *vtbl;
23735 #   else /* VBOX_WITH_GLUE */
23736     CONST_VTBL struct IBandwidthGroupVtbl *lpVtbl;
23737 #   endif /* VBOX_WITH_GLUE */
23738 };
23739 /* End of struct IBandwidthGroup declaration */
23740 
23741 
23742 /* Start of struct IBandwidthControl declaration */
23743 #   define IBANDWIDTHCONTROL_IID_STR "48c7f4c0-c9d6-4742-957c-a6fd52e8c4ae"
23744 #   define IBANDWIDTHCONTROL_IID { \
23745     0x48c7f4c0, 0xc9d6, 0x4742, \
23746     { 0x95, 0x7c, 0xa6, 0xfd, 0x52, 0xe8, 0xc4, 0xae } \
23747 }
23748 /* COM compatibility */
23749 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthControl);
23750 #   ifndef VBOX_WITH_GLUE
23751 struct IBandwidthControl_vtbl
23752 {
23753     struct nsISupports_vtbl nsisupports;
23754 
23755     nsresult (*GetNumGroups)(IBandwidthControl *pThis, PRUint32 *numGroups);
23756 
23757     nsresult (*GetInternalAndReservedAttribute1IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
23758 
23759     nsresult (*GetInternalAndReservedAttribute2IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
23760 
23761     nsresult (*CreateBandwidthGroup)(
23762         IBandwidthControl *pThis,
23763         PRUnichar * name,
23764         PRUint32 type,
23765         PRInt64 maxBytesPerSec
23766     );
23767 
23768     nsresult (*DeleteBandwidthGroup)(
23769         IBandwidthControl *pThis,
23770         PRUnichar * name
23771     );
23772 
23773     nsresult (*GetBandwidthGroup)(
23774         IBandwidthControl *pThis,
23775         PRUnichar * name,
23776         IBandwidthGroup * * bandwidthGroup
23777     );
23778 
23779     nsresult (*GetAllBandwidthGroups)(
23780         IBandwidthControl *pThis,
23781         PRUint32 *bandwidthGroupsSize,
23782         IBandwidthGroup *** bandwidthGroups
23783     );
23784 
23785     nsresult (*InternalAndReservedMethod1IBandwidthControl)(IBandwidthControl *pThis);
23786 
23787     nsresult (*InternalAndReservedMethod2IBandwidthControl)(IBandwidthControl *pThis);
23788 
23789 };
23790 #   else /* VBOX_WITH_GLUE */
23791 struct IBandwidthControlVtbl
23792 {
23793     nsresult (*QueryInterface)(IBandwidthControl *pThis, const nsID *iid, void **resultp);
23794     nsrefcnt (*AddRef)(IBandwidthControl *pThis);
23795     nsrefcnt (*Release)(IBandwidthControl *pThis);
23796     nsresult (*GetNumGroups)(IBandwidthControl *pThis, PRUint32 *numGroups);
23797 
23798     nsresult (*GetInternalAndReservedAttribute1IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
23799 
23800     nsresult (*GetInternalAndReservedAttribute2IBandwidthControl)(IBandwidthControl *pThis, PRUint32 *reserved);
23801 
23802     nsresult (*CreateBandwidthGroup)(
23803         IBandwidthControl *pThis,
23804         PRUnichar * name,
23805         PRUint32 type,
23806         PRInt64 maxBytesPerSec
23807     );
23808 
23809     nsresult (*DeleteBandwidthGroup)(
23810         IBandwidthControl *pThis,
23811         PRUnichar * name
23812     );
23813 
23814     nsresult (*GetBandwidthGroup)(
23815         IBandwidthControl *pThis,
23816         PRUnichar * name,
23817         IBandwidthGroup * * bandwidthGroup
23818     );
23819 
23820     nsresult (*GetAllBandwidthGroups)(
23821         IBandwidthControl *pThis,
23822         PRUint32 *bandwidthGroupsSize,
23823         IBandwidthGroup *** bandwidthGroups
23824     );
23825 
23826     nsresult (*InternalAndReservedMethod1IBandwidthControl)(IBandwidthControl *pThis);
23827 
23828     nsresult (*InternalAndReservedMethod2IBandwidthControl)(IBandwidthControl *pThis);
23829 
23830 };
23831 #    define IBandwidthControl_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23832 #    define IBandwidthControl_AddRef(p) ((p)->lpVtbl->AddRef(p))
23833 #    define IBandwidthControl_Release(p) ((p)->lpVtbl->Release(p))
23834 #    define IBandwidthControl_get_NumGroups(p, aNumGroups) ((p)->lpVtbl->GetNumGroups(p, aNumGroups))
23835 #    define IBandwidthControl_GetNumGroups(p, aNumGroups) ((p)->lpVtbl->GetNumGroups(p, aNumGroups))
23836 #    define IBandwidthControl_CreateBandwidthGroup(p, aName, aType, aMaxBytesPerSec) ((p)->lpVtbl->CreateBandwidthGroup(p, aName, aType, aMaxBytesPerSec))
23837 #    define IBandwidthControl_DeleteBandwidthGroup(p, aName) ((p)->lpVtbl->DeleteBandwidthGroup(p, aName))
23838 #    define IBandwidthControl_GetBandwidthGroup(p, aName, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aName, aBandwidthGroup))
23839 #    define IBandwidthControl_GetAllBandwidthGroups(p, aBandwidthGroups) ((p)->lpVtbl->GetAllBandwidthGroups(p, aBandwidthGroups))
23840 #   endif /* VBOX_WITH_GLUE */
23841 
23842 interface IBandwidthControl
23843 {
23844 #   ifndef VBOX_WITH_GLUE
23845     struct IBandwidthControl_vtbl *vtbl;
23846 #   else /* VBOX_WITH_GLUE */
23847     CONST_VTBL struct IBandwidthControlVtbl *lpVtbl;
23848 #   endif /* VBOX_WITH_GLUE */
23849 };
23850 /* End of struct IBandwidthControl declaration */
23851 
23852 
23853 /* Start of struct IVirtualBoxClient declaration */
23854 #   define IVIRTUALBOXCLIENT_IID_STR "d2937a8e-cb8d-4382-90ba-b7da78a74573"
23855 #   define IVIRTUALBOXCLIENT_IID { \
23856     0xd2937a8e, 0xcb8d, 0x4382, \
23857     { 0x90, 0xba, 0xb7, 0xda, 0x78, 0xa7, 0x45, 0x73 } \
23858 }
23859 /* COM compatibility */
23860 VBOX_EXTERN_CONST(nsIID, IID_IVirtualBoxClient);
23861 #   ifndef VBOX_WITH_GLUE
23862 struct IVirtualBoxClient_vtbl
23863 {
23864     struct nsISupports_vtbl nsisupports;
23865 
23866     nsresult (*GetVirtualBox)(IVirtualBoxClient *pThis, IVirtualBox * *virtualBox);
23867 
23868     nsresult (*GetSession)(IVirtualBoxClient *pThis, ISession * *session);
23869 
23870     nsresult (*GetEventSource)(IVirtualBoxClient *pThis, IEventSource * *eventSource);
23871 
23872     nsresult (*GetInternalAndReservedAttribute1IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23873 
23874     nsresult (*GetInternalAndReservedAttribute2IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23875 
23876     nsresult (*GetInternalAndReservedAttribute3IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23877 
23878     nsresult (*GetInternalAndReservedAttribute4IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23879 
23880     nsresult (*CheckMachineError)(
23881         IVirtualBoxClient *pThis,
23882         IMachine * machine
23883     );
23884 
23885     nsresult (*InternalAndReservedMethod1IVirtualBoxClient)(IVirtualBoxClient *pThis);
23886 
23887     nsresult (*InternalAndReservedMethod2IVirtualBoxClient)(IVirtualBoxClient *pThis);
23888 
23889     nsresult (*InternalAndReservedMethod3IVirtualBoxClient)(IVirtualBoxClient *pThis);
23890 
23891     nsresult (*InternalAndReservedMethod4IVirtualBoxClient)(IVirtualBoxClient *pThis);
23892 
23893 };
23894 #   else /* VBOX_WITH_GLUE */
23895 struct IVirtualBoxClientVtbl
23896 {
23897     nsresult (*QueryInterface)(IVirtualBoxClient *pThis, const nsID *iid, void **resultp);
23898     nsrefcnt (*AddRef)(IVirtualBoxClient *pThis);
23899     nsrefcnt (*Release)(IVirtualBoxClient *pThis);
23900     nsresult (*GetVirtualBox)(IVirtualBoxClient *pThis, IVirtualBox * *virtualBox);
23901 
23902     nsresult (*GetSession)(IVirtualBoxClient *pThis, ISession * *session);
23903 
23904     nsresult (*GetEventSource)(IVirtualBoxClient *pThis, IEventSource * *eventSource);
23905 
23906     nsresult (*GetInternalAndReservedAttribute1IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23907 
23908     nsresult (*GetInternalAndReservedAttribute2IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23909 
23910     nsresult (*GetInternalAndReservedAttribute3IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23911 
23912     nsresult (*GetInternalAndReservedAttribute4IVirtualBoxClient)(IVirtualBoxClient *pThis, PRUint32 *reserved);
23913 
23914     nsresult (*CheckMachineError)(
23915         IVirtualBoxClient *pThis,
23916         IMachine * machine
23917     );
23918 
23919     nsresult (*InternalAndReservedMethod1IVirtualBoxClient)(IVirtualBoxClient *pThis);
23920 
23921     nsresult (*InternalAndReservedMethod2IVirtualBoxClient)(IVirtualBoxClient *pThis);
23922 
23923     nsresult (*InternalAndReservedMethod3IVirtualBoxClient)(IVirtualBoxClient *pThis);
23924 
23925     nsresult (*InternalAndReservedMethod4IVirtualBoxClient)(IVirtualBoxClient *pThis);
23926 
23927 };
23928 #    define IVirtualBoxClient_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
23929 #    define IVirtualBoxClient_AddRef(p) ((p)->lpVtbl->AddRef(p))
23930 #    define IVirtualBoxClient_Release(p) ((p)->lpVtbl->Release(p))
23931 #    define IVirtualBoxClient_get_VirtualBox(p, aVirtualBox) ((p)->lpVtbl->GetVirtualBox(p, aVirtualBox))
23932 #    define IVirtualBoxClient_GetVirtualBox(p, aVirtualBox) ((p)->lpVtbl->GetVirtualBox(p, aVirtualBox))
23933 #    define IVirtualBoxClient_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23934 #    define IVirtualBoxClient_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
23935 #    define IVirtualBoxClient_get_EventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
23936 #    define IVirtualBoxClient_GetEventSource(p, aEventSource) ((p)->lpVtbl->GetEventSource(p, aEventSource))
23937 #    define IVirtualBoxClient_CheckMachineError(p, aMachine) ((p)->lpVtbl->CheckMachineError(p, aMachine))
23938 #   endif /* VBOX_WITH_GLUE */
23939 
23940 interface IVirtualBoxClient
23941 {
23942 #   ifndef VBOX_WITH_GLUE
23943     struct IVirtualBoxClient_vtbl *vtbl;
23944 #   else /* VBOX_WITH_GLUE */
23945     CONST_VTBL struct IVirtualBoxClientVtbl *lpVtbl;
23946 #   endif /* VBOX_WITH_GLUE */
23947 };
23948 /* End of struct IVirtualBoxClient declaration */
23949 
23950 
23951 /* Start of struct IEventSource declaration */
23952 #   define IEVENTSOURCE_IID_STR "9b6e1aee-35f3-4f4d-b5bb-ed0ecefd8538"
23953 #   define IEVENTSOURCE_IID { \
23954     0x9b6e1aee, 0x35f3, 0x4f4d, \
23955     { 0xb5, 0xbb, 0xed, 0x0e, 0xce, 0xfd, 0x85, 0x38 } \
23956 }
23957 /* COM compatibility */
23958 VBOX_EXTERN_CONST(nsIID, IID_IEventSource);
23959 #   ifndef VBOX_WITH_GLUE
23960 struct IEventSource_vtbl
23961 {
23962     struct nsISupports_vtbl nsisupports;
23963 
23964     nsresult (*CreateListener)(
23965         IEventSource *pThis,
23966         IEventListener * * listener
23967     );
23968 
23969     nsresult (*CreateAggregator)(
23970         IEventSource *pThis,
23971         PRUint32 subordinatesSize,
23972         IEventSource ** subordinates,
23973         IEventSource * * result
23974     );
23975 
23976     nsresult (*RegisterListener)(
23977         IEventSource *pThis,
23978         IEventListener * listener,
23979         PRUint32 interestingSize,
23980         PRUint32* interesting,
23981         PRBool active
23982     );
23983 
23984     nsresult (*UnregisterListener)(
23985         IEventSource *pThis,
23986         IEventListener * listener
23987     );
23988 
23989     nsresult (*FireEvent)(
23990         IEventSource *pThis,
23991         IEvent * event,
23992         PRInt32 timeout,
23993         PRBool * result
23994     );
23995 
23996     nsresult (*GetEvent)(
23997         IEventSource *pThis,
23998         IEventListener * listener,
23999         PRInt32 timeout,
24000         IEvent * * event
24001     );
24002 
24003     nsresult (*EventProcessed)(
24004         IEventSource *pThis,
24005         IEventListener * listener,
24006         IEvent * event
24007     );
24008 
24009 };
24010 #   else /* VBOX_WITH_GLUE */
24011 struct IEventSourceVtbl
24012 {
24013     nsresult (*QueryInterface)(IEventSource *pThis, const nsID *iid, void **resultp);
24014     nsrefcnt (*AddRef)(IEventSource *pThis);
24015     nsrefcnt (*Release)(IEventSource *pThis);
24016     nsresult (*CreateListener)(
24017         IEventSource *pThis,
24018         IEventListener * * listener
24019     );
24020 
24021     nsresult (*CreateAggregator)(
24022         IEventSource *pThis,
24023         PRUint32 subordinatesSize,
24024         IEventSource ** subordinates,
24025         IEventSource * * result
24026     );
24027 
24028     nsresult (*RegisterListener)(
24029         IEventSource *pThis,
24030         IEventListener * listener,
24031         PRUint32 interestingSize,
24032         PRUint32* interesting,
24033         PRBool active
24034     );
24035 
24036     nsresult (*UnregisterListener)(
24037         IEventSource *pThis,
24038         IEventListener * listener
24039     );
24040 
24041     nsresult (*FireEvent)(
24042         IEventSource *pThis,
24043         IEvent * event,
24044         PRInt32 timeout,
24045         PRBool * result
24046     );
24047 
24048     nsresult (*GetEvent)(
24049         IEventSource *pThis,
24050         IEventListener * listener,
24051         PRInt32 timeout,
24052         IEvent * * event
24053     );
24054 
24055     nsresult (*EventProcessed)(
24056         IEventSource *pThis,
24057         IEventListener * listener,
24058         IEvent * event
24059     );
24060 
24061 };
24062 #    define IEventSource_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24063 #    define IEventSource_AddRef(p) ((p)->lpVtbl->AddRef(p))
24064 #    define IEventSource_Release(p) ((p)->lpVtbl->Release(p))
24065 #    define IEventSource_CreateListener(p, aListener) ((p)->lpVtbl->CreateListener(p, aListener))
24066 #    define IEventSource_CreateAggregator(p, aSubordinates, aResult) ((p)->lpVtbl->CreateAggregator(p, aSubordinates, aResult))
24067 #    define IEventSource_RegisterListener(p, aListener, aInteresting, aActive) ((p)->lpVtbl->RegisterListener(p, aListener, aInteresting, aActive))
24068 #    define IEventSource_UnregisterListener(p, aListener) ((p)->lpVtbl->UnregisterListener(p, aListener))
24069 #    define IEventSource_FireEvent(p, aEvent, aTimeout, aResult) ((p)->lpVtbl->FireEvent(p, aEvent, aTimeout, aResult))
24070 #    define IEventSource_GetEvent(p, aListener, aTimeout, aEvent) ((p)->lpVtbl->GetEvent(p, aListener, aTimeout, aEvent))
24071 #    define IEventSource_EventProcessed(p, aListener, aEvent) ((p)->lpVtbl->EventProcessed(p, aListener, aEvent))
24072 #   endif /* VBOX_WITH_GLUE */
24073 
24074 interface IEventSource
24075 {
24076 #   ifndef VBOX_WITH_GLUE
24077     struct IEventSource_vtbl *vtbl;
24078 #   else /* VBOX_WITH_GLUE */
24079     CONST_VTBL struct IEventSourceVtbl *lpVtbl;
24080 #   endif /* VBOX_WITH_GLUE */
24081 };
24082 /* End of struct IEventSource declaration */
24083 
24084 
24085 /* Start of struct IEventListener declaration */
24086 #   define IEVENTLISTENER_IID_STR "67099191-32e7-4f6c-85ee-422304c71b90"
24087 #   define IEVENTLISTENER_IID { \
24088     0x67099191, 0x32e7, 0x4f6c, \
24089     { 0x85, 0xee, 0x42, 0x23, 0x04, 0xc7, 0x1b, 0x90 } \
24090 }
24091 /* COM compatibility */
24092 VBOX_EXTERN_CONST(nsIID, IID_IEventListener);
24093 #   ifndef VBOX_WITH_GLUE
24094 struct IEventListener_vtbl
24095 {
24096     struct nsISupports_vtbl nsisupports;
24097 
24098     nsresult (*HandleEvent)(
24099         IEventListener *pThis,
24100         IEvent * event
24101     );
24102 
24103 };
24104 #   else /* VBOX_WITH_GLUE */
24105 struct IEventListenerVtbl
24106 {
24107     nsresult (*QueryInterface)(IEventListener *pThis, const nsID *iid, void **resultp);
24108     nsrefcnt (*AddRef)(IEventListener *pThis);
24109     nsrefcnt (*Release)(IEventListener *pThis);
24110     nsresult (*HandleEvent)(
24111         IEventListener *pThis,
24112         IEvent * event
24113     );
24114 
24115 };
24116 #    define IEventListener_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24117 #    define IEventListener_AddRef(p) ((p)->lpVtbl->AddRef(p))
24118 #    define IEventListener_Release(p) ((p)->lpVtbl->Release(p))
24119 #    define IEventListener_HandleEvent(p, aEvent) ((p)->lpVtbl->HandleEvent(p, aEvent))
24120 #   endif /* VBOX_WITH_GLUE */
24121 
24122 interface IEventListener
24123 {
24124 #   ifndef VBOX_WITH_GLUE
24125     struct IEventListener_vtbl *vtbl;
24126 #   else /* VBOX_WITH_GLUE */
24127     CONST_VTBL struct IEventListenerVtbl *lpVtbl;
24128 #   endif /* VBOX_WITH_GLUE */
24129 };
24130 /* End of struct IEventListener declaration */
24131 
24132 
24133 /* Start of struct IEvent declaration */
24134 #   define IEVENT_IID_STR "0ca2adba-8f30-401b-a8cd-fe31dbe839c0"
24135 #   define IEVENT_IID { \
24136     0x0ca2adba, 0x8f30, 0x401b, \
24137     { 0xa8, 0xcd, 0xfe, 0x31, 0xdb, 0xe8, 0x39, 0xc0 } \
24138 }
24139 /* COM compatibility */
24140 VBOX_EXTERN_CONST(nsIID, IID_IEvent);
24141 #   ifndef VBOX_WITH_GLUE
24142 struct IEvent_vtbl
24143 {
24144     struct nsISupports_vtbl nsisupports;
24145 
24146     nsresult (*GetType)(IEvent *pThis, PRUint32 *type);
24147 
24148     nsresult (*GetSource)(IEvent *pThis, IEventSource * *source);
24149 
24150     nsresult (*GetWaitable)(IEvent *pThis, PRBool *waitable);
24151 
24152     nsresult (*SetProcessed)(IEvent *pThis );
24153 
24154     nsresult (*WaitProcessed)(
24155         IEvent *pThis,
24156         PRInt32 timeout,
24157         PRBool * result
24158     );
24159 
24160 };
24161 #   else /* VBOX_WITH_GLUE */
24162 struct IEventVtbl
24163 {
24164     nsresult (*QueryInterface)(IEvent *pThis, const nsID *iid, void **resultp);
24165     nsrefcnt (*AddRef)(IEvent *pThis);
24166     nsrefcnt (*Release)(IEvent *pThis);
24167     nsresult (*GetType)(IEvent *pThis, PRUint32 *type);
24168 
24169     nsresult (*GetSource)(IEvent *pThis, IEventSource * *source);
24170 
24171     nsresult (*GetWaitable)(IEvent *pThis, PRBool *waitable);
24172 
24173     nsresult (*SetProcessed)(IEvent *pThis );
24174 
24175     nsresult (*WaitProcessed)(
24176         IEvent *pThis,
24177         PRInt32 timeout,
24178         PRBool * result
24179     );
24180 
24181 };
24182 #    define IEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24183 #    define IEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24184 #    define IEvent_Release(p) ((p)->lpVtbl->Release(p))
24185 #    define IEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24186 #    define IEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24187 #    define IEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24188 #    define IEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24189 #    define IEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24190 #    define IEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24191 #    define IEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24192 #    define IEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24193 #   endif /* VBOX_WITH_GLUE */
24194 
24195 interface IEvent
24196 {
24197 #   ifndef VBOX_WITH_GLUE
24198     struct IEvent_vtbl *vtbl;
24199 #   else /* VBOX_WITH_GLUE */
24200     CONST_VTBL struct IEventVtbl *lpVtbl;
24201 #   endif /* VBOX_WITH_GLUE */
24202 };
24203 /* End of struct IEvent declaration */
24204 
24205 
24206 /* Start of struct IReusableEvent declaration */
24207 #   define IREUSABLEEVENT_IID_STR "69bfb134-80f6-4266-8e20-16371f68fa25"
24208 #   define IREUSABLEEVENT_IID { \
24209     0x69bfb134, 0x80f6, 0x4266, \
24210     { 0x8e, 0x20, 0x16, 0x37, 0x1f, 0x68, 0xfa, 0x25 } \
24211 }
24212 /* COM compatibility */
24213 VBOX_EXTERN_CONST(nsIID, IID_IReusableEvent);
24214 #   ifndef VBOX_WITH_GLUE
24215 struct IReusableEvent_vtbl
24216 {
24217     struct IEvent_vtbl ievent;
24218 
24219     nsresult (*GetGeneration)(IReusableEvent *pThis, PRUint32 *generation);
24220 
24221     nsresult (*Reuse)(IReusableEvent *pThis );
24222 
24223 };
24224 #   else /* VBOX_WITH_GLUE */
24225 struct IReusableEventVtbl
24226 {
24227     nsresult (*QueryInterface)(IReusableEvent *pThis, const nsID *iid, void **resultp);
24228     nsrefcnt (*AddRef)(IReusableEvent *pThis);
24229     nsrefcnt (*Release)(IReusableEvent *pThis);
24230     nsresult (*GetType)(IReusableEvent *pThis, PRUint32 *type);
24231 
24232     nsresult (*GetSource)(IReusableEvent *pThis, IEventSource * *source);
24233 
24234     nsresult (*GetWaitable)(IReusableEvent *pThis, PRBool *waitable);
24235 
24236     nsresult (*SetProcessed)(IReusableEvent *pThis );
24237 
24238     nsresult (*WaitProcessed)(
24239         IReusableEvent *pThis,
24240         PRInt32 timeout,
24241         PRBool * result
24242     );
24243 
24244     nsresult (*GetGeneration)(IReusableEvent *pThis, PRUint32 *generation);
24245 
24246     nsresult (*Reuse)(IReusableEvent *pThis );
24247 
24248 };
24249 #    define IReusableEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24250 #    define IReusableEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24251 #    define IReusableEvent_Release(p) ((p)->lpVtbl->Release(p))
24252 #    define IReusableEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24253 #    define IReusableEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24254 #    define IReusableEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24255 #    define IReusableEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24256 #    define IReusableEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24257 #    define IReusableEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24258 #    define IReusableEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24259 #    define IReusableEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24260 #    define IReusableEvent_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
24261 #    define IReusableEvent_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
24262 #    define IReusableEvent_Reuse(p) ((p)->lpVtbl->Reuse(p))
24263 #   endif /* VBOX_WITH_GLUE */
24264 
24265 interface IReusableEvent
24266 {
24267 #   ifndef VBOX_WITH_GLUE
24268     struct IReusableEvent_vtbl *vtbl;
24269 #   else /* VBOX_WITH_GLUE */
24270     CONST_VTBL struct IReusableEventVtbl *lpVtbl;
24271 #   endif /* VBOX_WITH_GLUE */
24272 };
24273 /* End of struct IReusableEvent declaration */
24274 
24275 
24276 /* Start of struct IMachineEvent declaration */
24277 #   define IMACHINEEVENT_IID_STR "92ed7b1a-0d96-40ed-ae46-a564d484325e"
24278 #   define IMACHINEEVENT_IID { \
24279     0x92ed7b1a, 0x0d96, 0x40ed, \
24280     { 0xae, 0x46, 0xa5, 0x64, 0xd4, 0x84, 0x32, 0x5e } \
24281 }
24282 /* COM compatibility */
24283 VBOX_EXTERN_CONST(nsIID, IID_IMachineEvent);
24284 #   ifndef VBOX_WITH_GLUE
24285 struct IMachineEvent_vtbl
24286 {
24287     struct IEvent_vtbl ievent;
24288 
24289     nsresult (*GetMachineId)(IMachineEvent *pThis, PRUnichar * *machineId);
24290 
24291 };
24292 #   else /* VBOX_WITH_GLUE */
24293 struct IMachineEventVtbl
24294 {
24295     nsresult (*QueryInterface)(IMachineEvent *pThis, const nsID *iid, void **resultp);
24296     nsrefcnt (*AddRef)(IMachineEvent *pThis);
24297     nsrefcnt (*Release)(IMachineEvent *pThis);
24298     nsresult (*GetType)(IMachineEvent *pThis, PRUint32 *type);
24299 
24300     nsresult (*GetSource)(IMachineEvent *pThis, IEventSource * *source);
24301 
24302     nsresult (*GetWaitable)(IMachineEvent *pThis, PRBool *waitable);
24303 
24304     nsresult (*SetProcessed)(IMachineEvent *pThis );
24305 
24306     nsresult (*WaitProcessed)(
24307         IMachineEvent *pThis,
24308         PRInt32 timeout,
24309         PRBool * result
24310     );
24311 
24312     nsresult (*GetMachineId)(IMachineEvent *pThis, PRUnichar * *machineId);
24313 
24314 };
24315 #    define IMachineEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24316 #    define IMachineEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24317 #    define IMachineEvent_Release(p) ((p)->lpVtbl->Release(p))
24318 #    define IMachineEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24319 #    define IMachineEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24320 #    define IMachineEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24321 #    define IMachineEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24322 #    define IMachineEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24323 #    define IMachineEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24324 #    define IMachineEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24325 #    define IMachineEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24326 #    define IMachineEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24327 #    define IMachineEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24328 #   endif /* VBOX_WITH_GLUE */
24329 
24330 interface IMachineEvent
24331 {
24332 #   ifndef VBOX_WITH_GLUE
24333     struct IMachineEvent_vtbl *vtbl;
24334 #   else /* VBOX_WITH_GLUE */
24335     CONST_VTBL struct IMachineEventVtbl *lpVtbl;
24336 #   endif /* VBOX_WITH_GLUE */
24337 };
24338 /* End of struct IMachineEvent declaration */
24339 
24340 
24341 /* Start of struct IMachineStateChangedEvent declaration */
24342 #   define IMACHINESTATECHANGEDEVENT_IID_STR "5748F794-48DF-438D-85EB-98FFD70D18C9"
24343 #   define IMACHINESTATECHANGEDEVENT_IID { \
24344     0x5748F794, 0x48DF, 0x438D, \
24345     { 0x85, 0xEB, 0x98, 0xFF, 0xD7, 0x0D, 0x18, 0xC9 } \
24346 }
24347 /* COM compatibility */
24348 VBOX_EXTERN_CONST(nsIID, IID_IMachineStateChangedEvent);
24349 #   ifndef VBOX_WITH_GLUE
24350 struct IMachineStateChangedEvent_vtbl
24351 {
24352     struct IMachineEvent_vtbl imachineevent;
24353 
24354     nsresult (*GetState)(IMachineStateChangedEvent *pThis, PRUint32 *state);
24355 
24356 };
24357 #   else /* VBOX_WITH_GLUE */
24358 struct IMachineStateChangedEventVtbl
24359 {
24360     nsresult (*QueryInterface)(IMachineStateChangedEvent *pThis, const nsID *iid, void **resultp);
24361     nsrefcnt (*AddRef)(IMachineStateChangedEvent *pThis);
24362     nsrefcnt (*Release)(IMachineStateChangedEvent *pThis);
24363     nsresult (*GetType)(IMachineStateChangedEvent *pThis, PRUint32 *type);
24364 
24365     nsresult (*GetSource)(IMachineStateChangedEvent *pThis, IEventSource * *source);
24366 
24367     nsresult (*GetWaitable)(IMachineStateChangedEvent *pThis, PRBool *waitable);
24368 
24369     nsresult (*SetProcessed)(IMachineStateChangedEvent *pThis );
24370 
24371     nsresult (*WaitProcessed)(
24372         IMachineStateChangedEvent *pThis,
24373         PRInt32 timeout,
24374         PRBool * result
24375     );
24376 
24377     nsresult (*GetMachineId)(IMachineStateChangedEvent *pThis, PRUnichar * *machineId);
24378 
24379     nsresult (*GetState)(IMachineStateChangedEvent *pThis, PRUint32 *state);
24380 
24381 };
24382 #    define IMachineStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24383 #    define IMachineStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24384 #    define IMachineStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24385 #    define IMachineStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24386 #    define IMachineStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24387 #    define IMachineStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24388 #    define IMachineStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24389 #    define IMachineStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24390 #    define IMachineStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24391 #    define IMachineStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24392 #    define IMachineStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24393 #    define IMachineStateChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24394 #    define IMachineStateChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24395 #    define IMachineStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
24396 #    define IMachineStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
24397 #   endif /* VBOX_WITH_GLUE */
24398 
24399 interface IMachineStateChangedEvent
24400 {
24401 #   ifndef VBOX_WITH_GLUE
24402     struct IMachineStateChangedEvent_vtbl *vtbl;
24403 #   else /* VBOX_WITH_GLUE */
24404     CONST_VTBL struct IMachineStateChangedEventVtbl *lpVtbl;
24405 #   endif /* VBOX_WITH_GLUE */
24406 };
24407 /* End of struct IMachineStateChangedEvent declaration */
24408 
24409 
24410 /* Start of struct IMachineDataChangedEvent declaration */
24411 #   define IMACHINEDATACHANGEDEVENT_IID_STR "abe94809-2e88-4436-83d7-50f3e64d0503"
24412 #   define IMACHINEDATACHANGEDEVENT_IID { \
24413     0xabe94809, 0x2e88, 0x4436, \
24414     { 0x83, 0xd7, 0x50, 0xf3, 0xe6, 0x4d, 0x05, 0x03 } \
24415 }
24416 /* COM compatibility */
24417 VBOX_EXTERN_CONST(nsIID, IID_IMachineDataChangedEvent);
24418 #   ifndef VBOX_WITH_GLUE
24419 struct IMachineDataChangedEvent_vtbl
24420 {
24421     struct IMachineEvent_vtbl imachineevent;
24422 
24423     nsresult (*GetTemporary)(IMachineDataChangedEvent *pThis, PRBool *temporary);
24424 
24425 };
24426 #   else /* VBOX_WITH_GLUE */
24427 struct IMachineDataChangedEventVtbl
24428 {
24429     nsresult (*QueryInterface)(IMachineDataChangedEvent *pThis, const nsID *iid, void **resultp);
24430     nsrefcnt (*AddRef)(IMachineDataChangedEvent *pThis);
24431     nsrefcnt (*Release)(IMachineDataChangedEvent *pThis);
24432     nsresult (*GetType)(IMachineDataChangedEvent *pThis, PRUint32 *type);
24433 
24434     nsresult (*GetSource)(IMachineDataChangedEvent *pThis, IEventSource * *source);
24435 
24436     nsresult (*GetWaitable)(IMachineDataChangedEvent *pThis, PRBool *waitable);
24437 
24438     nsresult (*SetProcessed)(IMachineDataChangedEvent *pThis );
24439 
24440     nsresult (*WaitProcessed)(
24441         IMachineDataChangedEvent *pThis,
24442         PRInt32 timeout,
24443         PRBool * result
24444     );
24445 
24446     nsresult (*GetMachineId)(IMachineDataChangedEvent *pThis, PRUnichar * *machineId);
24447 
24448     nsresult (*GetTemporary)(IMachineDataChangedEvent *pThis, PRBool *temporary);
24449 
24450 };
24451 #    define IMachineDataChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24452 #    define IMachineDataChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24453 #    define IMachineDataChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24454 #    define IMachineDataChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24455 #    define IMachineDataChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24456 #    define IMachineDataChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24457 #    define IMachineDataChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24458 #    define IMachineDataChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24459 #    define IMachineDataChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24460 #    define IMachineDataChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24461 #    define IMachineDataChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24462 #    define IMachineDataChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24463 #    define IMachineDataChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24464 #    define IMachineDataChangedEvent_get_Temporary(p, aTemporary) ((p)->lpVtbl->GetTemporary(p, aTemporary))
24465 #    define IMachineDataChangedEvent_GetTemporary(p, aTemporary) ((p)->lpVtbl->GetTemporary(p, aTemporary))
24466 #   endif /* VBOX_WITH_GLUE */
24467 
24468 interface IMachineDataChangedEvent
24469 {
24470 #   ifndef VBOX_WITH_GLUE
24471     struct IMachineDataChangedEvent_vtbl *vtbl;
24472 #   else /* VBOX_WITH_GLUE */
24473     CONST_VTBL struct IMachineDataChangedEventVtbl *lpVtbl;
24474 #   endif /* VBOX_WITH_GLUE */
24475 };
24476 /* End of struct IMachineDataChangedEvent declaration */
24477 
24478 
24479 /* Start of struct IMediumRegisteredEvent declaration */
24480 #   define IMEDIUMREGISTEREDEVENT_IID_STR "53fac49a-b7f1-4a5a-a4ef-a11dd9c2a458"
24481 #   define IMEDIUMREGISTEREDEVENT_IID { \
24482     0x53fac49a, 0xb7f1, 0x4a5a, \
24483     { 0xa4, 0xef, 0xa1, 0x1d, 0xd9, 0xc2, 0xa4, 0x58 } \
24484 }
24485 /* COM compatibility */
24486 VBOX_EXTERN_CONST(nsIID, IID_IMediumRegisteredEvent);
24487 #   ifndef VBOX_WITH_GLUE
24488 struct IMediumRegisteredEvent_vtbl
24489 {
24490     struct IEvent_vtbl ievent;
24491 
24492     nsresult (*GetMediumId)(IMediumRegisteredEvent *pThis, PRUnichar * *mediumId);
24493 
24494     nsresult (*GetMediumType)(IMediumRegisteredEvent *pThis, PRUint32 *mediumType);
24495 
24496     nsresult (*GetRegistered)(IMediumRegisteredEvent *pThis, PRBool *registered);
24497 
24498 };
24499 #   else /* VBOX_WITH_GLUE */
24500 struct IMediumRegisteredEventVtbl
24501 {
24502     nsresult (*QueryInterface)(IMediumRegisteredEvent *pThis, const nsID *iid, void **resultp);
24503     nsrefcnt (*AddRef)(IMediumRegisteredEvent *pThis);
24504     nsrefcnt (*Release)(IMediumRegisteredEvent *pThis);
24505     nsresult (*GetType)(IMediumRegisteredEvent *pThis, PRUint32 *type);
24506 
24507     nsresult (*GetSource)(IMediumRegisteredEvent *pThis, IEventSource * *source);
24508 
24509     nsresult (*GetWaitable)(IMediumRegisteredEvent *pThis, PRBool *waitable);
24510 
24511     nsresult (*SetProcessed)(IMediumRegisteredEvent *pThis );
24512 
24513     nsresult (*WaitProcessed)(
24514         IMediumRegisteredEvent *pThis,
24515         PRInt32 timeout,
24516         PRBool * result
24517     );
24518 
24519     nsresult (*GetMediumId)(IMediumRegisteredEvent *pThis, PRUnichar * *mediumId);
24520 
24521     nsresult (*GetMediumType)(IMediumRegisteredEvent *pThis, PRUint32 *mediumType);
24522 
24523     nsresult (*GetRegistered)(IMediumRegisteredEvent *pThis, PRBool *registered);
24524 
24525 };
24526 #    define IMediumRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24527 #    define IMediumRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24528 #    define IMediumRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
24529 #    define IMediumRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24530 #    define IMediumRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24531 #    define IMediumRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24532 #    define IMediumRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24533 #    define IMediumRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24534 #    define IMediumRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24535 #    define IMediumRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24536 #    define IMediumRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24537 #    define IMediumRegisteredEvent_get_MediumId(p, aMediumId) ((p)->lpVtbl->GetMediumId(p, aMediumId))
24538 #    define IMediumRegisteredEvent_GetMediumId(p, aMediumId) ((p)->lpVtbl->GetMediumId(p, aMediumId))
24539 #    define IMediumRegisteredEvent_get_MediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
24540 #    define IMediumRegisteredEvent_GetMediumType(p, aMediumType) ((p)->lpVtbl->GetMediumType(p, aMediumType))
24541 #    define IMediumRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24542 #    define IMediumRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24543 #   endif /* VBOX_WITH_GLUE */
24544 
24545 interface IMediumRegisteredEvent
24546 {
24547 #   ifndef VBOX_WITH_GLUE
24548     struct IMediumRegisteredEvent_vtbl *vtbl;
24549 #   else /* VBOX_WITH_GLUE */
24550     CONST_VTBL struct IMediumRegisteredEventVtbl *lpVtbl;
24551 #   endif /* VBOX_WITH_GLUE */
24552 };
24553 /* End of struct IMediumRegisteredEvent declaration */
24554 
24555 
24556 /* Start of struct IMediumConfigChangedEvent declaration */
24557 #   define IMEDIUMCONFIGCHANGEDEVENT_IID_STR "dd3e2654-a161-41f1-b583-4892f4a9d5d5"
24558 #   define IMEDIUMCONFIGCHANGEDEVENT_IID { \
24559     0xdd3e2654, 0xa161, 0x41f1, \
24560     { 0xb5, 0x83, 0x48, 0x92, 0xf4, 0xa9, 0xd5, 0xd5 } \
24561 }
24562 /* COM compatibility */
24563 VBOX_EXTERN_CONST(nsIID, IID_IMediumConfigChangedEvent);
24564 #   ifndef VBOX_WITH_GLUE
24565 struct IMediumConfigChangedEvent_vtbl
24566 {
24567     struct IEvent_vtbl ievent;
24568 
24569     nsresult (*GetMedium)(IMediumConfigChangedEvent *pThis, IMedium * *medium);
24570 
24571 };
24572 #   else /* VBOX_WITH_GLUE */
24573 struct IMediumConfigChangedEventVtbl
24574 {
24575     nsresult (*QueryInterface)(IMediumConfigChangedEvent *pThis, const nsID *iid, void **resultp);
24576     nsrefcnt (*AddRef)(IMediumConfigChangedEvent *pThis);
24577     nsrefcnt (*Release)(IMediumConfigChangedEvent *pThis);
24578     nsresult (*GetType)(IMediumConfigChangedEvent *pThis, PRUint32 *type);
24579 
24580     nsresult (*GetSource)(IMediumConfigChangedEvent *pThis, IEventSource * *source);
24581 
24582     nsresult (*GetWaitable)(IMediumConfigChangedEvent *pThis, PRBool *waitable);
24583 
24584     nsresult (*SetProcessed)(IMediumConfigChangedEvent *pThis );
24585 
24586     nsresult (*WaitProcessed)(
24587         IMediumConfigChangedEvent *pThis,
24588         PRInt32 timeout,
24589         PRBool * result
24590     );
24591 
24592     nsresult (*GetMedium)(IMediumConfigChangedEvent *pThis, IMedium * *medium);
24593 
24594 };
24595 #    define IMediumConfigChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24596 #    define IMediumConfigChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24597 #    define IMediumConfigChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24598 #    define IMediumConfigChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24599 #    define IMediumConfigChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24600 #    define IMediumConfigChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24601 #    define IMediumConfigChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24602 #    define IMediumConfigChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24603 #    define IMediumConfigChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24604 #    define IMediumConfigChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24605 #    define IMediumConfigChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24606 #    define IMediumConfigChangedEvent_get_Medium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
24607 #    define IMediumConfigChangedEvent_GetMedium(p, aMedium) ((p)->lpVtbl->GetMedium(p, aMedium))
24608 #   endif /* VBOX_WITH_GLUE */
24609 
24610 interface IMediumConfigChangedEvent
24611 {
24612 #   ifndef VBOX_WITH_GLUE
24613     struct IMediumConfigChangedEvent_vtbl *vtbl;
24614 #   else /* VBOX_WITH_GLUE */
24615     CONST_VTBL struct IMediumConfigChangedEventVtbl *lpVtbl;
24616 #   endif /* VBOX_WITH_GLUE */
24617 };
24618 /* End of struct IMediumConfigChangedEvent declaration */
24619 
24620 
24621 /* Start of struct IMachineRegisteredEvent declaration */
24622 #   define IMACHINEREGISTEREDEVENT_IID_STR "c354a762-3ff2-4f2e-8f09-07382ee25088"
24623 #   define IMACHINEREGISTEREDEVENT_IID { \
24624     0xc354a762, 0x3ff2, 0x4f2e, \
24625     { 0x8f, 0x09, 0x07, 0x38, 0x2e, 0xe2, 0x50, 0x88 } \
24626 }
24627 /* COM compatibility */
24628 VBOX_EXTERN_CONST(nsIID, IID_IMachineRegisteredEvent);
24629 #   ifndef VBOX_WITH_GLUE
24630 struct IMachineRegisteredEvent_vtbl
24631 {
24632     struct IMachineEvent_vtbl imachineevent;
24633 
24634     nsresult (*GetRegistered)(IMachineRegisteredEvent *pThis, PRBool *registered);
24635 
24636 };
24637 #   else /* VBOX_WITH_GLUE */
24638 struct IMachineRegisteredEventVtbl
24639 {
24640     nsresult (*QueryInterface)(IMachineRegisteredEvent *pThis, const nsID *iid, void **resultp);
24641     nsrefcnt (*AddRef)(IMachineRegisteredEvent *pThis);
24642     nsrefcnt (*Release)(IMachineRegisteredEvent *pThis);
24643     nsresult (*GetType)(IMachineRegisteredEvent *pThis, PRUint32 *type);
24644 
24645     nsresult (*GetSource)(IMachineRegisteredEvent *pThis, IEventSource * *source);
24646 
24647     nsresult (*GetWaitable)(IMachineRegisteredEvent *pThis, PRBool *waitable);
24648 
24649     nsresult (*SetProcessed)(IMachineRegisteredEvent *pThis );
24650 
24651     nsresult (*WaitProcessed)(
24652         IMachineRegisteredEvent *pThis,
24653         PRInt32 timeout,
24654         PRBool * result
24655     );
24656 
24657     nsresult (*GetMachineId)(IMachineRegisteredEvent *pThis, PRUnichar * *machineId);
24658 
24659     nsresult (*GetRegistered)(IMachineRegisteredEvent *pThis, PRBool *registered);
24660 
24661 };
24662 #    define IMachineRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24663 #    define IMachineRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24664 #    define IMachineRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
24665 #    define IMachineRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24666 #    define IMachineRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24667 #    define IMachineRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24668 #    define IMachineRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24669 #    define IMachineRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24670 #    define IMachineRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24671 #    define IMachineRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24672 #    define IMachineRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24673 #    define IMachineRegisteredEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24674 #    define IMachineRegisteredEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24675 #    define IMachineRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24676 #    define IMachineRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
24677 #   endif /* VBOX_WITH_GLUE */
24678 
24679 interface IMachineRegisteredEvent
24680 {
24681 #   ifndef VBOX_WITH_GLUE
24682     struct IMachineRegisteredEvent_vtbl *vtbl;
24683 #   else /* VBOX_WITH_GLUE */
24684     CONST_VTBL struct IMachineRegisteredEventVtbl *lpVtbl;
24685 #   endif /* VBOX_WITH_GLUE */
24686 };
24687 /* End of struct IMachineRegisteredEvent declaration */
24688 
24689 
24690 /* Start of struct ISessionStateChangedEvent declaration */
24691 #   define ISESSIONSTATECHANGEDEVENT_IID_STR "714a3eef-799a-4489-86cd-fe8e45b2ff8e"
24692 #   define ISESSIONSTATECHANGEDEVENT_IID { \
24693     0x714a3eef, 0x799a, 0x4489, \
24694     { 0x86, 0xcd, 0xfe, 0x8e, 0x45, 0xb2, 0xff, 0x8e } \
24695 }
24696 /* COM compatibility */
24697 VBOX_EXTERN_CONST(nsIID, IID_ISessionStateChangedEvent);
24698 #   ifndef VBOX_WITH_GLUE
24699 struct ISessionStateChangedEvent_vtbl
24700 {
24701     struct IMachineEvent_vtbl imachineevent;
24702 
24703     nsresult (*GetState)(ISessionStateChangedEvent *pThis, PRUint32 *state);
24704 
24705 };
24706 #   else /* VBOX_WITH_GLUE */
24707 struct ISessionStateChangedEventVtbl
24708 {
24709     nsresult (*QueryInterface)(ISessionStateChangedEvent *pThis, const nsID *iid, void **resultp);
24710     nsrefcnt (*AddRef)(ISessionStateChangedEvent *pThis);
24711     nsrefcnt (*Release)(ISessionStateChangedEvent *pThis);
24712     nsresult (*GetType)(ISessionStateChangedEvent *pThis, PRUint32 *type);
24713 
24714     nsresult (*GetSource)(ISessionStateChangedEvent *pThis, IEventSource * *source);
24715 
24716     nsresult (*GetWaitable)(ISessionStateChangedEvent *pThis, PRBool *waitable);
24717 
24718     nsresult (*SetProcessed)(ISessionStateChangedEvent *pThis );
24719 
24720     nsresult (*WaitProcessed)(
24721         ISessionStateChangedEvent *pThis,
24722         PRInt32 timeout,
24723         PRBool * result
24724     );
24725 
24726     nsresult (*GetMachineId)(ISessionStateChangedEvent *pThis, PRUnichar * *machineId);
24727 
24728     nsresult (*GetState)(ISessionStateChangedEvent *pThis, PRUint32 *state);
24729 
24730 };
24731 #    define ISessionStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24732 #    define ISessionStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24733 #    define ISessionStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24734 #    define ISessionStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24735 #    define ISessionStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24736 #    define ISessionStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24737 #    define ISessionStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24738 #    define ISessionStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24739 #    define ISessionStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24740 #    define ISessionStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24741 #    define ISessionStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24742 #    define ISessionStateChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24743 #    define ISessionStateChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24744 #    define ISessionStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
24745 #    define ISessionStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
24746 #   endif /* VBOX_WITH_GLUE */
24747 
24748 interface ISessionStateChangedEvent
24749 {
24750 #   ifndef VBOX_WITH_GLUE
24751     struct ISessionStateChangedEvent_vtbl *vtbl;
24752 #   else /* VBOX_WITH_GLUE */
24753     CONST_VTBL struct ISessionStateChangedEventVtbl *lpVtbl;
24754 #   endif /* VBOX_WITH_GLUE */
24755 };
24756 /* End of struct ISessionStateChangedEvent declaration */
24757 
24758 
24759 /* Start of struct IGuestPropertyChangedEvent declaration */
24760 #   define IGUESTPROPERTYCHANGEDEVENT_IID_STR "3f63597a-26f1-4edb-8dd2-6bddd0912368"
24761 #   define IGUESTPROPERTYCHANGEDEVENT_IID { \
24762     0x3f63597a, 0x26f1, 0x4edb, \
24763     { 0x8d, 0xd2, 0x6b, 0xdd, 0xd0, 0x91, 0x23, 0x68 } \
24764 }
24765 /* COM compatibility */
24766 VBOX_EXTERN_CONST(nsIID, IID_IGuestPropertyChangedEvent);
24767 #   ifndef VBOX_WITH_GLUE
24768 struct IGuestPropertyChangedEvent_vtbl
24769 {
24770     struct IMachineEvent_vtbl imachineevent;
24771 
24772     nsresult (*GetName)(IGuestPropertyChangedEvent *pThis, PRUnichar * *name);
24773 
24774     nsresult (*GetValue)(IGuestPropertyChangedEvent *pThis, PRUnichar * *value);
24775 
24776     nsresult (*GetFlags)(IGuestPropertyChangedEvent *pThis, PRUnichar * *flags);
24777 
24778 };
24779 #   else /* VBOX_WITH_GLUE */
24780 struct IGuestPropertyChangedEventVtbl
24781 {
24782     nsresult (*QueryInterface)(IGuestPropertyChangedEvent *pThis, const nsID *iid, void **resultp);
24783     nsrefcnt (*AddRef)(IGuestPropertyChangedEvent *pThis);
24784     nsrefcnt (*Release)(IGuestPropertyChangedEvent *pThis);
24785     nsresult (*GetType)(IGuestPropertyChangedEvent *pThis, PRUint32 *type);
24786 
24787     nsresult (*GetSource)(IGuestPropertyChangedEvent *pThis, IEventSource * *source);
24788 
24789     nsresult (*GetWaitable)(IGuestPropertyChangedEvent *pThis, PRBool *waitable);
24790 
24791     nsresult (*SetProcessed)(IGuestPropertyChangedEvent *pThis );
24792 
24793     nsresult (*WaitProcessed)(
24794         IGuestPropertyChangedEvent *pThis,
24795         PRInt32 timeout,
24796         PRBool * result
24797     );
24798 
24799     nsresult (*GetMachineId)(IGuestPropertyChangedEvent *pThis, PRUnichar * *machineId);
24800 
24801     nsresult (*GetName)(IGuestPropertyChangedEvent *pThis, PRUnichar * *name);
24802 
24803     nsresult (*GetValue)(IGuestPropertyChangedEvent *pThis, PRUnichar * *value);
24804 
24805     nsresult (*GetFlags)(IGuestPropertyChangedEvent *pThis, PRUnichar * *flags);
24806 
24807 };
24808 #    define IGuestPropertyChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24809 #    define IGuestPropertyChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24810 #    define IGuestPropertyChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
24811 #    define IGuestPropertyChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24812 #    define IGuestPropertyChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24813 #    define IGuestPropertyChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24814 #    define IGuestPropertyChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24815 #    define IGuestPropertyChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24816 #    define IGuestPropertyChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24817 #    define IGuestPropertyChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24818 #    define IGuestPropertyChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24819 #    define IGuestPropertyChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24820 #    define IGuestPropertyChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24821 #    define IGuestPropertyChangedEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
24822 #    define IGuestPropertyChangedEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
24823 #    define IGuestPropertyChangedEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
24824 #    define IGuestPropertyChangedEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
24825 #    define IGuestPropertyChangedEvent_get_Flags(p, aFlags) ((p)->lpVtbl->GetFlags(p, aFlags))
24826 #    define IGuestPropertyChangedEvent_GetFlags(p, aFlags) ((p)->lpVtbl->GetFlags(p, aFlags))
24827 #   endif /* VBOX_WITH_GLUE */
24828 
24829 interface IGuestPropertyChangedEvent
24830 {
24831 #   ifndef VBOX_WITH_GLUE
24832     struct IGuestPropertyChangedEvent_vtbl *vtbl;
24833 #   else /* VBOX_WITH_GLUE */
24834     CONST_VTBL struct IGuestPropertyChangedEventVtbl *lpVtbl;
24835 #   endif /* VBOX_WITH_GLUE */
24836 };
24837 /* End of struct IGuestPropertyChangedEvent declaration */
24838 
24839 
24840 /* Start of struct ISnapshotEvent declaration */
24841 #   define ISNAPSHOTEVENT_IID_STR "21637b0e-34b8-42d3-acfb-7e96daf77c22"
24842 #   define ISNAPSHOTEVENT_IID { \
24843     0x21637b0e, 0x34b8, 0x42d3, \
24844     { 0xac, 0xfb, 0x7e, 0x96, 0xda, 0xf7, 0x7c, 0x22 } \
24845 }
24846 /* COM compatibility */
24847 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotEvent);
24848 #   ifndef VBOX_WITH_GLUE
24849 struct ISnapshotEvent_vtbl
24850 {
24851     struct IMachineEvent_vtbl imachineevent;
24852 
24853     nsresult (*GetSnapshotId)(ISnapshotEvent *pThis, PRUnichar * *snapshotId);
24854 
24855 };
24856 #   else /* VBOX_WITH_GLUE */
24857 struct ISnapshotEventVtbl
24858 {
24859     nsresult (*QueryInterface)(ISnapshotEvent *pThis, const nsID *iid, void **resultp);
24860     nsrefcnt (*AddRef)(ISnapshotEvent *pThis);
24861     nsrefcnt (*Release)(ISnapshotEvent *pThis);
24862     nsresult (*GetType)(ISnapshotEvent *pThis, PRUint32 *type);
24863 
24864     nsresult (*GetSource)(ISnapshotEvent *pThis, IEventSource * *source);
24865 
24866     nsresult (*GetWaitable)(ISnapshotEvent *pThis, PRBool *waitable);
24867 
24868     nsresult (*SetProcessed)(ISnapshotEvent *pThis );
24869 
24870     nsresult (*WaitProcessed)(
24871         ISnapshotEvent *pThis,
24872         PRInt32 timeout,
24873         PRBool * result
24874     );
24875 
24876     nsresult (*GetMachineId)(ISnapshotEvent *pThis, PRUnichar * *machineId);
24877 
24878     nsresult (*GetSnapshotId)(ISnapshotEvent *pThis, PRUnichar * *snapshotId);
24879 
24880 };
24881 #    define ISnapshotEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24882 #    define ISnapshotEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24883 #    define ISnapshotEvent_Release(p) ((p)->lpVtbl->Release(p))
24884 #    define ISnapshotEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24885 #    define ISnapshotEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24886 #    define ISnapshotEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24887 #    define ISnapshotEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24888 #    define ISnapshotEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24889 #    define ISnapshotEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24890 #    define ISnapshotEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24891 #    define ISnapshotEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24892 #    define ISnapshotEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24893 #    define ISnapshotEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24894 #    define ISnapshotEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
24895 #    define ISnapshotEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
24896 #   endif /* VBOX_WITH_GLUE */
24897 
24898 interface ISnapshotEvent
24899 {
24900 #   ifndef VBOX_WITH_GLUE
24901     struct ISnapshotEvent_vtbl *vtbl;
24902 #   else /* VBOX_WITH_GLUE */
24903     CONST_VTBL struct ISnapshotEventVtbl *lpVtbl;
24904 #   endif /* VBOX_WITH_GLUE */
24905 };
24906 /* End of struct ISnapshotEvent declaration */
24907 
24908 
24909 /* Start of struct ISnapshotTakenEvent declaration */
24910 #   define ISNAPSHOTTAKENEVENT_IID_STR "d27c0b3d-6038-422c-b45e-6d4a0503d9f1"
24911 #   define ISNAPSHOTTAKENEVENT_IID { \
24912     0xd27c0b3d, 0x6038, 0x422c, \
24913     { 0xb4, 0x5e, 0x6d, 0x4a, 0x05, 0x03, 0xd9, 0xf1 } \
24914 }
24915 /* COM compatibility */
24916 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotTakenEvent);
24917 #   ifndef VBOX_WITH_GLUE
24918 struct ISnapshotTakenEvent_vtbl
24919 {
24920     struct ISnapshotEvent_vtbl isnapshotevent;
24921 
24922     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotTakenEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24923 
24924 };
24925 #   else /* VBOX_WITH_GLUE */
24926 struct ISnapshotTakenEventVtbl
24927 {
24928     nsresult (*QueryInterface)(ISnapshotTakenEvent *pThis, const nsID *iid, void **resultp);
24929     nsrefcnt (*AddRef)(ISnapshotTakenEvent *pThis);
24930     nsrefcnt (*Release)(ISnapshotTakenEvent *pThis);
24931     nsresult (*GetType)(ISnapshotTakenEvent *pThis, PRUint32 *type);
24932 
24933     nsresult (*GetSource)(ISnapshotTakenEvent *pThis, IEventSource * *source);
24934 
24935     nsresult (*GetWaitable)(ISnapshotTakenEvent *pThis, PRBool *waitable);
24936 
24937     nsresult (*SetProcessed)(ISnapshotTakenEvent *pThis );
24938 
24939     nsresult (*WaitProcessed)(
24940         ISnapshotTakenEvent *pThis,
24941         PRInt32 timeout,
24942         PRBool * result
24943     );
24944 
24945     nsresult (*GetMachineId)(ISnapshotTakenEvent *pThis, PRUnichar * *machineId);
24946 
24947     nsresult (*GetSnapshotId)(ISnapshotTakenEvent *pThis, PRUnichar * *snapshotId);
24948 
24949     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotTakenEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24950 
24951 };
24952 #    define ISnapshotTakenEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
24953 #    define ISnapshotTakenEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
24954 #    define ISnapshotTakenEvent_Release(p) ((p)->lpVtbl->Release(p))
24955 #    define ISnapshotTakenEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
24956 #    define ISnapshotTakenEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
24957 #    define ISnapshotTakenEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24958 #    define ISnapshotTakenEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
24959 #    define ISnapshotTakenEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24960 #    define ISnapshotTakenEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
24961 #    define ISnapshotTakenEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
24962 #    define ISnapshotTakenEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
24963 #    define ISnapshotTakenEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24964 #    define ISnapshotTakenEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
24965 #    define ISnapshotTakenEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
24966 #    define ISnapshotTakenEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
24967 #    define ISnapshotTakenEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24968 #    define ISnapshotTakenEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
24969 #   endif /* VBOX_WITH_GLUE */
24970 
24971 interface ISnapshotTakenEvent
24972 {
24973 #   ifndef VBOX_WITH_GLUE
24974     struct ISnapshotTakenEvent_vtbl *vtbl;
24975 #   else /* VBOX_WITH_GLUE */
24976     CONST_VTBL struct ISnapshotTakenEventVtbl *lpVtbl;
24977 #   endif /* VBOX_WITH_GLUE */
24978 };
24979 /* End of struct ISnapshotTakenEvent declaration */
24980 
24981 
24982 /* Start of struct ISnapshotDeletedEvent declaration */
24983 #   define ISNAPSHOTDELETEDEVENT_IID_STR "c48f3401-4a9e-43f4-b7a7-54bd285e22f4"
24984 #   define ISNAPSHOTDELETEDEVENT_IID { \
24985     0xc48f3401, 0x4a9e, 0x43f4, \
24986     { 0xb7, 0xa7, 0x54, 0xbd, 0x28, 0x5e, 0x22, 0xf4 } \
24987 }
24988 /* COM compatibility */
24989 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotDeletedEvent);
24990 #   ifndef VBOX_WITH_GLUE
24991 struct ISnapshotDeletedEvent_vtbl
24992 {
24993     struct ISnapshotEvent_vtbl isnapshotevent;
24994 
24995     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotDeletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
24996 
24997 };
24998 #   else /* VBOX_WITH_GLUE */
24999 struct ISnapshotDeletedEventVtbl
25000 {
25001     nsresult (*QueryInterface)(ISnapshotDeletedEvent *pThis, const nsID *iid, void **resultp);
25002     nsrefcnt (*AddRef)(ISnapshotDeletedEvent *pThis);
25003     nsrefcnt (*Release)(ISnapshotDeletedEvent *pThis);
25004     nsresult (*GetType)(ISnapshotDeletedEvent *pThis, PRUint32 *type);
25005 
25006     nsresult (*GetSource)(ISnapshotDeletedEvent *pThis, IEventSource * *source);
25007 
25008     nsresult (*GetWaitable)(ISnapshotDeletedEvent *pThis, PRBool *waitable);
25009 
25010     nsresult (*SetProcessed)(ISnapshotDeletedEvent *pThis );
25011 
25012     nsresult (*WaitProcessed)(
25013         ISnapshotDeletedEvent *pThis,
25014         PRInt32 timeout,
25015         PRBool * result
25016     );
25017 
25018     nsresult (*GetMachineId)(ISnapshotDeletedEvent *pThis, PRUnichar * *machineId);
25019 
25020     nsresult (*GetSnapshotId)(ISnapshotDeletedEvent *pThis, PRUnichar * *snapshotId);
25021 
25022     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotDeletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25023 
25024 };
25025 #    define ISnapshotDeletedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25026 #    define ISnapshotDeletedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25027 #    define ISnapshotDeletedEvent_Release(p) ((p)->lpVtbl->Release(p))
25028 #    define ISnapshotDeletedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25029 #    define ISnapshotDeletedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25030 #    define ISnapshotDeletedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25031 #    define ISnapshotDeletedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25032 #    define ISnapshotDeletedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25033 #    define ISnapshotDeletedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25034 #    define ISnapshotDeletedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25035 #    define ISnapshotDeletedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25036 #    define ISnapshotDeletedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25037 #    define ISnapshotDeletedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25038 #    define ISnapshotDeletedEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
25039 #    define ISnapshotDeletedEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
25040 #    define ISnapshotDeletedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25041 #    define ISnapshotDeletedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25042 #   endif /* VBOX_WITH_GLUE */
25043 
25044 interface ISnapshotDeletedEvent
25045 {
25046 #   ifndef VBOX_WITH_GLUE
25047     struct ISnapshotDeletedEvent_vtbl *vtbl;
25048 #   else /* VBOX_WITH_GLUE */
25049     CONST_VTBL struct ISnapshotDeletedEventVtbl *lpVtbl;
25050 #   endif /* VBOX_WITH_GLUE */
25051 };
25052 /* End of struct ISnapshotDeletedEvent declaration */
25053 
25054 
25055 /* Start of struct ISnapshotRestoredEvent declaration */
25056 #   define ISNAPSHOTRESTOREDEVENT_IID_STR "f4d803b4-9b2d-4377-bfe6-9702e881516b"
25057 #   define ISNAPSHOTRESTOREDEVENT_IID { \
25058     0xf4d803b4, 0x9b2d, 0x4377, \
25059     { 0xbf, 0xe6, 0x97, 0x02, 0xe8, 0x81, 0x51, 0x6b } \
25060 }
25061 /* COM compatibility */
25062 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotRestoredEvent);
25063 #   ifndef VBOX_WITH_GLUE
25064 struct ISnapshotRestoredEvent_vtbl
25065 {
25066     struct ISnapshotEvent_vtbl isnapshotevent;
25067 
25068     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotRestoredEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25069 
25070 };
25071 #   else /* VBOX_WITH_GLUE */
25072 struct ISnapshotRestoredEventVtbl
25073 {
25074     nsresult (*QueryInterface)(ISnapshotRestoredEvent *pThis, const nsID *iid, void **resultp);
25075     nsrefcnt (*AddRef)(ISnapshotRestoredEvent *pThis);
25076     nsrefcnt (*Release)(ISnapshotRestoredEvent *pThis);
25077     nsresult (*GetType)(ISnapshotRestoredEvent *pThis, PRUint32 *type);
25078 
25079     nsresult (*GetSource)(ISnapshotRestoredEvent *pThis, IEventSource * *source);
25080 
25081     nsresult (*GetWaitable)(ISnapshotRestoredEvent *pThis, PRBool *waitable);
25082 
25083     nsresult (*SetProcessed)(ISnapshotRestoredEvent *pThis );
25084 
25085     nsresult (*WaitProcessed)(
25086         ISnapshotRestoredEvent *pThis,
25087         PRInt32 timeout,
25088         PRBool * result
25089     );
25090 
25091     nsresult (*GetMachineId)(ISnapshotRestoredEvent *pThis, PRUnichar * *machineId);
25092 
25093     nsresult (*GetSnapshotId)(ISnapshotRestoredEvent *pThis, PRUnichar * *snapshotId);
25094 
25095     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotRestoredEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25096 
25097 };
25098 #    define ISnapshotRestoredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25099 #    define ISnapshotRestoredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25100 #    define ISnapshotRestoredEvent_Release(p) ((p)->lpVtbl->Release(p))
25101 #    define ISnapshotRestoredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25102 #    define ISnapshotRestoredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25103 #    define ISnapshotRestoredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25104 #    define ISnapshotRestoredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25105 #    define ISnapshotRestoredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25106 #    define ISnapshotRestoredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25107 #    define ISnapshotRestoredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25108 #    define ISnapshotRestoredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25109 #    define ISnapshotRestoredEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25110 #    define ISnapshotRestoredEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25111 #    define ISnapshotRestoredEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
25112 #    define ISnapshotRestoredEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
25113 #    define ISnapshotRestoredEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25114 #    define ISnapshotRestoredEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25115 #   endif /* VBOX_WITH_GLUE */
25116 
25117 interface ISnapshotRestoredEvent
25118 {
25119 #   ifndef VBOX_WITH_GLUE
25120     struct ISnapshotRestoredEvent_vtbl *vtbl;
25121 #   else /* VBOX_WITH_GLUE */
25122     CONST_VTBL struct ISnapshotRestoredEventVtbl *lpVtbl;
25123 #   endif /* VBOX_WITH_GLUE */
25124 };
25125 /* End of struct ISnapshotRestoredEvent declaration */
25126 
25127 
25128 /* Start of struct ISnapshotChangedEvent declaration */
25129 #   define ISNAPSHOTCHANGEDEVENT_IID_STR "07541941-8079-447a-a33e-47a69c7980db"
25130 #   define ISNAPSHOTCHANGEDEVENT_IID { \
25131     0x07541941, 0x8079, 0x447a, \
25132     { 0xa3, 0x3e, 0x47, 0xa6, 0x9c, 0x79, 0x80, 0xdb } \
25133 }
25134 /* COM compatibility */
25135 VBOX_EXTERN_CONST(nsIID, IID_ISnapshotChangedEvent);
25136 #   ifndef VBOX_WITH_GLUE
25137 struct ISnapshotChangedEvent_vtbl
25138 {
25139     struct ISnapshotEvent_vtbl isnapshotevent;
25140 
25141     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25142 
25143 };
25144 #   else /* VBOX_WITH_GLUE */
25145 struct ISnapshotChangedEventVtbl
25146 {
25147     nsresult (*QueryInterface)(ISnapshotChangedEvent *pThis, const nsID *iid, void **resultp);
25148     nsrefcnt (*AddRef)(ISnapshotChangedEvent *pThis);
25149     nsrefcnt (*Release)(ISnapshotChangedEvent *pThis);
25150     nsresult (*GetType)(ISnapshotChangedEvent *pThis, PRUint32 *type);
25151 
25152     nsresult (*GetSource)(ISnapshotChangedEvent *pThis, IEventSource * *source);
25153 
25154     nsresult (*GetWaitable)(ISnapshotChangedEvent *pThis, PRBool *waitable);
25155 
25156     nsresult (*SetProcessed)(ISnapshotChangedEvent *pThis );
25157 
25158     nsresult (*WaitProcessed)(
25159         ISnapshotChangedEvent *pThis,
25160         PRInt32 timeout,
25161         PRBool * result
25162     );
25163 
25164     nsresult (*GetMachineId)(ISnapshotChangedEvent *pThis, PRUnichar * *machineId);
25165 
25166     nsresult (*GetSnapshotId)(ISnapshotChangedEvent *pThis, PRUnichar * *snapshotId);
25167 
25168     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ISnapshotChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25169 
25170 };
25171 #    define ISnapshotChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25172 #    define ISnapshotChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25173 #    define ISnapshotChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25174 #    define ISnapshotChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25175 #    define ISnapshotChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25176 #    define ISnapshotChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25177 #    define ISnapshotChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25178 #    define ISnapshotChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25179 #    define ISnapshotChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25180 #    define ISnapshotChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25181 #    define ISnapshotChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25182 #    define ISnapshotChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25183 #    define ISnapshotChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
25184 #    define ISnapshotChangedEvent_get_SnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
25185 #    define ISnapshotChangedEvent_GetSnapshotId(p, aSnapshotId) ((p)->lpVtbl->GetSnapshotId(p, aSnapshotId))
25186 #    define ISnapshotChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25187 #    define ISnapshotChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25188 #   endif /* VBOX_WITH_GLUE */
25189 
25190 interface ISnapshotChangedEvent
25191 {
25192 #   ifndef VBOX_WITH_GLUE
25193     struct ISnapshotChangedEvent_vtbl *vtbl;
25194 #   else /* VBOX_WITH_GLUE */
25195     CONST_VTBL struct ISnapshotChangedEventVtbl *lpVtbl;
25196 #   endif /* VBOX_WITH_GLUE */
25197 };
25198 /* End of struct ISnapshotChangedEvent declaration */
25199 
25200 
25201 /* Start of struct IMousePointerShapeChangedEvent declaration */
25202 #   define IMOUSEPOINTERSHAPECHANGEDEVENT_IID_STR "a6dcf6e8-416b-4181-8c4a-45ec95177aef"
25203 #   define IMOUSEPOINTERSHAPECHANGEDEVENT_IID { \
25204     0xa6dcf6e8, 0x416b, 0x4181, \
25205     { 0x8c, 0x4a, 0x45, 0xec, 0x95, 0x17, 0x7a, 0xef } \
25206 }
25207 /* COM compatibility */
25208 VBOX_EXTERN_CONST(nsIID, IID_IMousePointerShapeChangedEvent);
25209 #   ifndef VBOX_WITH_GLUE
25210 struct IMousePointerShapeChangedEvent_vtbl
25211 {
25212     struct IEvent_vtbl ievent;
25213 
25214     nsresult (*GetVisible)(IMousePointerShapeChangedEvent *pThis, PRBool *visible);
25215 
25216     nsresult (*GetAlpha)(IMousePointerShapeChangedEvent *pThis, PRBool *alpha);
25217 
25218     nsresult (*GetXhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *xhot);
25219 
25220     nsresult (*GetYhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *yhot);
25221 
25222     nsresult (*GetWidth)(IMousePointerShapeChangedEvent *pThis, PRUint32 *width);
25223 
25224     nsresult (*GetHeight)(IMousePointerShapeChangedEvent *pThis, PRUint32 *height);
25225 
25226     nsresult (*GetShape)(IMousePointerShapeChangedEvent *pThis, PRUint32 *shapeSize, PRUint8 **shape);
25227 
25228 };
25229 #   else /* VBOX_WITH_GLUE */
25230 struct IMousePointerShapeChangedEventVtbl
25231 {
25232     nsresult (*QueryInterface)(IMousePointerShapeChangedEvent *pThis, const nsID *iid, void **resultp);
25233     nsrefcnt (*AddRef)(IMousePointerShapeChangedEvent *pThis);
25234     nsrefcnt (*Release)(IMousePointerShapeChangedEvent *pThis);
25235     nsresult (*GetType)(IMousePointerShapeChangedEvent *pThis, PRUint32 *type);
25236 
25237     nsresult (*GetSource)(IMousePointerShapeChangedEvent *pThis, IEventSource * *source);
25238 
25239     nsresult (*GetWaitable)(IMousePointerShapeChangedEvent *pThis, PRBool *waitable);
25240 
25241     nsresult (*SetProcessed)(IMousePointerShapeChangedEvent *pThis );
25242 
25243     nsresult (*WaitProcessed)(
25244         IMousePointerShapeChangedEvent *pThis,
25245         PRInt32 timeout,
25246         PRBool * result
25247     );
25248 
25249     nsresult (*GetVisible)(IMousePointerShapeChangedEvent *pThis, PRBool *visible);
25250 
25251     nsresult (*GetAlpha)(IMousePointerShapeChangedEvent *pThis, PRBool *alpha);
25252 
25253     nsresult (*GetXhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *xhot);
25254 
25255     nsresult (*GetYhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *yhot);
25256 
25257     nsresult (*GetWidth)(IMousePointerShapeChangedEvent *pThis, PRUint32 *width);
25258 
25259     nsresult (*GetHeight)(IMousePointerShapeChangedEvent *pThis, PRUint32 *height);
25260 
25261     nsresult (*GetShape)(IMousePointerShapeChangedEvent *pThis, PRUint32 *shapeSize, PRUint8 **shape);
25262 
25263 };
25264 #    define IMousePointerShapeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25265 #    define IMousePointerShapeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25266 #    define IMousePointerShapeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25267 #    define IMousePointerShapeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25268 #    define IMousePointerShapeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25269 #    define IMousePointerShapeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25270 #    define IMousePointerShapeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25271 #    define IMousePointerShapeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25272 #    define IMousePointerShapeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25273 #    define IMousePointerShapeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25274 #    define IMousePointerShapeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25275 #    define IMousePointerShapeChangedEvent_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
25276 #    define IMousePointerShapeChangedEvent_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
25277 #    define IMousePointerShapeChangedEvent_get_Alpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
25278 #    define IMousePointerShapeChangedEvent_GetAlpha(p, aAlpha) ((p)->lpVtbl->GetAlpha(p, aAlpha))
25279 #    define IMousePointerShapeChangedEvent_get_Xhot(p, aXhot) ((p)->lpVtbl->GetXhot(p, aXhot))
25280 #    define IMousePointerShapeChangedEvent_GetXhot(p, aXhot) ((p)->lpVtbl->GetXhot(p, aXhot))
25281 #    define IMousePointerShapeChangedEvent_get_Yhot(p, aYhot) ((p)->lpVtbl->GetYhot(p, aYhot))
25282 #    define IMousePointerShapeChangedEvent_GetYhot(p, aYhot) ((p)->lpVtbl->GetYhot(p, aYhot))
25283 #    define IMousePointerShapeChangedEvent_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
25284 #    define IMousePointerShapeChangedEvent_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
25285 #    define IMousePointerShapeChangedEvent_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
25286 #    define IMousePointerShapeChangedEvent_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
25287 #    define IMousePointerShapeChangedEvent_get_Shape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
25288 #    define IMousePointerShapeChangedEvent_GetShape(p, aShape) ((p)->lpVtbl->GetShape(p, aShape))
25289 #   endif /* VBOX_WITH_GLUE */
25290 
25291 interface IMousePointerShapeChangedEvent
25292 {
25293 #   ifndef VBOX_WITH_GLUE
25294     struct IMousePointerShapeChangedEvent_vtbl *vtbl;
25295 #   else /* VBOX_WITH_GLUE */
25296     CONST_VTBL struct IMousePointerShapeChangedEventVtbl *lpVtbl;
25297 #   endif /* VBOX_WITH_GLUE */
25298 };
25299 /* End of struct IMousePointerShapeChangedEvent declaration */
25300 
25301 
25302 /* Start of struct IMouseCapabilityChangedEvent declaration */
25303 #   define IMOUSECAPABILITYCHANGEDEVENT_IID_STR "70e7779a-e64a-4908-804e-371cad23a756"
25304 #   define IMOUSECAPABILITYCHANGEDEVENT_IID { \
25305     0x70e7779a, 0xe64a, 0x4908, \
25306     { 0x80, 0x4e, 0x37, 0x1c, 0xad, 0x23, 0xa7, 0x56 } \
25307 }
25308 /* COM compatibility */
25309 VBOX_EXTERN_CONST(nsIID, IID_IMouseCapabilityChangedEvent);
25310 #   ifndef VBOX_WITH_GLUE
25311 struct IMouseCapabilityChangedEvent_vtbl
25312 {
25313     struct IEvent_vtbl ievent;
25314 
25315     nsresult (*GetSupportsAbsolute)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsAbsolute);
25316 
25317     nsresult (*GetSupportsRelative)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsRelative);
25318 
25319     nsresult (*GetSupportsMultiTouch)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsMultiTouch);
25320 
25321     nsresult (*GetNeedsHostCursor)(IMouseCapabilityChangedEvent *pThis, PRBool *needsHostCursor);
25322 
25323 };
25324 #   else /* VBOX_WITH_GLUE */
25325 struct IMouseCapabilityChangedEventVtbl
25326 {
25327     nsresult (*QueryInterface)(IMouseCapabilityChangedEvent *pThis, const nsID *iid, void **resultp);
25328     nsrefcnt (*AddRef)(IMouseCapabilityChangedEvent *pThis);
25329     nsrefcnt (*Release)(IMouseCapabilityChangedEvent *pThis);
25330     nsresult (*GetType)(IMouseCapabilityChangedEvent *pThis, PRUint32 *type);
25331 
25332     nsresult (*GetSource)(IMouseCapabilityChangedEvent *pThis, IEventSource * *source);
25333 
25334     nsresult (*GetWaitable)(IMouseCapabilityChangedEvent *pThis, PRBool *waitable);
25335 
25336     nsresult (*SetProcessed)(IMouseCapabilityChangedEvent *pThis );
25337 
25338     nsresult (*WaitProcessed)(
25339         IMouseCapabilityChangedEvent *pThis,
25340         PRInt32 timeout,
25341         PRBool * result
25342     );
25343 
25344     nsresult (*GetSupportsAbsolute)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsAbsolute);
25345 
25346     nsresult (*GetSupportsRelative)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsRelative);
25347 
25348     nsresult (*GetSupportsMultiTouch)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsMultiTouch);
25349 
25350     nsresult (*GetNeedsHostCursor)(IMouseCapabilityChangedEvent *pThis, PRBool *needsHostCursor);
25351 
25352 };
25353 #    define IMouseCapabilityChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25354 #    define IMouseCapabilityChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25355 #    define IMouseCapabilityChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25356 #    define IMouseCapabilityChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25357 #    define IMouseCapabilityChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25358 #    define IMouseCapabilityChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25359 #    define IMouseCapabilityChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25360 #    define IMouseCapabilityChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25361 #    define IMouseCapabilityChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25362 #    define IMouseCapabilityChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25363 #    define IMouseCapabilityChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25364 #    define IMouseCapabilityChangedEvent_get_SupportsAbsolute(p, aSupportsAbsolute) ((p)->lpVtbl->GetSupportsAbsolute(p, aSupportsAbsolute))
25365 #    define IMouseCapabilityChangedEvent_GetSupportsAbsolute(p, aSupportsAbsolute) ((p)->lpVtbl->GetSupportsAbsolute(p, aSupportsAbsolute))
25366 #    define IMouseCapabilityChangedEvent_get_SupportsRelative(p, aSupportsRelative) ((p)->lpVtbl->GetSupportsRelative(p, aSupportsRelative))
25367 #    define IMouseCapabilityChangedEvent_GetSupportsRelative(p, aSupportsRelative) ((p)->lpVtbl->GetSupportsRelative(p, aSupportsRelative))
25368 #    define IMouseCapabilityChangedEvent_get_SupportsMultiTouch(p, aSupportsMultiTouch) ((p)->lpVtbl->GetSupportsMultiTouch(p, aSupportsMultiTouch))
25369 #    define IMouseCapabilityChangedEvent_GetSupportsMultiTouch(p, aSupportsMultiTouch) ((p)->lpVtbl->GetSupportsMultiTouch(p, aSupportsMultiTouch))
25370 #    define IMouseCapabilityChangedEvent_get_NeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
25371 #    define IMouseCapabilityChangedEvent_GetNeedsHostCursor(p, aNeedsHostCursor) ((p)->lpVtbl->GetNeedsHostCursor(p, aNeedsHostCursor))
25372 #   endif /* VBOX_WITH_GLUE */
25373 
25374 interface IMouseCapabilityChangedEvent
25375 {
25376 #   ifndef VBOX_WITH_GLUE
25377     struct IMouseCapabilityChangedEvent_vtbl *vtbl;
25378 #   else /* VBOX_WITH_GLUE */
25379     CONST_VTBL struct IMouseCapabilityChangedEventVtbl *lpVtbl;
25380 #   endif /* VBOX_WITH_GLUE */
25381 };
25382 /* End of struct IMouseCapabilityChangedEvent declaration */
25383 
25384 
25385 /* Start of struct IKeyboardLedsChangedEvent declaration */
25386 #   define IKEYBOARDLEDSCHANGEDEVENT_IID_STR "6DDEF35E-4737-457B-99FC-BC52C851A44F"
25387 #   define IKEYBOARDLEDSCHANGEDEVENT_IID { \
25388     0x6DDEF35E, 0x4737, 0x457B, \
25389     { 0x99, 0xFC, 0xBC, 0x52, 0xC8, 0x51, 0xA4, 0x4F } \
25390 }
25391 /* COM compatibility */
25392 VBOX_EXTERN_CONST(nsIID, IID_IKeyboardLedsChangedEvent);
25393 #   ifndef VBOX_WITH_GLUE
25394 struct IKeyboardLedsChangedEvent_vtbl
25395 {
25396     struct IEvent_vtbl ievent;
25397 
25398     nsresult (*GetNumLock)(IKeyboardLedsChangedEvent *pThis, PRBool *numLock);
25399 
25400     nsresult (*GetCapsLock)(IKeyboardLedsChangedEvent *pThis, PRBool *capsLock);
25401 
25402     nsresult (*GetScrollLock)(IKeyboardLedsChangedEvent *pThis, PRBool *scrollLock);
25403 
25404 };
25405 #   else /* VBOX_WITH_GLUE */
25406 struct IKeyboardLedsChangedEventVtbl
25407 {
25408     nsresult (*QueryInterface)(IKeyboardLedsChangedEvent *pThis, const nsID *iid, void **resultp);
25409     nsrefcnt (*AddRef)(IKeyboardLedsChangedEvent *pThis);
25410     nsrefcnt (*Release)(IKeyboardLedsChangedEvent *pThis);
25411     nsresult (*GetType)(IKeyboardLedsChangedEvent *pThis, PRUint32 *type);
25412 
25413     nsresult (*GetSource)(IKeyboardLedsChangedEvent *pThis, IEventSource * *source);
25414 
25415     nsresult (*GetWaitable)(IKeyboardLedsChangedEvent *pThis, PRBool *waitable);
25416 
25417     nsresult (*SetProcessed)(IKeyboardLedsChangedEvent *pThis );
25418 
25419     nsresult (*WaitProcessed)(
25420         IKeyboardLedsChangedEvent *pThis,
25421         PRInt32 timeout,
25422         PRBool * result
25423     );
25424 
25425     nsresult (*GetNumLock)(IKeyboardLedsChangedEvent *pThis, PRBool *numLock);
25426 
25427     nsresult (*GetCapsLock)(IKeyboardLedsChangedEvent *pThis, PRBool *capsLock);
25428 
25429     nsresult (*GetScrollLock)(IKeyboardLedsChangedEvent *pThis, PRBool *scrollLock);
25430 
25431 };
25432 #    define IKeyboardLedsChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25433 #    define IKeyboardLedsChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25434 #    define IKeyboardLedsChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25435 #    define IKeyboardLedsChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25436 #    define IKeyboardLedsChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25437 #    define IKeyboardLedsChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25438 #    define IKeyboardLedsChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25439 #    define IKeyboardLedsChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25440 #    define IKeyboardLedsChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25441 #    define IKeyboardLedsChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25442 #    define IKeyboardLedsChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25443 #    define IKeyboardLedsChangedEvent_get_NumLock(p, aNumLock) ((p)->lpVtbl->GetNumLock(p, aNumLock))
25444 #    define IKeyboardLedsChangedEvent_GetNumLock(p, aNumLock) ((p)->lpVtbl->GetNumLock(p, aNumLock))
25445 #    define IKeyboardLedsChangedEvent_get_CapsLock(p, aCapsLock) ((p)->lpVtbl->GetCapsLock(p, aCapsLock))
25446 #    define IKeyboardLedsChangedEvent_GetCapsLock(p, aCapsLock) ((p)->lpVtbl->GetCapsLock(p, aCapsLock))
25447 #    define IKeyboardLedsChangedEvent_get_ScrollLock(p, aScrollLock) ((p)->lpVtbl->GetScrollLock(p, aScrollLock))
25448 #    define IKeyboardLedsChangedEvent_GetScrollLock(p, aScrollLock) ((p)->lpVtbl->GetScrollLock(p, aScrollLock))
25449 #   endif /* VBOX_WITH_GLUE */
25450 
25451 interface IKeyboardLedsChangedEvent
25452 {
25453 #   ifndef VBOX_WITH_GLUE
25454     struct IKeyboardLedsChangedEvent_vtbl *vtbl;
25455 #   else /* VBOX_WITH_GLUE */
25456     CONST_VTBL struct IKeyboardLedsChangedEventVtbl *lpVtbl;
25457 #   endif /* VBOX_WITH_GLUE */
25458 };
25459 /* End of struct IKeyboardLedsChangedEvent declaration */
25460 
25461 
25462 /* Start of struct IStateChangedEvent declaration */
25463 #   define ISTATECHANGEDEVENT_IID_STR "4376693C-CF37-453B-9289-3B0F521CAF27"
25464 #   define ISTATECHANGEDEVENT_IID { \
25465     0x4376693C, 0xCF37, 0x453B, \
25466     { 0x92, 0x89, 0x3B, 0x0F, 0x52, 0x1C, 0xAF, 0x27 } \
25467 }
25468 /* COM compatibility */
25469 VBOX_EXTERN_CONST(nsIID, IID_IStateChangedEvent);
25470 #   ifndef VBOX_WITH_GLUE
25471 struct IStateChangedEvent_vtbl
25472 {
25473     struct IEvent_vtbl ievent;
25474 
25475     nsresult (*GetState)(IStateChangedEvent *pThis, PRUint32 *state);
25476 
25477 };
25478 #   else /* VBOX_WITH_GLUE */
25479 struct IStateChangedEventVtbl
25480 {
25481     nsresult (*QueryInterface)(IStateChangedEvent *pThis, const nsID *iid, void **resultp);
25482     nsrefcnt (*AddRef)(IStateChangedEvent *pThis);
25483     nsrefcnt (*Release)(IStateChangedEvent *pThis);
25484     nsresult (*GetType)(IStateChangedEvent *pThis, PRUint32 *type);
25485 
25486     nsresult (*GetSource)(IStateChangedEvent *pThis, IEventSource * *source);
25487 
25488     nsresult (*GetWaitable)(IStateChangedEvent *pThis, PRBool *waitable);
25489 
25490     nsresult (*SetProcessed)(IStateChangedEvent *pThis );
25491 
25492     nsresult (*WaitProcessed)(
25493         IStateChangedEvent *pThis,
25494         PRInt32 timeout,
25495         PRBool * result
25496     );
25497 
25498     nsresult (*GetState)(IStateChangedEvent *pThis, PRUint32 *state);
25499 
25500 };
25501 #    define IStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25502 #    define IStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25503 #    define IStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25504 #    define IStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25505 #    define IStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25506 #    define IStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25507 #    define IStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25508 #    define IStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25509 #    define IStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25510 #    define IStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25511 #    define IStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25512 #    define IStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
25513 #    define IStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
25514 #   endif /* VBOX_WITH_GLUE */
25515 
25516 interface IStateChangedEvent
25517 {
25518 #   ifndef VBOX_WITH_GLUE
25519     struct IStateChangedEvent_vtbl *vtbl;
25520 #   else /* VBOX_WITH_GLUE */
25521     CONST_VTBL struct IStateChangedEventVtbl *lpVtbl;
25522 #   endif /* VBOX_WITH_GLUE */
25523 };
25524 /* End of struct IStateChangedEvent declaration */
25525 
25526 
25527 /* Start of struct IAdditionsStateChangedEvent declaration */
25528 #   define IADDITIONSSTATECHANGEDEVENT_IID_STR "D70F7915-DA7C-44C8-A7AC-9F173490446A"
25529 #   define IADDITIONSSTATECHANGEDEVENT_IID { \
25530     0xD70F7915, 0xDA7C, 0x44C8, \
25531     { 0xA7, 0xAC, 0x9F, 0x17, 0x34, 0x90, 0x44, 0x6A } \
25532 }
25533 /* COM compatibility */
25534 VBOX_EXTERN_CONST(nsIID, IID_IAdditionsStateChangedEvent);
25535 #   ifndef VBOX_WITH_GLUE
25536 struct IAdditionsStateChangedEvent_vtbl
25537 {
25538     struct IEvent_vtbl ievent;
25539 
25540     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IAdditionsStateChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25541 
25542 };
25543 #   else /* VBOX_WITH_GLUE */
25544 struct IAdditionsStateChangedEventVtbl
25545 {
25546     nsresult (*QueryInterface)(IAdditionsStateChangedEvent *pThis, const nsID *iid, void **resultp);
25547     nsrefcnt (*AddRef)(IAdditionsStateChangedEvent *pThis);
25548     nsrefcnt (*Release)(IAdditionsStateChangedEvent *pThis);
25549     nsresult (*GetType)(IAdditionsStateChangedEvent *pThis, PRUint32 *type);
25550 
25551     nsresult (*GetSource)(IAdditionsStateChangedEvent *pThis, IEventSource * *source);
25552 
25553     nsresult (*GetWaitable)(IAdditionsStateChangedEvent *pThis, PRBool *waitable);
25554 
25555     nsresult (*SetProcessed)(IAdditionsStateChangedEvent *pThis );
25556 
25557     nsresult (*WaitProcessed)(
25558         IAdditionsStateChangedEvent *pThis,
25559         PRInt32 timeout,
25560         PRBool * result
25561     );
25562 
25563     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IAdditionsStateChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
25564 
25565 };
25566 #    define IAdditionsStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25567 #    define IAdditionsStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25568 #    define IAdditionsStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25569 #    define IAdditionsStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25570 #    define IAdditionsStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25571 #    define IAdditionsStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25572 #    define IAdditionsStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25573 #    define IAdditionsStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25574 #    define IAdditionsStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25575 #    define IAdditionsStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25576 #    define IAdditionsStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25577 #    define IAdditionsStateChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25578 #    define IAdditionsStateChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
25579 #   endif /* VBOX_WITH_GLUE */
25580 
25581 interface IAdditionsStateChangedEvent
25582 {
25583 #   ifndef VBOX_WITH_GLUE
25584     struct IAdditionsStateChangedEvent_vtbl *vtbl;
25585 #   else /* VBOX_WITH_GLUE */
25586     CONST_VTBL struct IAdditionsStateChangedEventVtbl *lpVtbl;
25587 #   endif /* VBOX_WITH_GLUE */
25588 };
25589 /* End of struct IAdditionsStateChangedEvent declaration */
25590 
25591 
25592 /* Start of struct INetworkAdapterChangedEvent declaration */
25593 #   define INETWORKADAPTERCHANGEDEVENT_IID_STR "08889892-1EC6-4883-801D-77F56CFD0103"
25594 #   define INETWORKADAPTERCHANGEDEVENT_IID { \
25595     0x08889892, 0x1EC6, 0x4883, \
25596     { 0x80, 0x1D, 0x77, 0xF5, 0x6C, 0xFD, 0x01, 0x03 } \
25597 }
25598 /* COM compatibility */
25599 VBOX_EXTERN_CONST(nsIID, IID_INetworkAdapterChangedEvent);
25600 #   ifndef VBOX_WITH_GLUE
25601 struct INetworkAdapterChangedEvent_vtbl
25602 {
25603     struct IEvent_vtbl ievent;
25604 
25605     nsresult (*GetNetworkAdapter)(INetworkAdapterChangedEvent *pThis, INetworkAdapter * *networkAdapter);
25606 
25607 };
25608 #   else /* VBOX_WITH_GLUE */
25609 struct INetworkAdapterChangedEventVtbl
25610 {
25611     nsresult (*QueryInterface)(INetworkAdapterChangedEvent *pThis, const nsID *iid, void **resultp);
25612     nsrefcnt (*AddRef)(INetworkAdapterChangedEvent *pThis);
25613     nsrefcnt (*Release)(INetworkAdapterChangedEvent *pThis);
25614     nsresult (*GetType)(INetworkAdapterChangedEvent *pThis, PRUint32 *type);
25615 
25616     nsresult (*GetSource)(INetworkAdapterChangedEvent *pThis, IEventSource * *source);
25617 
25618     nsresult (*GetWaitable)(INetworkAdapterChangedEvent *pThis, PRBool *waitable);
25619 
25620     nsresult (*SetProcessed)(INetworkAdapterChangedEvent *pThis );
25621 
25622     nsresult (*WaitProcessed)(
25623         INetworkAdapterChangedEvent *pThis,
25624         PRInt32 timeout,
25625         PRBool * result
25626     );
25627 
25628     nsresult (*GetNetworkAdapter)(INetworkAdapterChangedEvent *pThis, INetworkAdapter * *networkAdapter);
25629 
25630 };
25631 #    define INetworkAdapterChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25632 #    define INetworkAdapterChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25633 #    define INetworkAdapterChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25634 #    define INetworkAdapterChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25635 #    define INetworkAdapterChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25636 #    define INetworkAdapterChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25637 #    define INetworkAdapterChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25638 #    define INetworkAdapterChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25639 #    define INetworkAdapterChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25640 #    define INetworkAdapterChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25641 #    define INetworkAdapterChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25642 #    define INetworkAdapterChangedEvent_get_NetworkAdapter(p, aNetworkAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aNetworkAdapter))
25643 #    define INetworkAdapterChangedEvent_GetNetworkAdapter(p, aNetworkAdapter) ((p)->lpVtbl->GetNetworkAdapter(p, aNetworkAdapter))
25644 #   endif /* VBOX_WITH_GLUE */
25645 
25646 interface INetworkAdapterChangedEvent
25647 {
25648 #   ifndef VBOX_WITH_GLUE
25649     struct INetworkAdapterChangedEvent_vtbl *vtbl;
25650 #   else /* VBOX_WITH_GLUE */
25651     CONST_VTBL struct INetworkAdapterChangedEventVtbl *lpVtbl;
25652 #   endif /* VBOX_WITH_GLUE */
25653 };
25654 /* End of struct INetworkAdapterChangedEvent declaration */
25655 
25656 
25657 /* Start of struct IAudioAdapterChangedEvent declaration */
25658 #   define IAUDIOADAPTERCHANGEDEVENT_IID_STR "D5ABC823-04D0-4DB6-8D66-DC2F033120E1"
25659 #   define IAUDIOADAPTERCHANGEDEVENT_IID { \
25660     0xD5ABC823, 0x04D0, 0x4DB6, \
25661     { 0x8D, 0x66, 0xDC, 0x2F, 0x03, 0x31, 0x20, 0xE1 } \
25662 }
25663 /* COM compatibility */
25664 VBOX_EXTERN_CONST(nsIID, IID_IAudioAdapterChangedEvent);
25665 #   ifndef VBOX_WITH_GLUE
25666 struct IAudioAdapterChangedEvent_vtbl
25667 {
25668     struct IEvent_vtbl ievent;
25669 
25670     nsresult (*GetAudioAdapter)(IAudioAdapterChangedEvent *pThis, IAudioAdapter * *audioAdapter);
25671 
25672 };
25673 #   else /* VBOX_WITH_GLUE */
25674 struct IAudioAdapterChangedEventVtbl
25675 {
25676     nsresult (*QueryInterface)(IAudioAdapterChangedEvent *pThis, const nsID *iid, void **resultp);
25677     nsrefcnt (*AddRef)(IAudioAdapterChangedEvent *pThis);
25678     nsrefcnt (*Release)(IAudioAdapterChangedEvent *pThis);
25679     nsresult (*GetType)(IAudioAdapterChangedEvent *pThis, PRUint32 *type);
25680 
25681     nsresult (*GetSource)(IAudioAdapterChangedEvent *pThis, IEventSource * *source);
25682 
25683     nsresult (*GetWaitable)(IAudioAdapterChangedEvent *pThis, PRBool *waitable);
25684 
25685     nsresult (*SetProcessed)(IAudioAdapterChangedEvent *pThis );
25686 
25687     nsresult (*WaitProcessed)(
25688         IAudioAdapterChangedEvent *pThis,
25689         PRInt32 timeout,
25690         PRBool * result
25691     );
25692 
25693     nsresult (*GetAudioAdapter)(IAudioAdapterChangedEvent *pThis, IAudioAdapter * *audioAdapter);
25694 
25695 };
25696 #    define IAudioAdapterChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25697 #    define IAudioAdapterChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25698 #    define IAudioAdapterChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25699 #    define IAudioAdapterChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25700 #    define IAudioAdapterChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25701 #    define IAudioAdapterChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25702 #    define IAudioAdapterChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25703 #    define IAudioAdapterChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25704 #    define IAudioAdapterChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25705 #    define IAudioAdapterChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25706 #    define IAudioAdapterChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25707 #    define IAudioAdapterChangedEvent_get_AudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
25708 #    define IAudioAdapterChangedEvent_GetAudioAdapter(p, aAudioAdapter) ((p)->lpVtbl->GetAudioAdapter(p, aAudioAdapter))
25709 #   endif /* VBOX_WITH_GLUE */
25710 
25711 interface IAudioAdapterChangedEvent
25712 {
25713 #   ifndef VBOX_WITH_GLUE
25714     struct IAudioAdapterChangedEvent_vtbl *vtbl;
25715 #   else /* VBOX_WITH_GLUE */
25716     CONST_VTBL struct IAudioAdapterChangedEventVtbl *lpVtbl;
25717 #   endif /* VBOX_WITH_GLUE */
25718 };
25719 /* End of struct IAudioAdapterChangedEvent declaration */
25720 
25721 
25722 /* Start of struct ISerialPortChangedEvent declaration */
25723 #   define ISERIALPORTCHANGEDEVENT_IID_STR "3BA329DC-659C-488B-835C-4ECA7AE71C6C"
25724 #   define ISERIALPORTCHANGEDEVENT_IID { \
25725     0x3BA329DC, 0x659C, 0x488B, \
25726     { 0x83, 0x5C, 0x4E, 0xCA, 0x7A, 0xE7, 0x1C, 0x6C } \
25727 }
25728 /* COM compatibility */
25729 VBOX_EXTERN_CONST(nsIID, IID_ISerialPortChangedEvent);
25730 #   ifndef VBOX_WITH_GLUE
25731 struct ISerialPortChangedEvent_vtbl
25732 {
25733     struct IEvent_vtbl ievent;
25734 
25735     nsresult (*GetSerialPort)(ISerialPortChangedEvent *pThis, ISerialPort * *serialPort);
25736 
25737 };
25738 #   else /* VBOX_WITH_GLUE */
25739 struct ISerialPortChangedEventVtbl
25740 {
25741     nsresult (*QueryInterface)(ISerialPortChangedEvent *pThis, const nsID *iid, void **resultp);
25742     nsrefcnt (*AddRef)(ISerialPortChangedEvent *pThis);
25743     nsrefcnt (*Release)(ISerialPortChangedEvent *pThis);
25744     nsresult (*GetType)(ISerialPortChangedEvent *pThis, PRUint32 *type);
25745 
25746     nsresult (*GetSource)(ISerialPortChangedEvent *pThis, IEventSource * *source);
25747 
25748     nsresult (*GetWaitable)(ISerialPortChangedEvent *pThis, PRBool *waitable);
25749 
25750     nsresult (*SetProcessed)(ISerialPortChangedEvent *pThis );
25751 
25752     nsresult (*WaitProcessed)(
25753         ISerialPortChangedEvent *pThis,
25754         PRInt32 timeout,
25755         PRBool * result
25756     );
25757 
25758     nsresult (*GetSerialPort)(ISerialPortChangedEvent *pThis, ISerialPort * *serialPort);
25759 
25760 };
25761 #    define ISerialPortChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25762 #    define ISerialPortChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25763 #    define ISerialPortChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25764 #    define ISerialPortChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25765 #    define ISerialPortChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25766 #    define ISerialPortChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25767 #    define ISerialPortChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25768 #    define ISerialPortChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25769 #    define ISerialPortChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25770 #    define ISerialPortChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25771 #    define ISerialPortChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25772 #    define ISerialPortChangedEvent_get_SerialPort(p, aSerialPort) ((p)->lpVtbl->GetSerialPort(p, aSerialPort))
25773 #    define ISerialPortChangedEvent_GetSerialPort(p, aSerialPort) ((p)->lpVtbl->GetSerialPort(p, aSerialPort))
25774 #   endif /* VBOX_WITH_GLUE */
25775 
25776 interface ISerialPortChangedEvent
25777 {
25778 #   ifndef VBOX_WITH_GLUE
25779     struct ISerialPortChangedEvent_vtbl *vtbl;
25780 #   else /* VBOX_WITH_GLUE */
25781     CONST_VTBL struct ISerialPortChangedEventVtbl *lpVtbl;
25782 #   endif /* VBOX_WITH_GLUE */
25783 };
25784 /* End of struct ISerialPortChangedEvent declaration */
25785 
25786 
25787 /* Start of struct IParallelPortChangedEvent declaration */
25788 #   define IPARALLELPORTCHANGEDEVENT_IID_STR "813C99FC-9849-4F47-813E-24A75DC85615"
25789 #   define IPARALLELPORTCHANGEDEVENT_IID { \
25790     0x813C99FC, 0x9849, 0x4F47, \
25791     { 0x81, 0x3E, 0x24, 0xA7, 0x5D, 0xC8, 0x56, 0x15 } \
25792 }
25793 /* COM compatibility */
25794 VBOX_EXTERN_CONST(nsIID, IID_IParallelPortChangedEvent);
25795 #   ifndef VBOX_WITH_GLUE
25796 struct IParallelPortChangedEvent_vtbl
25797 {
25798     struct IEvent_vtbl ievent;
25799 
25800     nsresult (*GetParallelPort)(IParallelPortChangedEvent *pThis, IParallelPort * *parallelPort);
25801 
25802 };
25803 #   else /* VBOX_WITH_GLUE */
25804 struct IParallelPortChangedEventVtbl
25805 {
25806     nsresult (*QueryInterface)(IParallelPortChangedEvent *pThis, const nsID *iid, void **resultp);
25807     nsrefcnt (*AddRef)(IParallelPortChangedEvent *pThis);
25808     nsrefcnt (*Release)(IParallelPortChangedEvent *pThis);
25809     nsresult (*GetType)(IParallelPortChangedEvent *pThis, PRUint32 *type);
25810 
25811     nsresult (*GetSource)(IParallelPortChangedEvent *pThis, IEventSource * *source);
25812 
25813     nsresult (*GetWaitable)(IParallelPortChangedEvent *pThis, PRBool *waitable);
25814 
25815     nsresult (*SetProcessed)(IParallelPortChangedEvent *pThis );
25816 
25817     nsresult (*WaitProcessed)(
25818         IParallelPortChangedEvent *pThis,
25819         PRInt32 timeout,
25820         PRBool * result
25821     );
25822 
25823     nsresult (*GetParallelPort)(IParallelPortChangedEvent *pThis, IParallelPort * *parallelPort);
25824 
25825 };
25826 #    define IParallelPortChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25827 #    define IParallelPortChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25828 #    define IParallelPortChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25829 #    define IParallelPortChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25830 #    define IParallelPortChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25831 #    define IParallelPortChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25832 #    define IParallelPortChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25833 #    define IParallelPortChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25834 #    define IParallelPortChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25835 #    define IParallelPortChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25836 #    define IParallelPortChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25837 #    define IParallelPortChangedEvent_get_ParallelPort(p, aParallelPort) ((p)->lpVtbl->GetParallelPort(p, aParallelPort))
25838 #    define IParallelPortChangedEvent_GetParallelPort(p, aParallelPort) ((p)->lpVtbl->GetParallelPort(p, aParallelPort))
25839 #   endif /* VBOX_WITH_GLUE */
25840 
25841 interface IParallelPortChangedEvent
25842 {
25843 #   ifndef VBOX_WITH_GLUE
25844     struct IParallelPortChangedEvent_vtbl *vtbl;
25845 #   else /* VBOX_WITH_GLUE */
25846     CONST_VTBL struct IParallelPortChangedEventVtbl *lpVtbl;
25847 #   endif /* VBOX_WITH_GLUE */
25848 };
25849 /* End of struct IParallelPortChangedEvent declaration */
25850 
25851 
25852 /* Start of struct IStorageControllerChangedEvent declaration */
25853 #   define ISTORAGECONTROLLERCHANGEDEVENT_IID_STR "6BB335CC-1C58-440C-BB7B-3A1397284C7B"
25854 #   define ISTORAGECONTROLLERCHANGEDEVENT_IID { \
25855     0x6BB335CC, 0x1C58, 0x440C, \
25856     { 0xBB, 0x7B, 0x3A, 0x13, 0x97, 0x28, 0x4C, 0x7B } \
25857 }
25858 /* COM compatibility */
25859 VBOX_EXTERN_CONST(nsIID, IID_IStorageControllerChangedEvent);
25860 #   ifndef VBOX_WITH_GLUE
25861 struct IStorageControllerChangedEvent_vtbl
25862 {
25863     struct IEvent_vtbl ievent;
25864 
25865     nsresult (*GetMachinId)(IStorageControllerChangedEvent *pThis, PRUnichar * *machinId);
25866 
25867     nsresult (*GetControllerName)(IStorageControllerChangedEvent *pThis, PRUnichar * *controllerName);
25868 
25869 };
25870 #   else /* VBOX_WITH_GLUE */
25871 struct IStorageControllerChangedEventVtbl
25872 {
25873     nsresult (*QueryInterface)(IStorageControllerChangedEvent *pThis, const nsID *iid, void **resultp);
25874     nsrefcnt (*AddRef)(IStorageControllerChangedEvent *pThis);
25875     nsrefcnt (*Release)(IStorageControllerChangedEvent *pThis);
25876     nsresult (*GetType)(IStorageControllerChangedEvent *pThis, PRUint32 *type);
25877 
25878     nsresult (*GetSource)(IStorageControllerChangedEvent *pThis, IEventSource * *source);
25879 
25880     nsresult (*GetWaitable)(IStorageControllerChangedEvent *pThis, PRBool *waitable);
25881 
25882     nsresult (*SetProcessed)(IStorageControllerChangedEvent *pThis );
25883 
25884     nsresult (*WaitProcessed)(
25885         IStorageControllerChangedEvent *pThis,
25886         PRInt32 timeout,
25887         PRBool * result
25888     );
25889 
25890     nsresult (*GetMachinId)(IStorageControllerChangedEvent *pThis, PRUnichar * *machinId);
25891 
25892     nsresult (*GetControllerName)(IStorageControllerChangedEvent *pThis, PRUnichar * *controllerName);
25893 
25894 };
25895 #    define IStorageControllerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25896 #    define IStorageControllerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25897 #    define IStorageControllerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25898 #    define IStorageControllerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25899 #    define IStorageControllerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25900 #    define IStorageControllerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25901 #    define IStorageControllerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25902 #    define IStorageControllerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25903 #    define IStorageControllerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25904 #    define IStorageControllerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25905 #    define IStorageControllerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25906 #    define IStorageControllerChangedEvent_get_MachinId(p, aMachinId) ((p)->lpVtbl->GetMachinId(p, aMachinId))
25907 #    define IStorageControllerChangedEvent_GetMachinId(p, aMachinId) ((p)->lpVtbl->GetMachinId(p, aMachinId))
25908 #    define IStorageControllerChangedEvent_get_ControllerName(p, aControllerName) ((p)->lpVtbl->GetControllerName(p, aControllerName))
25909 #    define IStorageControllerChangedEvent_GetControllerName(p, aControllerName) ((p)->lpVtbl->GetControllerName(p, aControllerName))
25910 #   endif /* VBOX_WITH_GLUE */
25911 
25912 interface IStorageControllerChangedEvent
25913 {
25914 #   ifndef VBOX_WITH_GLUE
25915     struct IStorageControllerChangedEvent_vtbl *vtbl;
25916 #   else /* VBOX_WITH_GLUE */
25917     CONST_VTBL struct IStorageControllerChangedEventVtbl *lpVtbl;
25918 #   endif /* VBOX_WITH_GLUE */
25919 };
25920 /* End of struct IStorageControllerChangedEvent declaration */
25921 
25922 
25923 /* Start of struct IMediumChangedEvent declaration */
25924 #   define IMEDIUMCHANGEDEVENT_IID_STR "0FE2DA40-5637-472A-9736-72019EABD7DE"
25925 #   define IMEDIUMCHANGEDEVENT_IID { \
25926     0x0FE2DA40, 0x5637, 0x472A, \
25927     { 0x97, 0x36, 0x72, 0x01, 0x9E, 0xAB, 0xD7, 0xDE } \
25928 }
25929 /* COM compatibility */
25930 VBOX_EXTERN_CONST(nsIID, IID_IMediumChangedEvent);
25931 #   ifndef VBOX_WITH_GLUE
25932 struct IMediumChangedEvent_vtbl
25933 {
25934     struct IEvent_vtbl ievent;
25935 
25936     nsresult (*GetMediumAttachment)(IMediumChangedEvent *pThis, IMediumAttachment * *mediumAttachment);
25937 
25938 };
25939 #   else /* VBOX_WITH_GLUE */
25940 struct IMediumChangedEventVtbl
25941 {
25942     nsresult (*QueryInterface)(IMediumChangedEvent *pThis, const nsID *iid, void **resultp);
25943     nsrefcnt (*AddRef)(IMediumChangedEvent *pThis);
25944     nsrefcnt (*Release)(IMediumChangedEvent *pThis);
25945     nsresult (*GetType)(IMediumChangedEvent *pThis, PRUint32 *type);
25946 
25947     nsresult (*GetSource)(IMediumChangedEvent *pThis, IEventSource * *source);
25948 
25949     nsresult (*GetWaitable)(IMediumChangedEvent *pThis, PRBool *waitable);
25950 
25951     nsresult (*SetProcessed)(IMediumChangedEvent *pThis );
25952 
25953     nsresult (*WaitProcessed)(
25954         IMediumChangedEvent *pThis,
25955         PRInt32 timeout,
25956         PRBool * result
25957     );
25958 
25959     nsresult (*GetMediumAttachment)(IMediumChangedEvent *pThis, IMediumAttachment * *mediumAttachment);
25960 
25961 };
25962 #    define IMediumChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
25963 #    define IMediumChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
25964 #    define IMediumChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
25965 #    define IMediumChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
25966 #    define IMediumChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
25967 #    define IMediumChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25968 #    define IMediumChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
25969 #    define IMediumChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25970 #    define IMediumChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
25971 #    define IMediumChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
25972 #    define IMediumChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
25973 #    define IMediumChangedEvent_get_MediumAttachment(p, aMediumAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aMediumAttachment))
25974 #    define IMediumChangedEvent_GetMediumAttachment(p, aMediumAttachment) ((p)->lpVtbl->GetMediumAttachment(p, aMediumAttachment))
25975 #   endif /* VBOX_WITH_GLUE */
25976 
25977 interface IMediumChangedEvent
25978 {
25979 #   ifndef VBOX_WITH_GLUE
25980     struct IMediumChangedEvent_vtbl *vtbl;
25981 #   else /* VBOX_WITH_GLUE */
25982     CONST_VTBL struct IMediumChangedEventVtbl *lpVtbl;
25983 #   endif /* VBOX_WITH_GLUE */
25984 };
25985 /* End of struct IMediumChangedEvent declaration */
25986 
25987 
25988 /* Start of struct IClipboardModeChangedEvent declaration */
25989 #   define ICLIPBOARDMODECHANGEDEVENT_IID_STR "cac21692-7997-4595-a731-3a509db604e5"
25990 #   define ICLIPBOARDMODECHANGEDEVENT_IID { \
25991     0xcac21692, 0x7997, 0x4595, \
25992     { 0xa7, 0x31, 0x3a, 0x50, 0x9d, 0xb6, 0x04, 0xe5 } \
25993 }
25994 /* COM compatibility */
25995 VBOX_EXTERN_CONST(nsIID, IID_IClipboardModeChangedEvent);
25996 #   ifndef VBOX_WITH_GLUE
25997 struct IClipboardModeChangedEvent_vtbl
25998 {
25999     struct IEvent_vtbl ievent;
26000 
26001     nsresult (*GetClipboardMode)(IClipboardModeChangedEvent *pThis, PRUint32 *clipboardMode);
26002 
26003 };
26004 #   else /* VBOX_WITH_GLUE */
26005 struct IClipboardModeChangedEventVtbl
26006 {
26007     nsresult (*QueryInterface)(IClipboardModeChangedEvent *pThis, const nsID *iid, void **resultp);
26008     nsrefcnt (*AddRef)(IClipboardModeChangedEvent *pThis);
26009     nsrefcnt (*Release)(IClipboardModeChangedEvent *pThis);
26010     nsresult (*GetType)(IClipboardModeChangedEvent *pThis, PRUint32 *type);
26011 
26012     nsresult (*GetSource)(IClipboardModeChangedEvent *pThis, IEventSource * *source);
26013 
26014     nsresult (*GetWaitable)(IClipboardModeChangedEvent *pThis, PRBool *waitable);
26015 
26016     nsresult (*SetProcessed)(IClipboardModeChangedEvent *pThis );
26017 
26018     nsresult (*WaitProcessed)(
26019         IClipboardModeChangedEvent *pThis,
26020         PRInt32 timeout,
26021         PRBool * result
26022     );
26023 
26024     nsresult (*GetClipboardMode)(IClipboardModeChangedEvent *pThis, PRUint32 *clipboardMode);
26025 
26026 };
26027 #    define IClipboardModeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26028 #    define IClipboardModeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26029 #    define IClipboardModeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26030 #    define IClipboardModeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26031 #    define IClipboardModeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26032 #    define IClipboardModeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26033 #    define IClipboardModeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26034 #    define IClipboardModeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26035 #    define IClipboardModeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26036 #    define IClipboardModeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26037 #    define IClipboardModeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26038 #    define IClipboardModeChangedEvent_get_ClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
26039 #    define IClipboardModeChangedEvent_GetClipboardMode(p, aClipboardMode) ((p)->lpVtbl->GetClipboardMode(p, aClipboardMode))
26040 #   endif /* VBOX_WITH_GLUE */
26041 
26042 interface IClipboardModeChangedEvent
26043 {
26044 #   ifndef VBOX_WITH_GLUE
26045     struct IClipboardModeChangedEvent_vtbl *vtbl;
26046 #   else /* VBOX_WITH_GLUE */
26047     CONST_VTBL struct IClipboardModeChangedEventVtbl *lpVtbl;
26048 #   endif /* VBOX_WITH_GLUE */
26049 };
26050 /* End of struct IClipboardModeChangedEvent declaration */
26051 
26052 
26053 /* Start of struct IClipboardFileTransferModeChangedEvent declaration */
26054 #   define ICLIPBOARDFILETRANSFERMODECHANGEDEVENT_IID_STR "00391758-00B1-4E9D-0000-11FA00F9D583"
26055 #   define ICLIPBOARDFILETRANSFERMODECHANGEDEVENT_IID { \
26056     0x00391758, 0x00B1, 0x4E9D, \
26057     { 0x00, 0x00, 0x11, 0xFA, 0x00, 0xF9, 0xD5, 0x83 } \
26058 }
26059 /* COM compatibility */
26060 VBOX_EXTERN_CONST(nsIID, IID_IClipboardFileTransferModeChangedEvent);
26061 #   ifndef VBOX_WITH_GLUE
26062 struct IClipboardFileTransferModeChangedEvent_vtbl
26063 {
26064     struct IEvent_vtbl ievent;
26065 
26066     nsresult (*GetEnabled)(IClipboardFileTransferModeChangedEvent *pThis, PRBool *enabled);
26067 
26068 };
26069 #   else /* VBOX_WITH_GLUE */
26070 struct IClipboardFileTransferModeChangedEventVtbl
26071 {
26072     nsresult (*QueryInterface)(IClipboardFileTransferModeChangedEvent *pThis, const nsID *iid, void **resultp);
26073     nsrefcnt (*AddRef)(IClipboardFileTransferModeChangedEvent *pThis);
26074     nsrefcnt (*Release)(IClipboardFileTransferModeChangedEvent *pThis);
26075     nsresult (*GetType)(IClipboardFileTransferModeChangedEvent *pThis, PRUint32 *type);
26076 
26077     nsresult (*GetSource)(IClipboardFileTransferModeChangedEvent *pThis, IEventSource * *source);
26078 
26079     nsresult (*GetWaitable)(IClipboardFileTransferModeChangedEvent *pThis, PRBool *waitable);
26080 
26081     nsresult (*SetProcessed)(IClipboardFileTransferModeChangedEvent *pThis );
26082 
26083     nsresult (*WaitProcessed)(
26084         IClipboardFileTransferModeChangedEvent *pThis,
26085         PRInt32 timeout,
26086         PRBool * result
26087     );
26088 
26089     nsresult (*GetEnabled)(IClipboardFileTransferModeChangedEvent *pThis, PRBool *enabled);
26090 
26091 };
26092 #    define IClipboardFileTransferModeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26093 #    define IClipboardFileTransferModeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26094 #    define IClipboardFileTransferModeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26095 #    define IClipboardFileTransferModeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26096 #    define IClipboardFileTransferModeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26097 #    define IClipboardFileTransferModeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26098 #    define IClipboardFileTransferModeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26099 #    define IClipboardFileTransferModeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26100 #    define IClipboardFileTransferModeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26101 #    define IClipboardFileTransferModeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26102 #    define IClipboardFileTransferModeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26103 #    define IClipboardFileTransferModeChangedEvent_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
26104 #    define IClipboardFileTransferModeChangedEvent_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
26105 #   endif /* VBOX_WITH_GLUE */
26106 
26107 interface IClipboardFileTransferModeChangedEvent
26108 {
26109 #   ifndef VBOX_WITH_GLUE
26110     struct IClipboardFileTransferModeChangedEvent_vtbl *vtbl;
26111 #   else /* VBOX_WITH_GLUE */
26112     CONST_VTBL struct IClipboardFileTransferModeChangedEventVtbl *lpVtbl;
26113 #   endif /* VBOX_WITH_GLUE */
26114 };
26115 /* End of struct IClipboardFileTransferModeChangedEvent declaration */
26116 
26117 
26118 /* Start of struct IDnDModeChangedEvent declaration */
26119 #   define IDNDMODECHANGEDEVENT_IID_STR "b55cf856-1f8b-4692-abb4-462429fae5e9"
26120 #   define IDNDMODECHANGEDEVENT_IID { \
26121     0xb55cf856, 0x1f8b, 0x4692, \
26122     { 0xab, 0xb4, 0x46, 0x24, 0x29, 0xfa, 0xe5, 0xe9 } \
26123 }
26124 /* COM compatibility */
26125 VBOX_EXTERN_CONST(nsIID, IID_IDnDModeChangedEvent);
26126 #   ifndef VBOX_WITH_GLUE
26127 struct IDnDModeChangedEvent_vtbl
26128 {
26129     struct IEvent_vtbl ievent;
26130 
26131     nsresult (*GetDndMode)(IDnDModeChangedEvent *pThis, PRUint32 *dndMode);
26132 
26133 };
26134 #   else /* VBOX_WITH_GLUE */
26135 struct IDnDModeChangedEventVtbl
26136 {
26137     nsresult (*QueryInterface)(IDnDModeChangedEvent *pThis, const nsID *iid, void **resultp);
26138     nsrefcnt (*AddRef)(IDnDModeChangedEvent *pThis);
26139     nsrefcnt (*Release)(IDnDModeChangedEvent *pThis);
26140     nsresult (*GetType)(IDnDModeChangedEvent *pThis, PRUint32 *type);
26141 
26142     nsresult (*GetSource)(IDnDModeChangedEvent *pThis, IEventSource * *source);
26143 
26144     nsresult (*GetWaitable)(IDnDModeChangedEvent *pThis, PRBool *waitable);
26145 
26146     nsresult (*SetProcessed)(IDnDModeChangedEvent *pThis );
26147 
26148     nsresult (*WaitProcessed)(
26149         IDnDModeChangedEvent *pThis,
26150         PRInt32 timeout,
26151         PRBool * result
26152     );
26153 
26154     nsresult (*GetDndMode)(IDnDModeChangedEvent *pThis, PRUint32 *dndMode);
26155 
26156 };
26157 #    define IDnDModeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26158 #    define IDnDModeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26159 #    define IDnDModeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26160 #    define IDnDModeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26161 #    define IDnDModeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26162 #    define IDnDModeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26163 #    define IDnDModeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26164 #    define IDnDModeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26165 #    define IDnDModeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26166 #    define IDnDModeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26167 #    define IDnDModeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26168 #    define IDnDModeChangedEvent_get_DndMode(p, aDndMode) ((p)->lpVtbl->GetDndMode(p, aDndMode))
26169 #    define IDnDModeChangedEvent_GetDndMode(p, aDndMode) ((p)->lpVtbl->GetDndMode(p, aDndMode))
26170 #   endif /* VBOX_WITH_GLUE */
26171 
26172 interface IDnDModeChangedEvent
26173 {
26174 #   ifndef VBOX_WITH_GLUE
26175     struct IDnDModeChangedEvent_vtbl *vtbl;
26176 #   else /* VBOX_WITH_GLUE */
26177     CONST_VTBL struct IDnDModeChangedEventVtbl *lpVtbl;
26178 #   endif /* VBOX_WITH_GLUE */
26179 };
26180 /* End of struct IDnDModeChangedEvent declaration */
26181 
26182 
26183 /* Start of struct ICPUChangedEvent declaration */
26184 #   define ICPUCHANGEDEVENT_IID_STR "4da2dec7-71b2-4817-9a64-4ed12c17388e"
26185 #   define ICPUCHANGEDEVENT_IID { \
26186     0x4da2dec7, 0x71b2, 0x4817, \
26187     { 0x9a, 0x64, 0x4e, 0xd1, 0x2c, 0x17, 0x38, 0x8e } \
26188 }
26189 /* COM compatibility */
26190 VBOX_EXTERN_CONST(nsIID, IID_ICPUChangedEvent);
26191 #   ifndef VBOX_WITH_GLUE
26192 struct ICPUChangedEvent_vtbl
26193 {
26194     struct IEvent_vtbl ievent;
26195 
26196     nsresult (*GetCPU)(ICPUChangedEvent *pThis, PRUint32 *CPU);
26197 
26198     nsresult (*GetAdd)(ICPUChangedEvent *pThis, PRBool *add);
26199 
26200 };
26201 #   else /* VBOX_WITH_GLUE */
26202 struct ICPUChangedEventVtbl
26203 {
26204     nsresult (*QueryInterface)(ICPUChangedEvent *pThis, const nsID *iid, void **resultp);
26205     nsrefcnt (*AddRef)(ICPUChangedEvent *pThis);
26206     nsrefcnt (*Release)(ICPUChangedEvent *pThis);
26207     nsresult (*GetType)(ICPUChangedEvent *pThis, PRUint32 *type);
26208 
26209     nsresult (*GetSource)(ICPUChangedEvent *pThis, IEventSource * *source);
26210 
26211     nsresult (*GetWaitable)(ICPUChangedEvent *pThis, PRBool *waitable);
26212 
26213     nsresult (*SetProcessed)(ICPUChangedEvent *pThis );
26214 
26215     nsresult (*WaitProcessed)(
26216         ICPUChangedEvent *pThis,
26217         PRInt32 timeout,
26218         PRBool * result
26219     );
26220 
26221     nsresult (*GetCPU)(ICPUChangedEvent *pThis, PRUint32 *CPU);
26222 
26223     nsresult (*GetAdd)(ICPUChangedEvent *pThis, PRBool *add);
26224 
26225 };
26226 #    define ICPUChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26227 #    define ICPUChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26228 #    define ICPUChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26229 #    define ICPUChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26230 #    define ICPUChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26231 #    define ICPUChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26232 #    define ICPUChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26233 #    define ICPUChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26234 #    define ICPUChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26235 #    define ICPUChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26236 #    define ICPUChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26237 #    define ICPUChangedEvent_get_CPU(p, aCPU) ((p)->lpVtbl->GetCPU(p, aCPU))
26238 #    define ICPUChangedEvent_GetCPU(p, aCPU) ((p)->lpVtbl->GetCPU(p, aCPU))
26239 #    define ICPUChangedEvent_get_Add(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
26240 #    define ICPUChangedEvent_GetAdd(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
26241 #   endif /* VBOX_WITH_GLUE */
26242 
26243 interface ICPUChangedEvent
26244 {
26245 #   ifndef VBOX_WITH_GLUE
26246     struct ICPUChangedEvent_vtbl *vtbl;
26247 #   else /* VBOX_WITH_GLUE */
26248     CONST_VTBL struct ICPUChangedEventVtbl *lpVtbl;
26249 #   endif /* VBOX_WITH_GLUE */
26250 };
26251 /* End of struct ICPUChangedEvent declaration */
26252 
26253 
26254 /* Start of struct ICPUExecutionCapChangedEvent declaration */
26255 #   define ICPUEXECUTIONCAPCHANGEDEVENT_IID_STR "dfa7e4f5-b4a4-44ce-85a8-127ac5eb59dc"
26256 #   define ICPUEXECUTIONCAPCHANGEDEVENT_IID { \
26257     0xdfa7e4f5, 0xb4a4, 0x44ce, \
26258     { 0x85, 0xa8, 0x12, 0x7a, 0xc5, 0xeb, 0x59, 0xdc } \
26259 }
26260 /* COM compatibility */
26261 VBOX_EXTERN_CONST(nsIID, IID_ICPUExecutionCapChangedEvent);
26262 #   ifndef VBOX_WITH_GLUE
26263 struct ICPUExecutionCapChangedEvent_vtbl
26264 {
26265     struct IEvent_vtbl ievent;
26266 
26267     nsresult (*GetExecutionCap)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *executionCap);
26268 
26269 };
26270 #   else /* VBOX_WITH_GLUE */
26271 struct ICPUExecutionCapChangedEventVtbl
26272 {
26273     nsresult (*QueryInterface)(ICPUExecutionCapChangedEvent *pThis, const nsID *iid, void **resultp);
26274     nsrefcnt (*AddRef)(ICPUExecutionCapChangedEvent *pThis);
26275     nsrefcnt (*Release)(ICPUExecutionCapChangedEvent *pThis);
26276     nsresult (*GetType)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *type);
26277 
26278     nsresult (*GetSource)(ICPUExecutionCapChangedEvent *pThis, IEventSource * *source);
26279 
26280     nsresult (*GetWaitable)(ICPUExecutionCapChangedEvent *pThis, PRBool *waitable);
26281 
26282     nsresult (*SetProcessed)(ICPUExecutionCapChangedEvent *pThis );
26283 
26284     nsresult (*WaitProcessed)(
26285         ICPUExecutionCapChangedEvent *pThis,
26286         PRInt32 timeout,
26287         PRBool * result
26288     );
26289 
26290     nsresult (*GetExecutionCap)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *executionCap);
26291 
26292 };
26293 #    define ICPUExecutionCapChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26294 #    define ICPUExecutionCapChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26295 #    define ICPUExecutionCapChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26296 #    define ICPUExecutionCapChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26297 #    define ICPUExecutionCapChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26298 #    define ICPUExecutionCapChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26299 #    define ICPUExecutionCapChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26300 #    define ICPUExecutionCapChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26301 #    define ICPUExecutionCapChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26302 #    define ICPUExecutionCapChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26303 #    define ICPUExecutionCapChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26304 #    define ICPUExecutionCapChangedEvent_get_ExecutionCap(p, aExecutionCap) ((p)->lpVtbl->GetExecutionCap(p, aExecutionCap))
26305 #    define ICPUExecutionCapChangedEvent_GetExecutionCap(p, aExecutionCap) ((p)->lpVtbl->GetExecutionCap(p, aExecutionCap))
26306 #   endif /* VBOX_WITH_GLUE */
26307 
26308 interface ICPUExecutionCapChangedEvent
26309 {
26310 #   ifndef VBOX_WITH_GLUE
26311     struct ICPUExecutionCapChangedEvent_vtbl *vtbl;
26312 #   else /* VBOX_WITH_GLUE */
26313     CONST_VTBL struct ICPUExecutionCapChangedEventVtbl *lpVtbl;
26314 #   endif /* VBOX_WITH_GLUE */
26315 };
26316 /* End of struct ICPUExecutionCapChangedEvent declaration */
26317 
26318 
26319 /* Start of struct IGuestKeyboardEvent declaration */
26320 #   define IGUESTKEYBOARDEVENT_IID_STR "88394258-7006-40d4-b339-472ee3801844"
26321 #   define IGUESTKEYBOARDEVENT_IID { \
26322     0x88394258, 0x7006, 0x40d4, \
26323     { 0xb3, 0x39, 0x47, 0x2e, 0xe3, 0x80, 0x18, 0x44 } \
26324 }
26325 /* COM compatibility */
26326 VBOX_EXTERN_CONST(nsIID, IID_IGuestKeyboardEvent);
26327 #   ifndef VBOX_WITH_GLUE
26328 struct IGuestKeyboardEvent_vtbl
26329 {
26330     struct IEvent_vtbl ievent;
26331 
26332     nsresult (*GetScancodes)(IGuestKeyboardEvent *pThis, PRUint32 *scancodesSize, PRInt32 **scancodes);
26333 
26334 };
26335 #   else /* VBOX_WITH_GLUE */
26336 struct IGuestKeyboardEventVtbl
26337 {
26338     nsresult (*QueryInterface)(IGuestKeyboardEvent *pThis, const nsID *iid, void **resultp);
26339     nsrefcnt (*AddRef)(IGuestKeyboardEvent *pThis);
26340     nsrefcnt (*Release)(IGuestKeyboardEvent *pThis);
26341     nsresult (*GetType)(IGuestKeyboardEvent *pThis, PRUint32 *type);
26342 
26343     nsresult (*GetSource)(IGuestKeyboardEvent *pThis, IEventSource * *source);
26344 
26345     nsresult (*GetWaitable)(IGuestKeyboardEvent *pThis, PRBool *waitable);
26346 
26347     nsresult (*SetProcessed)(IGuestKeyboardEvent *pThis );
26348 
26349     nsresult (*WaitProcessed)(
26350         IGuestKeyboardEvent *pThis,
26351         PRInt32 timeout,
26352         PRBool * result
26353     );
26354 
26355     nsresult (*GetScancodes)(IGuestKeyboardEvent *pThis, PRUint32 *scancodesSize, PRInt32 **scancodes);
26356 
26357 };
26358 #    define IGuestKeyboardEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26359 #    define IGuestKeyboardEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26360 #    define IGuestKeyboardEvent_Release(p) ((p)->lpVtbl->Release(p))
26361 #    define IGuestKeyboardEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26362 #    define IGuestKeyboardEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26363 #    define IGuestKeyboardEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26364 #    define IGuestKeyboardEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26365 #    define IGuestKeyboardEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26366 #    define IGuestKeyboardEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26367 #    define IGuestKeyboardEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26368 #    define IGuestKeyboardEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26369 #    define IGuestKeyboardEvent_get_Scancodes(p, aScancodes) ((p)->lpVtbl->GetScancodes(p, aScancodes))
26370 #    define IGuestKeyboardEvent_GetScancodes(p, aScancodes) ((p)->lpVtbl->GetScancodes(p, aScancodes))
26371 #   endif /* VBOX_WITH_GLUE */
26372 
26373 interface IGuestKeyboardEvent
26374 {
26375 #   ifndef VBOX_WITH_GLUE
26376     struct IGuestKeyboardEvent_vtbl *vtbl;
26377 #   else /* VBOX_WITH_GLUE */
26378     CONST_VTBL struct IGuestKeyboardEventVtbl *lpVtbl;
26379 #   endif /* VBOX_WITH_GLUE */
26380 };
26381 /* End of struct IGuestKeyboardEvent declaration */
26382 
26383 
26384 /* Start of struct IGuestMouseEvent declaration */
26385 #   define IGUESTMOUSEEVENT_IID_STR "179f8647-319c-4e7e-8150-c5837bd265f6"
26386 #   define IGUESTMOUSEEVENT_IID { \
26387     0x179f8647, 0x319c, 0x4e7e, \
26388     { 0x81, 0x50, 0xc5, 0x83, 0x7b, 0xd2, 0x65, 0xf6 } \
26389 }
26390 /* COM compatibility */
26391 VBOX_EXTERN_CONST(nsIID, IID_IGuestMouseEvent);
26392 #   ifndef VBOX_WITH_GLUE
26393 struct IGuestMouseEvent_vtbl
26394 {
26395     struct IReusableEvent_vtbl ireusableevent;
26396 
26397     nsresult (*GetMode)(IGuestMouseEvent *pThis, PRUint32 *mode);
26398 
26399     nsresult (*GetX)(IGuestMouseEvent *pThis, PRInt32 *x);
26400 
26401     nsresult (*GetY)(IGuestMouseEvent *pThis, PRInt32 *y);
26402 
26403     nsresult (*GetZ)(IGuestMouseEvent *pThis, PRInt32 *z);
26404 
26405     nsresult (*GetW)(IGuestMouseEvent *pThis, PRInt32 *w);
26406 
26407     nsresult (*GetButtons)(IGuestMouseEvent *pThis, PRInt32 *buttons);
26408 
26409 };
26410 #   else /* VBOX_WITH_GLUE */
26411 struct IGuestMouseEventVtbl
26412 {
26413     nsresult (*QueryInterface)(IGuestMouseEvent *pThis, const nsID *iid, void **resultp);
26414     nsrefcnt (*AddRef)(IGuestMouseEvent *pThis);
26415     nsrefcnt (*Release)(IGuestMouseEvent *pThis);
26416     nsresult (*GetType)(IGuestMouseEvent *pThis, PRUint32 *type);
26417 
26418     nsresult (*GetSource)(IGuestMouseEvent *pThis, IEventSource * *source);
26419 
26420     nsresult (*GetWaitable)(IGuestMouseEvent *pThis, PRBool *waitable);
26421 
26422     nsresult (*SetProcessed)(IGuestMouseEvent *pThis );
26423 
26424     nsresult (*WaitProcessed)(
26425         IGuestMouseEvent *pThis,
26426         PRInt32 timeout,
26427         PRBool * result
26428     );
26429 
26430     nsresult (*GetGeneration)(IGuestMouseEvent *pThis, PRUint32 *generation);
26431 
26432     nsresult (*Reuse)(IGuestMouseEvent *pThis );
26433 
26434     nsresult (*GetMode)(IGuestMouseEvent *pThis, PRUint32 *mode);
26435 
26436     nsresult (*GetX)(IGuestMouseEvent *pThis, PRInt32 *x);
26437 
26438     nsresult (*GetY)(IGuestMouseEvent *pThis, PRInt32 *y);
26439 
26440     nsresult (*GetZ)(IGuestMouseEvent *pThis, PRInt32 *z);
26441 
26442     nsresult (*GetW)(IGuestMouseEvent *pThis, PRInt32 *w);
26443 
26444     nsresult (*GetButtons)(IGuestMouseEvent *pThis, PRInt32 *buttons);
26445 
26446 };
26447 #    define IGuestMouseEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26448 #    define IGuestMouseEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26449 #    define IGuestMouseEvent_Release(p) ((p)->lpVtbl->Release(p))
26450 #    define IGuestMouseEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26451 #    define IGuestMouseEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26452 #    define IGuestMouseEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26453 #    define IGuestMouseEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26454 #    define IGuestMouseEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26455 #    define IGuestMouseEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26456 #    define IGuestMouseEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26457 #    define IGuestMouseEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26458 #    define IGuestMouseEvent_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
26459 #    define IGuestMouseEvent_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
26460 #    define IGuestMouseEvent_Reuse(p) ((p)->lpVtbl->Reuse(p))
26461 #    define IGuestMouseEvent_get_Mode(p, aMode) ((p)->lpVtbl->GetMode(p, aMode))
26462 #    define IGuestMouseEvent_GetMode(p, aMode) ((p)->lpVtbl->GetMode(p, aMode))
26463 #    define IGuestMouseEvent_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
26464 #    define IGuestMouseEvent_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
26465 #    define IGuestMouseEvent_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
26466 #    define IGuestMouseEvent_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
26467 #    define IGuestMouseEvent_get_Z(p, aZ) ((p)->lpVtbl->GetZ(p, aZ))
26468 #    define IGuestMouseEvent_GetZ(p, aZ) ((p)->lpVtbl->GetZ(p, aZ))
26469 #    define IGuestMouseEvent_get_W(p, aW) ((p)->lpVtbl->GetW(p, aW))
26470 #    define IGuestMouseEvent_GetW(p, aW) ((p)->lpVtbl->GetW(p, aW))
26471 #    define IGuestMouseEvent_get_Buttons(p, aButtons) ((p)->lpVtbl->GetButtons(p, aButtons))
26472 #    define IGuestMouseEvent_GetButtons(p, aButtons) ((p)->lpVtbl->GetButtons(p, aButtons))
26473 #   endif /* VBOX_WITH_GLUE */
26474 
26475 interface IGuestMouseEvent
26476 {
26477 #   ifndef VBOX_WITH_GLUE
26478     struct IGuestMouseEvent_vtbl *vtbl;
26479 #   else /* VBOX_WITH_GLUE */
26480     CONST_VTBL struct IGuestMouseEventVtbl *lpVtbl;
26481 #   endif /* VBOX_WITH_GLUE */
26482 };
26483 /* End of struct IGuestMouseEvent declaration */
26484 
26485 
26486 /* Start of struct IGuestMultiTouchEvent declaration */
26487 #   define IGUESTMULTITOUCHEVENT_IID_STR "be8a0eb5-f4f4-4dd0-9d30-c89b873247ec"
26488 #   define IGUESTMULTITOUCHEVENT_IID { \
26489     0xbe8a0eb5, 0xf4f4, 0x4dd0, \
26490     { 0x9d, 0x30, 0xc8, 0x9b, 0x87, 0x32, 0x47, 0xec } \
26491 }
26492 /* COM compatibility */
26493 VBOX_EXTERN_CONST(nsIID, IID_IGuestMultiTouchEvent);
26494 #   ifndef VBOX_WITH_GLUE
26495 struct IGuestMultiTouchEvent_vtbl
26496 {
26497     struct IEvent_vtbl ievent;
26498 
26499     nsresult (*GetContactCount)(IGuestMultiTouchEvent *pThis, PRInt32 *contactCount);
26500 
26501     nsresult (*GetXPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *xPositionsSize, PRInt16 **xPositions);
26502 
26503     nsresult (*GetYPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *yPositionsSize, PRInt16 **yPositions);
26504 
26505     nsresult (*GetContactIds)(IGuestMultiTouchEvent *pThis, PRUint32 *contactIdsSize, PRUint16 **contactIds);
26506 
26507     nsresult (*GetContactFlags)(IGuestMultiTouchEvent *pThis, PRUint32 *contactFlagsSize, PRUint16 **contactFlags);
26508 
26509     nsresult (*GetScanTime)(IGuestMultiTouchEvent *pThis, PRUint32 *scanTime);
26510 
26511 };
26512 #   else /* VBOX_WITH_GLUE */
26513 struct IGuestMultiTouchEventVtbl
26514 {
26515     nsresult (*QueryInterface)(IGuestMultiTouchEvent *pThis, const nsID *iid, void **resultp);
26516     nsrefcnt (*AddRef)(IGuestMultiTouchEvent *pThis);
26517     nsrefcnt (*Release)(IGuestMultiTouchEvent *pThis);
26518     nsresult (*GetType)(IGuestMultiTouchEvent *pThis, PRUint32 *type);
26519 
26520     nsresult (*GetSource)(IGuestMultiTouchEvent *pThis, IEventSource * *source);
26521 
26522     nsresult (*GetWaitable)(IGuestMultiTouchEvent *pThis, PRBool *waitable);
26523 
26524     nsresult (*SetProcessed)(IGuestMultiTouchEvent *pThis );
26525 
26526     nsresult (*WaitProcessed)(
26527         IGuestMultiTouchEvent *pThis,
26528         PRInt32 timeout,
26529         PRBool * result
26530     );
26531 
26532     nsresult (*GetContactCount)(IGuestMultiTouchEvent *pThis, PRInt32 *contactCount);
26533 
26534     nsresult (*GetXPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *xPositionsSize, PRInt16 **xPositions);
26535 
26536     nsresult (*GetYPositions)(IGuestMultiTouchEvent *pThis, PRUint32 *yPositionsSize, PRInt16 **yPositions);
26537 
26538     nsresult (*GetContactIds)(IGuestMultiTouchEvent *pThis, PRUint32 *contactIdsSize, PRUint16 **contactIds);
26539 
26540     nsresult (*GetContactFlags)(IGuestMultiTouchEvent *pThis, PRUint32 *contactFlagsSize, PRUint16 **contactFlags);
26541 
26542     nsresult (*GetScanTime)(IGuestMultiTouchEvent *pThis, PRUint32 *scanTime);
26543 
26544 };
26545 #    define IGuestMultiTouchEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26546 #    define IGuestMultiTouchEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26547 #    define IGuestMultiTouchEvent_Release(p) ((p)->lpVtbl->Release(p))
26548 #    define IGuestMultiTouchEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26549 #    define IGuestMultiTouchEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26550 #    define IGuestMultiTouchEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26551 #    define IGuestMultiTouchEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26552 #    define IGuestMultiTouchEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26553 #    define IGuestMultiTouchEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26554 #    define IGuestMultiTouchEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26555 #    define IGuestMultiTouchEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26556 #    define IGuestMultiTouchEvent_get_ContactCount(p, aContactCount) ((p)->lpVtbl->GetContactCount(p, aContactCount))
26557 #    define IGuestMultiTouchEvent_GetContactCount(p, aContactCount) ((p)->lpVtbl->GetContactCount(p, aContactCount))
26558 #    define IGuestMultiTouchEvent_get_XPositions(p, aXPositions) ((p)->lpVtbl->GetXPositions(p, aXPositions))
26559 #    define IGuestMultiTouchEvent_GetXPositions(p, aXPositions) ((p)->lpVtbl->GetXPositions(p, aXPositions))
26560 #    define IGuestMultiTouchEvent_get_YPositions(p, aYPositions) ((p)->lpVtbl->GetYPositions(p, aYPositions))
26561 #    define IGuestMultiTouchEvent_GetYPositions(p, aYPositions) ((p)->lpVtbl->GetYPositions(p, aYPositions))
26562 #    define IGuestMultiTouchEvent_get_ContactIds(p, aContactIds) ((p)->lpVtbl->GetContactIds(p, aContactIds))
26563 #    define IGuestMultiTouchEvent_GetContactIds(p, aContactIds) ((p)->lpVtbl->GetContactIds(p, aContactIds))
26564 #    define IGuestMultiTouchEvent_get_ContactFlags(p, aContactFlags) ((p)->lpVtbl->GetContactFlags(p, aContactFlags))
26565 #    define IGuestMultiTouchEvent_GetContactFlags(p, aContactFlags) ((p)->lpVtbl->GetContactFlags(p, aContactFlags))
26566 #    define IGuestMultiTouchEvent_get_ScanTime(p, aScanTime) ((p)->lpVtbl->GetScanTime(p, aScanTime))
26567 #    define IGuestMultiTouchEvent_GetScanTime(p, aScanTime) ((p)->lpVtbl->GetScanTime(p, aScanTime))
26568 #   endif /* VBOX_WITH_GLUE */
26569 
26570 interface IGuestMultiTouchEvent
26571 {
26572 #   ifndef VBOX_WITH_GLUE
26573     struct IGuestMultiTouchEvent_vtbl *vtbl;
26574 #   else /* VBOX_WITH_GLUE */
26575     CONST_VTBL struct IGuestMultiTouchEventVtbl *lpVtbl;
26576 #   endif /* VBOX_WITH_GLUE */
26577 };
26578 /* End of struct IGuestMultiTouchEvent declaration */
26579 
26580 
26581 /* Start of struct IGuestSessionEvent declaration */
26582 #   define IGUESTSESSIONEVENT_IID_STR "b9acd33f-647d-45ac-8fe9-f49b3183ba37"
26583 #   define IGUESTSESSIONEVENT_IID { \
26584     0xb9acd33f, 0x647d, 0x45ac, \
26585     { 0x8f, 0xe9, 0xf4, 0x9b, 0x31, 0x83, 0xba, 0x37 } \
26586 }
26587 /* COM compatibility */
26588 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionEvent);
26589 #   ifndef VBOX_WITH_GLUE
26590 struct IGuestSessionEvent_vtbl
26591 {
26592     struct IEvent_vtbl ievent;
26593 
26594     nsresult (*GetSession)(IGuestSessionEvent *pThis, IGuestSession * *session);
26595 
26596 };
26597 #   else /* VBOX_WITH_GLUE */
26598 struct IGuestSessionEventVtbl
26599 {
26600     nsresult (*QueryInterface)(IGuestSessionEvent *pThis, const nsID *iid, void **resultp);
26601     nsrefcnt (*AddRef)(IGuestSessionEvent *pThis);
26602     nsrefcnt (*Release)(IGuestSessionEvent *pThis);
26603     nsresult (*GetType)(IGuestSessionEvent *pThis, PRUint32 *type);
26604 
26605     nsresult (*GetSource)(IGuestSessionEvent *pThis, IEventSource * *source);
26606 
26607     nsresult (*GetWaitable)(IGuestSessionEvent *pThis, PRBool *waitable);
26608 
26609     nsresult (*SetProcessed)(IGuestSessionEvent *pThis );
26610 
26611     nsresult (*WaitProcessed)(
26612         IGuestSessionEvent *pThis,
26613         PRInt32 timeout,
26614         PRBool * result
26615     );
26616 
26617     nsresult (*GetSession)(IGuestSessionEvent *pThis, IGuestSession * *session);
26618 
26619 };
26620 #    define IGuestSessionEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26621 #    define IGuestSessionEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26622 #    define IGuestSessionEvent_Release(p) ((p)->lpVtbl->Release(p))
26623 #    define IGuestSessionEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26624 #    define IGuestSessionEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26625 #    define IGuestSessionEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26626 #    define IGuestSessionEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26627 #    define IGuestSessionEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26628 #    define IGuestSessionEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26629 #    define IGuestSessionEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26630 #    define IGuestSessionEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26631 #    define IGuestSessionEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26632 #    define IGuestSessionEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26633 #   endif /* VBOX_WITH_GLUE */
26634 
26635 interface IGuestSessionEvent
26636 {
26637 #   ifndef VBOX_WITH_GLUE
26638     struct IGuestSessionEvent_vtbl *vtbl;
26639 #   else /* VBOX_WITH_GLUE */
26640     CONST_VTBL struct IGuestSessionEventVtbl *lpVtbl;
26641 #   endif /* VBOX_WITH_GLUE */
26642 };
26643 /* End of struct IGuestSessionEvent declaration */
26644 
26645 
26646 /* Start of struct IGuestSessionStateChangedEvent declaration */
26647 #   define IGUESTSESSIONSTATECHANGEDEVENT_IID_STR "327e3c00-ee61-462f-aed3-0dff6cbf9904"
26648 #   define IGUESTSESSIONSTATECHANGEDEVENT_IID { \
26649     0x327e3c00, 0xee61, 0x462f, \
26650     { 0xae, 0xd3, 0x0d, 0xff, 0x6c, 0xbf, 0x99, 0x04 } \
26651 }
26652 /* COM compatibility */
26653 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionStateChangedEvent);
26654 #   ifndef VBOX_WITH_GLUE
26655 struct IGuestSessionStateChangedEvent_vtbl
26656 {
26657     struct IGuestSessionEvent_vtbl iguestsessionevent;
26658 
26659     nsresult (*GetId)(IGuestSessionStateChangedEvent *pThis, PRUint32 *id);
26660 
26661     nsresult (*GetStatus)(IGuestSessionStateChangedEvent *pThis, PRUint32 *status);
26662 
26663     nsresult (*GetError)(IGuestSessionStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
26664 
26665 };
26666 #   else /* VBOX_WITH_GLUE */
26667 struct IGuestSessionStateChangedEventVtbl
26668 {
26669     nsresult (*QueryInterface)(IGuestSessionStateChangedEvent *pThis, const nsID *iid, void **resultp);
26670     nsrefcnt (*AddRef)(IGuestSessionStateChangedEvent *pThis);
26671     nsrefcnt (*Release)(IGuestSessionStateChangedEvent *pThis);
26672     nsresult (*GetType)(IGuestSessionStateChangedEvent *pThis, PRUint32 *type);
26673 
26674     nsresult (*GetSource)(IGuestSessionStateChangedEvent *pThis, IEventSource * *source);
26675 
26676     nsresult (*GetWaitable)(IGuestSessionStateChangedEvent *pThis, PRBool *waitable);
26677 
26678     nsresult (*SetProcessed)(IGuestSessionStateChangedEvent *pThis );
26679 
26680     nsresult (*WaitProcessed)(
26681         IGuestSessionStateChangedEvent *pThis,
26682         PRInt32 timeout,
26683         PRBool * result
26684     );
26685 
26686     nsresult (*GetSession)(IGuestSessionStateChangedEvent *pThis, IGuestSession * *session);
26687 
26688     nsresult (*GetId)(IGuestSessionStateChangedEvent *pThis, PRUint32 *id);
26689 
26690     nsresult (*GetStatus)(IGuestSessionStateChangedEvent *pThis, PRUint32 *status);
26691 
26692     nsresult (*GetError)(IGuestSessionStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
26693 
26694 };
26695 #    define IGuestSessionStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26696 #    define IGuestSessionStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26697 #    define IGuestSessionStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
26698 #    define IGuestSessionStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26699 #    define IGuestSessionStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26700 #    define IGuestSessionStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26701 #    define IGuestSessionStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26702 #    define IGuestSessionStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26703 #    define IGuestSessionStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26704 #    define IGuestSessionStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26705 #    define IGuestSessionStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26706 #    define IGuestSessionStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26707 #    define IGuestSessionStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26708 #    define IGuestSessionStateChangedEvent_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
26709 #    define IGuestSessionStateChangedEvent_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
26710 #    define IGuestSessionStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
26711 #    define IGuestSessionStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
26712 #    define IGuestSessionStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
26713 #    define IGuestSessionStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
26714 #   endif /* VBOX_WITH_GLUE */
26715 
26716 interface IGuestSessionStateChangedEvent
26717 {
26718 #   ifndef VBOX_WITH_GLUE
26719     struct IGuestSessionStateChangedEvent_vtbl *vtbl;
26720 #   else /* VBOX_WITH_GLUE */
26721     CONST_VTBL struct IGuestSessionStateChangedEventVtbl *lpVtbl;
26722 #   endif /* VBOX_WITH_GLUE */
26723 };
26724 /* End of struct IGuestSessionStateChangedEvent declaration */
26725 
26726 
26727 /* Start of struct IGuestSessionRegisteredEvent declaration */
26728 #   define IGUESTSESSIONREGISTEREDEVENT_IID_STR "b79de686-eabd-4fa6-960a-f1756c99ea1c"
26729 #   define IGUESTSESSIONREGISTEREDEVENT_IID { \
26730     0xb79de686, 0xeabd, 0x4fa6, \
26731     { 0x96, 0x0a, 0xf1, 0x75, 0x6c, 0x99, 0xea, 0x1c } \
26732 }
26733 /* COM compatibility */
26734 VBOX_EXTERN_CONST(nsIID, IID_IGuestSessionRegisteredEvent);
26735 #   ifndef VBOX_WITH_GLUE
26736 struct IGuestSessionRegisteredEvent_vtbl
26737 {
26738     struct IGuestSessionEvent_vtbl iguestsessionevent;
26739 
26740     nsresult (*GetRegistered)(IGuestSessionRegisteredEvent *pThis, PRBool *registered);
26741 
26742 };
26743 #   else /* VBOX_WITH_GLUE */
26744 struct IGuestSessionRegisteredEventVtbl
26745 {
26746     nsresult (*QueryInterface)(IGuestSessionRegisteredEvent *pThis, const nsID *iid, void **resultp);
26747     nsrefcnt (*AddRef)(IGuestSessionRegisteredEvent *pThis);
26748     nsrefcnt (*Release)(IGuestSessionRegisteredEvent *pThis);
26749     nsresult (*GetType)(IGuestSessionRegisteredEvent *pThis, PRUint32 *type);
26750 
26751     nsresult (*GetSource)(IGuestSessionRegisteredEvent *pThis, IEventSource * *source);
26752 
26753     nsresult (*GetWaitable)(IGuestSessionRegisteredEvent *pThis, PRBool *waitable);
26754 
26755     nsresult (*SetProcessed)(IGuestSessionRegisteredEvent *pThis );
26756 
26757     nsresult (*WaitProcessed)(
26758         IGuestSessionRegisteredEvent *pThis,
26759         PRInt32 timeout,
26760         PRBool * result
26761     );
26762 
26763     nsresult (*GetSession)(IGuestSessionRegisteredEvent *pThis, IGuestSession * *session);
26764 
26765     nsresult (*GetRegistered)(IGuestSessionRegisteredEvent *pThis, PRBool *registered);
26766 
26767 };
26768 #    define IGuestSessionRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26769 #    define IGuestSessionRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26770 #    define IGuestSessionRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
26771 #    define IGuestSessionRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26772 #    define IGuestSessionRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26773 #    define IGuestSessionRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26774 #    define IGuestSessionRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26775 #    define IGuestSessionRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26776 #    define IGuestSessionRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26777 #    define IGuestSessionRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26778 #    define IGuestSessionRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26779 #    define IGuestSessionRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26780 #    define IGuestSessionRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26781 #    define IGuestSessionRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
26782 #    define IGuestSessionRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
26783 #   endif /* VBOX_WITH_GLUE */
26784 
26785 interface IGuestSessionRegisteredEvent
26786 {
26787 #   ifndef VBOX_WITH_GLUE
26788     struct IGuestSessionRegisteredEvent_vtbl *vtbl;
26789 #   else /* VBOX_WITH_GLUE */
26790     CONST_VTBL struct IGuestSessionRegisteredEventVtbl *lpVtbl;
26791 #   endif /* VBOX_WITH_GLUE */
26792 };
26793 /* End of struct IGuestSessionRegisteredEvent declaration */
26794 
26795 
26796 /* Start of struct IGuestProcessEvent declaration */
26797 #   define IGUESTPROCESSEVENT_IID_STR "2405f0e5-6588-40a3-9b0a-68c05ba52c4b"
26798 #   define IGUESTPROCESSEVENT_IID { \
26799     0x2405f0e5, 0x6588, 0x40a3, \
26800     { 0x9b, 0x0a, 0x68, 0xc0, 0x5b, 0xa5, 0x2c, 0x4b } \
26801 }
26802 /* COM compatibility */
26803 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessEvent);
26804 #   ifndef VBOX_WITH_GLUE
26805 struct IGuestProcessEvent_vtbl
26806 {
26807     struct IGuestSessionEvent_vtbl iguestsessionevent;
26808 
26809     nsresult (*GetProcess)(IGuestProcessEvent *pThis, IGuestProcess * *process);
26810 
26811     nsresult (*GetPid)(IGuestProcessEvent *pThis, PRUint32 *pid);
26812 
26813 };
26814 #   else /* VBOX_WITH_GLUE */
26815 struct IGuestProcessEventVtbl
26816 {
26817     nsresult (*QueryInterface)(IGuestProcessEvent *pThis, const nsID *iid, void **resultp);
26818     nsrefcnt (*AddRef)(IGuestProcessEvent *pThis);
26819     nsrefcnt (*Release)(IGuestProcessEvent *pThis);
26820     nsresult (*GetType)(IGuestProcessEvent *pThis, PRUint32 *type);
26821 
26822     nsresult (*GetSource)(IGuestProcessEvent *pThis, IEventSource * *source);
26823 
26824     nsresult (*GetWaitable)(IGuestProcessEvent *pThis, PRBool *waitable);
26825 
26826     nsresult (*SetProcessed)(IGuestProcessEvent *pThis );
26827 
26828     nsresult (*WaitProcessed)(
26829         IGuestProcessEvent *pThis,
26830         PRInt32 timeout,
26831         PRBool * result
26832     );
26833 
26834     nsresult (*GetSession)(IGuestProcessEvent *pThis, IGuestSession * *session);
26835 
26836     nsresult (*GetProcess)(IGuestProcessEvent *pThis, IGuestProcess * *process);
26837 
26838     nsresult (*GetPid)(IGuestProcessEvent *pThis, PRUint32 *pid);
26839 
26840 };
26841 #    define IGuestProcessEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26842 #    define IGuestProcessEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26843 #    define IGuestProcessEvent_Release(p) ((p)->lpVtbl->Release(p))
26844 #    define IGuestProcessEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26845 #    define IGuestProcessEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26846 #    define IGuestProcessEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26847 #    define IGuestProcessEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26848 #    define IGuestProcessEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26849 #    define IGuestProcessEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26850 #    define IGuestProcessEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26851 #    define IGuestProcessEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26852 #    define IGuestProcessEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26853 #    define IGuestProcessEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26854 #    define IGuestProcessEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
26855 #    define IGuestProcessEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
26856 #    define IGuestProcessEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
26857 #    define IGuestProcessEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
26858 #   endif /* VBOX_WITH_GLUE */
26859 
26860 interface IGuestProcessEvent
26861 {
26862 #   ifndef VBOX_WITH_GLUE
26863     struct IGuestProcessEvent_vtbl *vtbl;
26864 #   else /* VBOX_WITH_GLUE */
26865     CONST_VTBL struct IGuestProcessEventVtbl *lpVtbl;
26866 #   endif /* VBOX_WITH_GLUE */
26867 };
26868 /* End of struct IGuestProcessEvent declaration */
26869 
26870 
26871 /* Start of struct IGuestProcessRegisteredEvent declaration */
26872 #   define IGUESTPROCESSREGISTEREDEVENT_IID_STR "1d89e2b3-c6ea-45b6-9d43-dc6f70cc9f02"
26873 #   define IGUESTPROCESSREGISTEREDEVENT_IID { \
26874     0x1d89e2b3, 0xc6ea, 0x45b6, \
26875     { 0x9d, 0x43, 0xdc, 0x6f, 0x70, 0xcc, 0x9f, 0x02 } \
26876 }
26877 /* COM compatibility */
26878 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessRegisteredEvent);
26879 #   ifndef VBOX_WITH_GLUE
26880 struct IGuestProcessRegisteredEvent_vtbl
26881 {
26882     struct IGuestProcessEvent_vtbl iguestprocessevent;
26883 
26884     nsresult (*GetRegistered)(IGuestProcessRegisteredEvent *pThis, PRBool *registered);
26885 
26886 };
26887 #   else /* VBOX_WITH_GLUE */
26888 struct IGuestProcessRegisteredEventVtbl
26889 {
26890     nsresult (*QueryInterface)(IGuestProcessRegisteredEvent *pThis, const nsID *iid, void **resultp);
26891     nsrefcnt (*AddRef)(IGuestProcessRegisteredEvent *pThis);
26892     nsrefcnt (*Release)(IGuestProcessRegisteredEvent *pThis);
26893     nsresult (*GetType)(IGuestProcessRegisteredEvent *pThis, PRUint32 *type);
26894 
26895     nsresult (*GetSource)(IGuestProcessRegisteredEvent *pThis, IEventSource * *source);
26896 
26897     nsresult (*GetWaitable)(IGuestProcessRegisteredEvent *pThis, PRBool *waitable);
26898 
26899     nsresult (*SetProcessed)(IGuestProcessRegisteredEvent *pThis );
26900 
26901     nsresult (*WaitProcessed)(
26902         IGuestProcessRegisteredEvent *pThis,
26903         PRInt32 timeout,
26904         PRBool * result
26905     );
26906 
26907     nsresult (*GetSession)(IGuestProcessRegisteredEvent *pThis, IGuestSession * *session);
26908 
26909     nsresult (*GetProcess)(IGuestProcessRegisteredEvent *pThis, IGuestProcess * *process);
26910 
26911     nsresult (*GetPid)(IGuestProcessRegisteredEvent *pThis, PRUint32 *pid);
26912 
26913     nsresult (*GetRegistered)(IGuestProcessRegisteredEvent *pThis, PRBool *registered);
26914 
26915 };
26916 #    define IGuestProcessRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26917 #    define IGuestProcessRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26918 #    define IGuestProcessRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
26919 #    define IGuestProcessRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
26920 #    define IGuestProcessRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
26921 #    define IGuestProcessRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26922 #    define IGuestProcessRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
26923 #    define IGuestProcessRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26924 #    define IGuestProcessRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
26925 #    define IGuestProcessRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
26926 #    define IGuestProcessRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
26927 #    define IGuestProcessRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26928 #    define IGuestProcessRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
26929 #    define IGuestProcessRegisteredEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
26930 #    define IGuestProcessRegisteredEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
26931 #    define IGuestProcessRegisteredEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
26932 #    define IGuestProcessRegisteredEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
26933 #    define IGuestProcessRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
26934 #    define IGuestProcessRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
26935 #   endif /* VBOX_WITH_GLUE */
26936 
26937 interface IGuestProcessRegisteredEvent
26938 {
26939 #   ifndef VBOX_WITH_GLUE
26940     struct IGuestProcessRegisteredEvent_vtbl *vtbl;
26941 #   else /* VBOX_WITH_GLUE */
26942     CONST_VTBL struct IGuestProcessRegisteredEventVtbl *lpVtbl;
26943 #   endif /* VBOX_WITH_GLUE */
26944 };
26945 /* End of struct IGuestProcessRegisteredEvent declaration */
26946 
26947 
26948 /* Start of struct IGuestProcessStateChangedEvent declaration */
26949 #   define IGUESTPROCESSSTATECHANGEDEVENT_IID_STR "c365fb7b-4430-499f-92c8-8bed814a567a"
26950 #   define IGUESTPROCESSSTATECHANGEDEVENT_IID { \
26951     0xc365fb7b, 0x4430, 0x499f, \
26952     { 0x92, 0xc8, 0x8b, 0xed, 0x81, 0x4a, 0x56, 0x7a } \
26953 }
26954 /* COM compatibility */
26955 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessStateChangedEvent);
26956 #   ifndef VBOX_WITH_GLUE
26957 struct IGuestProcessStateChangedEvent_vtbl
26958 {
26959     struct IGuestProcessEvent_vtbl iguestprocessevent;
26960 
26961     nsresult (*GetStatus)(IGuestProcessStateChangedEvent *pThis, PRUint32 *status);
26962 
26963     nsresult (*GetError)(IGuestProcessStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
26964 
26965 };
26966 #   else /* VBOX_WITH_GLUE */
26967 struct IGuestProcessStateChangedEventVtbl
26968 {
26969     nsresult (*QueryInterface)(IGuestProcessStateChangedEvent *pThis, const nsID *iid, void **resultp);
26970     nsrefcnt (*AddRef)(IGuestProcessStateChangedEvent *pThis);
26971     nsrefcnt (*Release)(IGuestProcessStateChangedEvent *pThis);
26972     nsresult (*GetType)(IGuestProcessStateChangedEvent *pThis, PRUint32 *type);
26973 
26974     nsresult (*GetSource)(IGuestProcessStateChangedEvent *pThis, IEventSource * *source);
26975 
26976     nsresult (*GetWaitable)(IGuestProcessStateChangedEvent *pThis, PRBool *waitable);
26977 
26978     nsresult (*SetProcessed)(IGuestProcessStateChangedEvent *pThis );
26979 
26980     nsresult (*WaitProcessed)(
26981         IGuestProcessStateChangedEvent *pThis,
26982         PRInt32 timeout,
26983         PRBool * result
26984     );
26985 
26986     nsresult (*GetSession)(IGuestProcessStateChangedEvent *pThis, IGuestSession * *session);
26987 
26988     nsresult (*GetProcess)(IGuestProcessStateChangedEvent *pThis, IGuestProcess * *process);
26989 
26990     nsresult (*GetPid)(IGuestProcessStateChangedEvent *pThis, PRUint32 *pid);
26991 
26992     nsresult (*GetStatus)(IGuestProcessStateChangedEvent *pThis, PRUint32 *status);
26993 
26994     nsresult (*GetError)(IGuestProcessStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
26995 
26996 };
26997 #    define IGuestProcessStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
26998 #    define IGuestProcessStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
26999 #    define IGuestProcessStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27000 #    define IGuestProcessStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27001 #    define IGuestProcessStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27002 #    define IGuestProcessStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27003 #    define IGuestProcessStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27004 #    define IGuestProcessStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27005 #    define IGuestProcessStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27006 #    define IGuestProcessStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27007 #    define IGuestProcessStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27008 #    define IGuestProcessStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27009 #    define IGuestProcessStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27010 #    define IGuestProcessStateChangedEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27011 #    define IGuestProcessStateChangedEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27012 #    define IGuestProcessStateChangedEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27013 #    define IGuestProcessStateChangedEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27014 #    define IGuestProcessStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
27015 #    define IGuestProcessStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
27016 #    define IGuestProcessStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
27017 #    define IGuestProcessStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
27018 #   endif /* VBOX_WITH_GLUE */
27019 
27020 interface IGuestProcessStateChangedEvent
27021 {
27022 #   ifndef VBOX_WITH_GLUE
27023     struct IGuestProcessStateChangedEvent_vtbl *vtbl;
27024 #   else /* VBOX_WITH_GLUE */
27025     CONST_VTBL struct IGuestProcessStateChangedEventVtbl *lpVtbl;
27026 #   endif /* VBOX_WITH_GLUE */
27027 };
27028 /* End of struct IGuestProcessStateChangedEvent declaration */
27029 
27030 
27031 /* Start of struct IGuestProcessIOEvent declaration */
27032 #   define IGUESTPROCESSIOEVENT_IID_STR "9ea9227c-e9bb-49b3-bfc7-c5171e93ef38"
27033 #   define IGUESTPROCESSIOEVENT_IID { \
27034     0x9ea9227c, 0xe9bb, 0x49b3, \
27035     { 0xbf, 0xc7, 0xc5, 0x17, 0x1e, 0x93, 0xef, 0x38 } \
27036 }
27037 /* COM compatibility */
27038 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessIOEvent);
27039 #   ifndef VBOX_WITH_GLUE
27040 struct IGuestProcessIOEvent_vtbl
27041 {
27042     struct IGuestProcessEvent_vtbl iguestprocessevent;
27043 
27044     nsresult (*GetHandle)(IGuestProcessIOEvent *pThis, PRUint32 *handle);
27045 
27046     nsresult (*GetProcessed)(IGuestProcessIOEvent *pThis, PRUint32 *processed);
27047 
27048 };
27049 #   else /* VBOX_WITH_GLUE */
27050 struct IGuestProcessIOEventVtbl
27051 {
27052     nsresult (*QueryInterface)(IGuestProcessIOEvent *pThis, const nsID *iid, void **resultp);
27053     nsrefcnt (*AddRef)(IGuestProcessIOEvent *pThis);
27054     nsrefcnt (*Release)(IGuestProcessIOEvent *pThis);
27055     nsresult (*GetType)(IGuestProcessIOEvent *pThis, PRUint32 *type);
27056 
27057     nsresult (*GetSource)(IGuestProcessIOEvent *pThis, IEventSource * *source);
27058 
27059     nsresult (*GetWaitable)(IGuestProcessIOEvent *pThis, PRBool *waitable);
27060 
27061     nsresult (*SetProcessed)(IGuestProcessIOEvent *pThis );
27062 
27063     nsresult (*WaitProcessed)(
27064         IGuestProcessIOEvent *pThis,
27065         PRInt32 timeout,
27066         PRBool * result
27067     );
27068 
27069     nsresult (*GetSession)(IGuestProcessIOEvent *pThis, IGuestSession * *session);
27070 
27071     nsresult (*GetProcess)(IGuestProcessIOEvent *pThis, IGuestProcess * *process);
27072 
27073     nsresult (*GetPid)(IGuestProcessIOEvent *pThis, PRUint32 *pid);
27074 
27075     nsresult (*GetHandle)(IGuestProcessIOEvent *pThis, PRUint32 *handle);
27076 
27077     nsresult (*GetProcessed)(IGuestProcessIOEvent *pThis, PRUint32 *processed);
27078 
27079 };
27080 #    define IGuestProcessIOEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27081 #    define IGuestProcessIOEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27082 #    define IGuestProcessIOEvent_Release(p) ((p)->lpVtbl->Release(p))
27083 #    define IGuestProcessIOEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27084 #    define IGuestProcessIOEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27085 #    define IGuestProcessIOEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27086 #    define IGuestProcessIOEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27087 #    define IGuestProcessIOEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27088 #    define IGuestProcessIOEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27089 #    define IGuestProcessIOEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27090 #    define IGuestProcessIOEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27091 #    define IGuestProcessIOEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27092 #    define IGuestProcessIOEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27093 #    define IGuestProcessIOEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27094 #    define IGuestProcessIOEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27095 #    define IGuestProcessIOEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27096 #    define IGuestProcessIOEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27097 #    define IGuestProcessIOEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
27098 #    define IGuestProcessIOEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
27099 #    define IGuestProcessIOEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27100 #    define IGuestProcessIOEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27101 #   endif /* VBOX_WITH_GLUE */
27102 
27103 interface IGuestProcessIOEvent
27104 {
27105 #   ifndef VBOX_WITH_GLUE
27106     struct IGuestProcessIOEvent_vtbl *vtbl;
27107 #   else /* VBOX_WITH_GLUE */
27108     CONST_VTBL struct IGuestProcessIOEventVtbl *lpVtbl;
27109 #   endif /* VBOX_WITH_GLUE */
27110 };
27111 /* End of struct IGuestProcessIOEvent declaration */
27112 
27113 
27114 /* Start of struct IGuestProcessInputNotifyEvent declaration */
27115 #   define IGUESTPROCESSINPUTNOTIFYEVENT_IID_STR "0de887f2-b7db-4616-aac6-cfb94d89ba78"
27116 #   define IGUESTPROCESSINPUTNOTIFYEVENT_IID { \
27117     0x0de887f2, 0xb7db, 0x4616, \
27118     { 0xaa, 0xc6, 0xcf, 0xb9, 0x4d, 0x89, 0xba, 0x78 } \
27119 }
27120 /* COM compatibility */
27121 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessInputNotifyEvent);
27122 #   ifndef VBOX_WITH_GLUE
27123 struct IGuestProcessInputNotifyEvent_vtbl
27124 {
27125     struct IGuestProcessIOEvent_vtbl iguestprocessioevent;
27126 
27127     nsresult (*GetStatus)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *status);
27128 
27129 };
27130 #   else /* VBOX_WITH_GLUE */
27131 struct IGuestProcessInputNotifyEventVtbl
27132 {
27133     nsresult (*QueryInterface)(IGuestProcessInputNotifyEvent *pThis, const nsID *iid, void **resultp);
27134     nsrefcnt (*AddRef)(IGuestProcessInputNotifyEvent *pThis);
27135     nsrefcnt (*Release)(IGuestProcessInputNotifyEvent *pThis);
27136     nsresult (*GetType)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *type);
27137 
27138     nsresult (*GetSource)(IGuestProcessInputNotifyEvent *pThis, IEventSource * *source);
27139 
27140     nsresult (*GetWaitable)(IGuestProcessInputNotifyEvent *pThis, PRBool *waitable);
27141 
27142     nsresult (*SetProcessed)(IGuestProcessInputNotifyEvent *pThis );
27143 
27144     nsresult (*WaitProcessed)(
27145         IGuestProcessInputNotifyEvent *pThis,
27146         PRInt32 timeout,
27147         PRBool * result
27148     );
27149 
27150     nsresult (*GetSession)(IGuestProcessInputNotifyEvent *pThis, IGuestSession * *session);
27151 
27152     nsresult (*GetProcess)(IGuestProcessInputNotifyEvent *pThis, IGuestProcess * *process);
27153 
27154     nsresult (*GetPid)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *pid);
27155 
27156     nsresult (*GetHandle)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *handle);
27157 
27158     nsresult (*GetProcessed)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *processed);
27159 
27160     nsresult (*GetStatus)(IGuestProcessInputNotifyEvent *pThis, PRUint32 *status);
27161 
27162 };
27163 #    define IGuestProcessInputNotifyEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27164 #    define IGuestProcessInputNotifyEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27165 #    define IGuestProcessInputNotifyEvent_Release(p) ((p)->lpVtbl->Release(p))
27166 #    define IGuestProcessInputNotifyEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27167 #    define IGuestProcessInputNotifyEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27168 #    define IGuestProcessInputNotifyEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27169 #    define IGuestProcessInputNotifyEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27170 #    define IGuestProcessInputNotifyEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27171 #    define IGuestProcessInputNotifyEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27172 #    define IGuestProcessInputNotifyEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27173 #    define IGuestProcessInputNotifyEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27174 #    define IGuestProcessInputNotifyEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27175 #    define IGuestProcessInputNotifyEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27176 #    define IGuestProcessInputNotifyEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27177 #    define IGuestProcessInputNotifyEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27178 #    define IGuestProcessInputNotifyEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27179 #    define IGuestProcessInputNotifyEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27180 #    define IGuestProcessInputNotifyEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
27181 #    define IGuestProcessInputNotifyEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
27182 #    define IGuestProcessInputNotifyEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27183 #    define IGuestProcessInputNotifyEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27184 #    define IGuestProcessInputNotifyEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
27185 #    define IGuestProcessInputNotifyEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
27186 #   endif /* VBOX_WITH_GLUE */
27187 
27188 interface IGuestProcessInputNotifyEvent
27189 {
27190 #   ifndef VBOX_WITH_GLUE
27191     struct IGuestProcessInputNotifyEvent_vtbl *vtbl;
27192 #   else /* VBOX_WITH_GLUE */
27193     CONST_VTBL struct IGuestProcessInputNotifyEventVtbl *lpVtbl;
27194 #   endif /* VBOX_WITH_GLUE */
27195 };
27196 /* End of struct IGuestProcessInputNotifyEvent declaration */
27197 
27198 
27199 /* Start of struct IGuestProcessOutputEvent declaration */
27200 #   define IGUESTPROCESSOUTPUTEVENT_IID_STR "d3d5f1ee-bcb2-4905-a7ab-cc85448a742b"
27201 #   define IGUESTPROCESSOUTPUTEVENT_IID { \
27202     0xd3d5f1ee, 0xbcb2, 0x4905, \
27203     { 0xa7, 0xab, 0xcc, 0x85, 0x44, 0x8a, 0x74, 0x2b } \
27204 }
27205 /* COM compatibility */
27206 VBOX_EXTERN_CONST(nsIID, IID_IGuestProcessOutputEvent);
27207 #   ifndef VBOX_WITH_GLUE
27208 struct IGuestProcessOutputEvent_vtbl
27209 {
27210     struct IGuestProcessIOEvent_vtbl iguestprocessioevent;
27211 
27212     nsresult (*GetData)(IGuestProcessOutputEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
27213 
27214 };
27215 #   else /* VBOX_WITH_GLUE */
27216 struct IGuestProcessOutputEventVtbl
27217 {
27218     nsresult (*QueryInterface)(IGuestProcessOutputEvent *pThis, const nsID *iid, void **resultp);
27219     nsrefcnt (*AddRef)(IGuestProcessOutputEvent *pThis);
27220     nsrefcnt (*Release)(IGuestProcessOutputEvent *pThis);
27221     nsresult (*GetType)(IGuestProcessOutputEvent *pThis, PRUint32 *type);
27222 
27223     nsresult (*GetSource)(IGuestProcessOutputEvent *pThis, IEventSource * *source);
27224 
27225     nsresult (*GetWaitable)(IGuestProcessOutputEvent *pThis, PRBool *waitable);
27226 
27227     nsresult (*SetProcessed)(IGuestProcessOutputEvent *pThis );
27228 
27229     nsresult (*WaitProcessed)(
27230         IGuestProcessOutputEvent *pThis,
27231         PRInt32 timeout,
27232         PRBool * result
27233     );
27234 
27235     nsresult (*GetSession)(IGuestProcessOutputEvent *pThis, IGuestSession * *session);
27236 
27237     nsresult (*GetProcess)(IGuestProcessOutputEvent *pThis, IGuestProcess * *process);
27238 
27239     nsresult (*GetPid)(IGuestProcessOutputEvent *pThis, PRUint32 *pid);
27240 
27241     nsresult (*GetHandle)(IGuestProcessOutputEvent *pThis, PRUint32 *handle);
27242 
27243     nsresult (*GetProcessed)(IGuestProcessOutputEvent *pThis, PRUint32 *processed);
27244 
27245     nsresult (*GetData)(IGuestProcessOutputEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
27246 
27247 };
27248 #    define IGuestProcessOutputEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27249 #    define IGuestProcessOutputEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27250 #    define IGuestProcessOutputEvent_Release(p) ((p)->lpVtbl->Release(p))
27251 #    define IGuestProcessOutputEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27252 #    define IGuestProcessOutputEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27253 #    define IGuestProcessOutputEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27254 #    define IGuestProcessOutputEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27255 #    define IGuestProcessOutputEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27256 #    define IGuestProcessOutputEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27257 #    define IGuestProcessOutputEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27258 #    define IGuestProcessOutputEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27259 #    define IGuestProcessOutputEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27260 #    define IGuestProcessOutputEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27261 #    define IGuestProcessOutputEvent_get_Process(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27262 #    define IGuestProcessOutputEvent_GetProcess(p, aProcess) ((p)->lpVtbl->GetProcess(p, aProcess))
27263 #    define IGuestProcessOutputEvent_get_Pid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27264 #    define IGuestProcessOutputEvent_GetPid(p, aPid) ((p)->lpVtbl->GetPid(p, aPid))
27265 #    define IGuestProcessOutputEvent_get_Handle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
27266 #    define IGuestProcessOutputEvent_GetHandle(p, aHandle) ((p)->lpVtbl->GetHandle(p, aHandle))
27267 #    define IGuestProcessOutputEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27268 #    define IGuestProcessOutputEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27269 #    define IGuestProcessOutputEvent_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
27270 #    define IGuestProcessOutputEvent_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
27271 #   endif /* VBOX_WITH_GLUE */
27272 
27273 interface IGuestProcessOutputEvent
27274 {
27275 #   ifndef VBOX_WITH_GLUE
27276     struct IGuestProcessOutputEvent_vtbl *vtbl;
27277 #   else /* VBOX_WITH_GLUE */
27278     CONST_VTBL struct IGuestProcessOutputEventVtbl *lpVtbl;
27279 #   endif /* VBOX_WITH_GLUE */
27280 };
27281 /* End of struct IGuestProcessOutputEvent declaration */
27282 
27283 
27284 /* Start of struct IGuestFileEvent declaration */
27285 #   define IGUESTFILEEVENT_IID_STR "c8adb7b0-057d-4391-b928-f14b06b710c5"
27286 #   define IGUESTFILEEVENT_IID { \
27287     0xc8adb7b0, 0x057d, 0x4391, \
27288     { 0xb9, 0x28, 0xf1, 0x4b, 0x06, 0xb7, 0x10, 0xc5 } \
27289 }
27290 /* COM compatibility */
27291 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileEvent);
27292 #   ifndef VBOX_WITH_GLUE
27293 struct IGuestFileEvent_vtbl
27294 {
27295     struct IGuestSessionEvent_vtbl iguestsessionevent;
27296 
27297     nsresult (*GetFile)(IGuestFileEvent *pThis, IGuestFile * *file);
27298 
27299 };
27300 #   else /* VBOX_WITH_GLUE */
27301 struct IGuestFileEventVtbl
27302 {
27303     nsresult (*QueryInterface)(IGuestFileEvent *pThis, const nsID *iid, void **resultp);
27304     nsrefcnt (*AddRef)(IGuestFileEvent *pThis);
27305     nsrefcnt (*Release)(IGuestFileEvent *pThis);
27306     nsresult (*GetType)(IGuestFileEvent *pThis, PRUint32 *type);
27307 
27308     nsresult (*GetSource)(IGuestFileEvent *pThis, IEventSource * *source);
27309 
27310     nsresult (*GetWaitable)(IGuestFileEvent *pThis, PRBool *waitable);
27311 
27312     nsresult (*SetProcessed)(IGuestFileEvent *pThis );
27313 
27314     nsresult (*WaitProcessed)(
27315         IGuestFileEvent *pThis,
27316         PRInt32 timeout,
27317         PRBool * result
27318     );
27319 
27320     nsresult (*GetSession)(IGuestFileEvent *pThis, IGuestSession * *session);
27321 
27322     nsresult (*GetFile)(IGuestFileEvent *pThis, IGuestFile * *file);
27323 
27324 };
27325 #    define IGuestFileEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27326 #    define IGuestFileEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27327 #    define IGuestFileEvent_Release(p) ((p)->lpVtbl->Release(p))
27328 #    define IGuestFileEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27329 #    define IGuestFileEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27330 #    define IGuestFileEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27331 #    define IGuestFileEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27332 #    define IGuestFileEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27333 #    define IGuestFileEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27334 #    define IGuestFileEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27335 #    define IGuestFileEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27336 #    define IGuestFileEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27337 #    define IGuestFileEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27338 #    define IGuestFileEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27339 #    define IGuestFileEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27340 #   endif /* VBOX_WITH_GLUE */
27341 
27342 interface IGuestFileEvent
27343 {
27344 #   ifndef VBOX_WITH_GLUE
27345     struct IGuestFileEvent_vtbl *vtbl;
27346 #   else /* VBOX_WITH_GLUE */
27347     CONST_VTBL struct IGuestFileEventVtbl *lpVtbl;
27348 #   endif /* VBOX_WITH_GLUE */
27349 };
27350 /* End of struct IGuestFileEvent declaration */
27351 
27352 
27353 /* Start of struct IGuestFileRegisteredEvent declaration */
27354 #   define IGUESTFILEREGISTEREDEVENT_IID_STR "d0d93830-70a2-487e-895e-d3fc9679f7b3"
27355 #   define IGUESTFILEREGISTEREDEVENT_IID { \
27356     0xd0d93830, 0x70a2, 0x487e, \
27357     { 0x89, 0x5e, 0xd3, 0xfc, 0x96, 0x79, 0xf7, 0xb3 } \
27358 }
27359 /* COM compatibility */
27360 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileRegisteredEvent);
27361 #   ifndef VBOX_WITH_GLUE
27362 struct IGuestFileRegisteredEvent_vtbl
27363 {
27364     struct IGuestFileEvent_vtbl iguestfileevent;
27365 
27366     nsresult (*GetRegistered)(IGuestFileRegisteredEvent *pThis, PRBool *registered);
27367 
27368 };
27369 #   else /* VBOX_WITH_GLUE */
27370 struct IGuestFileRegisteredEventVtbl
27371 {
27372     nsresult (*QueryInterface)(IGuestFileRegisteredEvent *pThis, const nsID *iid, void **resultp);
27373     nsrefcnt (*AddRef)(IGuestFileRegisteredEvent *pThis);
27374     nsrefcnt (*Release)(IGuestFileRegisteredEvent *pThis);
27375     nsresult (*GetType)(IGuestFileRegisteredEvent *pThis, PRUint32 *type);
27376 
27377     nsresult (*GetSource)(IGuestFileRegisteredEvent *pThis, IEventSource * *source);
27378 
27379     nsresult (*GetWaitable)(IGuestFileRegisteredEvent *pThis, PRBool *waitable);
27380 
27381     nsresult (*SetProcessed)(IGuestFileRegisteredEvent *pThis );
27382 
27383     nsresult (*WaitProcessed)(
27384         IGuestFileRegisteredEvent *pThis,
27385         PRInt32 timeout,
27386         PRBool * result
27387     );
27388 
27389     nsresult (*GetSession)(IGuestFileRegisteredEvent *pThis, IGuestSession * *session);
27390 
27391     nsresult (*GetFile)(IGuestFileRegisteredEvent *pThis, IGuestFile * *file);
27392 
27393     nsresult (*GetRegistered)(IGuestFileRegisteredEvent *pThis, PRBool *registered);
27394 
27395 };
27396 #    define IGuestFileRegisteredEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27397 #    define IGuestFileRegisteredEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27398 #    define IGuestFileRegisteredEvent_Release(p) ((p)->lpVtbl->Release(p))
27399 #    define IGuestFileRegisteredEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27400 #    define IGuestFileRegisteredEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27401 #    define IGuestFileRegisteredEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27402 #    define IGuestFileRegisteredEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27403 #    define IGuestFileRegisteredEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27404 #    define IGuestFileRegisteredEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27405 #    define IGuestFileRegisteredEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27406 #    define IGuestFileRegisteredEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27407 #    define IGuestFileRegisteredEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27408 #    define IGuestFileRegisteredEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27409 #    define IGuestFileRegisteredEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27410 #    define IGuestFileRegisteredEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27411 #    define IGuestFileRegisteredEvent_get_Registered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
27412 #    define IGuestFileRegisteredEvent_GetRegistered(p, aRegistered) ((p)->lpVtbl->GetRegistered(p, aRegistered))
27413 #   endif /* VBOX_WITH_GLUE */
27414 
27415 interface IGuestFileRegisteredEvent
27416 {
27417 #   ifndef VBOX_WITH_GLUE
27418     struct IGuestFileRegisteredEvent_vtbl *vtbl;
27419 #   else /* VBOX_WITH_GLUE */
27420     CONST_VTBL struct IGuestFileRegisteredEventVtbl *lpVtbl;
27421 #   endif /* VBOX_WITH_GLUE */
27422 };
27423 /* End of struct IGuestFileRegisteredEvent declaration */
27424 
27425 
27426 /* Start of struct IGuestFileStateChangedEvent declaration */
27427 #   define IGUESTFILESTATECHANGEDEVENT_IID_STR "d37fe88f-0979-486c-baa1-3abb144dc82d"
27428 #   define IGUESTFILESTATECHANGEDEVENT_IID { \
27429     0xd37fe88f, 0x0979, 0x486c, \
27430     { 0xba, 0xa1, 0x3a, 0xbb, 0x14, 0x4d, 0xc8, 0x2d } \
27431 }
27432 /* COM compatibility */
27433 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileStateChangedEvent);
27434 #   ifndef VBOX_WITH_GLUE
27435 struct IGuestFileStateChangedEvent_vtbl
27436 {
27437     struct IGuestFileEvent_vtbl iguestfileevent;
27438 
27439     nsresult (*GetStatus)(IGuestFileStateChangedEvent *pThis, PRUint32 *status);
27440 
27441     nsresult (*GetError)(IGuestFileStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
27442 
27443 };
27444 #   else /* VBOX_WITH_GLUE */
27445 struct IGuestFileStateChangedEventVtbl
27446 {
27447     nsresult (*QueryInterface)(IGuestFileStateChangedEvent *pThis, const nsID *iid, void **resultp);
27448     nsrefcnt (*AddRef)(IGuestFileStateChangedEvent *pThis);
27449     nsrefcnt (*Release)(IGuestFileStateChangedEvent *pThis);
27450     nsresult (*GetType)(IGuestFileStateChangedEvent *pThis, PRUint32 *type);
27451 
27452     nsresult (*GetSource)(IGuestFileStateChangedEvent *pThis, IEventSource * *source);
27453 
27454     nsresult (*GetWaitable)(IGuestFileStateChangedEvent *pThis, PRBool *waitable);
27455 
27456     nsresult (*SetProcessed)(IGuestFileStateChangedEvent *pThis );
27457 
27458     nsresult (*WaitProcessed)(
27459         IGuestFileStateChangedEvent *pThis,
27460         PRInt32 timeout,
27461         PRBool * result
27462     );
27463 
27464     nsresult (*GetSession)(IGuestFileStateChangedEvent *pThis, IGuestSession * *session);
27465 
27466     nsresult (*GetFile)(IGuestFileStateChangedEvent *pThis, IGuestFile * *file);
27467 
27468     nsresult (*GetStatus)(IGuestFileStateChangedEvent *pThis, PRUint32 *status);
27469 
27470     nsresult (*GetError)(IGuestFileStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
27471 
27472 };
27473 #    define IGuestFileStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27474 #    define IGuestFileStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27475 #    define IGuestFileStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27476 #    define IGuestFileStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27477 #    define IGuestFileStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27478 #    define IGuestFileStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27479 #    define IGuestFileStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27480 #    define IGuestFileStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27481 #    define IGuestFileStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27482 #    define IGuestFileStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27483 #    define IGuestFileStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27484 #    define IGuestFileStateChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27485 #    define IGuestFileStateChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27486 #    define IGuestFileStateChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27487 #    define IGuestFileStateChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27488 #    define IGuestFileStateChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
27489 #    define IGuestFileStateChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
27490 #    define IGuestFileStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
27491 #    define IGuestFileStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
27492 #   endif /* VBOX_WITH_GLUE */
27493 
27494 interface IGuestFileStateChangedEvent
27495 {
27496 #   ifndef VBOX_WITH_GLUE
27497     struct IGuestFileStateChangedEvent_vtbl *vtbl;
27498 #   else /* VBOX_WITH_GLUE */
27499     CONST_VTBL struct IGuestFileStateChangedEventVtbl *lpVtbl;
27500 #   endif /* VBOX_WITH_GLUE */
27501 };
27502 /* End of struct IGuestFileStateChangedEvent declaration */
27503 
27504 
27505 /* Start of struct IGuestFileIOEvent declaration */
27506 #   define IGUESTFILEIOEVENT_IID_STR "b5191a7c-9536-4ef8-820e-3b0e17e5bbc8"
27507 #   define IGUESTFILEIOEVENT_IID { \
27508     0xb5191a7c, 0x9536, 0x4ef8, \
27509     { 0x82, 0x0e, 0x3b, 0x0e, 0x17, 0xe5, 0xbb, 0xc8 } \
27510 }
27511 /* COM compatibility */
27512 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileIOEvent);
27513 #   ifndef VBOX_WITH_GLUE
27514 struct IGuestFileIOEvent_vtbl
27515 {
27516     struct IGuestFileEvent_vtbl iguestfileevent;
27517 
27518     nsresult (*GetOffset)(IGuestFileIOEvent *pThis, PRInt64 *offset);
27519 
27520     nsresult (*GetProcessed)(IGuestFileIOEvent *pThis, PRUint32 *processed);
27521 
27522 };
27523 #   else /* VBOX_WITH_GLUE */
27524 struct IGuestFileIOEventVtbl
27525 {
27526     nsresult (*QueryInterface)(IGuestFileIOEvent *pThis, const nsID *iid, void **resultp);
27527     nsrefcnt (*AddRef)(IGuestFileIOEvent *pThis);
27528     nsrefcnt (*Release)(IGuestFileIOEvent *pThis);
27529     nsresult (*GetType)(IGuestFileIOEvent *pThis, PRUint32 *type);
27530 
27531     nsresult (*GetSource)(IGuestFileIOEvent *pThis, IEventSource * *source);
27532 
27533     nsresult (*GetWaitable)(IGuestFileIOEvent *pThis, PRBool *waitable);
27534 
27535     nsresult (*SetProcessed)(IGuestFileIOEvent *pThis );
27536 
27537     nsresult (*WaitProcessed)(
27538         IGuestFileIOEvent *pThis,
27539         PRInt32 timeout,
27540         PRBool * result
27541     );
27542 
27543     nsresult (*GetSession)(IGuestFileIOEvent *pThis, IGuestSession * *session);
27544 
27545     nsresult (*GetFile)(IGuestFileIOEvent *pThis, IGuestFile * *file);
27546 
27547     nsresult (*GetOffset)(IGuestFileIOEvent *pThis, PRInt64 *offset);
27548 
27549     nsresult (*GetProcessed)(IGuestFileIOEvent *pThis, PRUint32 *processed);
27550 
27551 };
27552 #    define IGuestFileIOEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27553 #    define IGuestFileIOEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27554 #    define IGuestFileIOEvent_Release(p) ((p)->lpVtbl->Release(p))
27555 #    define IGuestFileIOEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27556 #    define IGuestFileIOEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27557 #    define IGuestFileIOEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27558 #    define IGuestFileIOEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27559 #    define IGuestFileIOEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27560 #    define IGuestFileIOEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27561 #    define IGuestFileIOEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27562 #    define IGuestFileIOEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27563 #    define IGuestFileIOEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27564 #    define IGuestFileIOEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27565 #    define IGuestFileIOEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27566 #    define IGuestFileIOEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27567 #    define IGuestFileIOEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27568 #    define IGuestFileIOEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27569 #    define IGuestFileIOEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27570 #    define IGuestFileIOEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27571 #   endif /* VBOX_WITH_GLUE */
27572 
27573 interface IGuestFileIOEvent
27574 {
27575 #   ifndef VBOX_WITH_GLUE
27576     struct IGuestFileIOEvent_vtbl *vtbl;
27577 #   else /* VBOX_WITH_GLUE */
27578     CONST_VTBL struct IGuestFileIOEventVtbl *lpVtbl;
27579 #   endif /* VBOX_WITH_GLUE */
27580 };
27581 /* End of struct IGuestFileIOEvent declaration */
27582 
27583 
27584 /* Start of struct IGuestFileOffsetChangedEvent declaration */
27585 #   define IGUESTFILEOFFSETCHANGEDEVENT_IID_STR "e8f79a21-1207-4179-94cf-ca250036308f"
27586 #   define IGUESTFILEOFFSETCHANGEDEVENT_IID { \
27587     0xe8f79a21, 0x1207, 0x4179, \
27588     { 0x94, 0xcf, 0xca, 0x25, 0x00, 0x36, 0x30, 0x8f } \
27589 }
27590 /* COM compatibility */
27591 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileOffsetChangedEvent);
27592 #   ifndef VBOX_WITH_GLUE
27593 struct IGuestFileOffsetChangedEvent_vtbl
27594 {
27595     struct IGuestFileIOEvent_vtbl iguestfileioevent;
27596 
27597     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileOffsetChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27598 
27599 };
27600 #   else /* VBOX_WITH_GLUE */
27601 struct IGuestFileOffsetChangedEventVtbl
27602 {
27603     nsresult (*QueryInterface)(IGuestFileOffsetChangedEvent *pThis, const nsID *iid, void **resultp);
27604     nsrefcnt (*AddRef)(IGuestFileOffsetChangedEvent *pThis);
27605     nsrefcnt (*Release)(IGuestFileOffsetChangedEvent *pThis);
27606     nsresult (*GetType)(IGuestFileOffsetChangedEvent *pThis, PRUint32 *type);
27607 
27608     nsresult (*GetSource)(IGuestFileOffsetChangedEvent *pThis, IEventSource * *source);
27609 
27610     nsresult (*GetWaitable)(IGuestFileOffsetChangedEvent *pThis, PRBool *waitable);
27611 
27612     nsresult (*SetProcessed)(IGuestFileOffsetChangedEvent *pThis );
27613 
27614     nsresult (*WaitProcessed)(
27615         IGuestFileOffsetChangedEvent *pThis,
27616         PRInt32 timeout,
27617         PRBool * result
27618     );
27619 
27620     nsresult (*GetSession)(IGuestFileOffsetChangedEvent *pThis, IGuestSession * *session);
27621 
27622     nsresult (*GetFile)(IGuestFileOffsetChangedEvent *pThis, IGuestFile * *file);
27623 
27624     nsresult (*GetOffset)(IGuestFileOffsetChangedEvent *pThis, PRInt64 *offset);
27625 
27626     nsresult (*GetProcessed)(IGuestFileOffsetChangedEvent *pThis, PRUint32 *processed);
27627 
27628     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileOffsetChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27629 
27630 };
27631 #    define IGuestFileOffsetChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27632 #    define IGuestFileOffsetChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27633 #    define IGuestFileOffsetChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27634 #    define IGuestFileOffsetChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27635 #    define IGuestFileOffsetChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27636 #    define IGuestFileOffsetChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27637 #    define IGuestFileOffsetChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27638 #    define IGuestFileOffsetChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27639 #    define IGuestFileOffsetChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27640 #    define IGuestFileOffsetChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27641 #    define IGuestFileOffsetChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27642 #    define IGuestFileOffsetChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27643 #    define IGuestFileOffsetChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27644 #    define IGuestFileOffsetChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27645 #    define IGuestFileOffsetChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27646 #    define IGuestFileOffsetChangedEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27647 #    define IGuestFileOffsetChangedEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27648 #    define IGuestFileOffsetChangedEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27649 #    define IGuestFileOffsetChangedEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27650 #    define IGuestFileOffsetChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27651 #    define IGuestFileOffsetChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27652 #   endif /* VBOX_WITH_GLUE */
27653 
27654 interface IGuestFileOffsetChangedEvent
27655 {
27656 #   ifndef VBOX_WITH_GLUE
27657     struct IGuestFileOffsetChangedEvent_vtbl *vtbl;
27658 #   else /* VBOX_WITH_GLUE */
27659     CONST_VTBL struct IGuestFileOffsetChangedEventVtbl *lpVtbl;
27660 #   endif /* VBOX_WITH_GLUE */
27661 };
27662 /* End of struct IGuestFileOffsetChangedEvent declaration */
27663 
27664 
27665 /* Start of struct IGuestFileSizeChangedEvent declaration */
27666 #   define IGUESTFILESIZECHANGEDEVENT_IID_STR "d78374e9-486e-472f-481b-969746af2480"
27667 #   define IGUESTFILESIZECHANGEDEVENT_IID { \
27668     0xd78374e9, 0x486e, 0x472f, \
27669     { 0x48, 0x1b, 0x96, 0x97, 0x46, 0xaf, 0x24, 0x80 } \
27670 }
27671 /* COM compatibility */
27672 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileSizeChangedEvent);
27673 #   ifndef VBOX_WITH_GLUE
27674 struct IGuestFileSizeChangedEvent_vtbl
27675 {
27676     struct IGuestFileEvent_vtbl iguestfileevent;
27677 
27678     nsresult (*GetNewSize)(IGuestFileSizeChangedEvent *pThis, PRInt64 *newSize);
27679 
27680 };
27681 #   else /* VBOX_WITH_GLUE */
27682 struct IGuestFileSizeChangedEventVtbl
27683 {
27684     nsresult (*QueryInterface)(IGuestFileSizeChangedEvent *pThis, const nsID *iid, void **resultp);
27685     nsrefcnt (*AddRef)(IGuestFileSizeChangedEvent *pThis);
27686     nsrefcnt (*Release)(IGuestFileSizeChangedEvent *pThis);
27687     nsresult (*GetType)(IGuestFileSizeChangedEvent *pThis, PRUint32 *type);
27688 
27689     nsresult (*GetSource)(IGuestFileSizeChangedEvent *pThis, IEventSource * *source);
27690 
27691     nsresult (*GetWaitable)(IGuestFileSizeChangedEvent *pThis, PRBool *waitable);
27692 
27693     nsresult (*SetProcessed)(IGuestFileSizeChangedEvent *pThis );
27694 
27695     nsresult (*WaitProcessed)(
27696         IGuestFileSizeChangedEvent *pThis,
27697         PRInt32 timeout,
27698         PRBool * result
27699     );
27700 
27701     nsresult (*GetSession)(IGuestFileSizeChangedEvent *pThis, IGuestSession * *session);
27702 
27703     nsresult (*GetFile)(IGuestFileSizeChangedEvent *pThis, IGuestFile * *file);
27704 
27705     nsresult (*GetNewSize)(IGuestFileSizeChangedEvent *pThis, PRInt64 *newSize);
27706 
27707 };
27708 #    define IGuestFileSizeChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27709 #    define IGuestFileSizeChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27710 #    define IGuestFileSizeChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27711 #    define IGuestFileSizeChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27712 #    define IGuestFileSizeChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27713 #    define IGuestFileSizeChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27714 #    define IGuestFileSizeChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27715 #    define IGuestFileSizeChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27716 #    define IGuestFileSizeChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27717 #    define IGuestFileSizeChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27718 #    define IGuestFileSizeChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27719 #    define IGuestFileSizeChangedEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27720 #    define IGuestFileSizeChangedEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27721 #    define IGuestFileSizeChangedEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27722 #    define IGuestFileSizeChangedEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27723 #    define IGuestFileSizeChangedEvent_get_NewSize(p, aNewSize) ((p)->lpVtbl->GetNewSize(p, aNewSize))
27724 #    define IGuestFileSizeChangedEvent_GetNewSize(p, aNewSize) ((p)->lpVtbl->GetNewSize(p, aNewSize))
27725 #   endif /* VBOX_WITH_GLUE */
27726 
27727 interface IGuestFileSizeChangedEvent
27728 {
27729 #   ifndef VBOX_WITH_GLUE
27730     struct IGuestFileSizeChangedEvent_vtbl *vtbl;
27731 #   else /* VBOX_WITH_GLUE */
27732     CONST_VTBL struct IGuestFileSizeChangedEventVtbl *lpVtbl;
27733 #   endif /* VBOX_WITH_GLUE */
27734 };
27735 /* End of struct IGuestFileSizeChangedEvent declaration */
27736 
27737 
27738 /* Start of struct IGuestFileReadEvent declaration */
27739 #   define IGUESTFILEREADEVENT_IID_STR "4ee3cbcb-486f-40db-9150-deee3fd24189"
27740 #   define IGUESTFILEREADEVENT_IID { \
27741     0x4ee3cbcb, 0x486f, 0x40db, \
27742     { 0x91, 0x50, 0xde, 0xee, 0x3f, 0xd2, 0x41, 0x89 } \
27743 }
27744 /* COM compatibility */
27745 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileReadEvent);
27746 #   ifndef VBOX_WITH_GLUE
27747 struct IGuestFileReadEvent_vtbl
27748 {
27749     struct IGuestFileIOEvent_vtbl iguestfileioevent;
27750 
27751     nsresult (*GetData)(IGuestFileReadEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
27752 
27753 };
27754 #   else /* VBOX_WITH_GLUE */
27755 struct IGuestFileReadEventVtbl
27756 {
27757     nsresult (*QueryInterface)(IGuestFileReadEvent *pThis, const nsID *iid, void **resultp);
27758     nsrefcnt (*AddRef)(IGuestFileReadEvent *pThis);
27759     nsrefcnt (*Release)(IGuestFileReadEvent *pThis);
27760     nsresult (*GetType)(IGuestFileReadEvent *pThis, PRUint32 *type);
27761 
27762     nsresult (*GetSource)(IGuestFileReadEvent *pThis, IEventSource * *source);
27763 
27764     nsresult (*GetWaitable)(IGuestFileReadEvent *pThis, PRBool *waitable);
27765 
27766     nsresult (*SetProcessed)(IGuestFileReadEvent *pThis );
27767 
27768     nsresult (*WaitProcessed)(
27769         IGuestFileReadEvent *pThis,
27770         PRInt32 timeout,
27771         PRBool * result
27772     );
27773 
27774     nsresult (*GetSession)(IGuestFileReadEvent *pThis, IGuestSession * *session);
27775 
27776     nsresult (*GetFile)(IGuestFileReadEvent *pThis, IGuestFile * *file);
27777 
27778     nsresult (*GetOffset)(IGuestFileReadEvent *pThis, PRInt64 *offset);
27779 
27780     nsresult (*GetProcessed)(IGuestFileReadEvent *pThis, PRUint32 *processed);
27781 
27782     nsresult (*GetData)(IGuestFileReadEvent *pThis, PRUint32 *dataSize, PRUint8 **data);
27783 
27784 };
27785 #    define IGuestFileReadEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27786 #    define IGuestFileReadEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27787 #    define IGuestFileReadEvent_Release(p) ((p)->lpVtbl->Release(p))
27788 #    define IGuestFileReadEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27789 #    define IGuestFileReadEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27790 #    define IGuestFileReadEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27791 #    define IGuestFileReadEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27792 #    define IGuestFileReadEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27793 #    define IGuestFileReadEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27794 #    define IGuestFileReadEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27795 #    define IGuestFileReadEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27796 #    define IGuestFileReadEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27797 #    define IGuestFileReadEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27798 #    define IGuestFileReadEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27799 #    define IGuestFileReadEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27800 #    define IGuestFileReadEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27801 #    define IGuestFileReadEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27802 #    define IGuestFileReadEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27803 #    define IGuestFileReadEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27804 #    define IGuestFileReadEvent_get_Data(p, aData) ((p)->lpVtbl->GetData(p, aData))
27805 #    define IGuestFileReadEvent_GetData(p, aData) ((p)->lpVtbl->GetData(p, aData))
27806 #   endif /* VBOX_WITH_GLUE */
27807 
27808 interface IGuestFileReadEvent
27809 {
27810 #   ifndef VBOX_WITH_GLUE
27811     struct IGuestFileReadEvent_vtbl *vtbl;
27812 #   else /* VBOX_WITH_GLUE */
27813     CONST_VTBL struct IGuestFileReadEventVtbl *lpVtbl;
27814 #   endif /* VBOX_WITH_GLUE */
27815 };
27816 /* End of struct IGuestFileReadEvent declaration */
27817 
27818 
27819 /* Start of struct IGuestFileWriteEvent declaration */
27820 #   define IGUESTFILEWRITEEVENT_IID_STR "e062a915-3cf5-4c0a-bc90-9b8d4cc94d89"
27821 #   define IGUESTFILEWRITEEVENT_IID { \
27822     0xe062a915, 0x3cf5, 0x4c0a, \
27823     { 0xbc, 0x90, 0x9b, 0x8d, 0x4c, 0xc9, 0x4d, 0x89 } \
27824 }
27825 /* COM compatibility */
27826 VBOX_EXTERN_CONST(nsIID, IID_IGuestFileWriteEvent);
27827 #   ifndef VBOX_WITH_GLUE
27828 struct IGuestFileWriteEvent_vtbl
27829 {
27830     struct IGuestFileIOEvent_vtbl iguestfileioevent;
27831 
27832     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileWriteEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27833 
27834 };
27835 #   else /* VBOX_WITH_GLUE */
27836 struct IGuestFileWriteEventVtbl
27837 {
27838     nsresult (*QueryInterface)(IGuestFileWriteEvent *pThis, const nsID *iid, void **resultp);
27839     nsrefcnt (*AddRef)(IGuestFileWriteEvent *pThis);
27840     nsrefcnt (*Release)(IGuestFileWriteEvent *pThis);
27841     nsresult (*GetType)(IGuestFileWriteEvent *pThis, PRUint32 *type);
27842 
27843     nsresult (*GetSource)(IGuestFileWriteEvent *pThis, IEventSource * *source);
27844 
27845     nsresult (*GetWaitable)(IGuestFileWriteEvent *pThis, PRBool *waitable);
27846 
27847     nsresult (*SetProcessed)(IGuestFileWriteEvent *pThis );
27848 
27849     nsresult (*WaitProcessed)(
27850         IGuestFileWriteEvent *pThis,
27851         PRInt32 timeout,
27852         PRBool * result
27853     );
27854 
27855     nsresult (*GetSession)(IGuestFileWriteEvent *pThis, IGuestSession * *session);
27856 
27857     nsresult (*GetFile)(IGuestFileWriteEvent *pThis, IGuestFile * *file);
27858 
27859     nsresult (*GetOffset)(IGuestFileWriteEvent *pThis, PRInt64 *offset);
27860 
27861     nsresult (*GetProcessed)(IGuestFileWriteEvent *pThis, PRUint32 *processed);
27862 
27863     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IGuestFileWriteEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27864 
27865 };
27866 #    define IGuestFileWriteEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27867 #    define IGuestFileWriteEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27868 #    define IGuestFileWriteEvent_Release(p) ((p)->lpVtbl->Release(p))
27869 #    define IGuestFileWriteEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27870 #    define IGuestFileWriteEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27871 #    define IGuestFileWriteEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27872 #    define IGuestFileWriteEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27873 #    define IGuestFileWriteEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27874 #    define IGuestFileWriteEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27875 #    define IGuestFileWriteEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27876 #    define IGuestFileWriteEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27877 #    define IGuestFileWriteEvent_get_Session(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27878 #    define IGuestFileWriteEvent_GetSession(p, aSession) ((p)->lpVtbl->GetSession(p, aSession))
27879 #    define IGuestFileWriteEvent_get_File(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27880 #    define IGuestFileWriteEvent_GetFile(p, aFile) ((p)->lpVtbl->GetFile(p, aFile))
27881 #    define IGuestFileWriteEvent_get_Offset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27882 #    define IGuestFileWriteEvent_GetOffset(p, aOffset) ((p)->lpVtbl->GetOffset(p, aOffset))
27883 #    define IGuestFileWriteEvent_get_Processed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27884 #    define IGuestFileWriteEvent_GetProcessed(p, aProcessed) ((p)->lpVtbl->GetProcessed(p, aProcessed))
27885 #    define IGuestFileWriteEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27886 #    define IGuestFileWriteEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27887 #   endif /* VBOX_WITH_GLUE */
27888 
27889 interface IGuestFileWriteEvent
27890 {
27891 #   ifndef VBOX_WITH_GLUE
27892     struct IGuestFileWriteEvent_vtbl *vtbl;
27893 #   else /* VBOX_WITH_GLUE */
27894     CONST_VTBL struct IGuestFileWriteEventVtbl *lpVtbl;
27895 #   endif /* VBOX_WITH_GLUE */
27896 };
27897 /* End of struct IGuestFileWriteEvent declaration */
27898 
27899 
27900 /* Start of struct IVRDEServerChangedEvent declaration */
27901 #   define IVRDESERVERCHANGEDEVENT_IID_STR "a06fd66a-3188-4c8c-8756-1395e8cb691c"
27902 #   define IVRDESERVERCHANGEDEVENT_IID { \
27903     0xa06fd66a, 0x3188, 0x4c8c, \
27904     { 0x87, 0x56, 0x13, 0x95, 0xe8, 0xcb, 0x69, 0x1c } \
27905 }
27906 /* COM compatibility */
27907 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerChangedEvent);
27908 #   ifndef VBOX_WITH_GLUE
27909 struct IVRDEServerChangedEvent_vtbl
27910 {
27911     struct IEvent_vtbl ievent;
27912 
27913     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27914 
27915 };
27916 #   else /* VBOX_WITH_GLUE */
27917 struct IVRDEServerChangedEventVtbl
27918 {
27919     nsresult (*QueryInterface)(IVRDEServerChangedEvent *pThis, const nsID *iid, void **resultp);
27920     nsrefcnt (*AddRef)(IVRDEServerChangedEvent *pThis);
27921     nsrefcnt (*Release)(IVRDEServerChangedEvent *pThis);
27922     nsresult (*GetType)(IVRDEServerChangedEvent *pThis, PRUint32 *type);
27923 
27924     nsresult (*GetSource)(IVRDEServerChangedEvent *pThis, IEventSource * *source);
27925 
27926     nsresult (*GetWaitable)(IVRDEServerChangedEvent *pThis, PRBool *waitable);
27927 
27928     nsresult (*SetProcessed)(IVRDEServerChangedEvent *pThis );
27929 
27930     nsresult (*WaitProcessed)(
27931         IVRDEServerChangedEvent *pThis,
27932         PRInt32 timeout,
27933         PRBool * result
27934     );
27935 
27936     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27937 
27938 };
27939 #    define IVRDEServerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
27940 #    define IVRDEServerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
27941 #    define IVRDEServerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
27942 #    define IVRDEServerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
27943 #    define IVRDEServerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
27944 #    define IVRDEServerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27945 #    define IVRDEServerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
27946 #    define IVRDEServerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27947 #    define IVRDEServerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
27948 #    define IVRDEServerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
27949 #    define IVRDEServerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
27950 #    define IVRDEServerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27951 #    define IVRDEServerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
27952 #   endif /* VBOX_WITH_GLUE */
27953 
27954 interface IVRDEServerChangedEvent
27955 {
27956 #   ifndef VBOX_WITH_GLUE
27957     struct IVRDEServerChangedEvent_vtbl *vtbl;
27958 #   else /* VBOX_WITH_GLUE */
27959     CONST_VTBL struct IVRDEServerChangedEventVtbl *lpVtbl;
27960 #   endif /* VBOX_WITH_GLUE */
27961 };
27962 /* End of struct IVRDEServerChangedEvent declaration */
27963 
27964 
27965 /* Start of struct IVRDEServerInfoChangedEvent declaration */
27966 #   define IVRDESERVERINFOCHANGEDEVENT_IID_STR "dd6a1080-e1b7-4339-a549-f0878115596e"
27967 #   define IVRDESERVERINFOCHANGEDEVENT_IID { \
27968     0xdd6a1080, 0xe1b7, 0x4339, \
27969     { 0xa5, 0x49, 0xf0, 0x87, 0x81, 0x15, 0x59, 0x6e } \
27970 }
27971 /* COM compatibility */
27972 VBOX_EXTERN_CONST(nsIID, IID_IVRDEServerInfoChangedEvent);
27973 #   ifndef VBOX_WITH_GLUE
27974 struct IVRDEServerInfoChangedEvent_vtbl
27975 {
27976     struct IEvent_vtbl ievent;
27977 
27978     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerInfoChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
27979 
27980 };
27981 #   else /* VBOX_WITH_GLUE */
27982 struct IVRDEServerInfoChangedEventVtbl
27983 {
27984     nsresult (*QueryInterface)(IVRDEServerInfoChangedEvent *pThis, const nsID *iid, void **resultp);
27985     nsrefcnt (*AddRef)(IVRDEServerInfoChangedEvent *pThis);
27986     nsrefcnt (*Release)(IVRDEServerInfoChangedEvent *pThis);
27987     nsresult (*GetType)(IVRDEServerInfoChangedEvent *pThis, PRUint32 *type);
27988 
27989     nsresult (*GetSource)(IVRDEServerInfoChangedEvent *pThis, IEventSource * *source);
27990 
27991     nsresult (*GetWaitable)(IVRDEServerInfoChangedEvent *pThis, PRBool *waitable);
27992 
27993     nsresult (*SetProcessed)(IVRDEServerInfoChangedEvent *pThis );
27994 
27995     nsresult (*WaitProcessed)(
27996         IVRDEServerInfoChangedEvent *pThis,
27997         PRInt32 timeout,
27998         PRBool * result
27999     );
28000 
28001     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IVRDEServerInfoChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28002 
28003 };
28004 #    define IVRDEServerInfoChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28005 #    define IVRDEServerInfoChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28006 #    define IVRDEServerInfoChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28007 #    define IVRDEServerInfoChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28008 #    define IVRDEServerInfoChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28009 #    define IVRDEServerInfoChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28010 #    define IVRDEServerInfoChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28011 #    define IVRDEServerInfoChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28012 #    define IVRDEServerInfoChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28013 #    define IVRDEServerInfoChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28014 #    define IVRDEServerInfoChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28015 #    define IVRDEServerInfoChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28016 #    define IVRDEServerInfoChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28017 #   endif /* VBOX_WITH_GLUE */
28018 
28019 interface IVRDEServerInfoChangedEvent
28020 {
28021 #   ifndef VBOX_WITH_GLUE
28022     struct IVRDEServerInfoChangedEvent_vtbl *vtbl;
28023 #   else /* VBOX_WITH_GLUE */
28024     CONST_VTBL struct IVRDEServerInfoChangedEventVtbl *lpVtbl;
28025 #   endif /* VBOX_WITH_GLUE */
28026 };
28027 /* End of struct IVRDEServerInfoChangedEvent declaration */
28028 
28029 
28030 /* Start of struct IRecordingChangedEvent declaration */
28031 #   define IRECORDINGCHANGEDEVENT_IID_STR "B5DDB370-08A7-4C8F-910D-47AABD67253A"
28032 #   define IRECORDINGCHANGEDEVENT_IID { \
28033     0xB5DDB370, 0x08A7, 0x4C8F, \
28034     { 0x91, 0x0D, 0x47, 0xAA, 0xBD, 0x67, 0x25, 0x3A } \
28035 }
28036 /* COM compatibility */
28037 VBOX_EXTERN_CONST(nsIID, IID_IRecordingChangedEvent);
28038 #   ifndef VBOX_WITH_GLUE
28039 struct IRecordingChangedEvent_vtbl
28040 {
28041     struct IEvent_vtbl ievent;
28042 
28043     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IRecordingChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28044 
28045 };
28046 #   else /* VBOX_WITH_GLUE */
28047 struct IRecordingChangedEventVtbl
28048 {
28049     nsresult (*QueryInterface)(IRecordingChangedEvent *pThis, const nsID *iid, void **resultp);
28050     nsrefcnt (*AddRef)(IRecordingChangedEvent *pThis);
28051     nsrefcnt (*Release)(IRecordingChangedEvent *pThis);
28052     nsresult (*GetType)(IRecordingChangedEvent *pThis, PRUint32 *type);
28053 
28054     nsresult (*GetSource)(IRecordingChangedEvent *pThis, IEventSource * *source);
28055 
28056     nsresult (*GetWaitable)(IRecordingChangedEvent *pThis, PRBool *waitable);
28057 
28058     nsresult (*SetProcessed)(IRecordingChangedEvent *pThis );
28059 
28060     nsresult (*WaitProcessed)(
28061         IRecordingChangedEvent *pThis,
28062         PRInt32 timeout,
28063         PRBool * result
28064     );
28065 
28066     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IRecordingChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28067 
28068 };
28069 #    define IRecordingChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28070 #    define IRecordingChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28071 #    define IRecordingChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28072 #    define IRecordingChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28073 #    define IRecordingChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28074 #    define IRecordingChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28075 #    define IRecordingChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28076 #    define IRecordingChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28077 #    define IRecordingChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28078 #    define IRecordingChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28079 #    define IRecordingChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28080 #    define IRecordingChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28081 #    define IRecordingChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28082 #   endif /* VBOX_WITH_GLUE */
28083 
28084 interface IRecordingChangedEvent
28085 {
28086 #   ifndef VBOX_WITH_GLUE
28087     struct IRecordingChangedEvent_vtbl *vtbl;
28088 #   else /* VBOX_WITH_GLUE */
28089     CONST_VTBL struct IRecordingChangedEventVtbl *lpVtbl;
28090 #   endif /* VBOX_WITH_GLUE */
28091 };
28092 /* End of struct IRecordingChangedEvent declaration */
28093 
28094 
28095 /* Start of struct IUSBControllerChangedEvent declaration */
28096 #   define IUSBCONTROLLERCHANGEDEVENT_IID_STR "93BADC0C-61D9-4940-A084-E6BB29AF3D83"
28097 #   define IUSBCONTROLLERCHANGEDEVENT_IID { \
28098     0x93BADC0C, 0x61D9, 0x4940, \
28099     { 0xA0, 0x84, 0xE6, 0xBB, 0x29, 0xAF, 0x3D, 0x83 } \
28100 }
28101 /* COM compatibility */
28102 VBOX_EXTERN_CONST(nsIID, IID_IUSBControllerChangedEvent);
28103 #   ifndef VBOX_WITH_GLUE
28104 struct IUSBControllerChangedEvent_vtbl
28105 {
28106     struct IEvent_vtbl ievent;
28107 
28108     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IUSBControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28109 
28110 };
28111 #   else /* VBOX_WITH_GLUE */
28112 struct IUSBControllerChangedEventVtbl
28113 {
28114     nsresult (*QueryInterface)(IUSBControllerChangedEvent *pThis, const nsID *iid, void **resultp);
28115     nsrefcnt (*AddRef)(IUSBControllerChangedEvent *pThis);
28116     nsrefcnt (*Release)(IUSBControllerChangedEvent *pThis);
28117     nsresult (*GetType)(IUSBControllerChangedEvent *pThis, PRUint32 *type);
28118 
28119     nsresult (*GetSource)(IUSBControllerChangedEvent *pThis, IEventSource * *source);
28120 
28121     nsresult (*GetWaitable)(IUSBControllerChangedEvent *pThis, PRBool *waitable);
28122 
28123     nsresult (*SetProcessed)(IUSBControllerChangedEvent *pThis );
28124 
28125     nsresult (*WaitProcessed)(
28126         IUSBControllerChangedEvent *pThis,
28127         PRInt32 timeout,
28128         PRBool * result
28129     );
28130 
28131     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IUSBControllerChangedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28132 
28133 };
28134 #    define IUSBControllerChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28135 #    define IUSBControllerChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28136 #    define IUSBControllerChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28137 #    define IUSBControllerChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28138 #    define IUSBControllerChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28139 #    define IUSBControllerChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28140 #    define IUSBControllerChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28141 #    define IUSBControllerChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28142 #    define IUSBControllerChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28143 #    define IUSBControllerChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28144 #    define IUSBControllerChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28145 #    define IUSBControllerChangedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28146 #    define IUSBControllerChangedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28147 #   endif /* VBOX_WITH_GLUE */
28148 
28149 interface IUSBControllerChangedEvent
28150 {
28151 #   ifndef VBOX_WITH_GLUE
28152     struct IUSBControllerChangedEvent_vtbl *vtbl;
28153 #   else /* VBOX_WITH_GLUE */
28154     CONST_VTBL struct IUSBControllerChangedEventVtbl *lpVtbl;
28155 #   endif /* VBOX_WITH_GLUE */
28156 };
28157 /* End of struct IUSBControllerChangedEvent declaration */
28158 
28159 
28160 /* Start of struct IUSBDeviceStateChangedEvent declaration */
28161 #   define IUSBDEVICESTATECHANGEDEVENT_IID_STR "806da61b-6679-422a-b629-51b06b0c6d93"
28162 #   define IUSBDEVICESTATECHANGEDEVENT_IID { \
28163     0x806da61b, 0x6679, 0x422a, \
28164     { 0xb6, 0x29, 0x51, 0xb0, 0x6b, 0x0c, 0x6d, 0x93 } \
28165 }
28166 /* COM compatibility */
28167 VBOX_EXTERN_CONST(nsIID, IID_IUSBDeviceStateChangedEvent);
28168 #   ifndef VBOX_WITH_GLUE
28169 struct IUSBDeviceStateChangedEvent_vtbl
28170 {
28171     struct IEvent_vtbl ievent;
28172 
28173     nsresult (*GetDevice)(IUSBDeviceStateChangedEvent *pThis, IUSBDevice * *device);
28174 
28175     nsresult (*GetAttached)(IUSBDeviceStateChangedEvent *pThis, PRBool *attached);
28176 
28177     nsresult (*GetError)(IUSBDeviceStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
28178 
28179 };
28180 #   else /* VBOX_WITH_GLUE */
28181 struct IUSBDeviceStateChangedEventVtbl
28182 {
28183     nsresult (*QueryInterface)(IUSBDeviceStateChangedEvent *pThis, const nsID *iid, void **resultp);
28184     nsrefcnt (*AddRef)(IUSBDeviceStateChangedEvent *pThis);
28185     nsrefcnt (*Release)(IUSBDeviceStateChangedEvent *pThis);
28186     nsresult (*GetType)(IUSBDeviceStateChangedEvent *pThis, PRUint32 *type);
28187 
28188     nsresult (*GetSource)(IUSBDeviceStateChangedEvent *pThis, IEventSource * *source);
28189 
28190     nsresult (*GetWaitable)(IUSBDeviceStateChangedEvent *pThis, PRBool *waitable);
28191 
28192     nsresult (*SetProcessed)(IUSBDeviceStateChangedEvent *pThis );
28193 
28194     nsresult (*WaitProcessed)(
28195         IUSBDeviceStateChangedEvent *pThis,
28196         PRInt32 timeout,
28197         PRBool * result
28198     );
28199 
28200     nsresult (*GetDevice)(IUSBDeviceStateChangedEvent *pThis, IUSBDevice * *device);
28201 
28202     nsresult (*GetAttached)(IUSBDeviceStateChangedEvent *pThis, PRBool *attached);
28203 
28204     nsresult (*GetError)(IUSBDeviceStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
28205 
28206 };
28207 #    define IUSBDeviceStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28208 #    define IUSBDeviceStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28209 #    define IUSBDeviceStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28210 #    define IUSBDeviceStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28211 #    define IUSBDeviceStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28212 #    define IUSBDeviceStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28213 #    define IUSBDeviceStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28214 #    define IUSBDeviceStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28215 #    define IUSBDeviceStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28216 #    define IUSBDeviceStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28217 #    define IUSBDeviceStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28218 #    define IUSBDeviceStateChangedEvent_get_Device(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
28219 #    define IUSBDeviceStateChangedEvent_GetDevice(p, aDevice) ((p)->lpVtbl->GetDevice(p, aDevice))
28220 #    define IUSBDeviceStateChangedEvent_get_Attached(p, aAttached) ((p)->lpVtbl->GetAttached(p, aAttached))
28221 #    define IUSBDeviceStateChangedEvent_GetAttached(p, aAttached) ((p)->lpVtbl->GetAttached(p, aAttached))
28222 #    define IUSBDeviceStateChangedEvent_get_Error(p, aError) ((p)->lpVtbl->GetError(p, aError))
28223 #    define IUSBDeviceStateChangedEvent_GetError(p, aError) ((p)->lpVtbl->GetError(p, aError))
28224 #   endif /* VBOX_WITH_GLUE */
28225 
28226 interface IUSBDeviceStateChangedEvent
28227 {
28228 #   ifndef VBOX_WITH_GLUE
28229     struct IUSBDeviceStateChangedEvent_vtbl *vtbl;
28230 #   else /* VBOX_WITH_GLUE */
28231     CONST_VTBL struct IUSBDeviceStateChangedEventVtbl *lpVtbl;
28232 #   endif /* VBOX_WITH_GLUE */
28233 };
28234 /* End of struct IUSBDeviceStateChangedEvent declaration */
28235 
28236 
28237 /* Start of struct ISharedFolderChangedEvent declaration */
28238 #   define ISHAREDFOLDERCHANGEDEVENT_IID_STR "B66349B5-3534-4239-B2DE-8E1535D94C0B"
28239 #   define ISHAREDFOLDERCHANGEDEVENT_IID { \
28240     0xB66349B5, 0x3534, 0x4239, \
28241     { 0xB2, 0xDE, 0x8E, 0x15, 0x35, 0xD9, 0x4C, 0x0B } \
28242 }
28243 /* COM compatibility */
28244 VBOX_EXTERN_CONST(nsIID, IID_ISharedFolderChangedEvent);
28245 #   ifndef VBOX_WITH_GLUE
28246 struct ISharedFolderChangedEvent_vtbl
28247 {
28248     struct IEvent_vtbl ievent;
28249 
28250     nsresult (*GetScope)(ISharedFolderChangedEvent *pThis, PRUint32 *scope);
28251 
28252 };
28253 #   else /* VBOX_WITH_GLUE */
28254 struct ISharedFolderChangedEventVtbl
28255 {
28256     nsresult (*QueryInterface)(ISharedFolderChangedEvent *pThis, const nsID *iid, void **resultp);
28257     nsrefcnt (*AddRef)(ISharedFolderChangedEvent *pThis);
28258     nsrefcnt (*Release)(ISharedFolderChangedEvent *pThis);
28259     nsresult (*GetType)(ISharedFolderChangedEvent *pThis, PRUint32 *type);
28260 
28261     nsresult (*GetSource)(ISharedFolderChangedEvent *pThis, IEventSource * *source);
28262 
28263     nsresult (*GetWaitable)(ISharedFolderChangedEvent *pThis, PRBool *waitable);
28264 
28265     nsresult (*SetProcessed)(ISharedFolderChangedEvent *pThis );
28266 
28267     nsresult (*WaitProcessed)(
28268         ISharedFolderChangedEvent *pThis,
28269         PRInt32 timeout,
28270         PRBool * result
28271     );
28272 
28273     nsresult (*GetScope)(ISharedFolderChangedEvent *pThis, PRUint32 *scope);
28274 
28275 };
28276 #    define ISharedFolderChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28277 #    define ISharedFolderChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28278 #    define ISharedFolderChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28279 #    define ISharedFolderChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28280 #    define ISharedFolderChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28281 #    define ISharedFolderChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28282 #    define ISharedFolderChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28283 #    define ISharedFolderChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28284 #    define ISharedFolderChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28285 #    define ISharedFolderChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28286 #    define ISharedFolderChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28287 #    define ISharedFolderChangedEvent_get_Scope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
28288 #    define ISharedFolderChangedEvent_GetScope(p, aScope) ((p)->lpVtbl->GetScope(p, aScope))
28289 #   endif /* VBOX_WITH_GLUE */
28290 
28291 interface ISharedFolderChangedEvent
28292 {
28293 #   ifndef VBOX_WITH_GLUE
28294     struct ISharedFolderChangedEvent_vtbl *vtbl;
28295 #   else /* VBOX_WITH_GLUE */
28296     CONST_VTBL struct ISharedFolderChangedEventVtbl *lpVtbl;
28297 #   endif /* VBOX_WITH_GLUE */
28298 };
28299 /* End of struct ISharedFolderChangedEvent declaration */
28300 
28301 
28302 /* Start of struct IRuntimeErrorEvent declaration */
28303 #   define IRUNTIMEERROREVENT_IID_STR "883DD18B-0721-4CDE-867C-1A82ABAF914C"
28304 #   define IRUNTIMEERROREVENT_IID { \
28305     0x883DD18B, 0x0721, 0x4CDE, \
28306     { 0x86, 0x7C, 0x1A, 0x82, 0xAB, 0xAF, 0x91, 0x4C } \
28307 }
28308 /* COM compatibility */
28309 VBOX_EXTERN_CONST(nsIID, IID_IRuntimeErrorEvent);
28310 #   ifndef VBOX_WITH_GLUE
28311 struct IRuntimeErrorEvent_vtbl
28312 {
28313     struct IEvent_vtbl ievent;
28314 
28315     nsresult (*GetFatal)(IRuntimeErrorEvent *pThis, PRBool *fatal);
28316 
28317     nsresult (*GetId)(IRuntimeErrorEvent *pThis, PRUnichar * *id);
28318 
28319     nsresult (*GetMessage)(IRuntimeErrorEvent *pThis, PRUnichar * *message);
28320 
28321 };
28322 #   else /* VBOX_WITH_GLUE */
28323 struct IRuntimeErrorEventVtbl
28324 {
28325     nsresult (*QueryInterface)(IRuntimeErrorEvent *pThis, const nsID *iid, void **resultp);
28326     nsrefcnt (*AddRef)(IRuntimeErrorEvent *pThis);
28327     nsrefcnt (*Release)(IRuntimeErrorEvent *pThis);
28328     nsresult (*GetType)(IRuntimeErrorEvent *pThis, PRUint32 *type);
28329 
28330     nsresult (*GetSource)(IRuntimeErrorEvent *pThis, IEventSource * *source);
28331 
28332     nsresult (*GetWaitable)(IRuntimeErrorEvent *pThis, PRBool *waitable);
28333 
28334     nsresult (*SetProcessed)(IRuntimeErrorEvent *pThis );
28335 
28336     nsresult (*WaitProcessed)(
28337         IRuntimeErrorEvent *pThis,
28338         PRInt32 timeout,
28339         PRBool * result
28340     );
28341 
28342     nsresult (*GetFatal)(IRuntimeErrorEvent *pThis, PRBool *fatal);
28343 
28344     nsresult (*GetId)(IRuntimeErrorEvent *pThis, PRUnichar * *id);
28345 
28346     nsresult (*GetMessage)(IRuntimeErrorEvent *pThis, PRUnichar * *message);
28347 
28348 };
28349 #    define IRuntimeErrorEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28350 #    define IRuntimeErrorEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28351 #    define IRuntimeErrorEvent_Release(p) ((p)->lpVtbl->Release(p))
28352 #    define IRuntimeErrorEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28353 #    define IRuntimeErrorEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28354 #    define IRuntimeErrorEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28355 #    define IRuntimeErrorEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28356 #    define IRuntimeErrorEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28357 #    define IRuntimeErrorEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28358 #    define IRuntimeErrorEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28359 #    define IRuntimeErrorEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28360 #    define IRuntimeErrorEvent_get_Fatal(p, aFatal) ((p)->lpVtbl->GetFatal(p, aFatal))
28361 #    define IRuntimeErrorEvent_GetFatal(p, aFatal) ((p)->lpVtbl->GetFatal(p, aFatal))
28362 #    define IRuntimeErrorEvent_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
28363 #    define IRuntimeErrorEvent_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
28364 #    define IRuntimeErrorEvent_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
28365 #    define IRuntimeErrorEvent_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
28366 #   endif /* VBOX_WITH_GLUE */
28367 
28368 interface IRuntimeErrorEvent
28369 {
28370 #   ifndef VBOX_WITH_GLUE
28371     struct IRuntimeErrorEvent_vtbl *vtbl;
28372 #   else /* VBOX_WITH_GLUE */
28373     CONST_VTBL struct IRuntimeErrorEventVtbl *lpVtbl;
28374 #   endif /* VBOX_WITH_GLUE */
28375 };
28376 /* End of struct IRuntimeErrorEvent declaration */
28377 
28378 
28379 /* Start of struct IEventSourceChangedEvent declaration */
28380 #   define IEVENTSOURCECHANGEDEVENT_IID_STR "e7932cb8-f6d4-4ab6-9cbf-558eb8959a6a"
28381 #   define IEVENTSOURCECHANGEDEVENT_IID { \
28382     0xe7932cb8, 0xf6d4, 0x4ab6, \
28383     { 0x9c, 0xbf, 0x55, 0x8e, 0xb8, 0x95, 0x9a, 0x6a } \
28384 }
28385 /* COM compatibility */
28386 VBOX_EXTERN_CONST(nsIID, IID_IEventSourceChangedEvent);
28387 #   ifndef VBOX_WITH_GLUE
28388 struct IEventSourceChangedEvent_vtbl
28389 {
28390     struct IEvent_vtbl ievent;
28391 
28392     nsresult (*GetListener)(IEventSourceChangedEvent *pThis, IEventListener * *listener);
28393 
28394     nsresult (*GetAdd)(IEventSourceChangedEvent *pThis, PRBool *add);
28395 
28396 };
28397 #   else /* VBOX_WITH_GLUE */
28398 struct IEventSourceChangedEventVtbl
28399 {
28400     nsresult (*QueryInterface)(IEventSourceChangedEvent *pThis, const nsID *iid, void **resultp);
28401     nsrefcnt (*AddRef)(IEventSourceChangedEvent *pThis);
28402     nsrefcnt (*Release)(IEventSourceChangedEvent *pThis);
28403     nsresult (*GetType)(IEventSourceChangedEvent *pThis, PRUint32 *type);
28404 
28405     nsresult (*GetSource)(IEventSourceChangedEvent *pThis, IEventSource * *source);
28406 
28407     nsresult (*GetWaitable)(IEventSourceChangedEvent *pThis, PRBool *waitable);
28408 
28409     nsresult (*SetProcessed)(IEventSourceChangedEvent *pThis );
28410 
28411     nsresult (*WaitProcessed)(
28412         IEventSourceChangedEvent *pThis,
28413         PRInt32 timeout,
28414         PRBool * result
28415     );
28416 
28417     nsresult (*GetListener)(IEventSourceChangedEvent *pThis, IEventListener * *listener);
28418 
28419     nsresult (*GetAdd)(IEventSourceChangedEvent *pThis, PRBool *add);
28420 
28421 };
28422 #    define IEventSourceChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28423 #    define IEventSourceChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28424 #    define IEventSourceChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28425 #    define IEventSourceChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28426 #    define IEventSourceChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28427 #    define IEventSourceChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28428 #    define IEventSourceChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28429 #    define IEventSourceChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28430 #    define IEventSourceChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28431 #    define IEventSourceChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28432 #    define IEventSourceChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28433 #    define IEventSourceChangedEvent_get_Listener(p, aListener) ((p)->lpVtbl->GetListener(p, aListener))
28434 #    define IEventSourceChangedEvent_GetListener(p, aListener) ((p)->lpVtbl->GetListener(p, aListener))
28435 #    define IEventSourceChangedEvent_get_Add(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
28436 #    define IEventSourceChangedEvent_GetAdd(p, aAdd) ((p)->lpVtbl->GetAdd(p, aAdd))
28437 #   endif /* VBOX_WITH_GLUE */
28438 
28439 interface IEventSourceChangedEvent
28440 {
28441 #   ifndef VBOX_WITH_GLUE
28442     struct IEventSourceChangedEvent_vtbl *vtbl;
28443 #   else /* VBOX_WITH_GLUE */
28444     CONST_VTBL struct IEventSourceChangedEventVtbl *lpVtbl;
28445 #   endif /* VBOX_WITH_GLUE */
28446 };
28447 /* End of struct IEventSourceChangedEvent declaration */
28448 
28449 
28450 /* Start of struct IExtraDataChangedEvent declaration */
28451 #   define IEXTRADATACHANGEDEVENT_IID_STR "024F00CE-6E0B-492A-A8D0-968472A94DC7"
28452 #   define IEXTRADATACHANGEDEVENT_IID { \
28453     0x024F00CE, 0x6E0B, 0x492A, \
28454     { 0xA8, 0xD0, 0x96, 0x84, 0x72, 0xA9, 0x4D, 0xC7 } \
28455 }
28456 /* COM compatibility */
28457 VBOX_EXTERN_CONST(nsIID, IID_IExtraDataChangedEvent);
28458 #   ifndef VBOX_WITH_GLUE
28459 struct IExtraDataChangedEvent_vtbl
28460 {
28461     struct IEvent_vtbl ievent;
28462 
28463     nsresult (*GetMachineId)(IExtraDataChangedEvent *pThis, PRUnichar * *machineId);
28464 
28465     nsresult (*GetKey)(IExtraDataChangedEvent *pThis, PRUnichar * *key);
28466 
28467     nsresult (*GetValue)(IExtraDataChangedEvent *pThis, PRUnichar * *value);
28468 
28469 };
28470 #   else /* VBOX_WITH_GLUE */
28471 struct IExtraDataChangedEventVtbl
28472 {
28473     nsresult (*QueryInterface)(IExtraDataChangedEvent *pThis, const nsID *iid, void **resultp);
28474     nsrefcnt (*AddRef)(IExtraDataChangedEvent *pThis);
28475     nsrefcnt (*Release)(IExtraDataChangedEvent *pThis);
28476     nsresult (*GetType)(IExtraDataChangedEvent *pThis, PRUint32 *type);
28477 
28478     nsresult (*GetSource)(IExtraDataChangedEvent *pThis, IEventSource * *source);
28479 
28480     nsresult (*GetWaitable)(IExtraDataChangedEvent *pThis, PRBool *waitable);
28481 
28482     nsresult (*SetProcessed)(IExtraDataChangedEvent *pThis );
28483 
28484     nsresult (*WaitProcessed)(
28485         IExtraDataChangedEvent *pThis,
28486         PRInt32 timeout,
28487         PRBool * result
28488     );
28489 
28490     nsresult (*GetMachineId)(IExtraDataChangedEvent *pThis, PRUnichar * *machineId);
28491 
28492     nsresult (*GetKey)(IExtraDataChangedEvent *pThis, PRUnichar * *key);
28493 
28494     nsresult (*GetValue)(IExtraDataChangedEvent *pThis, PRUnichar * *value);
28495 
28496 };
28497 #    define IExtraDataChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28498 #    define IExtraDataChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28499 #    define IExtraDataChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
28500 #    define IExtraDataChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28501 #    define IExtraDataChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28502 #    define IExtraDataChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28503 #    define IExtraDataChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28504 #    define IExtraDataChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28505 #    define IExtraDataChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28506 #    define IExtraDataChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28507 #    define IExtraDataChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28508 #    define IExtraDataChangedEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
28509 #    define IExtraDataChangedEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
28510 #    define IExtraDataChangedEvent_get_Key(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
28511 #    define IExtraDataChangedEvent_GetKey(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
28512 #    define IExtraDataChangedEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
28513 #    define IExtraDataChangedEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
28514 #   endif /* VBOX_WITH_GLUE */
28515 
28516 interface IExtraDataChangedEvent
28517 {
28518 #   ifndef VBOX_WITH_GLUE
28519     struct IExtraDataChangedEvent_vtbl *vtbl;
28520 #   else /* VBOX_WITH_GLUE */
28521     CONST_VTBL struct IExtraDataChangedEventVtbl *lpVtbl;
28522 #   endif /* VBOX_WITH_GLUE */
28523 };
28524 /* End of struct IExtraDataChangedEvent declaration */
28525 
28526 
28527 /* Start of struct IVetoEvent declaration */
28528 #   define IVETOEVENT_IID_STR "7c5e945f-2354-4267-883f-2f417d216519"
28529 #   define IVETOEVENT_IID { \
28530     0x7c5e945f, 0x2354, 0x4267, \
28531     { 0x88, 0x3f, 0x2f, 0x41, 0x7d, 0x21, 0x65, 0x19 } \
28532 }
28533 /* COM compatibility */
28534 VBOX_EXTERN_CONST(nsIID, IID_IVetoEvent);
28535 #   ifndef VBOX_WITH_GLUE
28536 struct IVetoEvent_vtbl
28537 {
28538     struct IEvent_vtbl ievent;
28539 
28540     nsresult (*AddVeto)(
28541         IVetoEvent *pThis,
28542         PRUnichar * reason
28543     );
28544 
28545     nsresult (*IsVetoed)(
28546         IVetoEvent *pThis,
28547         PRBool * result
28548     );
28549 
28550     nsresult (*GetVetos)(
28551         IVetoEvent *pThis,
28552         PRUint32 *resultSize,
28553         PRUnichar *** result
28554     );
28555 
28556     nsresult (*AddApproval)(
28557         IVetoEvent *pThis,
28558         PRUnichar * reason
28559     );
28560 
28561     nsresult (*IsApproved)(
28562         IVetoEvent *pThis,
28563         PRBool * result
28564     );
28565 
28566     nsresult (*GetApprovals)(
28567         IVetoEvent *pThis,
28568         PRUint32 *resultSize,
28569         PRUnichar *** result
28570     );
28571 
28572 };
28573 #   else /* VBOX_WITH_GLUE */
28574 struct IVetoEventVtbl
28575 {
28576     nsresult (*QueryInterface)(IVetoEvent *pThis, const nsID *iid, void **resultp);
28577     nsrefcnt (*AddRef)(IVetoEvent *pThis);
28578     nsrefcnt (*Release)(IVetoEvent *pThis);
28579     nsresult (*GetType)(IVetoEvent *pThis, PRUint32 *type);
28580 
28581     nsresult (*GetSource)(IVetoEvent *pThis, IEventSource * *source);
28582 
28583     nsresult (*GetWaitable)(IVetoEvent *pThis, PRBool *waitable);
28584 
28585     nsresult (*SetProcessed)(IVetoEvent *pThis );
28586 
28587     nsresult (*WaitProcessed)(
28588         IVetoEvent *pThis,
28589         PRInt32 timeout,
28590         PRBool * result
28591     );
28592 
28593     nsresult (*AddVeto)(
28594         IVetoEvent *pThis,
28595         PRUnichar * reason
28596     );
28597 
28598     nsresult (*IsVetoed)(
28599         IVetoEvent *pThis,
28600         PRBool * result
28601     );
28602 
28603     nsresult (*GetVetos)(
28604         IVetoEvent *pThis,
28605         PRUint32 *resultSize,
28606         PRUnichar *** result
28607     );
28608 
28609     nsresult (*AddApproval)(
28610         IVetoEvent *pThis,
28611         PRUnichar * reason
28612     );
28613 
28614     nsresult (*IsApproved)(
28615         IVetoEvent *pThis,
28616         PRBool * result
28617     );
28618 
28619     nsresult (*GetApprovals)(
28620         IVetoEvent *pThis,
28621         PRUint32 *resultSize,
28622         PRUnichar *** result
28623     );
28624 
28625 };
28626 #    define IVetoEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28627 #    define IVetoEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28628 #    define IVetoEvent_Release(p) ((p)->lpVtbl->Release(p))
28629 #    define IVetoEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28630 #    define IVetoEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28631 #    define IVetoEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28632 #    define IVetoEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28633 #    define IVetoEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28634 #    define IVetoEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28635 #    define IVetoEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28636 #    define IVetoEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28637 #    define IVetoEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
28638 #    define IVetoEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
28639 #    define IVetoEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
28640 #    define IVetoEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
28641 #    define IVetoEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
28642 #    define IVetoEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
28643 #   endif /* VBOX_WITH_GLUE */
28644 
28645 interface IVetoEvent
28646 {
28647 #   ifndef VBOX_WITH_GLUE
28648     struct IVetoEvent_vtbl *vtbl;
28649 #   else /* VBOX_WITH_GLUE */
28650     CONST_VTBL struct IVetoEventVtbl *lpVtbl;
28651 #   endif /* VBOX_WITH_GLUE */
28652 };
28653 /* End of struct IVetoEvent declaration */
28654 
28655 
28656 /* Start of struct IExtraDataCanChangeEvent declaration */
28657 #   define IEXTRADATACANCHANGEEVENT_IID_STR "245d88bd-800a-40f8-87a6-170d02249a55"
28658 #   define IEXTRADATACANCHANGEEVENT_IID { \
28659     0x245d88bd, 0x800a, 0x40f8, \
28660     { 0x87, 0xa6, 0x17, 0x0d, 0x02, 0x24, 0x9a, 0x55 } \
28661 }
28662 /* COM compatibility */
28663 VBOX_EXTERN_CONST(nsIID, IID_IExtraDataCanChangeEvent);
28664 #   ifndef VBOX_WITH_GLUE
28665 struct IExtraDataCanChangeEvent_vtbl
28666 {
28667     struct IVetoEvent_vtbl ivetoevent;
28668 
28669     nsresult (*GetMachineId)(IExtraDataCanChangeEvent *pThis, PRUnichar * *machineId);
28670 
28671     nsresult (*GetKey)(IExtraDataCanChangeEvent *pThis, PRUnichar * *key);
28672 
28673     nsresult (*GetValue)(IExtraDataCanChangeEvent *pThis, PRUnichar * *value);
28674 
28675 };
28676 #   else /* VBOX_WITH_GLUE */
28677 struct IExtraDataCanChangeEventVtbl
28678 {
28679     nsresult (*QueryInterface)(IExtraDataCanChangeEvent *pThis, const nsID *iid, void **resultp);
28680     nsrefcnt (*AddRef)(IExtraDataCanChangeEvent *pThis);
28681     nsrefcnt (*Release)(IExtraDataCanChangeEvent *pThis);
28682     nsresult (*GetType)(IExtraDataCanChangeEvent *pThis, PRUint32 *type);
28683 
28684     nsresult (*GetSource)(IExtraDataCanChangeEvent *pThis, IEventSource * *source);
28685 
28686     nsresult (*GetWaitable)(IExtraDataCanChangeEvent *pThis, PRBool *waitable);
28687 
28688     nsresult (*SetProcessed)(IExtraDataCanChangeEvent *pThis );
28689 
28690     nsresult (*WaitProcessed)(
28691         IExtraDataCanChangeEvent *pThis,
28692         PRInt32 timeout,
28693         PRBool * result
28694     );
28695 
28696     nsresult (*AddVeto)(
28697         IExtraDataCanChangeEvent *pThis,
28698         PRUnichar * reason
28699     );
28700 
28701     nsresult (*IsVetoed)(
28702         IExtraDataCanChangeEvent *pThis,
28703         PRBool * result
28704     );
28705 
28706     nsresult (*GetVetos)(
28707         IExtraDataCanChangeEvent *pThis,
28708         PRUint32 *resultSize,
28709         PRUnichar *** result
28710     );
28711 
28712     nsresult (*AddApproval)(
28713         IExtraDataCanChangeEvent *pThis,
28714         PRUnichar * reason
28715     );
28716 
28717     nsresult (*IsApproved)(
28718         IExtraDataCanChangeEvent *pThis,
28719         PRBool * result
28720     );
28721 
28722     nsresult (*GetApprovals)(
28723         IExtraDataCanChangeEvent *pThis,
28724         PRUint32 *resultSize,
28725         PRUnichar *** result
28726     );
28727 
28728     nsresult (*GetMachineId)(IExtraDataCanChangeEvent *pThis, PRUnichar * *machineId);
28729 
28730     nsresult (*GetKey)(IExtraDataCanChangeEvent *pThis, PRUnichar * *key);
28731 
28732     nsresult (*GetValue)(IExtraDataCanChangeEvent *pThis, PRUnichar * *value);
28733 
28734 };
28735 #    define IExtraDataCanChangeEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28736 #    define IExtraDataCanChangeEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28737 #    define IExtraDataCanChangeEvent_Release(p) ((p)->lpVtbl->Release(p))
28738 #    define IExtraDataCanChangeEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28739 #    define IExtraDataCanChangeEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28740 #    define IExtraDataCanChangeEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28741 #    define IExtraDataCanChangeEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28742 #    define IExtraDataCanChangeEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28743 #    define IExtraDataCanChangeEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28744 #    define IExtraDataCanChangeEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28745 #    define IExtraDataCanChangeEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28746 #    define IExtraDataCanChangeEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
28747 #    define IExtraDataCanChangeEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
28748 #    define IExtraDataCanChangeEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
28749 #    define IExtraDataCanChangeEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
28750 #    define IExtraDataCanChangeEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
28751 #    define IExtraDataCanChangeEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
28752 #    define IExtraDataCanChangeEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
28753 #    define IExtraDataCanChangeEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
28754 #    define IExtraDataCanChangeEvent_get_Key(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
28755 #    define IExtraDataCanChangeEvent_GetKey(p, aKey) ((p)->lpVtbl->GetKey(p, aKey))
28756 #    define IExtraDataCanChangeEvent_get_Value(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
28757 #    define IExtraDataCanChangeEvent_GetValue(p, aValue) ((p)->lpVtbl->GetValue(p, aValue))
28758 #   endif /* VBOX_WITH_GLUE */
28759 
28760 interface IExtraDataCanChangeEvent
28761 {
28762 #   ifndef VBOX_WITH_GLUE
28763     struct IExtraDataCanChangeEvent_vtbl *vtbl;
28764 #   else /* VBOX_WITH_GLUE */
28765     CONST_VTBL struct IExtraDataCanChangeEventVtbl *lpVtbl;
28766 #   endif /* VBOX_WITH_GLUE */
28767 };
28768 /* End of struct IExtraDataCanChangeEvent declaration */
28769 
28770 
28771 /* Start of struct ICanShowWindowEvent declaration */
28772 #   define ICANSHOWWINDOWEVENT_IID_STR "adf292b0-92c9-4a77-9d35-e058b39fe0b9"
28773 #   define ICANSHOWWINDOWEVENT_IID { \
28774     0xadf292b0, 0x92c9, 0x4a77, \
28775     { 0x9d, 0x35, 0xe0, 0x58, 0xb3, 0x9f, 0xe0, 0xb9 } \
28776 }
28777 /* COM compatibility */
28778 VBOX_EXTERN_CONST(nsIID, IID_ICanShowWindowEvent);
28779 #   ifndef VBOX_WITH_GLUE
28780 struct ICanShowWindowEvent_vtbl
28781 {
28782     struct IVetoEvent_vtbl ivetoevent;
28783 
28784     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ICanShowWindowEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28785 
28786 };
28787 #   else /* VBOX_WITH_GLUE */
28788 struct ICanShowWindowEventVtbl
28789 {
28790     nsresult (*QueryInterface)(ICanShowWindowEvent *pThis, const nsID *iid, void **resultp);
28791     nsrefcnt (*AddRef)(ICanShowWindowEvent *pThis);
28792     nsrefcnt (*Release)(ICanShowWindowEvent *pThis);
28793     nsresult (*GetType)(ICanShowWindowEvent *pThis, PRUint32 *type);
28794 
28795     nsresult (*GetSource)(ICanShowWindowEvent *pThis, IEventSource * *source);
28796 
28797     nsresult (*GetWaitable)(ICanShowWindowEvent *pThis, PRBool *waitable);
28798 
28799     nsresult (*SetProcessed)(ICanShowWindowEvent *pThis );
28800 
28801     nsresult (*WaitProcessed)(
28802         ICanShowWindowEvent *pThis,
28803         PRInt32 timeout,
28804         PRBool * result
28805     );
28806 
28807     nsresult (*AddVeto)(
28808         ICanShowWindowEvent *pThis,
28809         PRUnichar * reason
28810     );
28811 
28812     nsresult (*IsVetoed)(
28813         ICanShowWindowEvent *pThis,
28814         PRBool * result
28815     );
28816 
28817     nsresult (*GetVetos)(
28818         ICanShowWindowEvent *pThis,
28819         PRUint32 *resultSize,
28820         PRUnichar *** result
28821     );
28822 
28823     nsresult (*AddApproval)(
28824         ICanShowWindowEvent *pThis,
28825         PRUnichar * reason
28826     );
28827 
28828     nsresult (*IsApproved)(
28829         ICanShowWindowEvent *pThis,
28830         PRBool * result
28831     );
28832 
28833     nsresult (*GetApprovals)(
28834         ICanShowWindowEvent *pThis,
28835         PRUint32 *resultSize,
28836         PRUnichar *** result
28837     );
28838 
28839     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(ICanShowWindowEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
28840 
28841 };
28842 #    define ICanShowWindowEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28843 #    define ICanShowWindowEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28844 #    define ICanShowWindowEvent_Release(p) ((p)->lpVtbl->Release(p))
28845 #    define ICanShowWindowEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28846 #    define ICanShowWindowEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28847 #    define ICanShowWindowEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28848 #    define ICanShowWindowEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28849 #    define ICanShowWindowEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28850 #    define ICanShowWindowEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28851 #    define ICanShowWindowEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28852 #    define ICanShowWindowEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28853 #    define ICanShowWindowEvent_AddVeto(p, aReason) ((p)->lpVtbl->AddVeto(p, aReason))
28854 #    define ICanShowWindowEvent_IsVetoed(p, aResult) ((p)->lpVtbl->IsVetoed(p, aResult))
28855 #    define ICanShowWindowEvent_GetVetos(p, aResult) ((p)->lpVtbl->GetVetos(p, aResult))
28856 #    define ICanShowWindowEvent_AddApproval(p, aReason) ((p)->lpVtbl->AddApproval(p, aReason))
28857 #    define ICanShowWindowEvent_IsApproved(p, aResult) ((p)->lpVtbl->IsApproved(p, aResult))
28858 #    define ICanShowWindowEvent_GetApprovals(p, aResult) ((p)->lpVtbl->GetApprovals(p, aResult))
28859 #    define ICanShowWindowEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28860 #    define ICanShowWindowEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
28861 #   endif /* VBOX_WITH_GLUE */
28862 
28863 interface ICanShowWindowEvent
28864 {
28865 #   ifndef VBOX_WITH_GLUE
28866     struct ICanShowWindowEvent_vtbl *vtbl;
28867 #   else /* VBOX_WITH_GLUE */
28868     CONST_VTBL struct ICanShowWindowEventVtbl *lpVtbl;
28869 #   endif /* VBOX_WITH_GLUE */
28870 };
28871 /* End of struct ICanShowWindowEvent declaration */
28872 
28873 
28874 /* Start of struct IShowWindowEvent declaration */
28875 #   define ISHOWWINDOWEVENT_IID_STR "B0A0904D-2F05-4D28-855F-488F96BAD2B2"
28876 #   define ISHOWWINDOWEVENT_IID { \
28877     0xB0A0904D, 0x2F05, 0x4D28, \
28878     { 0x85, 0x5F, 0x48, 0x8F, 0x96, 0xBA, 0xD2, 0xB2 } \
28879 }
28880 /* COM compatibility */
28881 VBOX_EXTERN_CONST(nsIID, IID_IShowWindowEvent);
28882 #   ifndef VBOX_WITH_GLUE
28883 struct IShowWindowEvent_vtbl
28884 {
28885     struct IEvent_vtbl ievent;
28886 
28887     nsresult (*GetWinId)(IShowWindowEvent *pThis, PRInt64 *winId);
28888     nsresult (*SetWinId)(IShowWindowEvent *pThis, PRInt64 winId);
28889 
28890 };
28891 #   else /* VBOX_WITH_GLUE */
28892 struct IShowWindowEventVtbl
28893 {
28894     nsresult (*QueryInterface)(IShowWindowEvent *pThis, const nsID *iid, void **resultp);
28895     nsrefcnt (*AddRef)(IShowWindowEvent *pThis);
28896     nsrefcnt (*Release)(IShowWindowEvent *pThis);
28897     nsresult (*GetType)(IShowWindowEvent *pThis, PRUint32 *type);
28898 
28899     nsresult (*GetSource)(IShowWindowEvent *pThis, IEventSource * *source);
28900 
28901     nsresult (*GetWaitable)(IShowWindowEvent *pThis, PRBool *waitable);
28902 
28903     nsresult (*SetProcessed)(IShowWindowEvent *pThis );
28904 
28905     nsresult (*WaitProcessed)(
28906         IShowWindowEvent *pThis,
28907         PRInt32 timeout,
28908         PRBool * result
28909     );
28910 
28911     nsresult (*GetWinId)(IShowWindowEvent *pThis, PRInt64 *winId);
28912     nsresult (*SetWinId)(IShowWindowEvent *pThis, PRInt64 winId);
28913 
28914 };
28915 #    define IShowWindowEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
28916 #    define IShowWindowEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
28917 #    define IShowWindowEvent_Release(p) ((p)->lpVtbl->Release(p))
28918 #    define IShowWindowEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
28919 #    define IShowWindowEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
28920 #    define IShowWindowEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28921 #    define IShowWindowEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
28922 #    define IShowWindowEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28923 #    define IShowWindowEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
28924 #    define IShowWindowEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
28925 #    define IShowWindowEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
28926 #    define IShowWindowEvent_get_WinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
28927 #    define IShowWindowEvent_GetWinId(p, aWinId) ((p)->lpVtbl->GetWinId(p, aWinId))
28928 #    define IShowWindowEvent_put_WinId(p, aWinId) ((p)->lpVtbl->SetWinId(p, aWinId))
28929 #    define IShowWindowEvent_SetWinId(p, aWinId) ((p)->lpVtbl->SetWinId(p, aWinId))
28930 #   endif /* VBOX_WITH_GLUE */
28931 
28932 interface IShowWindowEvent
28933 {
28934 #   ifndef VBOX_WITH_GLUE
28935     struct IShowWindowEvent_vtbl *vtbl;
28936 #   else /* VBOX_WITH_GLUE */
28937     CONST_VTBL struct IShowWindowEventVtbl *lpVtbl;
28938 #   endif /* VBOX_WITH_GLUE */
28939 };
28940 /* End of struct IShowWindowEvent declaration */
28941 
28942 
28943 /* Start of struct INATRedirectEvent declaration */
28944 #   define INATREDIRECTEVENT_IID_STR "24eef068-c380-4510-bc7c-19314a7352f1"
28945 #   define INATREDIRECTEVENT_IID { \
28946     0x24eef068, 0xc380, 0x4510, \
28947     { 0xbc, 0x7c, 0x19, 0x31, 0x4a, 0x73, 0x52, 0xf1 } \
28948 }
28949 /* COM compatibility */
28950 VBOX_EXTERN_CONST(nsIID, IID_INATRedirectEvent);
28951 #   ifndef VBOX_WITH_GLUE
28952 struct INATRedirectEvent_vtbl
28953 {
28954     struct IMachineEvent_vtbl imachineevent;
28955 
28956     nsresult (*GetSlot)(INATRedirectEvent *pThis, PRUint32 *slot);
28957 
28958     nsresult (*GetRemove)(INATRedirectEvent *pThis, PRBool *remove);
28959 
28960     nsresult (*GetName)(INATRedirectEvent *pThis, PRUnichar * *name);
28961 
28962     nsresult (*GetProto)(INATRedirectEvent *pThis, PRUint32 *proto);
28963 
28964     nsresult (*GetHostIP)(INATRedirectEvent *pThis, PRUnichar * *hostIP);
28965 
28966     nsresult (*GetHostPort)(INATRedirectEvent *pThis, PRInt32 *hostPort);
28967 
28968     nsresult (*GetGuestIP)(INATRedirectEvent *pThis, PRUnichar * *guestIP);
28969 
28970     nsresult (*GetGuestPort)(INATRedirectEvent *pThis, PRInt32 *guestPort);
28971 
28972 };
28973 #   else /* VBOX_WITH_GLUE */
28974 struct INATRedirectEventVtbl
28975 {
28976     nsresult (*QueryInterface)(INATRedirectEvent *pThis, const nsID *iid, void **resultp);
28977     nsrefcnt (*AddRef)(INATRedirectEvent *pThis);
28978     nsrefcnt (*Release)(INATRedirectEvent *pThis);
28979     nsresult (*GetType)(INATRedirectEvent *pThis, PRUint32 *type);
28980 
28981     nsresult (*GetSource)(INATRedirectEvent *pThis, IEventSource * *source);
28982 
28983     nsresult (*GetWaitable)(INATRedirectEvent *pThis, PRBool *waitable);
28984 
28985     nsresult (*SetProcessed)(INATRedirectEvent *pThis );
28986 
28987     nsresult (*WaitProcessed)(
28988         INATRedirectEvent *pThis,
28989         PRInt32 timeout,
28990         PRBool * result
28991     );
28992 
28993     nsresult (*GetMachineId)(INATRedirectEvent *pThis, PRUnichar * *machineId);
28994 
28995     nsresult (*GetSlot)(INATRedirectEvent *pThis, PRUint32 *slot);
28996 
28997     nsresult (*GetRemove)(INATRedirectEvent *pThis, PRBool *remove);
28998 
28999     nsresult (*GetName)(INATRedirectEvent *pThis, PRUnichar * *name);
29000 
29001     nsresult (*GetProto)(INATRedirectEvent *pThis, PRUint32 *proto);
29002 
29003     nsresult (*GetHostIP)(INATRedirectEvent *pThis, PRUnichar * *hostIP);
29004 
29005     nsresult (*GetHostPort)(INATRedirectEvent *pThis, PRInt32 *hostPort);
29006 
29007     nsresult (*GetGuestIP)(INATRedirectEvent *pThis, PRUnichar * *guestIP);
29008 
29009     nsresult (*GetGuestPort)(INATRedirectEvent *pThis, PRInt32 *guestPort);
29010 
29011 };
29012 #    define INATRedirectEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29013 #    define INATRedirectEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29014 #    define INATRedirectEvent_Release(p) ((p)->lpVtbl->Release(p))
29015 #    define INATRedirectEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29016 #    define INATRedirectEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29017 #    define INATRedirectEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29018 #    define INATRedirectEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29019 #    define INATRedirectEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29020 #    define INATRedirectEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29021 #    define INATRedirectEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29022 #    define INATRedirectEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29023 #    define INATRedirectEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
29024 #    define INATRedirectEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
29025 #    define INATRedirectEvent_get_Slot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
29026 #    define INATRedirectEvent_GetSlot(p, aSlot) ((p)->lpVtbl->GetSlot(p, aSlot))
29027 #    define INATRedirectEvent_get_Remove(p, aRemove) ((p)->lpVtbl->GetRemove(p, aRemove))
29028 #    define INATRedirectEvent_GetRemove(p, aRemove) ((p)->lpVtbl->GetRemove(p, aRemove))
29029 #    define INATRedirectEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
29030 #    define INATRedirectEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
29031 #    define INATRedirectEvent_get_Proto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
29032 #    define INATRedirectEvent_GetProto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
29033 #    define INATRedirectEvent_get_HostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
29034 #    define INATRedirectEvent_GetHostIP(p, aHostIP) ((p)->lpVtbl->GetHostIP(p, aHostIP))
29035 #    define INATRedirectEvent_get_HostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
29036 #    define INATRedirectEvent_GetHostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
29037 #    define INATRedirectEvent_get_GuestIP(p, aGuestIP) ((p)->lpVtbl->GetGuestIP(p, aGuestIP))
29038 #    define INATRedirectEvent_GetGuestIP(p, aGuestIP) ((p)->lpVtbl->GetGuestIP(p, aGuestIP))
29039 #    define INATRedirectEvent_get_GuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
29040 #    define INATRedirectEvent_GetGuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
29041 #   endif /* VBOX_WITH_GLUE */
29042 
29043 interface INATRedirectEvent
29044 {
29045 #   ifndef VBOX_WITH_GLUE
29046     struct INATRedirectEvent_vtbl *vtbl;
29047 #   else /* VBOX_WITH_GLUE */
29048     CONST_VTBL struct INATRedirectEventVtbl *lpVtbl;
29049 #   endif /* VBOX_WITH_GLUE */
29050 };
29051 /* End of struct INATRedirectEvent declaration */
29052 
29053 
29054 /* Start of struct IHostPCIDevicePlugEvent declaration */
29055 #   define IHOSTPCIDEVICEPLUGEVENT_IID_STR "a0bad6df-d612-47d3-89d4-db3992533948"
29056 #   define IHOSTPCIDEVICEPLUGEVENT_IID { \
29057     0xa0bad6df, 0xd612, 0x47d3, \
29058     { 0x89, 0xd4, 0xdb, 0x39, 0x92, 0x53, 0x39, 0x48 } \
29059 }
29060 /* COM compatibility */
29061 VBOX_EXTERN_CONST(nsIID, IID_IHostPCIDevicePlugEvent);
29062 #   ifndef VBOX_WITH_GLUE
29063 struct IHostPCIDevicePlugEvent_vtbl
29064 {
29065     struct IMachineEvent_vtbl imachineevent;
29066 
29067     nsresult (*GetPlugged)(IHostPCIDevicePlugEvent *pThis, PRBool *plugged);
29068 
29069     nsresult (*GetSuccess)(IHostPCIDevicePlugEvent *pThis, PRBool *success);
29070 
29071     nsresult (*GetAttachment)(IHostPCIDevicePlugEvent *pThis, IPCIDeviceAttachment * *attachment);
29072 
29073     nsresult (*GetMessage)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *message);
29074 
29075 };
29076 #   else /* VBOX_WITH_GLUE */
29077 struct IHostPCIDevicePlugEventVtbl
29078 {
29079     nsresult (*QueryInterface)(IHostPCIDevicePlugEvent *pThis, const nsID *iid, void **resultp);
29080     nsrefcnt (*AddRef)(IHostPCIDevicePlugEvent *pThis);
29081     nsrefcnt (*Release)(IHostPCIDevicePlugEvent *pThis);
29082     nsresult (*GetType)(IHostPCIDevicePlugEvent *pThis, PRUint32 *type);
29083 
29084     nsresult (*GetSource)(IHostPCIDevicePlugEvent *pThis, IEventSource * *source);
29085 
29086     nsresult (*GetWaitable)(IHostPCIDevicePlugEvent *pThis, PRBool *waitable);
29087 
29088     nsresult (*SetProcessed)(IHostPCIDevicePlugEvent *pThis );
29089 
29090     nsresult (*WaitProcessed)(
29091         IHostPCIDevicePlugEvent *pThis,
29092         PRInt32 timeout,
29093         PRBool * result
29094     );
29095 
29096     nsresult (*GetMachineId)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *machineId);
29097 
29098     nsresult (*GetPlugged)(IHostPCIDevicePlugEvent *pThis, PRBool *plugged);
29099 
29100     nsresult (*GetSuccess)(IHostPCIDevicePlugEvent *pThis, PRBool *success);
29101 
29102     nsresult (*GetAttachment)(IHostPCIDevicePlugEvent *pThis, IPCIDeviceAttachment * *attachment);
29103 
29104     nsresult (*GetMessage)(IHostPCIDevicePlugEvent *pThis, PRUnichar * *message);
29105 
29106 };
29107 #    define IHostPCIDevicePlugEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29108 #    define IHostPCIDevicePlugEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29109 #    define IHostPCIDevicePlugEvent_Release(p) ((p)->lpVtbl->Release(p))
29110 #    define IHostPCIDevicePlugEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29111 #    define IHostPCIDevicePlugEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29112 #    define IHostPCIDevicePlugEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29113 #    define IHostPCIDevicePlugEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29114 #    define IHostPCIDevicePlugEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29115 #    define IHostPCIDevicePlugEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29116 #    define IHostPCIDevicePlugEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29117 #    define IHostPCIDevicePlugEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29118 #    define IHostPCIDevicePlugEvent_get_MachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
29119 #    define IHostPCIDevicePlugEvent_GetMachineId(p, aMachineId) ((p)->lpVtbl->GetMachineId(p, aMachineId))
29120 #    define IHostPCIDevicePlugEvent_get_Plugged(p, aPlugged) ((p)->lpVtbl->GetPlugged(p, aPlugged))
29121 #    define IHostPCIDevicePlugEvent_GetPlugged(p, aPlugged) ((p)->lpVtbl->GetPlugged(p, aPlugged))
29122 #    define IHostPCIDevicePlugEvent_get_Success(p, aSuccess) ((p)->lpVtbl->GetSuccess(p, aSuccess))
29123 #    define IHostPCIDevicePlugEvent_GetSuccess(p, aSuccess) ((p)->lpVtbl->GetSuccess(p, aSuccess))
29124 #    define IHostPCIDevicePlugEvent_get_Attachment(p, aAttachment) ((p)->lpVtbl->GetAttachment(p, aAttachment))
29125 #    define IHostPCIDevicePlugEvent_GetAttachment(p, aAttachment) ((p)->lpVtbl->GetAttachment(p, aAttachment))
29126 #    define IHostPCIDevicePlugEvent_get_Message(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
29127 #    define IHostPCIDevicePlugEvent_GetMessage(p, aMessage) ((p)->lpVtbl->GetMessage(p, aMessage))
29128 #   endif /* VBOX_WITH_GLUE */
29129 
29130 interface IHostPCIDevicePlugEvent
29131 {
29132 #   ifndef VBOX_WITH_GLUE
29133     struct IHostPCIDevicePlugEvent_vtbl *vtbl;
29134 #   else /* VBOX_WITH_GLUE */
29135     CONST_VTBL struct IHostPCIDevicePlugEventVtbl *lpVtbl;
29136 #   endif /* VBOX_WITH_GLUE */
29137 };
29138 /* End of struct IHostPCIDevicePlugEvent declaration */
29139 
29140 
29141 /* Start of struct IVBoxSVCAvailabilityChangedEvent declaration */
29142 #   define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID_STR "97c78fcd-d4fc-485f-8613-5af88bfcfcdc"
29143 #   define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID { \
29144     0x97c78fcd, 0xd4fc, 0x485f, \
29145     { 0x86, 0x13, 0x5a, 0xf8, 0x8b, 0xfc, 0xfc, 0xdc } \
29146 }
29147 /* COM compatibility */
29148 VBOX_EXTERN_CONST(nsIID, IID_IVBoxSVCAvailabilityChangedEvent);
29149 #   ifndef VBOX_WITH_GLUE
29150 struct IVBoxSVCAvailabilityChangedEvent_vtbl
29151 {
29152     struct IEvent_vtbl ievent;
29153 
29154     nsresult (*GetAvailable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *available);
29155 
29156 };
29157 #   else /* VBOX_WITH_GLUE */
29158 struct IVBoxSVCAvailabilityChangedEventVtbl
29159 {
29160     nsresult (*QueryInterface)(IVBoxSVCAvailabilityChangedEvent *pThis, const nsID *iid, void **resultp);
29161     nsrefcnt (*AddRef)(IVBoxSVCAvailabilityChangedEvent *pThis);
29162     nsrefcnt (*Release)(IVBoxSVCAvailabilityChangedEvent *pThis);
29163     nsresult (*GetType)(IVBoxSVCAvailabilityChangedEvent *pThis, PRUint32 *type);
29164 
29165     nsresult (*GetSource)(IVBoxSVCAvailabilityChangedEvent *pThis, IEventSource * *source);
29166 
29167     nsresult (*GetWaitable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *waitable);
29168 
29169     nsresult (*SetProcessed)(IVBoxSVCAvailabilityChangedEvent *pThis );
29170 
29171     nsresult (*WaitProcessed)(
29172         IVBoxSVCAvailabilityChangedEvent *pThis,
29173         PRInt32 timeout,
29174         PRBool * result
29175     );
29176 
29177     nsresult (*GetAvailable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *available);
29178 
29179 };
29180 #    define IVBoxSVCAvailabilityChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29181 #    define IVBoxSVCAvailabilityChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29182 #    define IVBoxSVCAvailabilityChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
29183 #    define IVBoxSVCAvailabilityChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29184 #    define IVBoxSVCAvailabilityChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29185 #    define IVBoxSVCAvailabilityChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29186 #    define IVBoxSVCAvailabilityChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29187 #    define IVBoxSVCAvailabilityChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29188 #    define IVBoxSVCAvailabilityChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29189 #    define IVBoxSVCAvailabilityChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29190 #    define IVBoxSVCAvailabilityChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29191 #    define IVBoxSVCAvailabilityChangedEvent_get_Available(p, aAvailable) ((p)->lpVtbl->GetAvailable(p, aAvailable))
29192 #    define IVBoxSVCAvailabilityChangedEvent_GetAvailable(p, aAvailable) ((p)->lpVtbl->GetAvailable(p, aAvailable))
29193 #   endif /* VBOX_WITH_GLUE */
29194 
29195 interface IVBoxSVCAvailabilityChangedEvent
29196 {
29197 #   ifndef VBOX_WITH_GLUE
29198     struct IVBoxSVCAvailabilityChangedEvent_vtbl *vtbl;
29199 #   else /* VBOX_WITH_GLUE */
29200     CONST_VTBL struct IVBoxSVCAvailabilityChangedEventVtbl *lpVtbl;
29201 #   endif /* VBOX_WITH_GLUE */
29202 };
29203 /* End of struct IVBoxSVCAvailabilityChangedEvent declaration */
29204 
29205 
29206 /* Start of struct IBandwidthGroupChangedEvent declaration */
29207 #   define IBANDWIDTHGROUPCHANGEDEVENT_IID_STR "334df94a-7556-4cbc-8c04-043096b02d82"
29208 #   define IBANDWIDTHGROUPCHANGEDEVENT_IID { \
29209     0x334df94a, 0x7556, 0x4cbc, \
29210     { 0x8c, 0x04, 0x04, 0x30, 0x96, 0xb0, 0x2d, 0x82 } \
29211 }
29212 /* COM compatibility */
29213 VBOX_EXTERN_CONST(nsIID, IID_IBandwidthGroupChangedEvent);
29214 #   ifndef VBOX_WITH_GLUE
29215 struct IBandwidthGroupChangedEvent_vtbl
29216 {
29217     struct IEvent_vtbl ievent;
29218 
29219     nsresult (*GetBandwidthGroup)(IBandwidthGroupChangedEvent *pThis, IBandwidthGroup * *bandwidthGroup);
29220 
29221 };
29222 #   else /* VBOX_WITH_GLUE */
29223 struct IBandwidthGroupChangedEventVtbl
29224 {
29225     nsresult (*QueryInterface)(IBandwidthGroupChangedEvent *pThis, const nsID *iid, void **resultp);
29226     nsrefcnt (*AddRef)(IBandwidthGroupChangedEvent *pThis);
29227     nsrefcnt (*Release)(IBandwidthGroupChangedEvent *pThis);
29228     nsresult (*GetType)(IBandwidthGroupChangedEvent *pThis, PRUint32 *type);
29229 
29230     nsresult (*GetSource)(IBandwidthGroupChangedEvent *pThis, IEventSource * *source);
29231 
29232     nsresult (*GetWaitable)(IBandwidthGroupChangedEvent *pThis, PRBool *waitable);
29233 
29234     nsresult (*SetProcessed)(IBandwidthGroupChangedEvent *pThis );
29235 
29236     nsresult (*WaitProcessed)(
29237         IBandwidthGroupChangedEvent *pThis,
29238         PRInt32 timeout,
29239         PRBool * result
29240     );
29241 
29242     nsresult (*GetBandwidthGroup)(IBandwidthGroupChangedEvent *pThis, IBandwidthGroup * *bandwidthGroup);
29243 
29244 };
29245 #    define IBandwidthGroupChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29246 #    define IBandwidthGroupChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29247 #    define IBandwidthGroupChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
29248 #    define IBandwidthGroupChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29249 #    define IBandwidthGroupChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29250 #    define IBandwidthGroupChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29251 #    define IBandwidthGroupChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29252 #    define IBandwidthGroupChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29253 #    define IBandwidthGroupChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29254 #    define IBandwidthGroupChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29255 #    define IBandwidthGroupChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29256 #    define IBandwidthGroupChangedEvent_get_BandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
29257 #    define IBandwidthGroupChangedEvent_GetBandwidthGroup(p, aBandwidthGroup) ((p)->lpVtbl->GetBandwidthGroup(p, aBandwidthGroup))
29258 #   endif /* VBOX_WITH_GLUE */
29259 
29260 interface IBandwidthGroupChangedEvent
29261 {
29262 #   ifndef VBOX_WITH_GLUE
29263     struct IBandwidthGroupChangedEvent_vtbl *vtbl;
29264 #   else /* VBOX_WITH_GLUE */
29265     CONST_VTBL struct IBandwidthGroupChangedEventVtbl *lpVtbl;
29266 #   endif /* VBOX_WITH_GLUE */
29267 };
29268 /* End of struct IBandwidthGroupChangedEvent declaration */
29269 
29270 
29271 /* Start of struct IGuestMonitorChangedEvent declaration */
29272 #   define IGUESTMONITORCHANGEDEVENT_IID_STR "0f7b8a22-c71f-4a36-8e5f-a77d01d76090"
29273 #   define IGUESTMONITORCHANGEDEVENT_IID { \
29274     0x0f7b8a22, 0xc71f, 0x4a36, \
29275     { 0x8e, 0x5f, 0xa7, 0x7d, 0x01, 0xd7, 0x60, 0x90 } \
29276 }
29277 /* COM compatibility */
29278 VBOX_EXTERN_CONST(nsIID, IID_IGuestMonitorChangedEvent);
29279 #   ifndef VBOX_WITH_GLUE
29280 struct IGuestMonitorChangedEvent_vtbl
29281 {
29282     struct IEvent_vtbl ievent;
29283 
29284     nsresult (*GetChangeType)(IGuestMonitorChangedEvent *pThis, PRUint32 *changeType);
29285 
29286     nsresult (*GetScreenId)(IGuestMonitorChangedEvent *pThis, PRUint32 *screenId);
29287 
29288     nsresult (*GetOriginX)(IGuestMonitorChangedEvent *pThis, PRUint32 *originX);
29289 
29290     nsresult (*GetOriginY)(IGuestMonitorChangedEvent *pThis, PRUint32 *originY);
29291 
29292     nsresult (*GetWidth)(IGuestMonitorChangedEvent *pThis, PRUint32 *width);
29293 
29294     nsresult (*GetHeight)(IGuestMonitorChangedEvent *pThis, PRUint32 *height);
29295 
29296 };
29297 #   else /* VBOX_WITH_GLUE */
29298 struct IGuestMonitorChangedEventVtbl
29299 {
29300     nsresult (*QueryInterface)(IGuestMonitorChangedEvent *pThis, const nsID *iid, void **resultp);
29301     nsrefcnt (*AddRef)(IGuestMonitorChangedEvent *pThis);
29302     nsrefcnt (*Release)(IGuestMonitorChangedEvent *pThis);
29303     nsresult (*GetType)(IGuestMonitorChangedEvent *pThis, PRUint32 *type);
29304 
29305     nsresult (*GetSource)(IGuestMonitorChangedEvent *pThis, IEventSource * *source);
29306 
29307     nsresult (*GetWaitable)(IGuestMonitorChangedEvent *pThis, PRBool *waitable);
29308 
29309     nsresult (*SetProcessed)(IGuestMonitorChangedEvent *pThis );
29310 
29311     nsresult (*WaitProcessed)(
29312         IGuestMonitorChangedEvent *pThis,
29313         PRInt32 timeout,
29314         PRBool * result
29315     );
29316 
29317     nsresult (*GetChangeType)(IGuestMonitorChangedEvent *pThis, PRUint32 *changeType);
29318 
29319     nsresult (*GetScreenId)(IGuestMonitorChangedEvent *pThis, PRUint32 *screenId);
29320 
29321     nsresult (*GetOriginX)(IGuestMonitorChangedEvent *pThis, PRUint32 *originX);
29322 
29323     nsresult (*GetOriginY)(IGuestMonitorChangedEvent *pThis, PRUint32 *originY);
29324 
29325     nsresult (*GetWidth)(IGuestMonitorChangedEvent *pThis, PRUint32 *width);
29326 
29327     nsresult (*GetHeight)(IGuestMonitorChangedEvent *pThis, PRUint32 *height);
29328 
29329 };
29330 #    define IGuestMonitorChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29331 #    define IGuestMonitorChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29332 #    define IGuestMonitorChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
29333 #    define IGuestMonitorChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29334 #    define IGuestMonitorChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29335 #    define IGuestMonitorChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29336 #    define IGuestMonitorChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29337 #    define IGuestMonitorChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29338 #    define IGuestMonitorChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29339 #    define IGuestMonitorChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29340 #    define IGuestMonitorChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29341 #    define IGuestMonitorChangedEvent_get_ChangeType(p, aChangeType) ((p)->lpVtbl->GetChangeType(p, aChangeType))
29342 #    define IGuestMonitorChangedEvent_GetChangeType(p, aChangeType) ((p)->lpVtbl->GetChangeType(p, aChangeType))
29343 #    define IGuestMonitorChangedEvent_get_ScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
29344 #    define IGuestMonitorChangedEvent_GetScreenId(p, aScreenId) ((p)->lpVtbl->GetScreenId(p, aScreenId))
29345 #    define IGuestMonitorChangedEvent_get_OriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
29346 #    define IGuestMonitorChangedEvent_GetOriginX(p, aOriginX) ((p)->lpVtbl->GetOriginX(p, aOriginX))
29347 #    define IGuestMonitorChangedEvent_get_OriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
29348 #    define IGuestMonitorChangedEvent_GetOriginY(p, aOriginY) ((p)->lpVtbl->GetOriginY(p, aOriginY))
29349 #    define IGuestMonitorChangedEvent_get_Width(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
29350 #    define IGuestMonitorChangedEvent_GetWidth(p, aWidth) ((p)->lpVtbl->GetWidth(p, aWidth))
29351 #    define IGuestMonitorChangedEvent_get_Height(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
29352 #    define IGuestMonitorChangedEvent_GetHeight(p, aHeight) ((p)->lpVtbl->GetHeight(p, aHeight))
29353 #   endif /* VBOX_WITH_GLUE */
29354 
29355 interface IGuestMonitorChangedEvent
29356 {
29357 #   ifndef VBOX_WITH_GLUE
29358     struct IGuestMonitorChangedEvent_vtbl *vtbl;
29359 #   else /* VBOX_WITH_GLUE */
29360     CONST_VTBL struct IGuestMonitorChangedEventVtbl *lpVtbl;
29361 #   endif /* VBOX_WITH_GLUE */
29362 };
29363 /* End of struct IGuestMonitorChangedEvent declaration */
29364 
29365 
29366 /* Start of struct IGuestUserStateChangedEvent declaration */
29367 #   define IGUESTUSERSTATECHANGEDEVENT_IID_STR "39b4e759-1ec0-4c0f-857f-fbe2a737a256"
29368 #   define IGUESTUSERSTATECHANGEDEVENT_IID { \
29369     0x39b4e759, 0x1ec0, 0x4c0f, \
29370     { 0x85, 0x7f, 0xfb, 0xe2, 0xa7, 0x37, 0xa2, 0x56 } \
29371 }
29372 /* COM compatibility */
29373 VBOX_EXTERN_CONST(nsIID, IID_IGuestUserStateChangedEvent);
29374 #   ifndef VBOX_WITH_GLUE
29375 struct IGuestUserStateChangedEvent_vtbl
29376 {
29377     struct IEvent_vtbl ievent;
29378 
29379     nsresult (*GetName)(IGuestUserStateChangedEvent *pThis, PRUnichar * *name);
29380 
29381     nsresult (*GetDomain)(IGuestUserStateChangedEvent *pThis, PRUnichar * *domain);
29382 
29383     nsresult (*GetState)(IGuestUserStateChangedEvent *pThis, PRUint32 *state);
29384 
29385     nsresult (*GetStateDetails)(IGuestUserStateChangedEvent *pThis, PRUnichar * *stateDetails);
29386 
29387 };
29388 #   else /* VBOX_WITH_GLUE */
29389 struct IGuestUserStateChangedEventVtbl
29390 {
29391     nsresult (*QueryInterface)(IGuestUserStateChangedEvent *pThis, const nsID *iid, void **resultp);
29392     nsrefcnt (*AddRef)(IGuestUserStateChangedEvent *pThis);
29393     nsrefcnt (*Release)(IGuestUserStateChangedEvent *pThis);
29394     nsresult (*GetType)(IGuestUserStateChangedEvent *pThis, PRUint32 *type);
29395 
29396     nsresult (*GetSource)(IGuestUserStateChangedEvent *pThis, IEventSource * *source);
29397 
29398     nsresult (*GetWaitable)(IGuestUserStateChangedEvent *pThis, PRBool *waitable);
29399 
29400     nsresult (*SetProcessed)(IGuestUserStateChangedEvent *pThis );
29401 
29402     nsresult (*WaitProcessed)(
29403         IGuestUserStateChangedEvent *pThis,
29404         PRInt32 timeout,
29405         PRBool * result
29406     );
29407 
29408     nsresult (*GetName)(IGuestUserStateChangedEvent *pThis, PRUnichar * *name);
29409 
29410     nsresult (*GetDomain)(IGuestUserStateChangedEvent *pThis, PRUnichar * *domain);
29411 
29412     nsresult (*GetState)(IGuestUserStateChangedEvent *pThis, PRUint32 *state);
29413 
29414     nsresult (*GetStateDetails)(IGuestUserStateChangedEvent *pThis, PRUnichar * *stateDetails);
29415 
29416 };
29417 #    define IGuestUserStateChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29418 #    define IGuestUserStateChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29419 #    define IGuestUserStateChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
29420 #    define IGuestUserStateChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29421 #    define IGuestUserStateChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29422 #    define IGuestUserStateChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29423 #    define IGuestUserStateChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29424 #    define IGuestUserStateChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29425 #    define IGuestUserStateChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29426 #    define IGuestUserStateChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29427 #    define IGuestUserStateChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29428 #    define IGuestUserStateChangedEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
29429 #    define IGuestUserStateChangedEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
29430 #    define IGuestUserStateChangedEvent_get_Domain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
29431 #    define IGuestUserStateChangedEvent_GetDomain(p, aDomain) ((p)->lpVtbl->GetDomain(p, aDomain))
29432 #    define IGuestUserStateChangedEvent_get_State(p, aState) ((p)->lpVtbl->GetState(p, aState))
29433 #    define IGuestUserStateChangedEvent_GetState(p, aState) ((p)->lpVtbl->GetState(p, aState))
29434 #    define IGuestUserStateChangedEvent_get_StateDetails(p, aStateDetails) ((p)->lpVtbl->GetStateDetails(p, aStateDetails))
29435 #    define IGuestUserStateChangedEvent_GetStateDetails(p, aStateDetails) ((p)->lpVtbl->GetStateDetails(p, aStateDetails))
29436 #   endif /* VBOX_WITH_GLUE */
29437 
29438 interface IGuestUserStateChangedEvent
29439 {
29440 #   ifndef VBOX_WITH_GLUE
29441     struct IGuestUserStateChangedEvent_vtbl *vtbl;
29442 #   else /* VBOX_WITH_GLUE */
29443     CONST_VTBL struct IGuestUserStateChangedEventVtbl *lpVtbl;
29444 #   endif /* VBOX_WITH_GLUE */
29445 };
29446 /* End of struct IGuestUserStateChangedEvent declaration */
29447 
29448 
29449 /* Start of struct IStorageDeviceChangedEvent declaration */
29450 #   define ISTORAGEDEVICECHANGEDEVENT_IID_STR "232e9151-ae84-4b8e-b0f3-5c20c35caac9"
29451 #   define ISTORAGEDEVICECHANGEDEVENT_IID { \
29452     0x232e9151, 0xae84, 0x4b8e, \
29453     { 0xb0, 0xf3, 0x5c, 0x20, 0xc3, 0x5c, 0xaa, 0xc9 } \
29454 }
29455 /* COM compatibility */
29456 VBOX_EXTERN_CONST(nsIID, IID_IStorageDeviceChangedEvent);
29457 #   ifndef VBOX_WITH_GLUE
29458 struct IStorageDeviceChangedEvent_vtbl
29459 {
29460     struct IEvent_vtbl ievent;
29461 
29462     nsresult (*GetStorageDevice)(IStorageDeviceChangedEvent *pThis, IMediumAttachment * *storageDevice);
29463 
29464     nsresult (*GetRemoved)(IStorageDeviceChangedEvent *pThis, PRBool *removed);
29465 
29466     nsresult (*GetSilent)(IStorageDeviceChangedEvent *pThis, PRBool *silent);
29467 
29468 };
29469 #   else /* VBOX_WITH_GLUE */
29470 struct IStorageDeviceChangedEventVtbl
29471 {
29472     nsresult (*QueryInterface)(IStorageDeviceChangedEvent *pThis, const nsID *iid, void **resultp);
29473     nsrefcnt (*AddRef)(IStorageDeviceChangedEvent *pThis);
29474     nsrefcnt (*Release)(IStorageDeviceChangedEvent *pThis);
29475     nsresult (*GetType)(IStorageDeviceChangedEvent *pThis, PRUint32 *type);
29476 
29477     nsresult (*GetSource)(IStorageDeviceChangedEvent *pThis, IEventSource * *source);
29478 
29479     nsresult (*GetWaitable)(IStorageDeviceChangedEvent *pThis, PRBool *waitable);
29480 
29481     nsresult (*SetProcessed)(IStorageDeviceChangedEvent *pThis );
29482 
29483     nsresult (*WaitProcessed)(
29484         IStorageDeviceChangedEvent *pThis,
29485         PRInt32 timeout,
29486         PRBool * result
29487     );
29488 
29489     nsresult (*GetStorageDevice)(IStorageDeviceChangedEvent *pThis, IMediumAttachment * *storageDevice);
29490 
29491     nsresult (*GetRemoved)(IStorageDeviceChangedEvent *pThis, PRBool *removed);
29492 
29493     nsresult (*GetSilent)(IStorageDeviceChangedEvent *pThis, PRBool *silent);
29494 
29495 };
29496 #    define IStorageDeviceChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29497 #    define IStorageDeviceChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29498 #    define IStorageDeviceChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
29499 #    define IStorageDeviceChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29500 #    define IStorageDeviceChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29501 #    define IStorageDeviceChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29502 #    define IStorageDeviceChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29503 #    define IStorageDeviceChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29504 #    define IStorageDeviceChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29505 #    define IStorageDeviceChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29506 #    define IStorageDeviceChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29507 #    define IStorageDeviceChangedEvent_get_StorageDevice(p, aStorageDevice) ((p)->lpVtbl->GetStorageDevice(p, aStorageDevice))
29508 #    define IStorageDeviceChangedEvent_GetStorageDevice(p, aStorageDevice) ((p)->lpVtbl->GetStorageDevice(p, aStorageDevice))
29509 #    define IStorageDeviceChangedEvent_get_Removed(p, aRemoved) ((p)->lpVtbl->GetRemoved(p, aRemoved))
29510 #    define IStorageDeviceChangedEvent_GetRemoved(p, aRemoved) ((p)->lpVtbl->GetRemoved(p, aRemoved))
29511 #    define IStorageDeviceChangedEvent_get_Silent(p, aSilent) ((p)->lpVtbl->GetSilent(p, aSilent))
29512 #    define IStorageDeviceChangedEvent_GetSilent(p, aSilent) ((p)->lpVtbl->GetSilent(p, aSilent))
29513 #   endif /* VBOX_WITH_GLUE */
29514 
29515 interface IStorageDeviceChangedEvent
29516 {
29517 #   ifndef VBOX_WITH_GLUE
29518     struct IStorageDeviceChangedEvent_vtbl *vtbl;
29519 #   else /* VBOX_WITH_GLUE */
29520     CONST_VTBL struct IStorageDeviceChangedEventVtbl *lpVtbl;
29521 #   endif /* VBOX_WITH_GLUE */
29522 };
29523 /* End of struct IStorageDeviceChangedEvent declaration */
29524 
29525 
29526 /* Start of struct INATNetworkChangedEvent declaration */
29527 #   define INATNETWORKCHANGEDEVENT_IID_STR "101ae042-1a29-4a19-92cf-02285773f3b5"
29528 #   define INATNETWORKCHANGEDEVENT_IID { \
29529     0x101ae042, 0x1a29, 0x4a19, \
29530     { 0x92, 0xcf, 0x02, 0x28, 0x57, 0x73, 0xf3, 0xb5 } \
29531 }
29532 /* COM compatibility */
29533 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkChangedEvent);
29534 #   ifndef VBOX_WITH_GLUE
29535 struct INATNetworkChangedEvent_vtbl
29536 {
29537     struct IEvent_vtbl ievent;
29538 
29539     nsresult (*GetNetworkName)(INATNetworkChangedEvent *pThis, PRUnichar * *networkName);
29540 
29541 };
29542 #   else /* VBOX_WITH_GLUE */
29543 struct INATNetworkChangedEventVtbl
29544 {
29545     nsresult (*QueryInterface)(INATNetworkChangedEvent *pThis, const nsID *iid, void **resultp);
29546     nsrefcnt (*AddRef)(INATNetworkChangedEvent *pThis);
29547     nsrefcnt (*Release)(INATNetworkChangedEvent *pThis);
29548     nsresult (*GetType)(INATNetworkChangedEvent *pThis, PRUint32 *type);
29549 
29550     nsresult (*GetSource)(INATNetworkChangedEvent *pThis, IEventSource * *source);
29551 
29552     nsresult (*GetWaitable)(INATNetworkChangedEvent *pThis, PRBool *waitable);
29553 
29554     nsresult (*SetProcessed)(INATNetworkChangedEvent *pThis );
29555 
29556     nsresult (*WaitProcessed)(
29557         INATNetworkChangedEvent *pThis,
29558         PRInt32 timeout,
29559         PRBool * result
29560     );
29561 
29562     nsresult (*GetNetworkName)(INATNetworkChangedEvent *pThis, PRUnichar * *networkName);
29563 
29564 };
29565 #    define INATNetworkChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29566 #    define INATNetworkChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29567 #    define INATNetworkChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
29568 #    define INATNetworkChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29569 #    define INATNetworkChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29570 #    define INATNetworkChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29571 #    define INATNetworkChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29572 #    define INATNetworkChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29573 #    define INATNetworkChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29574 #    define INATNetworkChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29575 #    define INATNetworkChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29576 #    define INATNetworkChangedEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29577 #    define INATNetworkChangedEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29578 #   endif /* VBOX_WITH_GLUE */
29579 
29580 interface INATNetworkChangedEvent
29581 {
29582 #   ifndef VBOX_WITH_GLUE
29583     struct INATNetworkChangedEvent_vtbl *vtbl;
29584 #   else /* VBOX_WITH_GLUE */
29585     CONST_VTBL struct INATNetworkChangedEventVtbl *lpVtbl;
29586 #   endif /* VBOX_WITH_GLUE */
29587 };
29588 /* End of struct INATNetworkChangedEvent declaration */
29589 
29590 
29591 /* Start of struct INATNetworkStartStopEvent declaration */
29592 #   define INATNETWORKSTARTSTOPEVENT_IID_STR "269d8f6b-fa1e-4cee-91c7-6d8496bea3c1"
29593 #   define INATNETWORKSTARTSTOPEVENT_IID { \
29594     0x269d8f6b, 0xfa1e, 0x4cee, \
29595     { 0x91, 0xc7, 0x6d, 0x84, 0x96, 0xbe, 0xa3, 0xc1 } \
29596 }
29597 /* COM compatibility */
29598 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkStartStopEvent);
29599 #   ifndef VBOX_WITH_GLUE
29600 struct INATNetworkStartStopEvent_vtbl
29601 {
29602     struct INATNetworkChangedEvent_vtbl inatnetworkchangedevent;
29603 
29604     nsresult (*GetStartEvent)(INATNetworkStartStopEvent *pThis, PRBool *startEvent);
29605 
29606 };
29607 #   else /* VBOX_WITH_GLUE */
29608 struct INATNetworkStartStopEventVtbl
29609 {
29610     nsresult (*QueryInterface)(INATNetworkStartStopEvent *pThis, const nsID *iid, void **resultp);
29611     nsrefcnt (*AddRef)(INATNetworkStartStopEvent *pThis);
29612     nsrefcnt (*Release)(INATNetworkStartStopEvent *pThis);
29613     nsresult (*GetType)(INATNetworkStartStopEvent *pThis, PRUint32 *type);
29614 
29615     nsresult (*GetSource)(INATNetworkStartStopEvent *pThis, IEventSource * *source);
29616 
29617     nsresult (*GetWaitable)(INATNetworkStartStopEvent *pThis, PRBool *waitable);
29618 
29619     nsresult (*SetProcessed)(INATNetworkStartStopEvent *pThis );
29620 
29621     nsresult (*WaitProcessed)(
29622         INATNetworkStartStopEvent *pThis,
29623         PRInt32 timeout,
29624         PRBool * result
29625     );
29626 
29627     nsresult (*GetNetworkName)(INATNetworkStartStopEvent *pThis, PRUnichar * *networkName);
29628 
29629     nsresult (*GetStartEvent)(INATNetworkStartStopEvent *pThis, PRBool *startEvent);
29630 
29631 };
29632 #    define INATNetworkStartStopEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29633 #    define INATNetworkStartStopEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29634 #    define INATNetworkStartStopEvent_Release(p) ((p)->lpVtbl->Release(p))
29635 #    define INATNetworkStartStopEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29636 #    define INATNetworkStartStopEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29637 #    define INATNetworkStartStopEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29638 #    define INATNetworkStartStopEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29639 #    define INATNetworkStartStopEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29640 #    define INATNetworkStartStopEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29641 #    define INATNetworkStartStopEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29642 #    define INATNetworkStartStopEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29643 #    define INATNetworkStartStopEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29644 #    define INATNetworkStartStopEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29645 #    define INATNetworkStartStopEvent_get_StartEvent(p, aStartEvent) ((p)->lpVtbl->GetStartEvent(p, aStartEvent))
29646 #    define INATNetworkStartStopEvent_GetStartEvent(p, aStartEvent) ((p)->lpVtbl->GetStartEvent(p, aStartEvent))
29647 #   endif /* VBOX_WITH_GLUE */
29648 
29649 interface INATNetworkStartStopEvent
29650 {
29651 #   ifndef VBOX_WITH_GLUE
29652     struct INATNetworkStartStopEvent_vtbl *vtbl;
29653 #   else /* VBOX_WITH_GLUE */
29654     CONST_VTBL struct INATNetworkStartStopEventVtbl *lpVtbl;
29655 #   endif /* VBOX_WITH_GLUE */
29656 };
29657 /* End of struct INATNetworkStartStopEvent declaration */
29658 
29659 
29660 /* Start of struct INATNetworkAlterEvent declaration */
29661 #   define INATNETWORKALTEREVENT_IID_STR "d947adf5-4022-dc80-5535-6fb116815604"
29662 #   define INATNETWORKALTEREVENT_IID { \
29663     0xd947adf5, 0x4022, 0xdc80, \
29664     { 0x55, 0x35, 0x6f, 0xb1, 0x16, 0x81, 0x56, 0x04 } \
29665 }
29666 /* COM compatibility */
29667 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkAlterEvent);
29668 #   ifndef VBOX_WITH_GLUE
29669 struct INATNetworkAlterEvent_vtbl
29670 {
29671     struct INATNetworkChangedEvent_vtbl inatnetworkchangedevent;
29672 
29673     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkAlterEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
29674 
29675 };
29676 #   else /* VBOX_WITH_GLUE */
29677 struct INATNetworkAlterEventVtbl
29678 {
29679     nsresult (*QueryInterface)(INATNetworkAlterEvent *pThis, const nsID *iid, void **resultp);
29680     nsrefcnt (*AddRef)(INATNetworkAlterEvent *pThis);
29681     nsrefcnt (*Release)(INATNetworkAlterEvent *pThis);
29682     nsresult (*GetType)(INATNetworkAlterEvent *pThis, PRUint32 *type);
29683 
29684     nsresult (*GetSource)(INATNetworkAlterEvent *pThis, IEventSource * *source);
29685 
29686     nsresult (*GetWaitable)(INATNetworkAlterEvent *pThis, PRBool *waitable);
29687 
29688     nsresult (*SetProcessed)(INATNetworkAlterEvent *pThis );
29689 
29690     nsresult (*WaitProcessed)(
29691         INATNetworkAlterEvent *pThis,
29692         PRInt32 timeout,
29693         PRBool * result
29694     );
29695 
29696     nsresult (*GetNetworkName)(INATNetworkAlterEvent *pThis, PRUnichar * *networkName);
29697 
29698     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkAlterEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
29699 
29700 };
29701 #    define INATNetworkAlterEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29702 #    define INATNetworkAlterEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29703 #    define INATNetworkAlterEvent_Release(p) ((p)->lpVtbl->Release(p))
29704 #    define INATNetworkAlterEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29705 #    define INATNetworkAlterEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29706 #    define INATNetworkAlterEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29707 #    define INATNetworkAlterEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29708 #    define INATNetworkAlterEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29709 #    define INATNetworkAlterEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29710 #    define INATNetworkAlterEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29711 #    define INATNetworkAlterEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29712 #    define INATNetworkAlterEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29713 #    define INATNetworkAlterEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29714 #    define INATNetworkAlterEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29715 #    define INATNetworkAlterEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29716 #   endif /* VBOX_WITH_GLUE */
29717 
29718 interface INATNetworkAlterEvent
29719 {
29720 #   ifndef VBOX_WITH_GLUE
29721     struct INATNetworkAlterEvent_vtbl *vtbl;
29722 #   else /* VBOX_WITH_GLUE */
29723     CONST_VTBL struct INATNetworkAlterEventVtbl *lpVtbl;
29724 #   endif /* VBOX_WITH_GLUE */
29725 };
29726 /* End of struct INATNetworkAlterEvent declaration */
29727 
29728 
29729 /* Start of struct INATNetworkCreationDeletionEvent declaration */
29730 #   define INATNETWORKCREATIONDELETIONEVENT_IID_STR "8d984a7e-b855-40b8-ab0c-44d3515b4528"
29731 #   define INATNETWORKCREATIONDELETIONEVENT_IID { \
29732     0x8d984a7e, 0xb855, 0x40b8, \
29733     { 0xab, 0x0c, 0x44, 0xd3, 0x51, 0x5b, 0x45, 0x28 } \
29734 }
29735 /* COM compatibility */
29736 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkCreationDeletionEvent);
29737 #   ifndef VBOX_WITH_GLUE
29738 struct INATNetworkCreationDeletionEvent_vtbl
29739 {
29740     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
29741 
29742     nsresult (*GetCreationEvent)(INATNetworkCreationDeletionEvent *pThis, PRBool *creationEvent);
29743 
29744 };
29745 #   else /* VBOX_WITH_GLUE */
29746 struct INATNetworkCreationDeletionEventVtbl
29747 {
29748     nsresult (*QueryInterface)(INATNetworkCreationDeletionEvent *pThis, const nsID *iid, void **resultp);
29749     nsrefcnt (*AddRef)(INATNetworkCreationDeletionEvent *pThis);
29750     nsrefcnt (*Release)(INATNetworkCreationDeletionEvent *pThis);
29751     nsresult (*GetType)(INATNetworkCreationDeletionEvent *pThis, PRUint32 *type);
29752 
29753     nsresult (*GetSource)(INATNetworkCreationDeletionEvent *pThis, IEventSource * *source);
29754 
29755     nsresult (*GetWaitable)(INATNetworkCreationDeletionEvent *pThis, PRBool *waitable);
29756 
29757     nsresult (*SetProcessed)(INATNetworkCreationDeletionEvent *pThis );
29758 
29759     nsresult (*WaitProcessed)(
29760         INATNetworkCreationDeletionEvent *pThis,
29761         PRInt32 timeout,
29762         PRBool * result
29763     );
29764 
29765     nsresult (*GetNetworkName)(INATNetworkCreationDeletionEvent *pThis, PRUnichar * *networkName);
29766 
29767     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkCreationDeletionEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
29768 
29769     nsresult (*GetCreationEvent)(INATNetworkCreationDeletionEvent *pThis, PRBool *creationEvent);
29770 
29771 };
29772 #    define INATNetworkCreationDeletionEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29773 #    define INATNetworkCreationDeletionEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29774 #    define INATNetworkCreationDeletionEvent_Release(p) ((p)->lpVtbl->Release(p))
29775 #    define INATNetworkCreationDeletionEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29776 #    define INATNetworkCreationDeletionEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29777 #    define INATNetworkCreationDeletionEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29778 #    define INATNetworkCreationDeletionEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29779 #    define INATNetworkCreationDeletionEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29780 #    define INATNetworkCreationDeletionEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29781 #    define INATNetworkCreationDeletionEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29782 #    define INATNetworkCreationDeletionEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29783 #    define INATNetworkCreationDeletionEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29784 #    define INATNetworkCreationDeletionEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29785 #    define INATNetworkCreationDeletionEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29786 #    define INATNetworkCreationDeletionEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29787 #    define INATNetworkCreationDeletionEvent_get_CreationEvent(p, aCreationEvent) ((p)->lpVtbl->GetCreationEvent(p, aCreationEvent))
29788 #    define INATNetworkCreationDeletionEvent_GetCreationEvent(p, aCreationEvent) ((p)->lpVtbl->GetCreationEvent(p, aCreationEvent))
29789 #   endif /* VBOX_WITH_GLUE */
29790 
29791 interface INATNetworkCreationDeletionEvent
29792 {
29793 #   ifndef VBOX_WITH_GLUE
29794     struct INATNetworkCreationDeletionEvent_vtbl *vtbl;
29795 #   else /* VBOX_WITH_GLUE */
29796     CONST_VTBL struct INATNetworkCreationDeletionEventVtbl *lpVtbl;
29797 #   endif /* VBOX_WITH_GLUE */
29798 };
29799 /* End of struct INATNetworkCreationDeletionEvent declaration */
29800 
29801 
29802 /* Start of struct INATNetworkSettingEvent declaration */
29803 #   define INATNETWORKSETTINGEVENT_IID_STR "9db3a9e6-7f29-4aae-a627-5a282c83092c"
29804 #   define INATNETWORKSETTINGEVENT_IID { \
29805     0x9db3a9e6, 0x7f29, 0x4aae, \
29806     { 0xa6, 0x27, 0x5a, 0x28, 0x2c, 0x83, 0x09, 0x2c } \
29807 }
29808 /* COM compatibility */
29809 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkSettingEvent);
29810 #   ifndef VBOX_WITH_GLUE
29811 struct INATNetworkSettingEvent_vtbl
29812 {
29813     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
29814 
29815     nsresult (*GetEnabled)(INATNetworkSettingEvent *pThis, PRBool *enabled);
29816 
29817     nsresult (*GetNetwork)(INATNetworkSettingEvent *pThis, PRUnichar * *network);
29818 
29819     nsresult (*GetGateway)(INATNetworkSettingEvent *pThis, PRUnichar * *gateway);
29820 
29821     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetworkSettingEvent *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
29822 
29823     nsresult (*GetNeedDhcpServer)(INATNetworkSettingEvent *pThis, PRBool *needDhcpServer);
29824 
29825 };
29826 #   else /* VBOX_WITH_GLUE */
29827 struct INATNetworkSettingEventVtbl
29828 {
29829     nsresult (*QueryInterface)(INATNetworkSettingEvent *pThis, const nsID *iid, void **resultp);
29830     nsrefcnt (*AddRef)(INATNetworkSettingEvent *pThis);
29831     nsrefcnt (*Release)(INATNetworkSettingEvent *pThis);
29832     nsresult (*GetType)(INATNetworkSettingEvent *pThis, PRUint32 *type);
29833 
29834     nsresult (*GetSource)(INATNetworkSettingEvent *pThis, IEventSource * *source);
29835 
29836     nsresult (*GetWaitable)(INATNetworkSettingEvent *pThis, PRBool *waitable);
29837 
29838     nsresult (*SetProcessed)(INATNetworkSettingEvent *pThis );
29839 
29840     nsresult (*WaitProcessed)(
29841         INATNetworkSettingEvent *pThis,
29842         PRInt32 timeout,
29843         PRBool * result
29844     );
29845 
29846     nsresult (*GetNetworkName)(INATNetworkSettingEvent *pThis, PRUnichar * *networkName);
29847 
29848     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkSettingEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
29849 
29850     nsresult (*GetEnabled)(INATNetworkSettingEvent *pThis, PRBool *enabled);
29851 
29852     nsresult (*GetNetwork)(INATNetworkSettingEvent *pThis, PRUnichar * *network);
29853 
29854     nsresult (*GetGateway)(INATNetworkSettingEvent *pThis, PRUnichar * *gateway);
29855 
29856     nsresult (*GetAdvertiseDefaultIPv6RouteEnabled)(INATNetworkSettingEvent *pThis, PRBool *advertiseDefaultIPv6RouteEnabled);
29857 
29858     nsresult (*GetNeedDhcpServer)(INATNetworkSettingEvent *pThis, PRBool *needDhcpServer);
29859 
29860 };
29861 #    define INATNetworkSettingEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29862 #    define INATNetworkSettingEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29863 #    define INATNetworkSettingEvent_Release(p) ((p)->lpVtbl->Release(p))
29864 #    define INATNetworkSettingEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29865 #    define INATNetworkSettingEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29866 #    define INATNetworkSettingEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29867 #    define INATNetworkSettingEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29868 #    define INATNetworkSettingEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29869 #    define INATNetworkSettingEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29870 #    define INATNetworkSettingEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29871 #    define INATNetworkSettingEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29872 #    define INATNetworkSettingEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29873 #    define INATNetworkSettingEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29874 #    define INATNetworkSettingEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29875 #    define INATNetworkSettingEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29876 #    define INATNetworkSettingEvent_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
29877 #    define INATNetworkSettingEvent_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
29878 #    define INATNetworkSettingEvent_get_Network(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
29879 #    define INATNetworkSettingEvent_GetNetwork(p, aNetwork) ((p)->lpVtbl->GetNetwork(p, aNetwork))
29880 #    define INATNetworkSettingEvent_get_Gateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
29881 #    define INATNetworkSettingEvent_GetGateway(p, aGateway) ((p)->lpVtbl->GetGateway(p, aGateway))
29882 #    define INATNetworkSettingEvent_get_AdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
29883 #    define INATNetworkSettingEvent_GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled) ((p)->lpVtbl->GetAdvertiseDefaultIPv6RouteEnabled(p, aAdvertiseDefaultIPv6RouteEnabled))
29884 #    define INATNetworkSettingEvent_get_NeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
29885 #    define INATNetworkSettingEvent_GetNeedDhcpServer(p, aNeedDhcpServer) ((p)->lpVtbl->GetNeedDhcpServer(p, aNeedDhcpServer))
29886 #   endif /* VBOX_WITH_GLUE */
29887 
29888 interface INATNetworkSettingEvent
29889 {
29890 #   ifndef VBOX_WITH_GLUE
29891     struct INATNetworkSettingEvent_vtbl *vtbl;
29892 #   else /* VBOX_WITH_GLUE */
29893     CONST_VTBL struct INATNetworkSettingEventVtbl *lpVtbl;
29894 #   endif /* VBOX_WITH_GLUE */
29895 };
29896 /* End of struct INATNetworkSettingEvent declaration */
29897 
29898 
29899 /* Start of struct INATNetworkPortForwardEvent declaration */
29900 #   define INATNETWORKPORTFORWARDEVENT_IID_STR "2514881b-23d0-430a-a7ff-7ed7f05534bc"
29901 #   define INATNETWORKPORTFORWARDEVENT_IID { \
29902     0x2514881b, 0x23d0, 0x430a, \
29903     { 0xa7, 0xff, 0x7e, 0xd7, 0xf0, 0x55, 0x34, 0xbc } \
29904 }
29905 /* COM compatibility */
29906 VBOX_EXTERN_CONST(nsIID, IID_INATNetworkPortForwardEvent);
29907 #   ifndef VBOX_WITH_GLUE
29908 struct INATNetworkPortForwardEvent_vtbl
29909 {
29910     struct INATNetworkAlterEvent_vtbl inatnetworkalterevent;
29911 
29912     nsresult (*GetCreate)(INATNetworkPortForwardEvent *pThis, PRBool *create);
29913 
29914     nsresult (*GetIpv6)(INATNetworkPortForwardEvent *pThis, PRBool *ipv6);
29915 
29916     nsresult (*GetName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *name);
29917 
29918     nsresult (*GetProto)(INATNetworkPortForwardEvent *pThis, PRUint32 *proto);
29919 
29920     nsresult (*GetHostIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *hostIp);
29921 
29922     nsresult (*GetHostPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *hostPort);
29923 
29924     nsresult (*GetGuestIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *guestIp);
29925 
29926     nsresult (*GetGuestPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *guestPort);
29927 
29928 };
29929 #   else /* VBOX_WITH_GLUE */
29930 struct INATNetworkPortForwardEventVtbl
29931 {
29932     nsresult (*QueryInterface)(INATNetworkPortForwardEvent *pThis, const nsID *iid, void **resultp);
29933     nsrefcnt (*AddRef)(INATNetworkPortForwardEvent *pThis);
29934     nsrefcnt (*Release)(INATNetworkPortForwardEvent *pThis);
29935     nsresult (*GetType)(INATNetworkPortForwardEvent *pThis, PRUint32 *type);
29936 
29937     nsresult (*GetSource)(INATNetworkPortForwardEvent *pThis, IEventSource * *source);
29938 
29939     nsresult (*GetWaitable)(INATNetworkPortForwardEvent *pThis, PRBool *waitable);
29940 
29941     nsresult (*SetProcessed)(INATNetworkPortForwardEvent *pThis );
29942 
29943     nsresult (*WaitProcessed)(
29944         INATNetworkPortForwardEvent *pThis,
29945         PRInt32 timeout,
29946         PRBool * result
29947     );
29948 
29949     nsresult (*GetNetworkName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *networkName);
29950 
29951     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(INATNetworkPortForwardEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
29952 
29953     nsresult (*GetCreate)(INATNetworkPortForwardEvent *pThis, PRBool *create);
29954 
29955     nsresult (*GetIpv6)(INATNetworkPortForwardEvent *pThis, PRBool *ipv6);
29956 
29957     nsresult (*GetName)(INATNetworkPortForwardEvent *pThis, PRUnichar * *name);
29958 
29959     nsresult (*GetProto)(INATNetworkPortForwardEvent *pThis, PRUint32 *proto);
29960 
29961     nsresult (*GetHostIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *hostIp);
29962 
29963     nsresult (*GetHostPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *hostPort);
29964 
29965     nsresult (*GetGuestIp)(INATNetworkPortForwardEvent *pThis, PRUnichar * *guestIp);
29966 
29967     nsresult (*GetGuestPort)(INATNetworkPortForwardEvent *pThis, PRInt32 *guestPort);
29968 
29969 };
29970 #    define INATNetworkPortForwardEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
29971 #    define INATNetworkPortForwardEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
29972 #    define INATNetworkPortForwardEvent_Release(p) ((p)->lpVtbl->Release(p))
29973 #    define INATNetworkPortForwardEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
29974 #    define INATNetworkPortForwardEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
29975 #    define INATNetworkPortForwardEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29976 #    define INATNetworkPortForwardEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
29977 #    define INATNetworkPortForwardEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29978 #    define INATNetworkPortForwardEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
29979 #    define INATNetworkPortForwardEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
29980 #    define INATNetworkPortForwardEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
29981 #    define INATNetworkPortForwardEvent_get_NetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29982 #    define INATNetworkPortForwardEvent_GetNetworkName(p, aNetworkName) ((p)->lpVtbl->GetNetworkName(p, aNetworkName))
29983 #    define INATNetworkPortForwardEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29984 #    define INATNetworkPortForwardEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
29985 #    define INATNetworkPortForwardEvent_get_Create(p, aCreate) ((p)->lpVtbl->GetCreate(p, aCreate))
29986 #    define INATNetworkPortForwardEvent_GetCreate(p, aCreate) ((p)->lpVtbl->GetCreate(p, aCreate))
29987 #    define INATNetworkPortForwardEvent_get_Ipv6(p, aIpv6) ((p)->lpVtbl->GetIpv6(p, aIpv6))
29988 #    define INATNetworkPortForwardEvent_GetIpv6(p, aIpv6) ((p)->lpVtbl->GetIpv6(p, aIpv6))
29989 #    define INATNetworkPortForwardEvent_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
29990 #    define INATNetworkPortForwardEvent_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
29991 #    define INATNetworkPortForwardEvent_get_Proto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
29992 #    define INATNetworkPortForwardEvent_GetProto(p, aProto) ((p)->lpVtbl->GetProto(p, aProto))
29993 #    define INATNetworkPortForwardEvent_get_HostIp(p, aHostIp) ((p)->lpVtbl->GetHostIp(p, aHostIp))
29994 #    define INATNetworkPortForwardEvent_GetHostIp(p, aHostIp) ((p)->lpVtbl->GetHostIp(p, aHostIp))
29995 #    define INATNetworkPortForwardEvent_get_HostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
29996 #    define INATNetworkPortForwardEvent_GetHostPort(p, aHostPort) ((p)->lpVtbl->GetHostPort(p, aHostPort))
29997 #    define INATNetworkPortForwardEvent_get_GuestIp(p, aGuestIp) ((p)->lpVtbl->GetGuestIp(p, aGuestIp))
29998 #    define INATNetworkPortForwardEvent_GetGuestIp(p, aGuestIp) ((p)->lpVtbl->GetGuestIp(p, aGuestIp))
29999 #    define INATNetworkPortForwardEvent_get_GuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
30000 #    define INATNetworkPortForwardEvent_GetGuestPort(p, aGuestPort) ((p)->lpVtbl->GetGuestPort(p, aGuestPort))
30001 #   endif /* VBOX_WITH_GLUE */
30002 
30003 interface INATNetworkPortForwardEvent
30004 {
30005 #   ifndef VBOX_WITH_GLUE
30006     struct INATNetworkPortForwardEvent_vtbl *vtbl;
30007 #   else /* VBOX_WITH_GLUE */
30008     CONST_VTBL struct INATNetworkPortForwardEventVtbl *lpVtbl;
30009 #   endif /* VBOX_WITH_GLUE */
30010 };
30011 /* End of struct INATNetworkPortForwardEvent declaration */
30012 
30013 
30014 /* Start of struct IHostNameResolutionConfigurationChangeEvent declaration */
30015 #   define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID_STR "f9b9e1cf-cb63-47a1-84fb-02c4894b89a9"
30016 #   define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID { \
30017     0xf9b9e1cf, 0xcb63, 0x47a1, \
30018     { 0x84, 0xfb, 0x02, 0xc4, 0x89, 0x4b, 0x89, 0xa9 } \
30019 }
30020 /* COM compatibility */
30021 VBOX_EXTERN_CONST(nsIID, IID_IHostNameResolutionConfigurationChangeEvent);
30022 #   ifndef VBOX_WITH_GLUE
30023 struct IHostNameResolutionConfigurationChangeEvent_vtbl
30024 {
30025     struct IEvent_vtbl ievent;
30026 
30027     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
30028 
30029 };
30030 #   else /* VBOX_WITH_GLUE */
30031 struct IHostNameResolutionConfigurationChangeEventVtbl
30032 {
30033     nsresult (*QueryInterface)(IHostNameResolutionConfigurationChangeEvent *pThis, const nsID *iid, void **resultp);
30034     nsrefcnt (*AddRef)(IHostNameResolutionConfigurationChangeEvent *pThis);
30035     nsrefcnt (*Release)(IHostNameResolutionConfigurationChangeEvent *pThis);
30036     nsresult (*GetType)(IHostNameResolutionConfigurationChangeEvent *pThis, PRUint32 *type);
30037 
30038     nsresult (*GetSource)(IHostNameResolutionConfigurationChangeEvent *pThis, IEventSource * *source);
30039 
30040     nsresult (*GetWaitable)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *waitable);
30041 
30042     nsresult (*SetProcessed)(IHostNameResolutionConfigurationChangeEvent *pThis );
30043 
30044     nsresult (*WaitProcessed)(
30045         IHostNameResolutionConfigurationChangeEvent *pThis,
30046         PRInt32 timeout,
30047         PRBool * result
30048     );
30049 
30050     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IHostNameResolutionConfigurationChangeEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
30051 
30052 };
30053 #    define IHostNameResolutionConfigurationChangeEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30054 #    define IHostNameResolutionConfigurationChangeEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
30055 #    define IHostNameResolutionConfigurationChangeEvent_Release(p) ((p)->lpVtbl->Release(p))
30056 #    define IHostNameResolutionConfigurationChangeEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30057 #    define IHostNameResolutionConfigurationChangeEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30058 #    define IHostNameResolutionConfigurationChangeEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30059 #    define IHostNameResolutionConfigurationChangeEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30060 #    define IHostNameResolutionConfigurationChangeEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30061 #    define IHostNameResolutionConfigurationChangeEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30062 #    define IHostNameResolutionConfigurationChangeEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
30063 #    define IHostNameResolutionConfigurationChangeEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
30064 #    define IHostNameResolutionConfigurationChangeEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
30065 #    define IHostNameResolutionConfigurationChangeEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
30066 #   endif /* VBOX_WITH_GLUE */
30067 
30068 interface IHostNameResolutionConfigurationChangeEvent
30069 {
30070 #   ifndef VBOX_WITH_GLUE
30071     struct IHostNameResolutionConfigurationChangeEvent_vtbl *vtbl;
30072 #   else /* VBOX_WITH_GLUE */
30073     CONST_VTBL struct IHostNameResolutionConfigurationChangeEventVtbl *lpVtbl;
30074 #   endif /* VBOX_WITH_GLUE */
30075 };
30076 /* End of struct IHostNameResolutionConfigurationChangeEvent declaration */
30077 
30078 
30079 /* Start of struct IProgressEvent declaration */
30080 #   define IPROGRESSEVENT_IID_STR "daaf9016-1f04-4191-aa2f-1fac9646ae4c"
30081 #   define IPROGRESSEVENT_IID { \
30082     0xdaaf9016, 0x1f04, 0x4191, \
30083     { 0xaa, 0x2f, 0x1f, 0xac, 0x96, 0x46, 0xae, 0x4c } \
30084 }
30085 /* COM compatibility */
30086 VBOX_EXTERN_CONST(nsIID, IID_IProgressEvent);
30087 #   ifndef VBOX_WITH_GLUE
30088 struct IProgressEvent_vtbl
30089 {
30090     struct IEvent_vtbl ievent;
30091 
30092     nsresult (*GetProgressId)(IProgressEvent *pThis, PRUnichar * *progressId);
30093 
30094 };
30095 #   else /* VBOX_WITH_GLUE */
30096 struct IProgressEventVtbl
30097 {
30098     nsresult (*QueryInterface)(IProgressEvent *pThis, const nsID *iid, void **resultp);
30099     nsrefcnt (*AddRef)(IProgressEvent *pThis);
30100     nsrefcnt (*Release)(IProgressEvent *pThis);
30101     nsresult (*GetType)(IProgressEvent *pThis, PRUint32 *type);
30102 
30103     nsresult (*GetSource)(IProgressEvent *pThis, IEventSource * *source);
30104 
30105     nsresult (*GetWaitable)(IProgressEvent *pThis, PRBool *waitable);
30106 
30107     nsresult (*SetProcessed)(IProgressEvent *pThis );
30108 
30109     nsresult (*WaitProcessed)(
30110         IProgressEvent *pThis,
30111         PRInt32 timeout,
30112         PRBool * result
30113     );
30114 
30115     nsresult (*GetProgressId)(IProgressEvent *pThis, PRUnichar * *progressId);
30116 
30117 };
30118 #    define IProgressEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30119 #    define IProgressEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
30120 #    define IProgressEvent_Release(p) ((p)->lpVtbl->Release(p))
30121 #    define IProgressEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30122 #    define IProgressEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30123 #    define IProgressEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30124 #    define IProgressEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30125 #    define IProgressEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30126 #    define IProgressEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30127 #    define IProgressEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
30128 #    define IProgressEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
30129 #    define IProgressEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
30130 #    define IProgressEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
30131 #   endif /* VBOX_WITH_GLUE */
30132 
30133 interface IProgressEvent
30134 {
30135 #   ifndef VBOX_WITH_GLUE
30136     struct IProgressEvent_vtbl *vtbl;
30137 #   else /* VBOX_WITH_GLUE */
30138     CONST_VTBL struct IProgressEventVtbl *lpVtbl;
30139 #   endif /* VBOX_WITH_GLUE */
30140 };
30141 /* End of struct IProgressEvent declaration */
30142 
30143 
30144 /* Start of struct IProgressPercentageChangedEvent declaration */
30145 #   define IPROGRESSPERCENTAGECHANGEDEVENT_IID_STR "f05d7e60-1bcf-4218-9807-04e036cc70f1"
30146 #   define IPROGRESSPERCENTAGECHANGEDEVENT_IID { \
30147     0xf05d7e60, 0x1bcf, 0x4218, \
30148     { 0x98, 0x07, 0x04, 0xe0, 0x36, 0xcc, 0x70, 0xf1 } \
30149 }
30150 /* COM compatibility */
30151 VBOX_EXTERN_CONST(nsIID, IID_IProgressPercentageChangedEvent);
30152 #   ifndef VBOX_WITH_GLUE
30153 struct IProgressPercentageChangedEvent_vtbl
30154 {
30155     struct IProgressEvent_vtbl iprogressevent;
30156 
30157     nsresult (*GetPercent)(IProgressPercentageChangedEvent *pThis, PRInt32 *percent);
30158 
30159 };
30160 #   else /* VBOX_WITH_GLUE */
30161 struct IProgressPercentageChangedEventVtbl
30162 {
30163     nsresult (*QueryInterface)(IProgressPercentageChangedEvent *pThis, const nsID *iid, void **resultp);
30164     nsrefcnt (*AddRef)(IProgressPercentageChangedEvent *pThis);
30165     nsrefcnt (*Release)(IProgressPercentageChangedEvent *pThis);
30166     nsresult (*GetType)(IProgressPercentageChangedEvent *pThis, PRUint32 *type);
30167 
30168     nsresult (*GetSource)(IProgressPercentageChangedEvent *pThis, IEventSource * *source);
30169 
30170     nsresult (*GetWaitable)(IProgressPercentageChangedEvent *pThis, PRBool *waitable);
30171 
30172     nsresult (*SetProcessed)(IProgressPercentageChangedEvent *pThis );
30173 
30174     nsresult (*WaitProcessed)(
30175         IProgressPercentageChangedEvent *pThis,
30176         PRInt32 timeout,
30177         PRBool * result
30178     );
30179 
30180     nsresult (*GetProgressId)(IProgressPercentageChangedEvent *pThis, PRUnichar * *progressId);
30181 
30182     nsresult (*GetPercent)(IProgressPercentageChangedEvent *pThis, PRInt32 *percent);
30183 
30184 };
30185 #    define IProgressPercentageChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30186 #    define IProgressPercentageChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
30187 #    define IProgressPercentageChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
30188 #    define IProgressPercentageChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30189 #    define IProgressPercentageChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30190 #    define IProgressPercentageChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30191 #    define IProgressPercentageChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30192 #    define IProgressPercentageChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30193 #    define IProgressPercentageChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30194 #    define IProgressPercentageChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
30195 #    define IProgressPercentageChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
30196 #    define IProgressPercentageChangedEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
30197 #    define IProgressPercentageChangedEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
30198 #    define IProgressPercentageChangedEvent_get_Percent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
30199 #    define IProgressPercentageChangedEvent_GetPercent(p, aPercent) ((p)->lpVtbl->GetPercent(p, aPercent))
30200 #   endif /* VBOX_WITH_GLUE */
30201 
30202 interface IProgressPercentageChangedEvent
30203 {
30204 #   ifndef VBOX_WITH_GLUE
30205     struct IProgressPercentageChangedEvent_vtbl *vtbl;
30206 #   else /* VBOX_WITH_GLUE */
30207     CONST_VTBL struct IProgressPercentageChangedEventVtbl *lpVtbl;
30208 #   endif /* VBOX_WITH_GLUE */
30209 };
30210 /* End of struct IProgressPercentageChangedEvent declaration */
30211 
30212 
30213 /* Start of struct IProgressTaskCompletedEvent declaration */
30214 #   define IPROGRESSTASKCOMPLETEDEVENT_IID_STR "a5bbdb7d-8ce7-469f-a4c2-6476f581ff72"
30215 #   define IPROGRESSTASKCOMPLETEDEVENT_IID { \
30216     0xa5bbdb7d, 0x8ce7, 0x469f, \
30217     { 0xa4, 0xc2, 0x64, 0x76, 0xf5, 0x81, 0xff, 0x72 } \
30218 }
30219 /* COM compatibility */
30220 VBOX_EXTERN_CONST(nsIID, IID_IProgressTaskCompletedEvent);
30221 #   ifndef VBOX_WITH_GLUE
30222 struct IProgressTaskCompletedEvent_vtbl
30223 {
30224     struct IProgressEvent_vtbl iprogressevent;
30225 
30226     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IProgressTaskCompletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
30227 
30228 };
30229 #   else /* VBOX_WITH_GLUE */
30230 struct IProgressTaskCompletedEventVtbl
30231 {
30232     nsresult (*QueryInterface)(IProgressTaskCompletedEvent *pThis, const nsID *iid, void **resultp);
30233     nsrefcnt (*AddRef)(IProgressTaskCompletedEvent *pThis);
30234     nsrefcnt (*Release)(IProgressTaskCompletedEvent *pThis);
30235     nsresult (*GetType)(IProgressTaskCompletedEvent *pThis, PRUint32 *type);
30236 
30237     nsresult (*GetSource)(IProgressTaskCompletedEvent *pThis, IEventSource * *source);
30238 
30239     nsresult (*GetWaitable)(IProgressTaskCompletedEvent *pThis, PRBool *waitable);
30240 
30241     nsresult (*SetProcessed)(IProgressTaskCompletedEvent *pThis );
30242 
30243     nsresult (*WaitProcessed)(
30244         IProgressTaskCompletedEvent *pThis,
30245         PRInt32 timeout,
30246         PRBool * result
30247     );
30248 
30249     nsresult (*GetProgressId)(IProgressTaskCompletedEvent *pThis, PRUnichar * *progressId);
30250 
30251     nsresult (*GetMidlDoesNotLikeEmptyInterfaces)(IProgressTaskCompletedEvent *pThis, PRBool *midlDoesNotLikeEmptyInterfaces);
30252 
30253 };
30254 #    define IProgressTaskCompletedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30255 #    define IProgressTaskCompletedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
30256 #    define IProgressTaskCompletedEvent_Release(p) ((p)->lpVtbl->Release(p))
30257 #    define IProgressTaskCompletedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30258 #    define IProgressTaskCompletedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30259 #    define IProgressTaskCompletedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30260 #    define IProgressTaskCompletedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30261 #    define IProgressTaskCompletedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30262 #    define IProgressTaskCompletedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30263 #    define IProgressTaskCompletedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
30264 #    define IProgressTaskCompletedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
30265 #    define IProgressTaskCompletedEvent_get_ProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
30266 #    define IProgressTaskCompletedEvent_GetProgressId(p, aProgressId) ((p)->lpVtbl->GetProgressId(p, aProgressId))
30267 #    define IProgressTaskCompletedEvent_get_MidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
30268 #    define IProgressTaskCompletedEvent_GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces) ((p)->lpVtbl->GetMidlDoesNotLikeEmptyInterfaces(p, aMidlDoesNotLikeEmptyInterfaces))
30269 #   endif /* VBOX_WITH_GLUE */
30270 
30271 interface IProgressTaskCompletedEvent
30272 {
30273 #   ifndef VBOX_WITH_GLUE
30274     struct IProgressTaskCompletedEvent_vtbl *vtbl;
30275 #   else /* VBOX_WITH_GLUE */
30276     CONST_VTBL struct IProgressTaskCompletedEventVtbl *lpVtbl;
30277 #   endif /* VBOX_WITH_GLUE */
30278 };
30279 /* End of struct IProgressTaskCompletedEvent declaration */
30280 
30281 
30282 /* Start of struct ICursorPositionChangedEvent declaration */
30283 #   define ICURSORPOSITIONCHANGEDEVENT_IID_STR "6f302674-c927-11e7-b788-33c248e71fc7"
30284 #   define ICURSORPOSITIONCHANGEDEVENT_IID { \
30285     0x6f302674, 0xc927, 0x11e7, \
30286     { 0xb7, 0x88, 0x33, 0xc2, 0x48, 0xe7, 0x1f, 0xc7 } \
30287 }
30288 /* COM compatibility */
30289 VBOX_EXTERN_CONST(nsIID, IID_ICursorPositionChangedEvent);
30290 #   ifndef VBOX_WITH_GLUE
30291 struct ICursorPositionChangedEvent_vtbl
30292 {
30293     struct IEvent_vtbl ievent;
30294 
30295     nsresult (*GetHasData)(ICursorPositionChangedEvent *pThis, PRBool *hasData);
30296 
30297     nsresult (*GetX)(ICursorPositionChangedEvent *pThis, PRUint32 *x);
30298 
30299     nsresult (*GetY)(ICursorPositionChangedEvent *pThis, PRUint32 *y);
30300 
30301 };
30302 #   else /* VBOX_WITH_GLUE */
30303 struct ICursorPositionChangedEventVtbl
30304 {
30305     nsresult (*QueryInterface)(ICursorPositionChangedEvent *pThis, const nsID *iid, void **resultp);
30306     nsrefcnt (*AddRef)(ICursorPositionChangedEvent *pThis);
30307     nsrefcnt (*Release)(ICursorPositionChangedEvent *pThis);
30308     nsresult (*GetType)(ICursorPositionChangedEvent *pThis, PRUint32 *type);
30309 
30310     nsresult (*GetSource)(ICursorPositionChangedEvent *pThis, IEventSource * *source);
30311 
30312     nsresult (*GetWaitable)(ICursorPositionChangedEvent *pThis, PRBool *waitable);
30313 
30314     nsresult (*SetProcessed)(ICursorPositionChangedEvent *pThis );
30315 
30316     nsresult (*WaitProcessed)(
30317         ICursorPositionChangedEvent *pThis,
30318         PRInt32 timeout,
30319         PRBool * result
30320     );
30321 
30322     nsresult (*GetHasData)(ICursorPositionChangedEvent *pThis, PRBool *hasData);
30323 
30324     nsresult (*GetX)(ICursorPositionChangedEvent *pThis, PRUint32 *x);
30325 
30326     nsresult (*GetY)(ICursorPositionChangedEvent *pThis, PRUint32 *y);
30327 
30328 };
30329 #    define ICursorPositionChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30330 #    define ICursorPositionChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
30331 #    define ICursorPositionChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
30332 #    define ICursorPositionChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30333 #    define ICursorPositionChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30334 #    define ICursorPositionChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30335 #    define ICursorPositionChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30336 #    define ICursorPositionChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30337 #    define ICursorPositionChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30338 #    define ICursorPositionChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
30339 #    define ICursorPositionChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
30340 #    define ICursorPositionChangedEvent_get_HasData(p, aHasData) ((p)->lpVtbl->GetHasData(p, aHasData))
30341 #    define ICursorPositionChangedEvent_GetHasData(p, aHasData) ((p)->lpVtbl->GetHasData(p, aHasData))
30342 #    define ICursorPositionChangedEvent_get_X(p, aX) ((p)->lpVtbl->GetX(p, aX))
30343 #    define ICursorPositionChangedEvent_GetX(p, aX) ((p)->lpVtbl->GetX(p, aX))
30344 #    define ICursorPositionChangedEvent_get_Y(p, aY) ((p)->lpVtbl->GetY(p, aY))
30345 #    define ICursorPositionChangedEvent_GetY(p, aY) ((p)->lpVtbl->GetY(p, aY))
30346 #   endif /* VBOX_WITH_GLUE */
30347 
30348 interface ICursorPositionChangedEvent
30349 {
30350 #   ifndef VBOX_WITH_GLUE
30351     struct ICursorPositionChangedEvent_vtbl *vtbl;
30352 #   else /* VBOX_WITH_GLUE */
30353     CONST_VTBL struct ICursorPositionChangedEventVtbl *lpVtbl;
30354 #   endif /* VBOX_WITH_GLUE */
30355 };
30356 /* End of struct ICursorPositionChangedEvent declaration */
30357 
30358 
30359 /* Start of struct IGuestAdditionsStatusChangedEvent declaration */
30360 #   define IGUESTADDITIONSSTATUSCHANGEDEVENT_IID_STR "a443da5b-aa82-4720-bc84-bd097b2b13b8"
30361 #   define IGUESTADDITIONSSTATUSCHANGEDEVENT_IID { \
30362     0xa443da5b, 0xaa82, 0x4720, \
30363     { 0xbc, 0x84, 0xbd, 0x09, 0x7b, 0x2b, 0x13, 0xb8 } \
30364 }
30365 /* COM compatibility */
30366 VBOX_EXTERN_CONST(nsIID, IID_IGuestAdditionsStatusChangedEvent);
30367 #   ifndef VBOX_WITH_GLUE
30368 struct IGuestAdditionsStatusChangedEvent_vtbl
30369 {
30370     struct IEvent_vtbl ievent;
30371 
30372     nsresult (*GetFacility)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *facility);
30373 
30374     nsresult (*GetStatus)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *status);
30375 
30376     nsresult (*GetRunLevel)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *runLevel);
30377 
30378     nsresult (*GetTimestamp)(IGuestAdditionsStatusChangedEvent *pThis, PRInt64 *timestamp);
30379 
30380 };
30381 #   else /* VBOX_WITH_GLUE */
30382 struct IGuestAdditionsStatusChangedEventVtbl
30383 {
30384     nsresult (*QueryInterface)(IGuestAdditionsStatusChangedEvent *pThis, const nsID *iid, void **resultp);
30385     nsrefcnt (*AddRef)(IGuestAdditionsStatusChangedEvent *pThis);
30386     nsrefcnt (*Release)(IGuestAdditionsStatusChangedEvent *pThis);
30387     nsresult (*GetType)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *type);
30388 
30389     nsresult (*GetSource)(IGuestAdditionsStatusChangedEvent *pThis, IEventSource * *source);
30390 
30391     nsresult (*GetWaitable)(IGuestAdditionsStatusChangedEvent *pThis, PRBool *waitable);
30392 
30393     nsresult (*SetProcessed)(IGuestAdditionsStatusChangedEvent *pThis );
30394 
30395     nsresult (*WaitProcessed)(
30396         IGuestAdditionsStatusChangedEvent *pThis,
30397         PRInt32 timeout,
30398         PRBool * result
30399     );
30400 
30401     nsresult (*GetFacility)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *facility);
30402 
30403     nsresult (*GetStatus)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *status);
30404 
30405     nsresult (*GetRunLevel)(IGuestAdditionsStatusChangedEvent *pThis, PRUint32 *runLevel);
30406 
30407     nsresult (*GetTimestamp)(IGuestAdditionsStatusChangedEvent *pThis, PRInt64 *timestamp);
30408 
30409 };
30410 #    define IGuestAdditionsStatusChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30411 #    define IGuestAdditionsStatusChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
30412 #    define IGuestAdditionsStatusChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
30413 #    define IGuestAdditionsStatusChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30414 #    define IGuestAdditionsStatusChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30415 #    define IGuestAdditionsStatusChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30416 #    define IGuestAdditionsStatusChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30417 #    define IGuestAdditionsStatusChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30418 #    define IGuestAdditionsStatusChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30419 #    define IGuestAdditionsStatusChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
30420 #    define IGuestAdditionsStatusChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
30421 #    define IGuestAdditionsStatusChangedEvent_get_Facility(p, aFacility) ((p)->lpVtbl->GetFacility(p, aFacility))
30422 #    define IGuestAdditionsStatusChangedEvent_GetFacility(p, aFacility) ((p)->lpVtbl->GetFacility(p, aFacility))
30423 #    define IGuestAdditionsStatusChangedEvent_get_Status(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
30424 #    define IGuestAdditionsStatusChangedEvent_GetStatus(p, aStatus) ((p)->lpVtbl->GetStatus(p, aStatus))
30425 #    define IGuestAdditionsStatusChangedEvent_get_RunLevel(p, aRunLevel) ((p)->lpVtbl->GetRunLevel(p, aRunLevel))
30426 #    define IGuestAdditionsStatusChangedEvent_GetRunLevel(p, aRunLevel) ((p)->lpVtbl->GetRunLevel(p, aRunLevel))
30427 #    define IGuestAdditionsStatusChangedEvent_get_Timestamp(p, aTimestamp) ((p)->lpVtbl->GetTimestamp(p, aTimestamp))
30428 #    define IGuestAdditionsStatusChangedEvent_GetTimestamp(p, aTimestamp) ((p)->lpVtbl->GetTimestamp(p, aTimestamp))
30429 #   endif /* VBOX_WITH_GLUE */
30430 
30431 interface IGuestAdditionsStatusChangedEvent
30432 {
30433 #   ifndef VBOX_WITH_GLUE
30434     struct IGuestAdditionsStatusChangedEvent_vtbl *vtbl;
30435 #   else /* VBOX_WITH_GLUE */
30436     CONST_VTBL struct IGuestAdditionsStatusChangedEventVtbl *lpVtbl;
30437 #   endif /* VBOX_WITH_GLUE */
30438 };
30439 /* End of struct IGuestAdditionsStatusChangedEvent declaration */
30440 
30441 
30442 /* Start of struct IGuestMonitorInfoChangedEvent declaration */
30443 #   define IGUESTMONITORINFOCHANGEDEVENT_IID_STR "0b3cdeb2-808e-11e9-b773-133d9330f849"
30444 #   define IGUESTMONITORINFOCHANGEDEVENT_IID { \
30445     0x0b3cdeb2, 0x808e, 0x11e9, \
30446     { 0xb7, 0x73, 0x13, 0x3d, 0x93, 0x30, 0xf8, 0x49 } \
30447 }
30448 /* COM compatibility */
30449 VBOX_EXTERN_CONST(nsIID, IID_IGuestMonitorInfoChangedEvent);
30450 #   ifndef VBOX_WITH_GLUE
30451 struct IGuestMonitorInfoChangedEvent_vtbl
30452 {
30453     struct IEvent_vtbl ievent;
30454 
30455     nsresult (*GetOutput)(IGuestMonitorInfoChangedEvent *pThis, PRUint32 *output);
30456 
30457 };
30458 #   else /* VBOX_WITH_GLUE */
30459 struct IGuestMonitorInfoChangedEventVtbl
30460 {
30461     nsresult (*QueryInterface)(IGuestMonitorInfoChangedEvent *pThis, const nsID *iid, void **resultp);
30462     nsrefcnt (*AddRef)(IGuestMonitorInfoChangedEvent *pThis);
30463     nsrefcnt (*Release)(IGuestMonitorInfoChangedEvent *pThis);
30464     nsresult (*GetType)(IGuestMonitorInfoChangedEvent *pThis, PRUint32 *type);
30465 
30466     nsresult (*GetSource)(IGuestMonitorInfoChangedEvent *pThis, IEventSource * *source);
30467 
30468     nsresult (*GetWaitable)(IGuestMonitorInfoChangedEvent *pThis, PRBool *waitable);
30469 
30470     nsresult (*SetProcessed)(IGuestMonitorInfoChangedEvent *pThis );
30471 
30472     nsresult (*WaitProcessed)(
30473         IGuestMonitorInfoChangedEvent *pThis,
30474         PRInt32 timeout,
30475         PRBool * result
30476     );
30477 
30478     nsresult (*GetOutput)(IGuestMonitorInfoChangedEvent *pThis, PRUint32 *output);
30479 
30480 };
30481 #    define IGuestMonitorInfoChangedEvent_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30482 #    define IGuestMonitorInfoChangedEvent_AddRef(p) ((p)->lpVtbl->AddRef(p))
30483 #    define IGuestMonitorInfoChangedEvent_Release(p) ((p)->lpVtbl->Release(p))
30484 #    define IGuestMonitorInfoChangedEvent_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30485 #    define IGuestMonitorInfoChangedEvent_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30486 #    define IGuestMonitorInfoChangedEvent_get_Source(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30487 #    define IGuestMonitorInfoChangedEvent_GetSource(p, aSource) ((p)->lpVtbl->GetSource(p, aSource))
30488 #    define IGuestMonitorInfoChangedEvent_get_Waitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30489 #    define IGuestMonitorInfoChangedEvent_GetWaitable(p, aWaitable) ((p)->lpVtbl->GetWaitable(p, aWaitable))
30490 #    define IGuestMonitorInfoChangedEvent_SetProcessed(p) ((p)->lpVtbl->SetProcessed(p))
30491 #    define IGuestMonitorInfoChangedEvent_WaitProcessed(p, aTimeout, aResult) ((p)->lpVtbl->WaitProcessed(p, aTimeout, aResult))
30492 #    define IGuestMonitorInfoChangedEvent_get_Output(p, aOutput) ((p)->lpVtbl->GetOutput(p, aOutput))
30493 #    define IGuestMonitorInfoChangedEvent_GetOutput(p, aOutput) ((p)->lpVtbl->GetOutput(p, aOutput))
30494 #   endif /* VBOX_WITH_GLUE */
30495 
30496 interface IGuestMonitorInfoChangedEvent
30497 {
30498 #   ifndef VBOX_WITH_GLUE
30499     struct IGuestMonitorInfoChangedEvent_vtbl *vtbl;
30500 #   else /* VBOX_WITH_GLUE */
30501     CONST_VTBL struct IGuestMonitorInfoChangedEventVtbl *lpVtbl;
30502 #   endif /* VBOX_WITH_GLUE */
30503 };
30504 /* End of struct IGuestMonitorInfoChangedEvent declaration */
30505 
30506 
30507 /* Start of struct IStringArray declaration */
30508 #   define ISTRINGARRAY_IID_STR "3890b2c8-604d-11e9-92d3-53cb473db9fb"
30509 #   define ISTRINGARRAY_IID { \
30510     0x3890b2c8, 0x604d, 0x11e9, \
30511     { 0x92, 0xd3, 0x53, 0xcb, 0x47, 0x3d, 0xb9, 0xfb } \
30512 }
30513 /* COM compatibility */
30514 VBOX_EXTERN_CONST(nsIID, IID_IStringArray);
30515 #   ifndef VBOX_WITH_GLUE
30516 struct IStringArray_vtbl
30517 {
30518     struct nsISupports_vtbl nsisupports;
30519 
30520     nsresult (*GetValues)(IStringArray *pThis, PRUint32 *valuesSize, PRUnichar * **values);
30521 
30522     nsresult (*InternalAndReservedMethod1IStringArray)(IStringArray *pThis);
30523 
30524     nsresult (*InternalAndReservedMethod2IStringArray)(IStringArray *pThis);
30525 
30526     nsresult (*InternalAndReservedMethod3IStringArray)(IStringArray *pThis);
30527 
30528     nsresult (*InternalAndReservedMethod4IStringArray)(IStringArray *pThis);
30529 
30530 };
30531 #   else /* VBOX_WITH_GLUE */
30532 struct IStringArrayVtbl
30533 {
30534     nsresult (*QueryInterface)(IStringArray *pThis, const nsID *iid, void **resultp);
30535     nsrefcnt (*AddRef)(IStringArray *pThis);
30536     nsrefcnt (*Release)(IStringArray *pThis);
30537     nsresult (*GetValues)(IStringArray *pThis, PRUint32 *valuesSize, PRUnichar * **values);
30538 
30539     nsresult (*InternalAndReservedMethod1IStringArray)(IStringArray *pThis);
30540 
30541     nsresult (*InternalAndReservedMethod2IStringArray)(IStringArray *pThis);
30542 
30543     nsresult (*InternalAndReservedMethod3IStringArray)(IStringArray *pThis);
30544 
30545     nsresult (*InternalAndReservedMethod4IStringArray)(IStringArray *pThis);
30546 
30547 };
30548 #    define IStringArray_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30549 #    define IStringArray_AddRef(p) ((p)->lpVtbl->AddRef(p))
30550 #    define IStringArray_Release(p) ((p)->lpVtbl->Release(p))
30551 #    define IStringArray_get_Values(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
30552 #    define IStringArray_GetValues(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
30553 #   endif /* VBOX_WITH_GLUE */
30554 
30555 interface IStringArray
30556 {
30557 #   ifndef VBOX_WITH_GLUE
30558     struct IStringArray_vtbl *vtbl;
30559 #   else /* VBOX_WITH_GLUE */
30560     CONST_VTBL struct IStringArrayVtbl *lpVtbl;
30561 #   endif /* VBOX_WITH_GLUE */
30562 };
30563 /* End of struct IStringArray declaration */
30564 
30565 
30566 /* Start of struct IFormValue declaration */
30567 #   define IFORMVALUE_IID_STR "67c50afe-3e78-11e9-b25e-7768f80c0e07"
30568 #   define IFORMVALUE_IID { \
30569     0x67c50afe, 0x3e78, 0x11e9, \
30570     { 0xb2, 0x5e, 0x77, 0x68, 0xf8, 0x0c, 0x0e, 0x07 } \
30571 }
30572 /* COM compatibility */
30573 VBOX_EXTERN_CONST(nsIID, IID_IFormValue);
30574 #   ifndef VBOX_WITH_GLUE
30575 struct IFormValue_vtbl
30576 {
30577     struct nsISupports_vtbl nsisupports;
30578 
30579     nsresult (*GetType)(IFormValue *pThis, PRUint32 *type);
30580 
30581     nsresult (*GetGeneration)(IFormValue *pThis, PRInt32 *generation);
30582 
30583     nsresult (*GetEnabled)(IFormValue *pThis, PRBool *enabled);
30584 
30585     nsresult (*GetVisible)(IFormValue *pThis, PRBool *visible);
30586 
30587     nsresult (*GetLabel)(IFormValue *pThis, PRUnichar * *label);
30588 
30589     nsresult (*GetDescription)(IFormValue *pThis, PRUnichar * *description);
30590 
30591     nsresult (*GetHelp)(IFormValue *pThis, PRUnichar * *help);
30592 
30593     nsresult (*GetInternalAndReservedAttribute1IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30594 
30595     nsresult (*GetInternalAndReservedAttribute2IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30596 
30597     nsresult (*GetInternalAndReservedAttribute3IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30598 
30599     nsresult (*GetInternalAndReservedAttribute4IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30600 
30601     nsresult (*GetInternalAndReservedAttribute5IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30602 
30603     nsresult (*GetInternalAndReservedAttribute6IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30604 
30605     nsresult (*GetInternalAndReservedAttribute7IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30606 
30607     nsresult (*GetInternalAndReservedAttribute8IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30608 
30609     nsresult (*InternalAndReservedMethod1IFormValue)(IFormValue *pThis);
30610 
30611     nsresult (*InternalAndReservedMethod2IFormValue)(IFormValue *pThis);
30612 
30613     nsresult (*InternalAndReservedMethod3IFormValue)(IFormValue *pThis);
30614 
30615     nsresult (*InternalAndReservedMethod4IFormValue)(IFormValue *pThis);
30616 
30617 };
30618 #   else /* VBOX_WITH_GLUE */
30619 struct IFormValueVtbl
30620 {
30621     nsresult (*QueryInterface)(IFormValue *pThis, const nsID *iid, void **resultp);
30622     nsrefcnt (*AddRef)(IFormValue *pThis);
30623     nsrefcnt (*Release)(IFormValue *pThis);
30624     nsresult (*GetType)(IFormValue *pThis, PRUint32 *type);
30625 
30626     nsresult (*GetGeneration)(IFormValue *pThis, PRInt32 *generation);
30627 
30628     nsresult (*GetEnabled)(IFormValue *pThis, PRBool *enabled);
30629 
30630     nsresult (*GetVisible)(IFormValue *pThis, PRBool *visible);
30631 
30632     nsresult (*GetLabel)(IFormValue *pThis, PRUnichar * *label);
30633 
30634     nsresult (*GetDescription)(IFormValue *pThis, PRUnichar * *description);
30635 
30636     nsresult (*GetHelp)(IFormValue *pThis, PRUnichar * *help);
30637 
30638     nsresult (*GetInternalAndReservedAttribute1IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30639 
30640     nsresult (*GetInternalAndReservedAttribute2IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30641 
30642     nsresult (*GetInternalAndReservedAttribute3IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30643 
30644     nsresult (*GetInternalAndReservedAttribute4IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30645 
30646     nsresult (*GetInternalAndReservedAttribute5IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30647 
30648     nsresult (*GetInternalAndReservedAttribute6IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30649 
30650     nsresult (*GetInternalAndReservedAttribute7IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30651 
30652     nsresult (*GetInternalAndReservedAttribute8IFormValue)(IFormValue *pThis, PRUint32 *reserved);
30653 
30654     nsresult (*InternalAndReservedMethod1IFormValue)(IFormValue *pThis);
30655 
30656     nsresult (*InternalAndReservedMethod2IFormValue)(IFormValue *pThis);
30657 
30658     nsresult (*InternalAndReservedMethod3IFormValue)(IFormValue *pThis);
30659 
30660     nsresult (*InternalAndReservedMethod4IFormValue)(IFormValue *pThis);
30661 
30662 };
30663 #    define IFormValue_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30664 #    define IFormValue_AddRef(p) ((p)->lpVtbl->AddRef(p))
30665 #    define IFormValue_Release(p) ((p)->lpVtbl->Release(p))
30666 #    define IFormValue_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30667 #    define IFormValue_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30668 #    define IFormValue_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
30669 #    define IFormValue_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
30670 #    define IFormValue_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
30671 #    define IFormValue_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
30672 #    define IFormValue_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
30673 #    define IFormValue_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
30674 #    define IFormValue_get_Label(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
30675 #    define IFormValue_GetLabel(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
30676 #    define IFormValue_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
30677 #    define IFormValue_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
30678 #    define IFormValue_get_Help(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
30679 #    define IFormValue_GetHelp(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
30680 #   endif /* VBOX_WITH_GLUE */
30681 
30682 interface IFormValue
30683 {
30684 #   ifndef VBOX_WITH_GLUE
30685     struct IFormValue_vtbl *vtbl;
30686 #   else /* VBOX_WITH_GLUE */
30687     CONST_VTBL struct IFormValueVtbl *lpVtbl;
30688 #   endif /* VBOX_WITH_GLUE */
30689 };
30690 /* End of struct IFormValue declaration */
30691 
30692 
30693 /* Start of struct IBooleanFormValue declaration */
30694 #   define IBOOLEANFORMVALUE_IID_STR "4f4adcf6-3e87-11e9-8af2-576e84223953"
30695 #   define IBOOLEANFORMVALUE_IID { \
30696     0x4f4adcf6, 0x3e87, 0x11e9, \
30697     { 0x8a, 0xf2, 0x57, 0x6e, 0x84, 0x22, 0x39, 0x53 } \
30698 }
30699 /* COM compatibility */
30700 VBOX_EXTERN_CONST(nsIID, IID_IBooleanFormValue);
30701 #   ifndef VBOX_WITH_GLUE
30702 struct IBooleanFormValue_vtbl
30703 {
30704     struct IFormValue_vtbl iformvalue;
30705 
30706     nsresult (*GetInternalAndReservedAttribute1IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30707 
30708     nsresult (*GetInternalAndReservedAttribute2IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30709 
30710     nsresult (*GetInternalAndReservedAttribute3IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30711 
30712     nsresult (*GetInternalAndReservedAttribute4IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30713 
30714     nsresult (*GetSelected)(
30715         IBooleanFormValue *pThis,
30716         PRBool * selected
30717     );
30718 
30719     nsresult (*SetSelected)(
30720         IBooleanFormValue *pThis,
30721         PRBool selected,
30722         IProgress * * progress
30723     );
30724 
30725     nsresult (*InternalAndReservedMethod1IBooleanFormValue)(IBooleanFormValue *pThis);
30726 
30727     nsresult (*InternalAndReservedMethod2IBooleanFormValue)(IBooleanFormValue *pThis);
30728 
30729     nsresult (*InternalAndReservedMethod3IBooleanFormValue)(IBooleanFormValue *pThis);
30730 
30731     nsresult (*InternalAndReservedMethod4IBooleanFormValue)(IBooleanFormValue *pThis);
30732 
30733 };
30734 #   else /* VBOX_WITH_GLUE */
30735 struct IBooleanFormValueVtbl
30736 {
30737     nsresult (*QueryInterface)(IBooleanFormValue *pThis, const nsID *iid, void **resultp);
30738     nsrefcnt (*AddRef)(IBooleanFormValue *pThis);
30739     nsrefcnt (*Release)(IBooleanFormValue *pThis);
30740     nsresult (*GetType)(IBooleanFormValue *pThis, PRUint32 *type);
30741 
30742     nsresult (*GetGeneration)(IBooleanFormValue *pThis, PRInt32 *generation);
30743 
30744     nsresult (*GetEnabled)(IBooleanFormValue *pThis, PRBool *enabled);
30745 
30746     nsresult (*GetVisible)(IBooleanFormValue *pThis, PRBool *visible);
30747 
30748     nsresult (*GetLabel)(IBooleanFormValue *pThis, PRUnichar * *label);
30749 
30750     nsresult (*GetDescription)(IBooleanFormValue *pThis, PRUnichar * *description);
30751 
30752     nsresult (*GetHelp)(IBooleanFormValue *pThis, PRUnichar * *help);
30753 
30754     nsresult (*GetInternalAndReservedAttribute1IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30755 
30756     nsresult (*GetInternalAndReservedAttribute2IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30757 
30758     nsresult (*GetInternalAndReservedAttribute3IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30759 
30760     nsresult (*GetInternalAndReservedAttribute4IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30761 
30762     nsresult (*GetInternalAndReservedAttribute5IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30763 
30764     nsresult (*GetInternalAndReservedAttribute6IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30765 
30766     nsresult (*GetInternalAndReservedAttribute7IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30767 
30768     nsresult (*GetInternalAndReservedAttribute8IFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30769 
30770     nsresult (*InternalAndReservedMethod1IFormValue)(IBooleanFormValue *pThis);
30771 
30772     nsresult (*InternalAndReservedMethod2IFormValue)(IBooleanFormValue *pThis);
30773 
30774     nsresult (*InternalAndReservedMethod3IFormValue)(IBooleanFormValue *pThis);
30775 
30776     nsresult (*InternalAndReservedMethod4IFormValue)(IBooleanFormValue *pThis);
30777 
30778     nsresult (*GetInternalAndReservedAttribute1IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30779 
30780     nsresult (*GetInternalAndReservedAttribute2IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30781 
30782     nsresult (*GetInternalAndReservedAttribute3IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30783 
30784     nsresult (*GetInternalAndReservedAttribute4IBooleanFormValue)(IBooleanFormValue *pThis, PRUint32 *reserved);
30785 
30786     nsresult (*GetSelected)(
30787         IBooleanFormValue *pThis,
30788         PRBool * selected
30789     );
30790 
30791     nsresult (*SetSelected)(
30792         IBooleanFormValue *pThis,
30793         PRBool selected,
30794         IProgress * * progress
30795     );
30796 
30797     nsresult (*InternalAndReservedMethod1IBooleanFormValue)(IBooleanFormValue *pThis);
30798 
30799     nsresult (*InternalAndReservedMethod2IBooleanFormValue)(IBooleanFormValue *pThis);
30800 
30801     nsresult (*InternalAndReservedMethod3IBooleanFormValue)(IBooleanFormValue *pThis);
30802 
30803     nsresult (*InternalAndReservedMethod4IBooleanFormValue)(IBooleanFormValue *pThis);
30804 
30805 };
30806 #    define IBooleanFormValue_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30807 #    define IBooleanFormValue_AddRef(p) ((p)->lpVtbl->AddRef(p))
30808 #    define IBooleanFormValue_Release(p) ((p)->lpVtbl->Release(p))
30809 #    define IBooleanFormValue_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30810 #    define IBooleanFormValue_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30811 #    define IBooleanFormValue_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
30812 #    define IBooleanFormValue_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
30813 #    define IBooleanFormValue_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
30814 #    define IBooleanFormValue_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
30815 #    define IBooleanFormValue_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
30816 #    define IBooleanFormValue_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
30817 #    define IBooleanFormValue_get_Label(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
30818 #    define IBooleanFormValue_GetLabel(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
30819 #    define IBooleanFormValue_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
30820 #    define IBooleanFormValue_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
30821 #    define IBooleanFormValue_get_Help(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
30822 #    define IBooleanFormValue_GetHelp(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
30823 #    define IBooleanFormValue_GetSelected(p, aSelected) ((p)->lpVtbl->GetSelected(p, aSelected))
30824 #    define IBooleanFormValue_SetSelected(p, aSelected, aProgress) ((p)->lpVtbl->SetSelected(p, aSelected, aProgress))
30825 #   endif /* VBOX_WITH_GLUE */
30826 
30827 interface IBooleanFormValue
30828 {
30829 #   ifndef VBOX_WITH_GLUE
30830     struct IBooleanFormValue_vtbl *vtbl;
30831 #   else /* VBOX_WITH_GLUE */
30832     CONST_VTBL struct IBooleanFormValueVtbl *lpVtbl;
30833 #   endif /* VBOX_WITH_GLUE */
30834 };
30835 /* End of struct IBooleanFormValue declaration */
30836 
30837 
30838 /* Start of struct IRangedIntegerFormValue declaration */
30839 #   define IRANGEDINTEGERFORMVALUE_IID_STR "b31c4052-7bdc-11e9-8bc2-8ffdb8b19219"
30840 #   define IRANGEDINTEGERFORMVALUE_IID { \
30841     0xb31c4052, 0x7bdc, 0x11e9, \
30842     { 0x8b, 0xc2, 0x8f, 0xfd, 0xb8, 0xb1, 0x92, 0x19 } \
30843 }
30844 /* COM compatibility */
30845 VBOX_EXTERN_CONST(nsIID, IID_IRangedIntegerFormValue);
30846 #   ifndef VBOX_WITH_GLUE
30847 struct IRangedIntegerFormValue_vtbl
30848 {
30849     struct IFormValue_vtbl iformvalue;
30850 
30851     nsresult (*GetSuffix)(IRangedIntegerFormValue *pThis, PRUnichar * *suffix);
30852 
30853     nsresult (*GetMinimum)(IRangedIntegerFormValue *pThis, PRInt32 *minimum);
30854 
30855     nsresult (*GetMaximum)(IRangedIntegerFormValue *pThis, PRInt32 *maximum);
30856 
30857     nsresult (*GetInternalAndReservedAttribute1IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30858 
30859     nsresult (*GetInternalAndReservedAttribute2IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30860 
30861     nsresult (*GetInternalAndReservedAttribute3IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30862 
30863     nsresult (*GetInternalAndReservedAttribute4IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30864 
30865     nsresult (*GetInteger)(
30866         IRangedIntegerFormValue *pThis,
30867         PRInt32 * value
30868     );
30869 
30870     nsresult (*SetInteger)(
30871         IRangedIntegerFormValue *pThis,
30872         PRInt32 value,
30873         IProgress * * progress
30874     );
30875 
30876     nsresult (*InternalAndReservedMethod1IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30877 
30878     nsresult (*InternalAndReservedMethod2IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30879 
30880     nsresult (*InternalAndReservedMethod3IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30881 
30882     nsresult (*InternalAndReservedMethod4IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30883 
30884 };
30885 #   else /* VBOX_WITH_GLUE */
30886 struct IRangedIntegerFormValueVtbl
30887 {
30888     nsresult (*QueryInterface)(IRangedIntegerFormValue *pThis, const nsID *iid, void **resultp);
30889     nsrefcnt (*AddRef)(IRangedIntegerFormValue *pThis);
30890     nsrefcnt (*Release)(IRangedIntegerFormValue *pThis);
30891     nsresult (*GetType)(IRangedIntegerFormValue *pThis, PRUint32 *type);
30892 
30893     nsresult (*GetGeneration)(IRangedIntegerFormValue *pThis, PRInt32 *generation);
30894 
30895     nsresult (*GetEnabled)(IRangedIntegerFormValue *pThis, PRBool *enabled);
30896 
30897     nsresult (*GetVisible)(IRangedIntegerFormValue *pThis, PRBool *visible);
30898 
30899     nsresult (*GetLabel)(IRangedIntegerFormValue *pThis, PRUnichar * *label);
30900 
30901     nsresult (*GetDescription)(IRangedIntegerFormValue *pThis, PRUnichar * *description);
30902 
30903     nsresult (*GetHelp)(IRangedIntegerFormValue *pThis, PRUnichar * *help);
30904 
30905     nsresult (*GetInternalAndReservedAttribute1IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30906 
30907     nsresult (*GetInternalAndReservedAttribute2IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30908 
30909     nsresult (*GetInternalAndReservedAttribute3IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30910 
30911     nsresult (*GetInternalAndReservedAttribute4IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30912 
30913     nsresult (*GetInternalAndReservedAttribute5IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30914 
30915     nsresult (*GetInternalAndReservedAttribute6IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30916 
30917     nsresult (*GetInternalAndReservedAttribute7IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30918 
30919     nsresult (*GetInternalAndReservedAttribute8IFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30920 
30921     nsresult (*InternalAndReservedMethod1IFormValue)(IRangedIntegerFormValue *pThis);
30922 
30923     nsresult (*InternalAndReservedMethod2IFormValue)(IRangedIntegerFormValue *pThis);
30924 
30925     nsresult (*InternalAndReservedMethod3IFormValue)(IRangedIntegerFormValue *pThis);
30926 
30927     nsresult (*InternalAndReservedMethod4IFormValue)(IRangedIntegerFormValue *pThis);
30928 
30929     nsresult (*GetSuffix)(IRangedIntegerFormValue *pThis, PRUnichar * *suffix);
30930 
30931     nsresult (*GetMinimum)(IRangedIntegerFormValue *pThis, PRInt32 *minimum);
30932 
30933     nsresult (*GetMaximum)(IRangedIntegerFormValue *pThis, PRInt32 *maximum);
30934 
30935     nsresult (*GetInternalAndReservedAttribute1IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30936 
30937     nsresult (*GetInternalAndReservedAttribute2IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30938 
30939     nsresult (*GetInternalAndReservedAttribute3IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30940 
30941     nsresult (*GetInternalAndReservedAttribute4IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis, PRUint32 *reserved);
30942 
30943     nsresult (*GetInteger)(
30944         IRangedIntegerFormValue *pThis,
30945         PRInt32 * value
30946     );
30947 
30948     nsresult (*SetInteger)(
30949         IRangedIntegerFormValue *pThis,
30950         PRInt32 value,
30951         IProgress * * progress
30952     );
30953 
30954     nsresult (*InternalAndReservedMethod1IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30955 
30956     nsresult (*InternalAndReservedMethod2IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30957 
30958     nsresult (*InternalAndReservedMethod3IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30959 
30960     nsresult (*InternalAndReservedMethod4IRangedIntegerFormValue)(IRangedIntegerFormValue *pThis);
30961 
30962 };
30963 #    define IRangedIntegerFormValue_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
30964 #    define IRangedIntegerFormValue_AddRef(p) ((p)->lpVtbl->AddRef(p))
30965 #    define IRangedIntegerFormValue_Release(p) ((p)->lpVtbl->Release(p))
30966 #    define IRangedIntegerFormValue_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
30967 #    define IRangedIntegerFormValue_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
30968 #    define IRangedIntegerFormValue_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
30969 #    define IRangedIntegerFormValue_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
30970 #    define IRangedIntegerFormValue_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
30971 #    define IRangedIntegerFormValue_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
30972 #    define IRangedIntegerFormValue_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
30973 #    define IRangedIntegerFormValue_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
30974 #    define IRangedIntegerFormValue_get_Label(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
30975 #    define IRangedIntegerFormValue_GetLabel(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
30976 #    define IRangedIntegerFormValue_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
30977 #    define IRangedIntegerFormValue_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
30978 #    define IRangedIntegerFormValue_get_Help(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
30979 #    define IRangedIntegerFormValue_GetHelp(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
30980 #    define IRangedIntegerFormValue_get_Suffix(p, aSuffix) ((p)->lpVtbl->GetSuffix(p, aSuffix))
30981 #    define IRangedIntegerFormValue_GetSuffix(p, aSuffix) ((p)->lpVtbl->GetSuffix(p, aSuffix))
30982 #    define IRangedIntegerFormValue_get_Minimum(p, aMinimum) ((p)->lpVtbl->GetMinimum(p, aMinimum))
30983 #    define IRangedIntegerFormValue_GetMinimum(p, aMinimum) ((p)->lpVtbl->GetMinimum(p, aMinimum))
30984 #    define IRangedIntegerFormValue_get_Maximum(p, aMaximum) ((p)->lpVtbl->GetMaximum(p, aMaximum))
30985 #    define IRangedIntegerFormValue_GetMaximum(p, aMaximum) ((p)->lpVtbl->GetMaximum(p, aMaximum))
30986 #    define IRangedIntegerFormValue_GetInteger(p, aValue) ((p)->lpVtbl->GetInteger(p, aValue))
30987 #    define IRangedIntegerFormValue_SetInteger(p, aValue, aProgress) ((p)->lpVtbl->SetInteger(p, aValue, aProgress))
30988 #   endif /* VBOX_WITH_GLUE */
30989 
30990 interface IRangedIntegerFormValue
30991 {
30992 #   ifndef VBOX_WITH_GLUE
30993     struct IRangedIntegerFormValue_vtbl *vtbl;
30994 #   else /* VBOX_WITH_GLUE */
30995     CONST_VTBL struct IRangedIntegerFormValueVtbl *lpVtbl;
30996 #   endif /* VBOX_WITH_GLUE */
30997 };
30998 /* End of struct IRangedIntegerFormValue declaration */
30999 
31000 
31001 /* Start of struct IStringFormValue declaration */
31002 #   define ISTRINGFORMVALUE_IID_STR "cb6f0f2c-8384-11e9-921d-8b984e28a686"
31003 #   define ISTRINGFORMVALUE_IID { \
31004     0xcb6f0f2c, 0x8384, 0x11e9, \
31005     { 0x92, 0x1d, 0x8b, 0x98, 0x4e, 0x28, 0xa6, 0x86 } \
31006 }
31007 /* COM compatibility */
31008 VBOX_EXTERN_CONST(nsIID, IID_IStringFormValue);
31009 #   ifndef VBOX_WITH_GLUE
31010 struct IStringFormValue_vtbl
31011 {
31012     struct IFormValue_vtbl iformvalue;
31013 
31014     nsresult (*GetMultiline)(IStringFormValue *pThis, PRBool *multiline);
31015 
31016     nsresult (*GetInternalAndReservedAttribute1IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31017 
31018     nsresult (*GetInternalAndReservedAttribute2IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31019 
31020     nsresult (*GetInternalAndReservedAttribute3IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31021 
31022     nsresult (*GetInternalAndReservedAttribute4IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31023 
31024     nsresult (*GetString)(
31025         IStringFormValue *pThis,
31026         PRUnichar * * text
31027     );
31028 
31029     nsresult (*SetString)(
31030         IStringFormValue *pThis,
31031         PRUnichar * text,
31032         IProgress * * progress
31033     );
31034 
31035     nsresult (*InternalAndReservedMethod1IStringFormValue)(IStringFormValue *pThis);
31036 
31037     nsresult (*InternalAndReservedMethod2IStringFormValue)(IStringFormValue *pThis);
31038 
31039     nsresult (*InternalAndReservedMethod3IStringFormValue)(IStringFormValue *pThis);
31040 
31041     nsresult (*InternalAndReservedMethod4IStringFormValue)(IStringFormValue *pThis);
31042 
31043 };
31044 #   else /* VBOX_WITH_GLUE */
31045 struct IStringFormValueVtbl
31046 {
31047     nsresult (*QueryInterface)(IStringFormValue *pThis, const nsID *iid, void **resultp);
31048     nsrefcnt (*AddRef)(IStringFormValue *pThis);
31049     nsrefcnt (*Release)(IStringFormValue *pThis);
31050     nsresult (*GetType)(IStringFormValue *pThis, PRUint32 *type);
31051 
31052     nsresult (*GetGeneration)(IStringFormValue *pThis, PRInt32 *generation);
31053 
31054     nsresult (*GetEnabled)(IStringFormValue *pThis, PRBool *enabled);
31055 
31056     nsresult (*GetVisible)(IStringFormValue *pThis, PRBool *visible);
31057 
31058     nsresult (*GetLabel)(IStringFormValue *pThis, PRUnichar * *label);
31059 
31060     nsresult (*GetDescription)(IStringFormValue *pThis, PRUnichar * *description);
31061 
31062     nsresult (*GetHelp)(IStringFormValue *pThis, PRUnichar * *help);
31063 
31064     nsresult (*GetInternalAndReservedAttribute1IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31065 
31066     nsresult (*GetInternalAndReservedAttribute2IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31067 
31068     nsresult (*GetInternalAndReservedAttribute3IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31069 
31070     nsresult (*GetInternalAndReservedAttribute4IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31071 
31072     nsresult (*GetInternalAndReservedAttribute5IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31073 
31074     nsresult (*GetInternalAndReservedAttribute6IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31075 
31076     nsresult (*GetInternalAndReservedAttribute7IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31077 
31078     nsresult (*GetInternalAndReservedAttribute8IFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31079 
31080     nsresult (*InternalAndReservedMethod1IFormValue)(IStringFormValue *pThis);
31081 
31082     nsresult (*InternalAndReservedMethod2IFormValue)(IStringFormValue *pThis);
31083 
31084     nsresult (*InternalAndReservedMethod3IFormValue)(IStringFormValue *pThis);
31085 
31086     nsresult (*InternalAndReservedMethod4IFormValue)(IStringFormValue *pThis);
31087 
31088     nsresult (*GetMultiline)(IStringFormValue *pThis, PRBool *multiline);
31089 
31090     nsresult (*GetInternalAndReservedAttribute1IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31091 
31092     nsresult (*GetInternalAndReservedAttribute2IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31093 
31094     nsresult (*GetInternalAndReservedAttribute3IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31095 
31096     nsresult (*GetInternalAndReservedAttribute4IStringFormValue)(IStringFormValue *pThis, PRUint32 *reserved);
31097 
31098     nsresult (*GetString)(
31099         IStringFormValue *pThis,
31100         PRUnichar * * text
31101     );
31102 
31103     nsresult (*SetString)(
31104         IStringFormValue *pThis,
31105         PRUnichar * text,
31106         IProgress * * progress
31107     );
31108 
31109     nsresult (*InternalAndReservedMethod1IStringFormValue)(IStringFormValue *pThis);
31110 
31111     nsresult (*InternalAndReservedMethod2IStringFormValue)(IStringFormValue *pThis);
31112 
31113     nsresult (*InternalAndReservedMethod3IStringFormValue)(IStringFormValue *pThis);
31114 
31115     nsresult (*InternalAndReservedMethod4IStringFormValue)(IStringFormValue *pThis);
31116 
31117 };
31118 #    define IStringFormValue_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
31119 #    define IStringFormValue_AddRef(p) ((p)->lpVtbl->AddRef(p))
31120 #    define IStringFormValue_Release(p) ((p)->lpVtbl->Release(p))
31121 #    define IStringFormValue_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
31122 #    define IStringFormValue_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
31123 #    define IStringFormValue_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
31124 #    define IStringFormValue_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
31125 #    define IStringFormValue_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
31126 #    define IStringFormValue_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
31127 #    define IStringFormValue_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
31128 #    define IStringFormValue_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
31129 #    define IStringFormValue_get_Label(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
31130 #    define IStringFormValue_GetLabel(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
31131 #    define IStringFormValue_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
31132 #    define IStringFormValue_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
31133 #    define IStringFormValue_get_Help(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
31134 #    define IStringFormValue_GetHelp(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
31135 #    define IStringFormValue_get_Multiline(p, aMultiline) ((p)->lpVtbl->GetMultiline(p, aMultiline))
31136 #    define IStringFormValue_GetMultiline(p, aMultiline) ((p)->lpVtbl->GetMultiline(p, aMultiline))
31137 #    define IStringFormValue_GetString(p, aText) ((p)->lpVtbl->GetString(p, aText))
31138 #    define IStringFormValue_SetString(p, aText, aProgress) ((p)->lpVtbl->SetString(p, aText, aProgress))
31139 #   endif /* VBOX_WITH_GLUE */
31140 
31141 interface IStringFormValue
31142 {
31143 #   ifndef VBOX_WITH_GLUE
31144     struct IStringFormValue_vtbl *vtbl;
31145 #   else /* VBOX_WITH_GLUE */
31146     CONST_VTBL struct IStringFormValueVtbl *lpVtbl;
31147 #   endif /* VBOX_WITH_GLUE */
31148 };
31149 /* End of struct IStringFormValue declaration */
31150 
31151 
31152 /* Start of struct IChoiceFormValue declaration */
31153 #   define ICHOICEFORMVALUE_IID_STR "7191cf38-3e8a-11e9-825c-ab7b2cabce23"
31154 #   define ICHOICEFORMVALUE_IID { \
31155     0x7191cf38, 0x3e8a, 0x11e9, \
31156     { 0x82, 0x5c, 0xab, 0x7b, 0x2c, 0xab, 0xce, 0x23 } \
31157 }
31158 /* COM compatibility */
31159 VBOX_EXTERN_CONST(nsIID, IID_IChoiceFormValue);
31160 #   ifndef VBOX_WITH_GLUE
31161 struct IChoiceFormValue_vtbl
31162 {
31163     struct IFormValue_vtbl iformvalue;
31164 
31165     nsresult (*GetValues)(IChoiceFormValue *pThis, PRUint32 *valuesSize, PRUnichar * **values);
31166 
31167     nsresult (*GetInternalAndReservedAttribute1IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31168 
31169     nsresult (*GetInternalAndReservedAttribute2IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31170 
31171     nsresult (*GetInternalAndReservedAttribute3IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31172 
31173     nsresult (*GetInternalAndReservedAttribute4IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31174 
31175     nsresult (*GetSelectedIndex)(
31176         IChoiceFormValue *pThis,
31177         PRInt32 * index
31178     );
31179 
31180     nsresult (*SetSelectedIndex)(
31181         IChoiceFormValue *pThis,
31182         PRInt32 index,
31183         IProgress * * progress
31184     );
31185 
31186     nsresult (*InternalAndReservedMethod1IChoiceFormValue)(IChoiceFormValue *pThis);
31187 
31188     nsresult (*InternalAndReservedMethod2IChoiceFormValue)(IChoiceFormValue *pThis);
31189 
31190     nsresult (*InternalAndReservedMethod3IChoiceFormValue)(IChoiceFormValue *pThis);
31191 
31192     nsresult (*InternalAndReservedMethod4IChoiceFormValue)(IChoiceFormValue *pThis);
31193 
31194 };
31195 #   else /* VBOX_WITH_GLUE */
31196 struct IChoiceFormValueVtbl
31197 {
31198     nsresult (*QueryInterface)(IChoiceFormValue *pThis, const nsID *iid, void **resultp);
31199     nsrefcnt (*AddRef)(IChoiceFormValue *pThis);
31200     nsrefcnt (*Release)(IChoiceFormValue *pThis);
31201     nsresult (*GetType)(IChoiceFormValue *pThis, PRUint32 *type);
31202 
31203     nsresult (*GetGeneration)(IChoiceFormValue *pThis, PRInt32 *generation);
31204 
31205     nsresult (*GetEnabled)(IChoiceFormValue *pThis, PRBool *enabled);
31206 
31207     nsresult (*GetVisible)(IChoiceFormValue *pThis, PRBool *visible);
31208 
31209     nsresult (*GetLabel)(IChoiceFormValue *pThis, PRUnichar * *label);
31210 
31211     nsresult (*GetDescription)(IChoiceFormValue *pThis, PRUnichar * *description);
31212 
31213     nsresult (*GetHelp)(IChoiceFormValue *pThis, PRUnichar * *help);
31214 
31215     nsresult (*GetInternalAndReservedAttribute1IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31216 
31217     nsresult (*GetInternalAndReservedAttribute2IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31218 
31219     nsresult (*GetInternalAndReservedAttribute3IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31220 
31221     nsresult (*GetInternalAndReservedAttribute4IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31222 
31223     nsresult (*GetInternalAndReservedAttribute5IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31224 
31225     nsresult (*GetInternalAndReservedAttribute6IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31226 
31227     nsresult (*GetInternalAndReservedAttribute7IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31228 
31229     nsresult (*GetInternalAndReservedAttribute8IFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31230 
31231     nsresult (*InternalAndReservedMethod1IFormValue)(IChoiceFormValue *pThis);
31232 
31233     nsresult (*InternalAndReservedMethod2IFormValue)(IChoiceFormValue *pThis);
31234 
31235     nsresult (*InternalAndReservedMethod3IFormValue)(IChoiceFormValue *pThis);
31236 
31237     nsresult (*InternalAndReservedMethod4IFormValue)(IChoiceFormValue *pThis);
31238 
31239     nsresult (*GetValues)(IChoiceFormValue *pThis, PRUint32 *valuesSize, PRUnichar * **values);
31240 
31241     nsresult (*GetInternalAndReservedAttribute1IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31242 
31243     nsresult (*GetInternalAndReservedAttribute2IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31244 
31245     nsresult (*GetInternalAndReservedAttribute3IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31246 
31247     nsresult (*GetInternalAndReservedAttribute4IChoiceFormValue)(IChoiceFormValue *pThis, PRUint32 *reserved);
31248 
31249     nsresult (*GetSelectedIndex)(
31250         IChoiceFormValue *pThis,
31251         PRInt32 * index
31252     );
31253 
31254     nsresult (*SetSelectedIndex)(
31255         IChoiceFormValue *pThis,
31256         PRInt32 index,
31257         IProgress * * progress
31258     );
31259 
31260     nsresult (*InternalAndReservedMethod1IChoiceFormValue)(IChoiceFormValue *pThis);
31261 
31262     nsresult (*InternalAndReservedMethod2IChoiceFormValue)(IChoiceFormValue *pThis);
31263 
31264     nsresult (*InternalAndReservedMethod3IChoiceFormValue)(IChoiceFormValue *pThis);
31265 
31266     nsresult (*InternalAndReservedMethod4IChoiceFormValue)(IChoiceFormValue *pThis);
31267 
31268 };
31269 #    define IChoiceFormValue_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
31270 #    define IChoiceFormValue_AddRef(p) ((p)->lpVtbl->AddRef(p))
31271 #    define IChoiceFormValue_Release(p) ((p)->lpVtbl->Release(p))
31272 #    define IChoiceFormValue_get_Type(p, aType) ((p)->lpVtbl->GetType(p, aType))
31273 #    define IChoiceFormValue_GetType(p, aType) ((p)->lpVtbl->GetType(p, aType))
31274 #    define IChoiceFormValue_get_Generation(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
31275 #    define IChoiceFormValue_GetGeneration(p, aGeneration) ((p)->lpVtbl->GetGeneration(p, aGeneration))
31276 #    define IChoiceFormValue_get_Enabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
31277 #    define IChoiceFormValue_GetEnabled(p, aEnabled) ((p)->lpVtbl->GetEnabled(p, aEnabled))
31278 #    define IChoiceFormValue_get_Visible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
31279 #    define IChoiceFormValue_GetVisible(p, aVisible) ((p)->lpVtbl->GetVisible(p, aVisible))
31280 #    define IChoiceFormValue_get_Label(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
31281 #    define IChoiceFormValue_GetLabel(p, aLabel) ((p)->lpVtbl->GetLabel(p, aLabel))
31282 #    define IChoiceFormValue_get_Description(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
31283 #    define IChoiceFormValue_GetDescription(p, aDescription) ((p)->lpVtbl->GetDescription(p, aDescription))
31284 #    define IChoiceFormValue_get_Help(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
31285 #    define IChoiceFormValue_GetHelp(p, aHelp) ((p)->lpVtbl->GetHelp(p, aHelp))
31286 #    define IChoiceFormValue_get_Values(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
31287 #    define IChoiceFormValue_GetValues(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
31288 #    define IChoiceFormValue_GetSelectedIndex(p, aIndex) ((p)->lpVtbl->GetSelectedIndex(p, aIndex))
31289 #    define IChoiceFormValue_SetSelectedIndex(p, aIndex, aProgress) ((p)->lpVtbl->SetSelectedIndex(p, aIndex, aProgress))
31290 #   endif /* VBOX_WITH_GLUE */
31291 
31292 interface IChoiceFormValue
31293 {
31294 #   ifndef VBOX_WITH_GLUE
31295     struct IChoiceFormValue_vtbl *vtbl;
31296 #   else /* VBOX_WITH_GLUE */
31297     CONST_VTBL struct IChoiceFormValueVtbl *lpVtbl;
31298 #   endif /* VBOX_WITH_GLUE */
31299 };
31300 /* End of struct IChoiceFormValue declaration */
31301 
31302 
31303 /* Start of struct IForm declaration */
31304 #   define IFORM_IID_STR "d05c91e2-3e8a-11e9-8082-db8ae479ef87"
31305 #   define IFORM_IID { \
31306     0xd05c91e2, 0x3e8a, 0x11e9, \
31307     { 0x80, 0x82, 0xdb, 0x8a, 0xe4, 0x79, 0xef, 0x87 } \
31308 }
31309 /* COM compatibility */
31310 VBOX_EXTERN_CONST(nsIID, IID_IForm);
31311 #   ifndef VBOX_WITH_GLUE
31312 struct IForm_vtbl
31313 {
31314     struct nsISupports_vtbl nsisupports;
31315 
31316     nsresult (*GetValues)(IForm *pThis, PRUint32 *valuesSize, IFormValue * **values);
31317 
31318     nsresult (*GetInternalAndReservedAttribute1IForm)(IForm *pThis, PRUint32 *reserved);
31319 
31320     nsresult (*GetInternalAndReservedAttribute2IForm)(IForm *pThis, PRUint32 *reserved);
31321 
31322     nsresult (*GetInternalAndReservedAttribute3IForm)(IForm *pThis, PRUint32 *reserved);
31323 
31324     nsresult (*GetInternalAndReservedAttribute4IForm)(IForm *pThis, PRUint32 *reserved);
31325 
31326     nsresult (*InternalAndReservedMethod1IForm)(IForm *pThis);
31327 
31328     nsresult (*InternalAndReservedMethod2IForm)(IForm *pThis);
31329 
31330     nsresult (*InternalAndReservedMethod3IForm)(IForm *pThis);
31331 
31332     nsresult (*InternalAndReservedMethod4IForm)(IForm *pThis);
31333 
31334 };
31335 #   else /* VBOX_WITH_GLUE */
31336 struct IFormVtbl
31337 {
31338     nsresult (*QueryInterface)(IForm *pThis, const nsID *iid, void **resultp);
31339     nsrefcnt (*AddRef)(IForm *pThis);
31340     nsrefcnt (*Release)(IForm *pThis);
31341     nsresult (*GetValues)(IForm *pThis, PRUint32 *valuesSize, IFormValue * **values);
31342 
31343     nsresult (*GetInternalAndReservedAttribute1IForm)(IForm *pThis, PRUint32 *reserved);
31344 
31345     nsresult (*GetInternalAndReservedAttribute2IForm)(IForm *pThis, PRUint32 *reserved);
31346 
31347     nsresult (*GetInternalAndReservedAttribute3IForm)(IForm *pThis, PRUint32 *reserved);
31348 
31349     nsresult (*GetInternalAndReservedAttribute4IForm)(IForm *pThis, PRUint32 *reserved);
31350 
31351     nsresult (*InternalAndReservedMethod1IForm)(IForm *pThis);
31352 
31353     nsresult (*InternalAndReservedMethod2IForm)(IForm *pThis);
31354 
31355     nsresult (*InternalAndReservedMethod3IForm)(IForm *pThis);
31356 
31357     nsresult (*InternalAndReservedMethod4IForm)(IForm *pThis);
31358 
31359 };
31360 #    define IForm_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
31361 #    define IForm_AddRef(p) ((p)->lpVtbl->AddRef(p))
31362 #    define IForm_Release(p) ((p)->lpVtbl->Release(p))
31363 #    define IForm_get_Values(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
31364 #    define IForm_GetValues(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
31365 #   endif /* VBOX_WITH_GLUE */
31366 
31367 interface IForm
31368 {
31369 #   ifndef VBOX_WITH_GLUE
31370     struct IForm_vtbl *vtbl;
31371 #   else /* VBOX_WITH_GLUE */
31372     CONST_VTBL struct IFormVtbl *lpVtbl;
31373 #   endif /* VBOX_WITH_GLUE */
31374 };
31375 /* End of struct IForm declaration */
31376 
31377 
31378 /* Start of struct IVirtualSystemDescriptionForm declaration */
31379 #   define IVIRTUALSYSTEMDESCRIPTIONFORM_IID_STR "14c2db8a-3ee4-11e9-b872-cb9447aad965"
31380 #   define IVIRTUALSYSTEMDESCRIPTIONFORM_IID { \
31381     0x14c2db8a, 0x3ee4, 0x11e9, \
31382     { 0xb8, 0x72, 0xcb, 0x94, 0x47, 0xaa, 0xd9, 0x65 } \
31383 }
31384 /* COM compatibility */
31385 VBOX_EXTERN_CONST(nsIID, IID_IVirtualSystemDescriptionForm);
31386 #   ifndef VBOX_WITH_GLUE
31387 struct IVirtualSystemDescriptionForm_vtbl
31388 {
31389     struct IForm_vtbl iform;
31390 
31391     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31392 
31393     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31394 
31395     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31396 
31397     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31398 
31399     nsresult (*GetVirtualSystemDescription)(
31400         IVirtualSystemDescriptionForm *pThis,
31401         IVirtualSystemDescription * * description
31402     );
31403 
31404     nsresult (*InternalAndReservedMethod1IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31405 
31406     nsresult (*InternalAndReservedMethod2IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31407 
31408     nsresult (*InternalAndReservedMethod3IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31409 
31410     nsresult (*InternalAndReservedMethod4IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31411 
31412 };
31413 #   else /* VBOX_WITH_GLUE */
31414 struct IVirtualSystemDescriptionFormVtbl
31415 {
31416     nsresult (*QueryInterface)(IVirtualSystemDescriptionForm *pThis, const nsID *iid, void **resultp);
31417     nsrefcnt (*AddRef)(IVirtualSystemDescriptionForm *pThis);
31418     nsrefcnt (*Release)(IVirtualSystemDescriptionForm *pThis);
31419     nsresult (*GetValues)(IVirtualSystemDescriptionForm *pThis, PRUint32 *valuesSize, IFormValue * **values);
31420 
31421     nsresult (*GetInternalAndReservedAttribute1IForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31422 
31423     nsresult (*GetInternalAndReservedAttribute2IForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31424 
31425     nsresult (*GetInternalAndReservedAttribute3IForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31426 
31427     nsresult (*GetInternalAndReservedAttribute4IForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31428 
31429     nsresult (*InternalAndReservedMethod1IForm)(IVirtualSystemDescriptionForm *pThis);
31430 
31431     nsresult (*InternalAndReservedMethod2IForm)(IVirtualSystemDescriptionForm *pThis);
31432 
31433     nsresult (*InternalAndReservedMethod3IForm)(IVirtualSystemDescriptionForm *pThis);
31434 
31435     nsresult (*InternalAndReservedMethod4IForm)(IVirtualSystemDescriptionForm *pThis);
31436 
31437     nsresult (*GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31438 
31439     nsresult (*GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31440 
31441     nsresult (*GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31442 
31443     nsresult (*GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis, PRUint32 *reserved);
31444 
31445     nsresult (*GetVirtualSystemDescription)(
31446         IVirtualSystemDescriptionForm *pThis,
31447         IVirtualSystemDescription * * description
31448     );
31449 
31450     nsresult (*InternalAndReservedMethod1IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31451 
31452     nsresult (*InternalAndReservedMethod2IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31453 
31454     nsresult (*InternalAndReservedMethod3IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31455 
31456     nsresult (*InternalAndReservedMethod4IVirtualSystemDescriptionForm)(IVirtualSystemDescriptionForm *pThis);
31457 
31458 };
31459 #    define IVirtualSystemDescriptionForm_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
31460 #    define IVirtualSystemDescriptionForm_AddRef(p) ((p)->lpVtbl->AddRef(p))
31461 #    define IVirtualSystemDescriptionForm_Release(p) ((p)->lpVtbl->Release(p))
31462 #    define IVirtualSystemDescriptionForm_get_Values(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
31463 #    define IVirtualSystemDescriptionForm_GetValues(p, aValues) ((p)->lpVtbl->GetValues(p, aValues))
31464 #    define IVirtualSystemDescriptionForm_GetVirtualSystemDescription(p, aDescription) ((p)->lpVtbl->GetVirtualSystemDescription(p, aDescription))
31465 #   endif /* VBOX_WITH_GLUE */
31466 
31467 interface IVirtualSystemDescriptionForm
31468 {
31469 #   ifndef VBOX_WITH_GLUE
31470     struct IVirtualSystemDescriptionForm_vtbl *vtbl;
31471 #   else /* VBOX_WITH_GLUE */
31472     CONST_VTBL struct IVirtualSystemDescriptionFormVtbl *lpVtbl;
31473 #   endif /* VBOX_WITH_GLUE */
31474 };
31475 /* End of struct IVirtualSystemDescriptionForm declaration */
31476 
31477 
31478 /* Start of struct ICloudNetworkGatewayInfo declaration */
31479 #   define ICLOUDNETWORKGATEWAYINFO_IID_STR "89a63ace-0c65-11ea-ad23-0ff257c71a7f"
31480 #   define ICLOUDNETWORKGATEWAYINFO_IID { \
31481     0x89a63ace, 0x0c65, 0x11ea, \
31482     { 0xad, 0x23, 0x0f, 0xf2, 0x57, 0xc7, 0x1a, 0x7f } \
31483 }
31484 /* COM compatibility */
31485 VBOX_EXTERN_CONST(nsIID, IID_ICloudNetworkGatewayInfo);
31486 #   ifndef VBOX_WITH_GLUE
31487 struct ICloudNetworkGatewayInfo_vtbl
31488 {
31489     struct nsISupports_vtbl nsisupports;
31490 
31491     nsresult (*GetPublicIP)(ICloudNetworkGatewayInfo *pThis, PRUnichar * *publicIP);
31492 
31493     nsresult (*GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31494 
31495     nsresult (*GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31496 
31497     nsresult (*GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31498 
31499     nsresult (*GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31500 
31501     nsresult (*GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31502 
31503     nsresult (*GetInternalAndReservedAttribute6ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31504 
31505     nsresult (*GetInternalAndReservedAttribute7ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31506 
31507     nsresult (*GetInternalAndReservedAttribute8ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31508 
31509 };
31510 #   else /* VBOX_WITH_GLUE */
31511 struct ICloudNetworkGatewayInfoVtbl
31512 {
31513     nsresult (*QueryInterface)(ICloudNetworkGatewayInfo *pThis, const nsID *iid, void **resultp);
31514     nsrefcnt (*AddRef)(ICloudNetworkGatewayInfo *pThis);
31515     nsrefcnt (*Release)(ICloudNetworkGatewayInfo *pThis);
31516     nsresult (*GetPublicIP)(ICloudNetworkGatewayInfo *pThis, PRUnichar * *publicIP);
31517 
31518     nsresult (*GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31519 
31520     nsresult (*GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31521 
31522     nsresult (*GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31523 
31524     nsresult (*GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31525 
31526     nsresult (*GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31527 
31528     nsresult (*GetInternalAndReservedAttribute6ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31529 
31530     nsresult (*GetInternalAndReservedAttribute7ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31531 
31532     nsresult (*GetInternalAndReservedAttribute8ICloudNetworkGatewayInfo)(ICloudNetworkGatewayInfo *pThis, PRUint32 *reserved);
31533 
31534 };
31535 #    define ICloudNetworkGatewayInfo_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
31536 #    define ICloudNetworkGatewayInfo_AddRef(p) ((p)->lpVtbl->AddRef(p))
31537 #    define ICloudNetworkGatewayInfo_Release(p) ((p)->lpVtbl->Release(p))
31538 #    define ICloudNetworkGatewayInfo_get_PublicIP(p, aPublicIP) ((p)->lpVtbl->GetPublicIP(p, aPublicIP))
31539 #    define ICloudNetworkGatewayInfo_GetPublicIP(p, aPublicIP) ((p)->lpVtbl->GetPublicIP(p, aPublicIP))
31540 #   endif /* VBOX_WITH_GLUE */
31541 
31542 interface ICloudNetworkGatewayInfo
31543 {
31544 #   ifndef VBOX_WITH_GLUE
31545     struct ICloudNetworkGatewayInfo_vtbl *vtbl;
31546 #   else /* VBOX_WITH_GLUE */
31547     CONST_VTBL struct ICloudNetworkGatewayInfoVtbl *lpVtbl;
31548 #   endif /* VBOX_WITH_GLUE */
31549 };
31550 /* End of struct ICloudNetworkGatewayInfo declaration */
31551 
31552 
31553 /* Start of struct ICloudClient declaration */
31554 #   define ICLOUDCLIENT_IID_STR "435b66a2-0c60-11ea-a0ea-07eb0d1c4ead"
31555 #   define ICLOUDCLIENT_IID { \
31556     0x435b66a2, 0x0c60, 0x11ea, \
31557     { 0xa0, 0xea, 0x07, 0xeb, 0x0d, 0x1c, 0x4e, 0xad } \
31558 }
31559 /* COM compatibility */
31560 VBOX_EXTERN_CONST(nsIID, IID_ICloudClient);
31561 #   ifndef VBOX_WITH_GLUE
31562 struct ICloudClient_vtbl
31563 {
31564     struct nsISupports_vtbl nsisupports;
31565 
31566     nsresult (*GetInternalAndReservedAttribute1ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31567 
31568     nsresult (*GetInternalAndReservedAttribute2ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31569 
31570     nsresult (*GetInternalAndReservedAttribute3ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31571 
31572     nsresult (*GetInternalAndReservedAttribute4ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31573 
31574     nsresult (*GetInternalAndReservedAttribute5ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31575 
31576     nsresult (*GetInternalAndReservedAttribute6ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31577 
31578     nsresult (*GetInternalAndReservedAttribute7ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31579 
31580     nsresult (*GetInternalAndReservedAttribute8ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31581 
31582     nsresult (*GetExportDescriptionForm)(
31583         ICloudClient *pThis,
31584         IVirtualSystemDescription * description,
31585         IVirtualSystemDescriptionForm * * form,
31586         IProgress * * progress
31587     );
31588 
31589     nsresult (*ExportVM)(
31590         ICloudClient *pThis,
31591         IVirtualSystemDescription * description,
31592         IProgress * progress
31593     );
31594 
31595     nsresult (*GetLaunchDescriptionForm)(
31596         ICloudClient *pThis,
31597         IVirtualSystemDescription * description,
31598         IVirtualSystemDescriptionForm * * form,
31599         IProgress * * progress
31600     );
31601 
31602     nsresult (*LaunchVM)(
31603         ICloudClient *pThis,
31604         IVirtualSystemDescription * description,
31605         IProgress * * progress
31606     );
31607 
31608     nsresult (*GetImportDescriptionForm)(
31609         ICloudClient *pThis,
31610         IVirtualSystemDescription * description,
31611         IVirtualSystemDescriptionForm * * form,
31612         IProgress * * progress
31613     );
31614 
31615     nsresult (*ImportInstance)(
31616         ICloudClient *pThis,
31617         IVirtualSystemDescription * description,
31618         IProgress * progress
31619     );
31620 
31621     nsresult (*ListInstances)(
31622         ICloudClient *pThis,
31623         PRUint32 machineStateSize,
31624         PRUint32* machineState,
31625         IStringArray * * returnNames,
31626         IStringArray * * returnIds,
31627         IProgress * * progress
31628     );
31629 
31630     nsresult (*ListImages)(
31631         ICloudClient *pThis,
31632         PRUint32 imageStateSize,
31633         PRUint32* imageState,
31634         IStringArray * * returnNames,
31635         IStringArray * * returnIds,
31636         IProgress * * progress
31637     );
31638 
31639     nsresult (*GetInstanceInfo)(
31640         ICloudClient *pThis,
31641         PRUnichar * uid,
31642         IVirtualSystemDescription * description,
31643         IProgress * * progress
31644     );
31645 
31646     nsresult (*StartInstance)(
31647         ICloudClient *pThis,
31648         PRUnichar * uid,
31649         IProgress * * progress
31650     );
31651 
31652     nsresult (*PauseInstance)(
31653         ICloudClient *pThis,
31654         PRUnichar * uid,
31655         IProgress * * progress
31656     );
31657 
31658     nsresult (*TerminateInstance)(
31659         ICloudClient *pThis,
31660         PRUnichar * uid,
31661         IProgress * * progress
31662     );
31663 
31664     nsresult (*CreateImage)(
31665         ICloudClient *pThis,
31666         PRUint32 parametersSize,
31667         PRUnichar ** parameters,
31668         IProgress * * progress
31669     );
31670 
31671     nsresult (*ExportImage)(
31672         ICloudClient *pThis,
31673         IMedium * image,
31674         PRUint32 parametersSize,
31675         PRUnichar ** parameters,
31676         IProgress * * progress
31677     );
31678 
31679     nsresult (*ImportImage)(
31680         ICloudClient *pThis,
31681         PRUnichar * uid,
31682         PRUint32 parametersSize,
31683         PRUnichar ** parameters,
31684         IProgress * * progress
31685     );
31686 
31687     nsresult (*DeleteImage)(
31688         ICloudClient *pThis,
31689         PRUnichar * uid,
31690         IProgress * * progress
31691     );
31692 
31693     nsresult (*GetImageInfo)(
31694         ICloudClient *pThis,
31695         PRUnichar * uid,
31696         IStringArray * * infoArray,
31697         IProgress * * progress
31698     );
31699 
31700     nsresult (*StartCloudNetworkGateway)(
31701         ICloudClient *pThis,
31702         ICloudNetwork * network,
31703         PRUnichar * sshPublicKey,
31704         ICloudNetworkGatewayInfo * * gatewayInfo,
31705         IProgress * * progress
31706     );
31707 
31708     nsresult (*InternalAndReservedMethod1ICloudClient)(ICloudClient *pThis);
31709 
31710     nsresult (*InternalAndReservedMethod2ICloudClient)(ICloudClient *pThis);
31711 
31712     nsresult (*InternalAndReservedMethod3ICloudClient)(ICloudClient *pThis);
31713 
31714     nsresult (*InternalAndReservedMethod4ICloudClient)(ICloudClient *pThis);
31715 
31716     nsresult (*InternalAndReservedMethod5ICloudClient)(ICloudClient *pThis);
31717 
31718     nsresult (*InternalAndReservedMethod6ICloudClient)(ICloudClient *pThis);
31719 
31720     nsresult (*InternalAndReservedMethod7ICloudClient)(ICloudClient *pThis);
31721 
31722     nsresult (*InternalAndReservedMethod8ICloudClient)(ICloudClient *pThis);
31723 
31724     nsresult (*InternalAndReservedMethod9ICloudClient)(ICloudClient *pThis);
31725 
31726     nsresult (*InternalAndReservedMethod10ICloudClient)(ICloudClient *pThis);
31727 
31728     nsresult (*InternalAndReservedMethod11ICloudClient)(ICloudClient *pThis);
31729 
31730     nsresult (*InternalAndReservedMethod12ICloudClient)(ICloudClient *pThis);
31731 
31732     nsresult (*InternalAndReservedMethod13ICloudClient)(ICloudClient *pThis);
31733 
31734     nsresult (*InternalAndReservedMethod14ICloudClient)(ICloudClient *pThis);
31735 
31736     nsresult (*InternalAndReservedMethod15ICloudClient)(ICloudClient *pThis);
31737 
31738     nsresult (*InternalAndReservedMethod16ICloudClient)(ICloudClient *pThis);
31739 
31740 };
31741 #   else /* VBOX_WITH_GLUE */
31742 struct ICloudClientVtbl
31743 {
31744     nsresult (*QueryInterface)(ICloudClient *pThis, const nsID *iid, void **resultp);
31745     nsrefcnt (*AddRef)(ICloudClient *pThis);
31746     nsrefcnt (*Release)(ICloudClient *pThis);
31747     nsresult (*GetInternalAndReservedAttribute1ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31748 
31749     nsresult (*GetInternalAndReservedAttribute2ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31750 
31751     nsresult (*GetInternalAndReservedAttribute3ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31752 
31753     nsresult (*GetInternalAndReservedAttribute4ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31754 
31755     nsresult (*GetInternalAndReservedAttribute5ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31756 
31757     nsresult (*GetInternalAndReservedAttribute6ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31758 
31759     nsresult (*GetInternalAndReservedAttribute7ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31760 
31761     nsresult (*GetInternalAndReservedAttribute8ICloudClient)(ICloudClient *pThis, PRUint32 *reserved);
31762 
31763     nsresult (*GetExportDescriptionForm)(
31764         ICloudClient *pThis,
31765         IVirtualSystemDescription * description,
31766         IVirtualSystemDescriptionForm * * form,
31767         IProgress * * progress
31768     );
31769 
31770     nsresult (*ExportVM)(
31771         ICloudClient *pThis,
31772         IVirtualSystemDescription * description,
31773         IProgress * progress
31774     );
31775 
31776     nsresult (*GetLaunchDescriptionForm)(
31777         ICloudClient *pThis,
31778         IVirtualSystemDescription * description,
31779         IVirtualSystemDescriptionForm * * form,
31780         IProgress * * progress
31781     );
31782 
31783     nsresult (*LaunchVM)(
31784         ICloudClient *pThis,
31785         IVirtualSystemDescription * description,
31786         IProgress * * progress
31787     );
31788 
31789     nsresult (*GetImportDescriptionForm)(
31790         ICloudClient *pThis,
31791         IVirtualSystemDescription * description,
31792         IVirtualSystemDescriptionForm * * form,
31793         IProgress * * progress
31794     );
31795 
31796     nsresult (*ImportInstance)(
31797         ICloudClient *pThis,
31798         IVirtualSystemDescription * description,
31799         IProgress * progress
31800     );
31801 
31802     nsresult (*ListInstances)(
31803         ICloudClient *pThis,
31804         PRUint32 machineStateSize,
31805         PRUint32* machineState,
31806         IStringArray * * returnNames,
31807         IStringArray * * returnIds,
31808         IProgress * * progress
31809     );
31810 
31811     nsresult (*ListImages)(
31812         ICloudClient *pThis,
31813         PRUint32 imageStateSize,
31814         PRUint32* imageState,
31815         IStringArray * * returnNames,
31816         IStringArray * * returnIds,
31817         IProgress * * progress
31818     );
31819 
31820     nsresult (*GetInstanceInfo)(
31821         ICloudClient *pThis,
31822         PRUnichar * uid,
31823         IVirtualSystemDescription * description,
31824         IProgress * * progress
31825     );
31826 
31827     nsresult (*StartInstance)(
31828         ICloudClient *pThis,
31829         PRUnichar * uid,
31830         IProgress * * progress
31831     );
31832 
31833     nsresult (*PauseInstance)(
31834         ICloudClient *pThis,
31835         PRUnichar * uid,
31836         IProgress * * progress
31837     );
31838 
31839     nsresult (*TerminateInstance)(
31840         ICloudClient *pThis,
31841         PRUnichar * uid,
31842         IProgress * * progress
31843     );
31844 
31845     nsresult (*CreateImage)(
31846         ICloudClient *pThis,
31847         PRUint32 parametersSize,
31848         PRUnichar ** parameters,
31849         IProgress * * progress
31850     );
31851 
31852     nsresult (*ExportImage)(
31853         ICloudClient *pThis,
31854         IMedium * image,
31855         PRUint32 parametersSize,
31856         PRUnichar ** parameters,
31857         IProgress * * progress
31858     );
31859 
31860     nsresult (*ImportImage)(
31861         ICloudClient *pThis,
31862         PRUnichar * uid,
31863         PRUint32 parametersSize,
31864         PRUnichar ** parameters,
31865         IProgress * * progress
31866     );
31867 
31868     nsresult (*DeleteImage)(
31869         ICloudClient *pThis,
31870         PRUnichar * uid,
31871         IProgress * * progress
31872     );
31873 
31874     nsresult (*GetImageInfo)(
31875         ICloudClient *pThis,
31876         PRUnichar * uid,
31877         IStringArray * * infoArray,
31878         IProgress * * progress
31879     );
31880 
31881     nsresult (*StartCloudNetworkGateway)(
31882         ICloudClient *pThis,
31883         ICloudNetwork * network,
31884         PRUnichar * sshPublicKey,
31885         ICloudNetworkGatewayInfo * * gatewayInfo,
31886         IProgress * * progress
31887     );
31888 
31889     nsresult (*InternalAndReservedMethod1ICloudClient)(ICloudClient *pThis);
31890 
31891     nsresult (*InternalAndReservedMethod2ICloudClient)(ICloudClient *pThis);
31892 
31893     nsresult (*InternalAndReservedMethod3ICloudClient)(ICloudClient *pThis);
31894 
31895     nsresult (*InternalAndReservedMethod4ICloudClient)(ICloudClient *pThis);
31896 
31897     nsresult (*InternalAndReservedMethod5ICloudClient)(ICloudClient *pThis);
31898 
31899     nsresult (*InternalAndReservedMethod6ICloudClient)(ICloudClient *pThis);
31900 
31901     nsresult (*InternalAndReservedMethod7ICloudClient)(ICloudClient *pThis);
31902 
31903     nsresult (*InternalAndReservedMethod8ICloudClient)(ICloudClient *pThis);
31904 
31905     nsresult (*InternalAndReservedMethod9ICloudClient)(ICloudClient *pThis);
31906 
31907     nsresult (*InternalAndReservedMethod10ICloudClient)(ICloudClient *pThis);
31908 
31909     nsresult (*InternalAndReservedMethod11ICloudClient)(ICloudClient *pThis);
31910 
31911     nsresult (*InternalAndReservedMethod12ICloudClient)(ICloudClient *pThis);
31912 
31913     nsresult (*InternalAndReservedMethod13ICloudClient)(ICloudClient *pThis);
31914 
31915     nsresult (*InternalAndReservedMethod14ICloudClient)(ICloudClient *pThis);
31916 
31917     nsresult (*InternalAndReservedMethod15ICloudClient)(ICloudClient *pThis);
31918 
31919     nsresult (*InternalAndReservedMethod16ICloudClient)(ICloudClient *pThis);
31920 
31921 };
31922 #    define ICloudClient_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
31923 #    define ICloudClient_AddRef(p) ((p)->lpVtbl->AddRef(p))
31924 #    define ICloudClient_Release(p) ((p)->lpVtbl->Release(p))
31925 #    define ICloudClient_GetExportDescriptionForm(p, aDescription, aForm, aProgress) ((p)->lpVtbl->GetExportDescriptionForm(p, aDescription, aForm, aProgress))
31926 #    define ICloudClient_ExportVM(p, aDescription, aProgress) ((p)->lpVtbl->ExportVM(p, aDescription, aProgress))
31927 #    define ICloudClient_GetLaunchDescriptionForm(p, aDescription, aForm, aProgress) ((p)->lpVtbl->GetLaunchDescriptionForm(p, aDescription, aForm, aProgress))
31928 #    define ICloudClient_LaunchVM(p, aDescription, aProgress) ((p)->lpVtbl->LaunchVM(p, aDescription, aProgress))
31929 #    define ICloudClient_GetImportDescriptionForm(p, aDescription, aForm, aProgress) ((p)->lpVtbl->GetImportDescriptionForm(p, aDescription, aForm, aProgress))
31930 #    define ICloudClient_ImportInstance(p, aDescription, aProgress) ((p)->lpVtbl->ImportInstance(p, aDescription, aProgress))
31931 #    define ICloudClient_ListInstances(p, aMachineState, aReturnNames, aReturnIds, aProgress) ((p)->lpVtbl->ListInstances(p, aMachineState, aReturnNames, aReturnIds, aProgress))
31932 #    define ICloudClient_ListImages(p, aImageState, aReturnNames, aReturnIds, aProgress) ((p)->lpVtbl->ListImages(p, aImageState, aReturnNames, aReturnIds, aProgress))
31933 #    define ICloudClient_GetInstanceInfo(p, aUid, aDescription, aProgress) ((p)->lpVtbl->GetInstanceInfo(p, aUid, aDescription, aProgress))
31934 #    define ICloudClient_StartInstance(p, aUid, aProgress) ((p)->lpVtbl->StartInstance(p, aUid, aProgress))
31935 #    define ICloudClient_PauseInstance(p, aUid, aProgress) ((p)->lpVtbl->PauseInstance(p, aUid, aProgress))
31936 #    define ICloudClient_TerminateInstance(p, aUid, aProgress) ((p)->lpVtbl->TerminateInstance(p, aUid, aProgress))
31937 #    define ICloudClient_CreateImage(p, aParameters, aProgress) ((p)->lpVtbl->CreateImage(p, aParameters, aProgress))
31938 #    define ICloudClient_ExportImage(p, aImage, aParameters, aProgress) ((p)->lpVtbl->ExportImage(p, aImage, aParameters, aProgress))
31939 #    define ICloudClient_ImportImage(p, aUid, aParameters, aProgress) ((p)->lpVtbl->ImportImage(p, aUid, aParameters, aProgress))
31940 #    define ICloudClient_DeleteImage(p, aUid, aProgress) ((p)->lpVtbl->DeleteImage(p, aUid, aProgress))
31941 #    define ICloudClient_GetImageInfo(p, aUid, aInfoArray, aProgress) ((p)->lpVtbl->GetImageInfo(p, aUid, aInfoArray, aProgress))
31942 #    define ICloudClient_StartCloudNetworkGateway(p, aNetwork, aSshPublicKey, aGatewayInfo, aProgress) ((p)->lpVtbl->StartCloudNetworkGateway(p, aNetwork, aSshPublicKey, aGatewayInfo, aProgress))
31943 #   endif /* VBOX_WITH_GLUE */
31944 
31945 interface ICloudClient
31946 {
31947 #   ifndef VBOX_WITH_GLUE
31948     struct ICloudClient_vtbl *vtbl;
31949 #   else /* VBOX_WITH_GLUE */
31950     CONST_VTBL struct ICloudClientVtbl *lpVtbl;
31951 #   endif /* VBOX_WITH_GLUE */
31952 };
31953 /* End of struct ICloudClient declaration */
31954 
31955 
31956 /* Start of struct ICloudProfile declaration */
31957 #   define ICLOUDPROFILE_IID_STR "b1d978b8-f7b7-4b05-900e-2a9253c00f51"
31958 #   define ICLOUDPROFILE_IID { \
31959     0xb1d978b8, 0xf7b7, 0x4b05, \
31960     { 0x90, 0x0e, 0x2a, 0x92, 0x53, 0xc0, 0x0f, 0x51 } \
31961 }
31962 /* COM compatibility */
31963 VBOX_EXTERN_CONST(nsIID, IID_ICloudProfile);
31964 #   ifndef VBOX_WITH_GLUE
31965 struct ICloudProfile_vtbl
31966 {
31967     struct nsISupports_vtbl nsisupports;
31968 
31969     nsresult (*GetName)(ICloudProfile *pThis, PRUnichar * *name);
31970     nsresult (*SetName)(ICloudProfile *pThis, PRUnichar * name);
31971 
31972     nsresult (*GetProviderId)(ICloudProfile *pThis, PRUnichar * *providerId);
31973 
31974     nsresult (*GetInternalAndReservedAttribute1ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31975 
31976     nsresult (*GetInternalAndReservedAttribute2ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31977 
31978     nsresult (*GetInternalAndReservedAttribute3ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31979 
31980     nsresult (*GetInternalAndReservedAttribute4ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31981 
31982     nsresult (*GetInternalAndReservedAttribute5ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31983 
31984     nsresult (*GetInternalAndReservedAttribute6ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31985 
31986     nsresult (*GetInternalAndReservedAttribute7ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31987 
31988     nsresult (*GetInternalAndReservedAttribute8ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
31989 
31990     nsresult (*GetProperty)(
31991         ICloudProfile *pThis,
31992         PRUnichar * name,
31993         PRUnichar * * value
31994     );
31995 
31996     nsresult (*SetProperty)(
31997         ICloudProfile *pThis,
31998         PRUnichar * name,
31999         PRUnichar * value
32000     );
32001 
32002     nsresult (*GetProperties)(
32003         ICloudProfile *pThis,
32004         PRUnichar * names,
32005         PRUint32 *returnNamesSize,
32006         PRUnichar *** returnNames,
32007         PRUint32 *returnValuesSize,
32008         PRUnichar *** returnValues
32009     );
32010 
32011     nsresult (*SetProperties)(
32012         ICloudProfile *pThis,
32013         PRUint32 namesSize,
32014         PRUnichar ** names,
32015         PRUint32 valuesSize,
32016         PRUnichar ** values
32017     );
32018 
32019     nsresult (*Remove)(ICloudProfile *pThis );
32020 
32021     nsresult (*CreateCloudClient)(
32022         ICloudProfile *pThis,
32023         ICloudClient * * cloudClient
32024     );
32025 
32026     nsresult (*InternalAndReservedMethod1ICloudProfile)(ICloudProfile *pThis);
32027 
32028     nsresult (*InternalAndReservedMethod2ICloudProfile)(ICloudProfile *pThis);
32029 
32030     nsresult (*InternalAndReservedMethod3ICloudProfile)(ICloudProfile *pThis);
32031 
32032     nsresult (*InternalAndReservedMethod4ICloudProfile)(ICloudProfile *pThis);
32033 
32034 };
32035 #   else /* VBOX_WITH_GLUE */
32036 struct ICloudProfileVtbl
32037 {
32038     nsresult (*QueryInterface)(ICloudProfile *pThis, const nsID *iid, void **resultp);
32039     nsrefcnt (*AddRef)(ICloudProfile *pThis);
32040     nsrefcnt (*Release)(ICloudProfile *pThis);
32041     nsresult (*GetName)(ICloudProfile *pThis, PRUnichar * *name);
32042     nsresult (*SetName)(ICloudProfile *pThis, PRUnichar * name);
32043 
32044     nsresult (*GetProviderId)(ICloudProfile *pThis, PRUnichar * *providerId);
32045 
32046     nsresult (*GetInternalAndReservedAttribute1ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32047 
32048     nsresult (*GetInternalAndReservedAttribute2ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32049 
32050     nsresult (*GetInternalAndReservedAttribute3ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32051 
32052     nsresult (*GetInternalAndReservedAttribute4ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32053 
32054     nsresult (*GetInternalAndReservedAttribute5ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32055 
32056     nsresult (*GetInternalAndReservedAttribute6ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32057 
32058     nsresult (*GetInternalAndReservedAttribute7ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32059 
32060     nsresult (*GetInternalAndReservedAttribute8ICloudProfile)(ICloudProfile *pThis, PRUint32 *reserved);
32061 
32062     nsresult (*GetProperty)(
32063         ICloudProfile *pThis,
32064         PRUnichar * name,
32065         PRUnichar * * value
32066     );
32067 
32068     nsresult (*SetProperty)(
32069         ICloudProfile *pThis,
32070         PRUnichar * name,
32071         PRUnichar * value
32072     );
32073 
32074     nsresult (*GetProperties)(
32075         ICloudProfile *pThis,
32076         PRUnichar * names,
32077         PRUint32 *returnNamesSize,
32078         PRUnichar *** returnNames,
32079         PRUint32 *returnValuesSize,
32080         PRUnichar *** returnValues
32081     );
32082 
32083     nsresult (*SetProperties)(
32084         ICloudProfile *pThis,
32085         PRUint32 namesSize,
32086         PRUnichar ** names,
32087         PRUint32 valuesSize,
32088         PRUnichar ** values
32089     );
32090 
32091     nsresult (*Remove)(ICloudProfile *pThis );
32092 
32093     nsresult (*CreateCloudClient)(
32094         ICloudProfile *pThis,
32095         ICloudClient * * cloudClient
32096     );
32097 
32098     nsresult (*InternalAndReservedMethod1ICloudProfile)(ICloudProfile *pThis);
32099 
32100     nsresult (*InternalAndReservedMethod2ICloudProfile)(ICloudProfile *pThis);
32101 
32102     nsresult (*InternalAndReservedMethod3ICloudProfile)(ICloudProfile *pThis);
32103 
32104     nsresult (*InternalAndReservedMethod4ICloudProfile)(ICloudProfile *pThis);
32105 
32106 };
32107 #    define ICloudProfile_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
32108 #    define ICloudProfile_AddRef(p) ((p)->lpVtbl->AddRef(p))
32109 #    define ICloudProfile_Release(p) ((p)->lpVtbl->Release(p))
32110 #    define ICloudProfile_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
32111 #    define ICloudProfile_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
32112 #    define ICloudProfile_put_Name(p, aName) ((p)->lpVtbl->SetName(p, aName))
32113 #    define ICloudProfile_SetName(p, aName) ((p)->lpVtbl->SetName(p, aName))
32114 #    define ICloudProfile_get_ProviderId(p, aProviderId) ((p)->lpVtbl->GetProviderId(p, aProviderId))
32115 #    define ICloudProfile_GetProviderId(p, aProviderId) ((p)->lpVtbl->GetProviderId(p, aProviderId))
32116 #    define ICloudProfile_GetProperty(p, aName, aValue) ((p)->lpVtbl->GetProperty(p, aName, aValue))
32117 #    define ICloudProfile_SetProperty(p, aName, aValue) ((p)->lpVtbl->SetProperty(p, aName, aValue))
32118 #    define ICloudProfile_GetProperties(p, aNames, aReturnNames, aReturnValues) ((p)->lpVtbl->GetProperties(p, aNames, aReturnNames, aReturnValues))
32119 #    define ICloudProfile_SetProperties(p, aNames, aValues) ((p)->lpVtbl->SetProperties(p, aNames, aValues))
32120 #    define ICloudProfile_Remove(p) ((p)->lpVtbl->Remove(p))
32121 #    define ICloudProfile_CreateCloudClient(p, aCloudClient) ((p)->lpVtbl->CreateCloudClient(p, aCloudClient))
32122 #   endif /* VBOX_WITH_GLUE */
32123 
32124 interface ICloudProfile
32125 {
32126 #   ifndef VBOX_WITH_GLUE
32127     struct ICloudProfile_vtbl *vtbl;
32128 #   else /* VBOX_WITH_GLUE */
32129     CONST_VTBL struct ICloudProfileVtbl *lpVtbl;
32130 #   endif /* VBOX_WITH_GLUE */
32131 };
32132 /* End of struct ICloudProfile declaration */
32133 
32134 
32135 /* Start of struct ICloudProvider declaration */
32136 #   define ICLOUDPROVIDER_IID_STR "22363cfc-07da-41ec-ac4a-3dd99db35594"
32137 #   define ICLOUDPROVIDER_IID { \
32138     0x22363cfc, 0x07da, 0x41ec, \
32139     { 0xac, 0x4a, 0x3d, 0xd9, 0x9d, 0xb3, 0x55, 0x94 } \
32140 }
32141 /* COM compatibility */
32142 VBOX_EXTERN_CONST(nsIID, IID_ICloudProvider);
32143 #   ifndef VBOX_WITH_GLUE
32144 struct ICloudProvider_vtbl
32145 {
32146     struct nsISupports_vtbl nsisupports;
32147 
32148     nsresult (*GetName)(ICloudProvider *pThis, PRUnichar * *name);
32149 
32150     nsresult (*GetShortName)(ICloudProvider *pThis, PRUnichar * *shortName);
32151 
32152     nsresult (*GetId)(ICloudProvider *pThis, PRUnichar * *id);
32153 
32154     nsresult (*GetProfiles)(ICloudProvider *pThis, PRUint32 *profilesSize, ICloudProfile * **profiles);
32155 
32156     nsresult (*GetProfileNames)(ICloudProvider *pThis, PRUint32 *profileNamesSize, PRUnichar * **profileNames);
32157 
32158     nsresult (*GetSupportedPropertyNames)(ICloudProvider *pThis, PRUint32 *supportedPropertyNamesSize, PRUnichar * **supportedPropertyNames);
32159 
32160     nsresult (*GetInternalAndReservedAttribute1ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32161 
32162     nsresult (*GetInternalAndReservedAttribute2ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32163 
32164     nsresult (*GetInternalAndReservedAttribute3ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32165 
32166     nsresult (*GetInternalAndReservedAttribute4ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32167 
32168     nsresult (*GetInternalAndReservedAttribute5ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32169 
32170     nsresult (*GetInternalAndReservedAttribute6ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32171 
32172     nsresult (*GetInternalAndReservedAttribute7ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32173 
32174     nsresult (*GetInternalAndReservedAttribute8ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32175 
32176     nsresult (*GetInternalAndReservedAttribute9ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32177 
32178     nsresult (*GetInternalAndReservedAttribute10ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32179 
32180     nsresult (*GetInternalAndReservedAttribute11ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32181 
32182     nsresult (*GetInternalAndReservedAttribute12ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32183 
32184     nsresult (*GetInternalAndReservedAttribute13ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32185 
32186     nsresult (*GetInternalAndReservedAttribute14ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32187 
32188     nsresult (*GetInternalAndReservedAttribute15ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32189 
32190     nsresult (*GetInternalAndReservedAttribute16ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32191 
32192     nsresult (*GetPropertyDescription)(
32193         ICloudProvider *pThis,
32194         PRUnichar * name,
32195         PRUnichar * * description
32196     );
32197 
32198     nsresult (*CreateProfile)(
32199         ICloudProvider *pThis,
32200         PRUnichar * profileName,
32201         PRUint32 namesSize,
32202         PRUnichar ** names,
32203         PRUint32 valuesSize,
32204         PRUnichar ** values
32205     );
32206 
32207     nsresult (*ImportProfiles)(ICloudProvider *pThis );
32208 
32209     nsresult (*RestoreProfiles)(ICloudProvider *pThis );
32210 
32211     nsresult (*SaveProfiles)(ICloudProvider *pThis );
32212 
32213     nsresult (*GetProfileByName)(
32214         ICloudProvider *pThis,
32215         PRUnichar * profileName,
32216         ICloudProfile * * profile
32217     );
32218 
32219     nsresult (*PrepareUninstall)(ICloudProvider *pThis );
32220 
32221     nsresult (*InternalAndReservedMethod1ICloudProvider)(ICloudProvider *pThis);
32222 
32223     nsresult (*InternalAndReservedMethod2ICloudProvider)(ICloudProvider *pThis);
32224 
32225     nsresult (*InternalAndReservedMethod3ICloudProvider)(ICloudProvider *pThis);
32226 
32227     nsresult (*InternalAndReservedMethod4ICloudProvider)(ICloudProvider *pThis);
32228 
32229     nsresult (*InternalAndReservedMethod5ICloudProvider)(ICloudProvider *pThis);
32230 
32231     nsresult (*InternalAndReservedMethod6ICloudProvider)(ICloudProvider *pThis);
32232 
32233     nsresult (*InternalAndReservedMethod7ICloudProvider)(ICloudProvider *pThis);
32234 
32235     nsresult (*InternalAndReservedMethod8ICloudProvider)(ICloudProvider *pThis);
32236 
32237 };
32238 #   else /* VBOX_WITH_GLUE */
32239 struct ICloudProviderVtbl
32240 {
32241     nsresult (*QueryInterface)(ICloudProvider *pThis, const nsID *iid, void **resultp);
32242     nsrefcnt (*AddRef)(ICloudProvider *pThis);
32243     nsrefcnt (*Release)(ICloudProvider *pThis);
32244     nsresult (*GetName)(ICloudProvider *pThis, PRUnichar * *name);
32245 
32246     nsresult (*GetShortName)(ICloudProvider *pThis, PRUnichar * *shortName);
32247 
32248     nsresult (*GetId)(ICloudProvider *pThis, PRUnichar * *id);
32249 
32250     nsresult (*GetProfiles)(ICloudProvider *pThis, PRUint32 *profilesSize, ICloudProfile * **profiles);
32251 
32252     nsresult (*GetProfileNames)(ICloudProvider *pThis, PRUint32 *profileNamesSize, PRUnichar * **profileNames);
32253 
32254     nsresult (*GetSupportedPropertyNames)(ICloudProvider *pThis, PRUint32 *supportedPropertyNamesSize, PRUnichar * **supportedPropertyNames);
32255 
32256     nsresult (*GetInternalAndReservedAttribute1ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32257 
32258     nsresult (*GetInternalAndReservedAttribute2ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32259 
32260     nsresult (*GetInternalAndReservedAttribute3ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32261 
32262     nsresult (*GetInternalAndReservedAttribute4ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32263 
32264     nsresult (*GetInternalAndReservedAttribute5ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32265 
32266     nsresult (*GetInternalAndReservedAttribute6ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32267 
32268     nsresult (*GetInternalAndReservedAttribute7ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32269 
32270     nsresult (*GetInternalAndReservedAttribute8ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32271 
32272     nsresult (*GetInternalAndReservedAttribute9ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32273 
32274     nsresult (*GetInternalAndReservedAttribute10ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32275 
32276     nsresult (*GetInternalAndReservedAttribute11ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32277 
32278     nsresult (*GetInternalAndReservedAttribute12ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32279 
32280     nsresult (*GetInternalAndReservedAttribute13ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32281 
32282     nsresult (*GetInternalAndReservedAttribute14ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32283 
32284     nsresult (*GetInternalAndReservedAttribute15ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32285 
32286     nsresult (*GetInternalAndReservedAttribute16ICloudProvider)(ICloudProvider *pThis, PRUint32 *reserved);
32287 
32288     nsresult (*GetPropertyDescription)(
32289         ICloudProvider *pThis,
32290         PRUnichar * name,
32291         PRUnichar * * description
32292     );
32293 
32294     nsresult (*CreateProfile)(
32295         ICloudProvider *pThis,
32296         PRUnichar * profileName,
32297         PRUint32 namesSize,
32298         PRUnichar ** names,
32299         PRUint32 valuesSize,
32300         PRUnichar ** values
32301     );
32302 
32303     nsresult (*ImportProfiles)(ICloudProvider *pThis );
32304 
32305     nsresult (*RestoreProfiles)(ICloudProvider *pThis );
32306 
32307     nsresult (*SaveProfiles)(ICloudProvider *pThis );
32308 
32309     nsresult (*GetProfileByName)(
32310         ICloudProvider *pThis,
32311         PRUnichar * profileName,
32312         ICloudProfile * * profile
32313     );
32314 
32315     nsresult (*PrepareUninstall)(ICloudProvider *pThis );
32316 
32317     nsresult (*InternalAndReservedMethod1ICloudProvider)(ICloudProvider *pThis);
32318 
32319     nsresult (*InternalAndReservedMethod2ICloudProvider)(ICloudProvider *pThis);
32320 
32321     nsresult (*InternalAndReservedMethod3ICloudProvider)(ICloudProvider *pThis);
32322 
32323     nsresult (*InternalAndReservedMethod4ICloudProvider)(ICloudProvider *pThis);
32324 
32325     nsresult (*InternalAndReservedMethod5ICloudProvider)(ICloudProvider *pThis);
32326 
32327     nsresult (*InternalAndReservedMethod6ICloudProvider)(ICloudProvider *pThis);
32328 
32329     nsresult (*InternalAndReservedMethod7ICloudProvider)(ICloudProvider *pThis);
32330 
32331     nsresult (*InternalAndReservedMethod8ICloudProvider)(ICloudProvider *pThis);
32332 
32333 };
32334 #    define ICloudProvider_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
32335 #    define ICloudProvider_AddRef(p) ((p)->lpVtbl->AddRef(p))
32336 #    define ICloudProvider_Release(p) ((p)->lpVtbl->Release(p))
32337 #    define ICloudProvider_get_Name(p, aName) ((p)->lpVtbl->GetName(p, aName))
32338 #    define ICloudProvider_GetName(p, aName) ((p)->lpVtbl->GetName(p, aName))
32339 #    define ICloudProvider_get_ShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
32340 #    define ICloudProvider_GetShortName(p, aShortName) ((p)->lpVtbl->GetShortName(p, aShortName))
32341 #    define ICloudProvider_get_Id(p, aId) ((p)->lpVtbl->GetId(p, aId))
32342 #    define ICloudProvider_GetId(p, aId) ((p)->lpVtbl->GetId(p, aId))
32343 #    define ICloudProvider_get_Profiles(p, aProfiles) ((p)->lpVtbl->GetProfiles(p, aProfiles))
32344 #    define ICloudProvider_GetProfiles(p, aProfiles) ((p)->lpVtbl->GetProfiles(p, aProfiles))
32345 #    define ICloudProvider_get_ProfileNames(p, aProfileNames) ((p)->lpVtbl->GetProfileNames(p, aProfileNames))
32346 #    define ICloudProvider_GetProfileNames(p, aProfileNames) ((p)->lpVtbl->GetProfileNames(p, aProfileNames))
32347 #    define ICloudProvider_get_SupportedPropertyNames(p, aSupportedPropertyNames) ((p)->lpVtbl->GetSupportedPropertyNames(p, aSupportedPropertyNames))
32348 #    define ICloudProvider_GetSupportedPropertyNames(p, aSupportedPropertyNames) ((p)->lpVtbl->GetSupportedPropertyNames(p, aSupportedPropertyNames))
32349 #    define ICloudProvider_GetPropertyDescription(p, aName, aDescription) ((p)->lpVtbl->GetPropertyDescription(p, aName, aDescription))
32350 #    define ICloudProvider_CreateProfile(p, aProfileName, aNames, aValues) ((p)->lpVtbl->CreateProfile(p, aProfileName, aNames, aValues))
32351 #    define ICloudProvider_ImportProfiles(p) ((p)->lpVtbl->ImportProfiles(p))
32352 #    define ICloudProvider_RestoreProfiles(p) ((p)->lpVtbl->RestoreProfiles(p))
32353 #    define ICloudProvider_SaveProfiles(p) ((p)->lpVtbl->SaveProfiles(p))
32354 #    define ICloudProvider_GetProfileByName(p, aProfileName, aProfile) ((p)->lpVtbl->GetProfileByName(p, aProfileName, aProfile))
32355 #    define ICloudProvider_PrepareUninstall(p) ((p)->lpVtbl->PrepareUninstall(p))
32356 #   endif /* VBOX_WITH_GLUE */
32357 
32358 interface ICloudProvider
32359 {
32360 #   ifndef VBOX_WITH_GLUE
32361     struct ICloudProvider_vtbl *vtbl;
32362 #   else /* VBOX_WITH_GLUE */
32363     CONST_VTBL struct ICloudProviderVtbl *lpVtbl;
32364 #   endif /* VBOX_WITH_GLUE */
32365 };
32366 /* End of struct ICloudProvider declaration */
32367 
32368 
32369 /* Start of struct ICloudProviderManager declaration */
32370 #   define ICLOUDPROVIDERMANAGER_IID_STR "9128800f-762e-4120-871c-a2014234a607"
32371 #   define ICLOUDPROVIDERMANAGER_IID { \
32372     0x9128800f, 0x762e, 0x4120, \
32373     { 0x87, 0x1c, 0xa2, 0x01, 0x42, 0x34, 0xa6, 0x07 } \
32374 }
32375 /* COM compatibility */
32376 VBOX_EXTERN_CONST(nsIID, IID_ICloudProviderManager);
32377 #   ifndef VBOX_WITH_GLUE
32378 struct ICloudProviderManager_vtbl
32379 {
32380     struct nsISupports_vtbl nsisupports;
32381 
32382     nsresult (*GetProviders)(ICloudProviderManager *pThis, PRUint32 *providersSize, ICloudProvider * **providers);
32383 
32384     nsresult (*GetInternalAndReservedAttribute1ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32385 
32386     nsresult (*GetInternalAndReservedAttribute2ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32387 
32388     nsresult (*GetInternalAndReservedAttribute3ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32389 
32390     nsresult (*GetInternalAndReservedAttribute4ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32391 
32392     nsresult (*GetInternalAndReservedAttribute5ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32393 
32394     nsresult (*GetInternalAndReservedAttribute6ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32395 
32396     nsresult (*GetInternalAndReservedAttribute7ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32397 
32398     nsresult (*GetInternalAndReservedAttribute8ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32399 
32400     nsresult (*GetProviderById)(
32401         ICloudProviderManager *pThis,
32402         PRUnichar * providerId,
32403         ICloudProvider * * provider
32404     );
32405 
32406     nsresult (*GetProviderByShortName)(
32407         ICloudProviderManager *pThis,
32408         PRUnichar * providerName,
32409         ICloudProvider * * provider
32410     );
32411 
32412     nsresult (*GetProviderByName)(
32413         ICloudProviderManager *pThis,
32414         PRUnichar * providerName,
32415         ICloudProvider * * provider
32416     );
32417 
32418     nsresult (*InternalAndReservedMethod1ICloudProviderManager)(ICloudProviderManager *pThis);
32419 
32420     nsresult (*InternalAndReservedMethod2ICloudProviderManager)(ICloudProviderManager *pThis);
32421 
32422     nsresult (*InternalAndReservedMethod3ICloudProviderManager)(ICloudProviderManager *pThis);
32423 
32424     nsresult (*InternalAndReservedMethod4ICloudProviderManager)(ICloudProviderManager *pThis);
32425 
32426 };
32427 #   else /* VBOX_WITH_GLUE */
32428 struct ICloudProviderManagerVtbl
32429 {
32430     nsresult (*QueryInterface)(ICloudProviderManager *pThis, const nsID *iid, void **resultp);
32431     nsrefcnt (*AddRef)(ICloudProviderManager *pThis);
32432     nsrefcnt (*Release)(ICloudProviderManager *pThis);
32433     nsresult (*GetProviders)(ICloudProviderManager *pThis, PRUint32 *providersSize, ICloudProvider * **providers);
32434 
32435     nsresult (*GetInternalAndReservedAttribute1ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32436 
32437     nsresult (*GetInternalAndReservedAttribute2ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32438 
32439     nsresult (*GetInternalAndReservedAttribute3ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32440 
32441     nsresult (*GetInternalAndReservedAttribute4ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32442 
32443     nsresult (*GetInternalAndReservedAttribute5ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32444 
32445     nsresult (*GetInternalAndReservedAttribute6ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32446 
32447     nsresult (*GetInternalAndReservedAttribute7ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32448 
32449     nsresult (*GetInternalAndReservedAttribute8ICloudProviderManager)(ICloudProviderManager *pThis, PRUint32 *reserved);
32450 
32451     nsresult (*GetProviderById)(
32452         ICloudProviderManager *pThis,
32453         PRUnichar * providerId,
32454         ICloudProvider * * provider
32455     );
32456 
32457     nsresult (*GetProviderByShortName)(
32458         ICloudProviderManager *pThis,
32459         PRUnichar * providerName,
32460         ICloudProvider * * provider
32461     );
32462 
32463     nsresult (*GetProviderByName)(
32464         ICloudProviderManager *pThis,
32465         PRUnichar * providerName,
32466         ICloudProvider * * provider
32467     );
32468 
32469     nsresult (*InternalAndReservedMethod1ICloudProviderManager)(ICloudProviderManager *pThis);
32470 
32471     nsresult (*InternalAndReservedMethod2ICloudProviderManager)(ICloudProviderManager *pThis);
32472 
32473     nsresult (*InternalAndReservedMethod3ICloudProviderManager)(ICloudProviderManager *pThis);
32474 
32475     nsresult (*InternalAndReservedMethod4ICloudProviderManager)(ICloudProviderManager *pThis);
32476 
32477 };
32478 #    define ICloudProviderManager_QueryInterface(p, iid, resultp) ((p)->lpVtbl->QueryInterface(p, iid, resultp))
32479 #    define ICloudProviderManager_AddRef(p) ((p)->lpVtbl->AddRef(p))
32480 #    define ICloudProviderManager_Release(p) ((p)->lpVtbl->Release(p))
32481 #    define ICloudProviderManager_get_Providers(p, aProviders) ((p)->lpVtbl->GetProviders(p, aProviders))
32482 #    define ICloudProviderManager_GetProviders(p, aProviders) ((p)->lpVtbl->GetProviders(p, aProviders))
32483 #    define ICloudProviderManager_GetProviderById(p, aProviderId, aProvider) ((p)->lpVtbl->GetProviderById(p, aProviderId, aProvider))
32484 #    define ICloudProviderManager_GetProviderByShortName(p, aProviderName, aProvider) ((p)->lpVtbl->GetProviderByShortName(p, aProviderName, aProvider))
32485 #    define ICloudProviderManager_GetProviderByName(p, aProviderName, aProvider) ((p)->lpVtbl->GetProviderByName(p, aProviderName, aProvider))
32486 #   endif /* VBOX_WITH_GLUE */
32487 
32488 interface ICloudProviderManager
32489 {
32490 #   ifndef VBOX_WITH_GLUE
32491     struct ICloudProviderManager_vtbl *vtbl;
32492 #   else /* VBOX_WITH_GLUE */
32493     CONST_VTBL struct ICloudProviderManagerVtbl *lpVtbl;
32494 #   endif /* VBOX_WITH_GLUE */
32495 };
32496 /* End of struct ICloudProviderManager declaration */
32497 
32498 
32499 
32500 #   define NS_VIRTUALBOX_CID { \
32501     0xB1A7A4F2, 0x47B9, 0x4A1E, \
32502     { 0x82, 0xB2, 0x07, 0xCC, 0xD5, 0x32, 0x3C, 0x3F } \
32503 }
32504 #   define NS_VIRTUALBOX_CONTRACTID "@virtualbox.org/VirtualBox;1"
32505 /* COM compatibility */
32506 VBOX_EXTERN_CONST(nsCID, CLSID_VirtualBox);
32507 
32508 
32509 
32510 #   define NS_VIRTUALBOXCLIENT_CID { \
32511     0xdd3fc71d, 0x26c0, 0x4fe1, \
32512     { 0xbf, 0x6f, 0x67, 0xf6, 0x33, 0x26, 0x5b, 0xba } \
32513 }
32514 #   define NS_VIRTUALBOXCLIENT_CONTRACTID "@virtualbox.org/VirtualBoxClient;1"
32515 /* COM compatibility */
32516 VBOX_EXTERN_CONST(nsCID, CLSID_VirtualBoxClient);
32517 
32518 
32519 
32520 #   define NS_SESSION_CID { \
32521     0x3C02F46D, 0xC9D2, 0x4F11, \
32522     { 0xA3, 0x84, 0x53, 0xF0, 0xCF, 0x91, 0x72, 0x14 } \
32523 }
32524 #   define NS_SESSION_CONTRACTID "@virtualbox.org/Session;1"
32525 /* COM compatibility */
32526 VBOX_EXTERN_CONST(nsCID, CLSID_Session);
32527 
32528 
32529 
32530 
32531 #  endif /* __cplusplus */
32532 
32533 # endif /* !WIN32 */
32534 
32535 # ifdef __cplusplus
32536 extern "C"
32537 {
32538 # endif /* __cplusplus */
32539 
32540 
32541 /**
32542  * Function table for dynamic linking.
32543  * Use VBoxGetCAPIFunctions() to obtain the pointer to it.
32544  */
32545 typedef struct VBOXCAPI
32546 {
32547     /** The size of the structure. */
32548     unsigned cb;
32549     /** The structure version. */
32550     unsigned uVersion;
32551 
32552     /** Gets the VirtualBox version, major * 1000000 + minor * 1000 + patch. */
32553     unsigned int (*pfnGetVersion)(void);
32554 
32555     /** Gets the VirtualBox API version, major * 1000 + minor, e.g. 4003. */
32556     unsigned int (*pfnGetAPIVersion)(void);
32557 
32558     /**
32559      * New and preferred way to initialize the C bindings for an API client.
32560      *
32561      * This way is much more flexible, as it can easily handle multiple
32562      * sessions (important with more complicated API clients, including
32563      * multithreaded ones), and even VBoxSVC crashes can be detected and
32564      * processed appropriately by listening for events from the associated
32565      * event source in VirtualBoxClient. It is completely up to the client
32566      * to decide what to do (terminate or continue after getting new
32567      * object references to server-side objects). Must be called in the
32568      * primary thread of the client, later API use can be done in any
32569      * thread.
32570      *
32571      * Note that the returned reference is owned by the caller, and thus it's
32572      * the caller's responsibility to handle the reference count appropriately.
32573      *
32574      * @param pszVirtualBoxClientIID    pass IVIRTUALBOXCLIENT_IID_STR
32575      * @param ppVirtualBoxClient        output parameter for VirtualBoxClient
32576      *              reference, handled as usual with COM/XPCOM.
32577      * @returns COM/XPCOM error code
32578      */
32579     HRESULT (*pfnClientInitialize)(const char *pszVirtualBoxClientIID,
32580                                    IVirtualBoxClient **ppVirtualBoxClient);
32581     /**
32582      * Initialize the use of the C bindings in a non-primary thread.
32583      *
32584      * Must be called on any newly created thread which wants to use the
32585      * VirtualBox API.
32586      *
32587      * @returns COM/XPCOM error code
32588      */
32589     HRESULT (*pfnClientThreadInitialize)(void);
32590     /**
32591      * Uninitialize the use of the C bindings in a non-primary thread.
32592      *
32593      * Should be called before terminating the thread which initialized the
32594      * C bindings using pfnClientThreadInitialize.
32595      *
32596      * @returns COM/XPCOM error code
32597      */
32598     HRESULT (*pfnClientThreadUninitialize)(void);
32599     /**
32600      * Uninitialize the C bindings for an API client.
32601      *
32602      * Should be called when the API client is about to terminate and does
32603      * not want to use the C bindings any more. It will invalidate all
32604      * object references. It is possible, however, to change one's mind,
32605      * and call pfnClientInitialize again to continue using the API, as long
32606      * as none of the object references from before the re-initialization
32607      * are used. Must be called from the primary thread of the client.
32608      */
32609     void (*pfnClientUninitialize)(void);
32610 
32611     /**
32612      * Deprecated way to initialize the C bindings and getting important
32613      * object references. Kept for backwards compatibility.
32614      *
32615      * If any returned reference is NULL then the initialization failed.
32616      * Note that the returned references are owned by the C bindings. The
32617      * number of calls to Release in the client code must match the number
32618      * of calls to AddRef, and additionally at no point in time there can
32619      * be more Release calls than AddRef calls.
32620      *
32621      * @param pszVirtualBoxIID      pass IVIRTUALBOX_IID_STR
32622      * @param ppVirtualBox          output parameter for VirtualBox reference,
32623      *          owned by C bindings
32624      * @param pszSessionIID         pass ISESSION_IID_STR
32625      * @param ppSession             output parameter for Session reference,
32626      *          owned by C bindings
32627      */
32628     void (*pfnComInitialize)(const char *pszVirtualBoxIID,
32629                              IVirtualBox **ppVirtualBox,
32630                              const char *pszSessionIID,
32631                              ISession **ppSession);
32632     /**
32633      * Deprecated way to uninitialize the C bindings for an API client.
32634      * Kept for backwards compatibility and must be used if the C bindings
32635      * were initialized using pfnComInitialize. */
32636     void (*pfnComUninitialize)(void);
32637 
32638     /**
32639      * Free string managed by COM/XPCOM.
32640      *
32641      * @param pwsz          pointer to string to be freed
32642      */
32643     void (*pfnComUnallocString)(BSTR pwsz);
32644 # ifndef WIN32
32645     /** Legacy function, was always for freeing strings only. */
32646 #  define pfnComUnallocMem(pv) pfnComUnallocString((BSTR)(pv))
32647 # endif /* !WIN32 */
32648 
32649     /**
32650      * Convert string from UTF-16 encoding to UTF-8 encoding.
32651      *
32652      * @param pwszString    input string
32653      * @param ppszString    output string
32654      * @returns IPRT status code
32655      */
32656     int (*pfnUtf16ToUtf8)(CBSTR pwszString, char **ppszString);
32657     /**
32658      * Convert string from UTF-8 encoding to UTF-16 encoding.
32659      *
32660      * @param pszString     input string
32661      * @param ppwszString   output string
32662      * @returns IPRT status code
32663      */
32664     int (*pfnUtf8ToUtf16)(const char *pszString, BSTR *ppwszString);
32665     /**
32666      * Free memory returned by pfnUtf16ToUtf8. Do not use for anything else.
32667      *
32668      * @param pszString     string to be freed.
32669      */
32670     void (*pfnUtf8Free)(char *pszString);
32671     /**
32672      * Free memory returned by pfnUtf8ToUtf16. Do not use for anything else.
32673      *
32674      * @param pwszString    string to be freed.
32675      */
32676     void (*pfnUtf16Free)(BSTR pwszString);
32677 
32678     /**
32679      * Create a safearray (used for passing arrays to COM/XPCOM)
32680      *
32681      * Must be freed by pfnSafeArrayDestroy.
32682      *
32683      * @param vt            variant type, defines the size of the elements
32684      * @param lLbound       lower bound of the index, should be 0
32685      * @param cElements     number of elements
32686      * @returns pointer to safearray
32687      */
32688     SAFEARRAY *(*pfnSafeArrayCreateVector)(VARTYPE vt, LONG lLbound, ULONG cElements);
32689     /**
32690      * Pre-allocate a safearray to be used by an out safearray parameter
32691      *
32692      * Must be freed by pfnSafeArrayDestroy.
32693      *
32694      * @returns pointer to safearray (system dependent, may be NULL if
32695      *    there is no need to pre-allocate a safearray)
32696      */
32697     SAFEARRAY *(*pfnSafeArrayOutParamAlloc)(void);
32698     /**
32699      * Copy a C array into a safearray (for passing as an input parameter)
32700      *
32701      * @param psa           pointer to already created safearray.
32702      * @param pv            pointer to memory block to copy into safearray.
32703      * @param cb            number of bytes to copy.
32704      * @returns COM/XPCOM error code
32705      */
32706     HRESULT (*pfnSafeArrayCopyInParamHelper)(SAFEARRAY *psa, const void *pv, ULONG cb);
32707     /**
32708      * Copy a safearray into a C array (for getting an output parameter)
32709      *
32710      * @param ppv           output pointer to newly created array, which has to
32711      *          be freed with pfnArrayOutFree.
32712      * @param pcb           number of bytes in the output buffer.
32713      * @param vt            variant type, defines the size of the elements
32714      * @param psa           pointer to safearray for getting the data
32715      * @returns COM/XPCOM error code
32716      */
32717     HRESULT (*pfnSafeArrayCopyOutParamHelper)(void **ppv, ULONG *pcb, VARTYPE vt, SAFEARRAY *psa);
32718     /**
32719      * Copy a safearray into a C array (special variant for interface pointers)
32720      *
32721      * @param ppaObj        output pointer to newly created array, which has
32722      *          to be freed with pfnArrayOutFree. Note that it's the caller's
32723      *          responsibility to call Release() on each non-NULL interface
32724      *          pointer before freeing.
32725      * @param pcObj         number of pointers in the output buffer.
32726      * @param psa           pointer to safearray for getting the data
32727      * @returns COM/XPCOM error code
32728      */
32729     HRESULT (*pfnSafeArrayCopyOutIfaceParamHelper)(IUnknown ***ppaObj, ULONG *pcObj, SAFEARRAY *psa);
32730     /**
32731      * Free a safearray
32732      *
32733      * @param psa           pointer to safearray
32734      * @returns COM/XPCOM error code
32735      */
32736     HRESULT (*pfnSafeArrayDestroy)(SAFEARRAY *psa);
32737     /**
32738      * Free an out array created by pfnSafeArrayCopyOutParamHelper or
32739      * pdnSafeArrayCopyOutIfaceParamHelper.
32740      *
32741      * @param psa           pointer to memory block
32742      * @returns COM/XPCOM error code
32743      */
32744     HRESULT (*pfnArrayOutFree)(void *pv);
32745 
32746 # ifndef WIN32
32747     /**
32748      * Get XPCOM event queue. Deprecated!
32749      *
32750      * @param ppEventQueue      output parameter for nsIEventQueue reference,
32751      *              owned by C bindings.
32752      */
32753     void (*pfnGetEventQueue)(nsIEventQueue **ppEventQueue);
32754 # endif /* !WIN32 */
32755 
32756     /**
32757      * Get current COM/XPCOM exception.
32758      *
32759      * @param ppException       output parameter for exception info reference,
32760      *              may be @c NULL if no exception object has been created by
32761      *              a previous COM/XPCOM call.
32762      * @returns COM/XPCOM error code
32763      */
32764     HRESULT (*pfnGetException)(IErrorInfo **ppException);
32765     /**
32766      * Clears current COM/XPCOM exception.
32767      *
32768      * @returns COM/XPCOM error code
32769      */
32770     HRESULT (*pfnClearException)(void);
32771 
32772     /**
32773      * Process the event queue for a given amount of time.
32774      *
32775      * Must be called on the primary thread. Typical timeouts are from 200 to
32776      * 5000 msecs, to allow for checking a volatile variable if the event queue
32777      * processing should be terminated (,
32778      * or 0 if only the pending events should be processed, without waiting.
32779      *
32780      * @param iTimeoutMS        how long to process the event queue, -1 means
32781      *              infinitely long
32782      * @returns status code
32783      * @retval 0 if at least one event has been processed
32784      * @retval 1 if any signal interrupted the native system call (or returned
32785      *      otherwise)
32786      * @retval 2 if the event queue was explicitly interrupted
32787      * @retval 3 if the timeout expired
32788      * @retval 4 if the function was called from the wrong thread
32789      * @retval 5 for all other (unexpected) errors
32790      */
32791     int (*pfnProcessEventQueue)(LONG64 iTimeoutMS);
32792     /**
32793      * Interrupt event queue processing.
32794      *
32795      * Can be called on any thread. Note that this function is not async-signal
32796      * safe, so never use it in such a context, instead use a volatile global
32797      * variable and a sensible timeout.
32798      * @returns 0 if successful, 1 otherwise.
32799      */
32800     int (*pfnInterruptEventQueueProcessing)(void);
32801 
32802     /**
32803      * Clear memory used by a UTF-8 string. Must be zero terminated.
32804      * Can be used for any UTF-8 or ASCII/ANSI string.
32805      *
32806      * @param pszString     input/output string
32807      */
32808     void (*pfnUtf8Clear)(char *pszString);
32809     /**
32810      * Clear memory used by a UTF-16 string. Must be zero terminated.
32811      * Can be used for any UTF-16 or UCS-2 string.
32812      *
32813      * @param pwszString    input/output string
32814      */
32815      void (*pfnUtf16Clear)(BSTR pwszString);
32816 
32817     /** Tail version, same as uVersion.
32818      *
32819      * This should only be accessed if for some reason an API client needs
32820      * exactly the version it requested, or if cb is used to calculate the
32821      * address of this field. It may move as the structure before this is
32822      * allowed to grow as long as all the data from earlier minor versions
32823      * remains at the same place.
32824      */
32825     unsigned uEndVersion;
32826 } VBOXCAPI;
32827 /** Pointer to a const VBOXCAPI function table. */
32828 typedef VBOXCAPI const *PCVBOXCAPI;
32829 # ifndef WIN32
32830 /** Backwards compatibility: Pointer to a const VBOXCAPI function table.
32831  * Use PCVBOXCAPI instead. */
32832 typedef VBOXCAPI const *PCVBOXXPCOM;
32833 # endif /* !WIN32 */
32834 
32835 # ifndef WIN32
32836 /** Backwards compatibility: make sure old code using VBOXXPCOMC still compiles.
32837  * Use VBOXCAPI instead. */
32838 #  define VBOXXPCOMC VBOXCAPI
32839 # endif /* !WIN32 */
32840 
32841 /** Extract the C API style major version.
32842  * Useful for comparing the interface version in VBOXCAPI::uVersion. */
32843 # define VBOX_CAPI_MAJOR(x) (((x) & 0xffff0000U) >> 16)
32844 
32845 /** Extract the C API style major version.
32846  * Useful for comparing the interface version in VBOXCAPI::uVersion. */
32847 # define VBOX_CAPI_MINOR(x) ((x) & 0x0000ffffU)
32848 
32849 /** The current interface version.
32850  * For use with VBoxGetCAPIFunctions and to be found in VBOXCAPI::uVersion. */
32851 # define VBOX_CAPI_VERSION 0x00040001U
32852 
32853 # ifndef WIN32
32854 /** Backwards compatibility: The current interface version.
32855  * Use VBOX_CAPI_VERSION instead. */
32856 #  define VBOX_XPCOMC_VERSION VBOX_CAPI_VERSION
32857 # endif /* !WIN32 */
32858 
32859 /** VBoxGetCAPIFunctions. */
32860 VBOXCAPI_DECL(PCVBOXCAPI) VBoxGetCAPIFunctions(unsigned uVersion);
32861 # ifndef WIN32
32862 /** Backwards compatibility: VBoxGetXPCOMCFunctions.
32863  * Use VBoxGetCAPIFunctions instead. */
32864 VBOXCAPI_DECL(PCVBOXCAPI) VBoxGetXPCOMCFunctions(unsigned uVersion);
32865 # endif /* !WIN32 */
32866 
32867 /** Typedef for VBoxGetCAPIFunctions. */
32868 typedef PCVBOXCAPI (*PFNVBOXGETCAPIFUNCTIONS)(unsigned uVersion);
32869 # ifndef WIN32
32870 /** Backwards compatibility: Typedef for VBoxGetXPCOMCFunctions.
32871  * Use PFNVBOXGETCAPIFUNCTIONS instead. */
32872 typedef PCVBOXCAPI (*PFNVBOXGETXPCOMCFUNCTIONS)(unsigned uVersion);
32873 # endif /* !WIN32 */
32874 
32875 /** The symbol name of VBoxGetCAPIFunctions. */
32876 # ifdef __OS2__
32877 #  define VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME "_VBoxGetCAPIFunctions"
32878 # else /* !__OS2__ */
32879 #  define VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME "VBoxGetCAPIFunctions"
32880 # endif /* !__OS2__ */
32881 # ifndef WIN32
32882 /** Backwards compatibility: The symbol name of VBoxGetXPCOMCFunctions.
32883  * Use VBOX_GET_CAPI_FUNCTIONS_SYMBOL_NAME instead. */
32884 #  ifdef __OS2__
32885 #   define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "_VBoxGetXPCOMCFunctions"
32886 #  else /* !__OS2__ */
32887 #   define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "VBoxGetXPCOMCFunctions"
32888 #  endif /* !__OS2__ */
32889 # endif /* !WIN32 */
32890 
32891 
32892 # ifdef __cplusplus
32893 }
32894 # endif /* __cplusplus */
32895 
32896 #endif /* !___VirtualBox_CXPCOM_h */
32897