VirtualBox

source: vbox/trunk/src/VBox/Main/cbinding/VBoxCAPI_v4_0.h@ 47167

Last change on this file since 47167 was 39885, checked in by vboxsync, 13 years ago

Main/cbindings: update XPCOM C bindings again

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 214.2 KB
Line 
1
2/*
3 * DO NOT EDIT! This is a generated file.
4 *
5 * XPCOM IDL (XPIDL) definition for VirtualBox Main API (COM interfaces)
6 * generated from XIDL (XML interface definition).
7 *
8 * Source : src/VBox/Main/idl/VirtualBox.xidl
9 * Generator : src/VBox/Main/idl/xpcidl.xsl
10 *
11 * This file contains portions from the following Mozilla XPCOM files:
12 * xpcom/include/xpcom/nsID.h
13 * xpcom/include/nsIException.h
14 * xpcom/include/nsprpub/prtypes.h
15 * xpcom/include/xpcom/nsISupportsBase.h
16 *
17 * These files were originally triple-licensed (MPL/GPL2/LGPL2.1). Oracle
18 * elects to distribute this derived work under the LGPL2.1 only.
19 */
20
21/*
22 * Copyright (C) 2008-2012 Oracle Corporation
23 *
24 * This file is part of a free software library; you can redistribute
25 * it and/or modify it under the terms of the GNU Lesser General
26 * Public License version 2.1 as published by the Free Software
27 * Foundation and shipped in the "COPYING" file with this library.
28 * The library is distributed in the hope that it will be useful,
29 * but WITHOUT ANY WARRANTY of any kind.
30 *
31 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if
32 * any license choice other than GPL or LGPL is available it will
33 * apply instead, Oracle elects to use only the Lesser General Public
34 * License version 2.1 (LGPLv2) at this time for any software where
35 * a choice of LGPL license versions is made available with the
36 * language indicating that LGPLv2 or any later version may be used,
37 * or where a choice of which version of the LGPL is applied is
38 * otherwise unspecified.
39 */
40
41#ifndef ___VirtualBox_CXPCOM_h
42#define ___VirtualBox_CXPCOM_h
43
44#ifdef __cplusplus
45# include "VirtualBox_XPCOM.h"
46#else /* !__cplusplus */
47
48#include <stddef.h>
49#include "wchar.h"
50
51#if defined(WIN32)
52
53#define PR_EXPORT(__type) extern __declspec(dllexport) __type
54#define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
55#define PR_IMPORT(__type) __declspec(dllimport) __type
56#define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
57
58#define PR_EXTERN(__type) extern __declspec(dllexport) __type
59#define PR_IMPLEMENT(__type) __declspec(dllexport) __type
60#define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
61#define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
62
63#define PR_CALLBACK
64#define PR_CALLBACK_DECL
65#define PR_STATIC_CALLBACK(__x) static __x
66
67#elif defined(XP_BEOS)
68
69#define PR_EXPORT(__type) extern __declspec(dllexport) __type
70#define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
71#define PR_IMPORT(__type) extern __declspec(dllexport) __type
72#define PR_IMPORT_DATA(__type) extern __declspec(dllexport) __type
73
74#define PR_EXTERN(__type) extern __declspec(dllexport) __type
75#define PR_IMPLEMENT(__type) __declspec(dllexport) __type
76#define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
77#define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
78
79#define PR_CALLBACK
80#define PR_CALLBACK_DECL
81#define PR_STATIC_CALLBACK(__x) static __x
82
83#elif defined(WIN16)
84
85#define PR_CALLBACK_DECL __cdecl
86
87#if defined(_WINDLL)
88#define PR_EXPORT(__type) extern __type _cdecl _export _loadds
89#define PR_IMPORT(__type) extern __type _cdecl _export _loadds
90#define PR_EXPORT_DATA(__type) extern __type _export
91#define PR_IMPORT_DATA(__type) extern __type _export
92
93#define PR_EXTERN(__type) extern __type _cdecl _export _loadds
94#define PR_IMPLEMENT(__type) __type _cdecl _export _loadds
95#define PR_EXTERN_DATA(__type) extern __type _export
96#define PR_IMPLEMENT_DATA(__type) __type _export
97
98#define PR_CALLBACK __cdecl __loadds
99#define PR_STATIC_CALLBACK(__x) static __x PR_CALLBACK
100
101#else /* this must be .EXE */
102#define PR_EXPORT(__type) extern __type _cdecl _export
103#define PR_IMPORT(__type) extern __type _cdecl _export
104#define PR_EXPORT_DATA(__type) extern __type _export
105#define PR_IMPORT_DATA(__type) extern __type _export
106
107#define PR_EXTERN(__type) extern __type _cdecl _export
108#define PR_IMPLEMENT(__type) __type _cdecl _export
109#define PR_EXTERN_DATA(__type) extern __type _export
110#define PR_IMPLEMENT_DATA(__type) __type _export
111
112#define PR_CALLBACK __cdecl __loadds
113#define PR_STATIC_CALLBACK(__x) __x PR_CALLBACK
114#endif /* _WINDLL */
115
116#elif defined(XP_MAC)
117
118#define PR_EXPORT(__type) extern __declspec(export) __type
119#define PR_EXPORT_DATA(__type) extern __declspec(export) __type
120#define PR_IMPORT(__type) extern __declspec(export) __type
121#define PR_IMPORT_DATA(__type) extern __declspec(export) __type
122
123#define PR_EXTERN(__type) extern __declspec(export) __type
124#define PR_IMPLEMENT(__type) __declspec(export) __type
125#define PR_EXTERN_DATA(__type) extern __declspec(export) __type
126#define PR_IMPLEMENT_DATA(__type) __declspec(export) __type
127
128#define PR_CALLBACK
129#define PR_CALLBACK_DECL
130#define PR_STATIC_CALLBACK(__x) static __x
131
132#elif defined(XP_OS2) && defined(__declspec)
133
134#define PR_EXPORT(__type) extern __declspec(dllexport) __type
135#define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
136#define PR_IMPORT(__type) __declspec(dllimport) __type
137#define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
138
139#define PR_EXTERN(__type) extern __declspec(dllexport) __type
140#define PR_IMPLEMENT(__type) __declspec(dllexport) __type
141#define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
142#define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
143
144#define PR_CALLBACK
145#define PR_CALLBACK_DECL
146#define PR_STATIC_CALLBACK(__x) static __x
147
148#elif defined(XP_OS2_VACPP)
149
150#define PR_EXPORT(__type) extern __type
151#define PR_EXPORT_DATA(__type) extern __type
152#define PR_IMPORT(__type) extern __type
153#define PR_IMPORT_DATA(__type) extern __type
154
155#define PR_EXTERN(__type) extern __type
156#define PR_IMPLEMENT(__type) __type
157#define PR_EXTERN_DATA(__type) extern __type
158#define PR_IMPLEMENT_DATA(__type) __type
159#define PR_CALLBACK _Optlink
160#define PR_CALLBACK_DECL
161#define PR_STATIC_CALLBACK(__x) static __x PR_CALLBACK
162
163#else /* Unix */
164
165# ifdef VBOX_HAVE_VISIBILITY_HIDDEN
166# define PR_EXPORT(__type) __attribute__((visibility("default"))) extern __type
167# define PR_EXPORT_DATA(__type) __attribute__((visibility("default"))) extern __type
168# define PR_IMPORT(__type) extern __type
169# define PR_IMPORT_DATA(__type) extern __type
170# define PR_EXTERN(__type) __attribute__((visibility("default"))) extern __type
171# define PR_IMPLEMENT(__type) __attribute__((visibility("default"))) __type
172# define PR_EXTERN_DATA(__type) __attribute__((visibility("default"))) extern __type
173# define PR_IMPLEMENT_DATA(__type) __attribute__((visibility("default"))) __type
174# define PR_CALLBACK
175# define PR_CALLBACK_DECL
176# define PR_STATIC_CALLBACK(__x) static __x
177# else
178# define PR_EXPORT(__type) extern __type
179# define PR_EXPORT_DATA(__type) extern __type
180# define PR_IMPORT(__type) extern __type
181# define PR_IMPORT_DATA(__type) extern __type
182# define PR_EXTERN(__type) extern __type
183# define PR_IMPLEMENT(__type) __type
184# define PR_EXTERN_DATA(__type) extern __type
185# define PR_IMPLEMENT_DATA(__type) __type
186# define PR_CALLBACK
187# define PR_CALLBACK_DECL
188# define PR_STATIC_CALLBACK(__x) static __x
189# endif
190#endif
191
192#if defined(_NSPR_BUILD_)
193#define NSPR_API(__type) PR_EXPORT(__type)
194#define NSPR_DATA_API(__type) PR_EXPORT_DATA(__type)
195#else
196#define NSPR_API(__type) PR_IMPORT(__type)
197#define NSPR_DATA_API(__type) PR_IMPORT_DATA(__type)
198#endif
199
200typedef unsigned char PRUint8;
201#if (defined(HPUX) && defined(__cplusplus) \
202 && !defined(__GNUC__) && __cplusplus < 199707L) \
203 || (defined(SCO) && defined(__cplusplus) \
204 && !defined(__GNUC__) && __cplusplus == 1L)
205typedef char PRInt8;
206#else
207typedef signed char PRInt8;
208#endif
209
210#define PR_INT8_MAX 127
211#define PR_INT8_MIN (-128)
212#define PR_UINT8_MAX 255U
213
214typedef unsigned short PRUint16;
215typedef short PRInt16;
216
217#define PR_INT16_MAX 32767
218#define PR_INT16_MIN (-32768)
219#define PR_UINT16_MAX 65535U
220
221typedef unsigned int PRUint32;
222typedef int PRInt32;
223#define PR_INT32(x) x
224#define PR_UINT32(x) x ## U
225
226#define PR_INT32_MAX PR_INT32(2147483647)
227#define PR_INT32_MIN (-PR_INT32_MAX - 1)
228#define PR_UINT32_MAX PR_UINT32(4294967295)
229
230typedef long PRInt64;
231typedef unsigned long PRUint64;
232typedef int PRIntn;
233typedef unsigned int PRUintn;
234
235typedef double PRFloat64;
236typedef size_t PRSize;
237
238typedef ptrdiff_t PRPtrdiff;
239
240typedef unsigned long PRUptrdiff;
241
242typedef PRIntn PRBool;
243
244#define PR_TRUE 1
245#define PR_FALSE 0
246
247typedef PRUint8 PRPackedBool;
248
249/*
250** Status code used by some routines that have a single point of failure or
251** special status return.
252*/
253typedef enum { PR_FAILURE = -1, PR_SUCCESS = 0 } PRStatus;
254
255#ifndef __PRUNICHAR__
256#define __PRUNICHAR__
257#if defined(WIN32) || defined(XP_MAC)
258typedef wchar_t PRUnichar;
259#else
260typedef PRUint16 PRUnichar;
261#endif
262#endif
263
264typedef long PRWord;
265typedef unsigned long PRUword;
266
267#define nsnull 0
268typedef PRUint32 nsresult;
269
270#if defined(__GNUC__) && (__GNUC__ > 2)
271#define NS_LIKELY(x) (__builtin_expect((x), 1))
272#define NS_UNLIKELY(x) (__builtin_expect((x), 0))
273#else
274#define NS_LIKELY(x) (x)
275#define NS_UNLIKELY(x) (x)
276#endif
277
278#define NS_FAILED(_nsresult) (NS_UNLIKELY((_nsresult) & 0x80000000))
279#define NS_SUCCEEDED(_nsresult) (NS_LIKELY(!((_nsresult) & 0x80000000)))
280
281#ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
282# define PR_IntervalNow VBoxNsprPR_IntervalNow
283# define PR_TicksPerSecond VBoxNsprPR_TicksPerSecond
284# define PR_SecondsToInterval VBoxNsprPR_SecondsToInterval
285# define PR_MillisecondsToInterval VBoxNsprPR_MillisecondsToInterval
286# define PR_MicrosecondsToInterval VBoxNsprPR_MicrosecondsToInterval
287# define PR_IntervalToSeconds VBoxNsprPR_IntervalToSeconds
288# define PR_IntervalToMilliseconds VBoxNsprPR_IntervalToMilliseconds
289# define PR_IntervalToMicroseconds VBoxNsprPR_IntervalToMicroseconds
290# define PR_EnterMonitor VBoxNsprPR_EnterMonitor
291# define PR_ExitMonitor VBoxNsprPR_ExitMonitor
292# define PR_Notify VBoxNsprPR_Notify
293# define PR_NotifyAll VBoxNsprPR_NotifyAll
294# define PR_Wait VBoxNsprPR_Wait
295# define PR_NewMonitor VBoxNsprPR_NewMonitor
296# define PR_DestroyMonitor VBoxNsprPR_DestroyMonitor
297#endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
298
299typedef PRUint32 PRIntervalTime;
300
301#define PR_INTERVAL_MIN 1000UL
302#define PR_INTERVAL_MAX 100000UL
303#define PR_INTERVAL_NO_WAIT 0UL
304#define PR_INTERVAL_NO_TIMEOUT 0xffffffffUL
305
306NSPR_API(PRIntervalTime) PR_IntervalNow(void);
307NSPR_API(PRUint32) PR_TicksPerSecond(void);
308NSPR_API(PRIntervalTime) PR_SecondsToInterval(PRUint32 seconds);
309NSPR_API(PRIntervalTime) PR_MillisecondsToInterval(PRUint32 milli);
310NSPR_API(PRIntervalTime) PR_MicrosecondsToInterval(PRUint32 micro);
311NSPR_API(PRUint32) PR_IntervalToSeconds(PRIntervalTime ticks);
312NSPR_API(PRUint32) PR_IntervalToMilliseconds(PRIntervalTime ticks);
313NSPR_API(PRUint32) PR_IntervalToMicroseconds(PRIntervalTime ticks);
314
315typedef struct PRMonitor PRMonitor;
316
317NSPR_API(PRMonitor*) PR_NewMonitor(void);
318NSPR_API(void) PR_DestroyMonitor(PRMonitor *mon);
319NSPR_API(void) PR_EnterMonitor(PRMonitor *mon);
320NSPR_API(PRStatus) PR_ExitMonitor(PRMonitor *mon);
321NSPR_API(PRStatus) PR_Wait(PRMonitor *mon, PRIntervalTime ticks);
322NSPR_API(PRStatus) PR_Notify(PRMonitor *mon);
323NSPR_API(PRStatus) PR_NotifyAll(PRMonitor *mon);
324
325#ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
326# define PR_CreateThread VBoxNsprPR_CreateThread
327# define PR_JoinThread VBoxNsprPR_JoinThread
328# define PR_Sleep VBoxNsprPR_Sleep
329# define PR_GetCurrentThread VBoxNsprPR_GetCurrentThread
330# define PR_GetThreadState VBoxNsprPR_GetThreadState
331# define PR_SetThreadPrivate VBoxNsprPR_SetThreadPrivate
332# define PR_GetThreadPrivate VBoxNsprPR_GetThreadPrivate
333# define PR_NewThreadPrivateIndex VBoxNsprPR_NewThreadPrivateIndex
334# define PR_GetThreadPriority VBoxNsprPR_GetThreadPriority
335# define PR_SetThreadPriority VBoxNsprPR_SetThreadPriority
336# define PR_Interrupt VBoxNsprPR_Interrupt
337# define PR_ClearInterrupt VBoxNsprPR_ClearInterrupt
338# define PR_BlockInterrupt VBoxNsprPR_BlockInterrupt
339# define PR_UnblockInterrupt VBoxNsprPR_UnblockInterrupt
340# define PR_GetThreadScope VBoxNsprPR_GetThreadScope
341# define PR_GetThreadType VBoxNsprPR_GetThreadType
342#endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
343
344typedef struct PRThread PRThread;
345typedef struct PRThreadStack PRThreadStack;
346
347typedef enum PRThreadType {
348 PR_USER_THREAD,
349 PR_SYSTEM_THREAD
350} PRThreadType;
351
352typedef enum PRThreadScope {
353 PR_LOCAL_THREAD,
354 PR_GLOBAL_THREAD,
355 PR_GLOBAL_BOUND_THREAD
356} PRThreadScope;
357
358typedef enum PRThreadState {
359 PR_JOINABLE_THREAD,
360 PR_UNJOINABLE_THREAD
361} PRThreadState;
362
363typedef enum PRThreadPriority
364{
365 PR_PRIORITY_FIRST = 0, /* just a placeholder */
366 PR_PRIORITY_LOW = 0, /* the lowest possible priority */
367 PR_PRIORITY_NORMAL = 1, /* most common expected priority */
368 PR_PRIORITY_HIGH = 2, /* slightly more aggressive scheduling */
369 PR_PRIORITY_URGENT = 3, /* it does little good to have more than one */
370 PR_PRIORITY_LAST = 3 /* this is just a placeholder */
371} PRThreadPriority;
372
373NSPR_API(PRThread*) PR_CreateThread(PRThreadType type,
374 void (PR_CALLBACK *start)(void *arg),
375 void *arg,
376 PRThreadPriority priority,
377 PRThreadScope scope,
378 PRThreadState state,
379 PRUint32 stackSize);
380NSPR_API(PRStatus) PR_JoinThread(PRThread *thread);
381NSPR_API(PRThread*) PR_GetCurrentThread(void);
382#ifndef NO_NSPR_10_SUPPORT
383#define PR_CurrentThread() PR_GetCurrentThread() /* for nspr1.0 compat. */
384#endif /* NO_NSPR_10_SUPPORT */
385NSPR_API(PRThreadPriority) PR_GetThreadPriority(const PRThread *thread);
386NSPR_API(void) PR_SetThreadPriority(PRThread *thread, PRThreadPriority priority);
387
388typedef void (PR_CALLBACK *PRThreadPrivateDTOR)(void *priv);
389
390NSPR_API(PRStatus) PR_NewThreadPrivateIndex(
391 PRUintn *newIndex, PRThreadPrivateDTOR destructor);
392NSPR_API(PRStatus) PR_SetThreadPrivate(PRUintn tpdIndex, void *priv);
393NSPR_API(void*) PR_GetThreadPrivate(PRUintn tpdIndex);
394NSPR_API(PRStatus) PR_Interrupt(PRThread *thread);
395NSPR_API(void) PR_ClearInterrupt(void);
396NSPR_API(void) PR_BlockInterrupt(void);
397NSPR_API(void) PR_UnblockInterrupt(void);
398NSPR_API(PRStatus) PR_Sleep(PRIntervalTime ticks);
399NSPR_API(PRThreadScope) PR_GetThreadScope(const PRThread *thread);
400NSPR_API(PRThreadType) PR_GetThreadType(const PRThread *thread);
401NSPR_API(PRThreadState) PR_GetThreadState(const PRThread *thread);
402
403#ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
404# define PR_DestroyLock VBoxNsprPR_DestroyLock
405# define PR_Lock VBoxNsprPR_Lock
406# define PR_NewLock VBoxNsprPR_NewLock
407# define PR_Unlock VBoxNsprPR_Unlock
408#endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
409
410typedef struct PRLock PRLock;
411
412NSPR_API(PRLock*) PR_NewLock(void);
413NSPR_API(void) PR_DestroyLock(PRLock *lock);
414NSPR_API(void) PR_Lock(PRLock *lock);
415NSPR_API(PRStatus) PR_Unlock(PRLock *lock);
416
417#ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
418# define PR_NewCondVar VBoxNsprPR_NewCondVar
419# define PR_DestroyCondVar VBoxNsprPR_DestroyCondVar
420# define PR_WaitCondVar VBoxNsprPR_WaitCondVar
421# define PR_NotifyCondVar VBoxNsprPR_NotifyCondVar
422# define PR_NotifyAllCondVar VBoxNsprPR_NotifyAllCondVar
423#endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
424
425typedef struct PRCondVar PRCondVar;
426
427NSPR_API(PRCondVar*) PR_NewCondVar(PRLock *lock);
428NSPR_API(void) PR_DestroyCondVar(PRCondVar *cvar);
429NSPR_API(PRStatus) PR_WaitCondVar(PRCondVar *cvar, PRIntervalTime timeout);
430NSPR_API(PRStatus) PR_NotifyCondVar(PRCondVar *cvar);
431NSPR_API(PRStatus) PR_NotifyAllCondVar(PRCondVar *cvar);
432
433typedef struct PRCListStr PRCList;
434
435struct PRCListStr {
436 PRCList *next;
437 PRCList *prev;
438};
439
440#ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
441# define PL_DestroyEvent VBoxNsplPL_DestroyEvent
442# define PL_HandleEvent VBoxNsplPL_HandleEvent
443# define PL_InitEvent VBoxNsplPL_InitEvent
444# define PL_CreateEventQueue VBoxNsplPL_CreateEventQueue
445# define PL_CreateMonitoredEventQueue VBoxNsplPL_CreateMonitoredEventQueue
446# define PL_CreateNativeEventQueue VBoxNsplPL_CreateNativeEventQueue
447# define PL_DequeueEvent VBoxNsplPL_DequeueEvent
448# define PL_DestroyEventQueue VBoxNsplPL_DestroyEventQueue
449# define PL_EventAvailable VBoxNsplPL_EventAvailable
450# define PL_EventLoop VBoxNsplPL_EventLoop
451# define PL_GetEvent VBoxNsplPL_GetEvent
452# define PL_GetEventOwner VBoxNsplPL_GetEventOwner
453# define PL_GetEventQueueMonitor VBoxNsplPL_GetEventQueueMonitor
454# define PL_GetEventQueueSelectFD VBoxNsplPL_GetEventQueueSelectFD
455# define PL_MapEvents VBoxNsplPL_MapEvents
456# define PL_PostEvent VBoxNsplPL_PostEvent
457# define PL_PostSynchronousEvent VBoxNsplPL_PostSynchronousEvent
458# define PL_ProcessEventsBeforeID VBoxNsplPL_ProcessEventsBeforeID
459# define PL_ProcessPendingEvents VBoxNsplPL_ProcessPendingEvents
460# define PL_RegisterEventIDFunc VBoxNsplPL_RegisterEventIDFunc
461# define PL_RevokeEvents VBoxNsplPL_RevokeEvents
462# define PL_UnregisterEventIDFunc VBoxNsplPL_UnregisterEventIDFunc
463# define PL_WaitForEvent VBoxNsplPL_WaitForEvent
464# define PL_IsQueueNative VBoxNsplPL_IsQueueNative
465# define PL_IsQueueOnCurrentThread VBoxNsplPL_IsQueueOnCurrentThread
466# define PL_FavorPerformanceHint VBoxNsplPL_FavorPerformanceHint
467#endif /* VBOX_WITH_XPCOM_NAMESPACE_CLEANUP */
468
469typedef struct PLEvent PLEvent;
470typedef struct PLEventQueue PLEventQueue;
471
472PR_EXTERN(PLEventQueue*)
473PL_CreateEventQueue(const char* name, PRThread* handlerThread);
474PR_EXTERN(PLEventQueue *)
475 PL_CreateNativeEventQueue(
476 const char *name,
477 PRThread *handlerThread
478 );
479PR_EXTERN(PLEventQueue *)
480 PL_CreateMonitoredEventQueue(
481 const char *name,
482 PRThread *handlerThread
483 );
484PR_EXTERN(void)
485PL_DestroyEventQueue(PLEventQueue* self);
486PR_EXTERN(PRMonitor*)
487PL_GetEventQueueMonitor(PLEventQueue* self);
488
489#define PL_ENTER_EVENT_QUEUE_MONITOR(queue) \
490 PR_EnterMonitor(PL_GetEventQueueMonitor(queue))
491
492#define PL_EXIT_EVENT_QUEUE_MONITOR(queue) \
493 PR_ExitMonitor(PL_GetEventQueueMonitor(queue))
494
495PR_EXTERN(PRStatus) PL_PostEvent(PLEventQueue* self, PLEvent* event);
496PR_EXTERN(void*) PL_PostSynchronousEvent(PLEventQueue* self, PLEvent* event);
497PR_EXTERN(PLEvent*) PL_GetEvent(PLEventQueue* self);
498PR_EXTERN(PRBool) PL_EventAvailable(PLEventQueue* self);
499
500typedef void (PR_CALLBACK *PLEventFunProc)(PLEvent* event, void* data, PLEventQueue* queue);
501
502PR_EXTERN(void) PL_MapEvents(PLEventQueue* self, PLEventFunProc fun, void* data);
503PR_EXTERN(void) PL_RevokeEvents(PLEventQueue* self, void* owner);
504PR_EXTERN(void) PL_ProcessPendingEvents(PLEventQueue* self);
505PR_EXTERN(PLEvent*) PL_WaitForEvent(PLEventQueue* self);
506PR_EXTERN(void) PL_EventLoop(PLEventQueue* self);
507PR_EXTERN(PRInt32) PL_GetEventQueueSelectFD(PLEventQueue* self);
508PR_EXTERN(PRBool) PL_IsQueueOnCurrentThread( PLEventQueue *queue );
509PR_EXTERN(PRBool) PL_IsQueueNative(PLEventQueue *queue);
510
511typedef void* (PR_CALLBACK *PLHandleEventProc)(PLEvent* self);
512typedef void (PR_CALLBACK *PLDestroyEventProc)(PLEvent* self);
513PR_EXTERN(void)
514PL_InitEvent(PLEvent* self, void* owner,
515 PLHandleEventProc handler,
516 PLDestroyEventProc destructor);
517PR_EXTERN(void*) PL_GetEventOwner(PLEvent* self);
518PR_EXTERN(void) PL_HandleEvent(PLEvent* self);
519PR_EXTERN(void) PL_DestroyEvent(PLEvent* self);
520PR_EXTERN(void) PL_DequeueEvent(PLEvent* self, PLEventQueue* queue);
521PR_EXTERN(void) PL_FavorPerformanceHint(PRBool favorPerformanceOverEventStarvation, PRUint32 starvationDelay);
522
523struct PLEvent {
524 PRCList link;
525 PLHandleEventProc handler;
526 PLDestroyEventProc destructor;
527 void* owner;
528 void* synchronousResult;
529 PRLock* lock;
530 PRCondVar* condVar;
531 PRBool handled;
532#ifdef PL_POST_TIMINGS
533 PRIntervalTime postTime;
534#endif
535#ifdef XP_UNIX
536 unsigned long id;
537#endif /* XP_UNIX */
538 /* other fields follow... */
539};
540
541#if defined(XP_WIN) || defined(XP_OS2)
542
543PR_EXTERN(HWND)
544 PL_GetNativeEventReceiverWindow(
545 PLEventQueue *eqp
546 );
547#endif /* XP_WIN || XP_OS2 */
548
549#ifdef XP_UNIX
550
551PR_EXTERN(PRInt32)
552PL_ProcessEventsBeforeID(PLEventQueue *aSelf, unsigned long aID);
553
554typedef unsigned long (PR_CALLBACK *PLGetEventIDFunc)(void *aClosure);
555
556PR_EXTERN(void)
557PL_RegisterEventIDFunc(PLEventQueue *aSelf, PLGetEventIDFunc aFunc,
558 void *aClosure);
559PR_EXTERN(void) PL_UnregisterEventIDFunc(PLEventQueue *aSelf);
560
561#endif /* XP_UNIX */
562
563/* Standard "it worked" return value */
564#define NS_OK 0
565
566#define NS_ERROR_BASE ((nsresult) 0xC1F30000)
567
568/* Returned when an instance is not initialized */
569#define NS_ERROR_NOT_INITIALIZED (NS_ERROR_BASE + 1)
570
571/* Returned when an instance is already initialized */
572#define NS_ERROR_ALREADY_INITIALIZED (NS_ERROR_BASE + 2)
573
574/* Returned by a not implemented function */
575#define NS_ERROR_NOT_IMPLEMENTED ((nsresult) 0x80004001L)
576
577/* Returned when a given interface is not supported. */
578#define NS_NOINTERFACE ((nsresult) 0x80004002L)
579#define NS_ERROR_NO_INTERFACE NS_NOINTERFACE
580
581#define NS_ERROR_INVALID_POINTER ((nsresult) 0x80004003L)
582#define NS_ERROR_NULL_POINTER NS_ERROR_INVALID_POINTER
583
584/* Returned when a function aborts */
585#define NS_ERROR_ABORT ((nsresult) 0x80004004L)
586
587/* Returned when a function fails */
588#define NS_ERROR_FAILURE ((nsresult) 0x80004005L)
589
590/* Returned when an unexpected error occurs */
591#define NS_ERROR_UNEXPECTED ((nsresult) 0x8000ffffL)
592
593/* Returned when a memory allocation fails */
594#define NS_ERROR_OUT_OF_MEMORY ((nsresult) 0x8007000eL)
595
596/* Returned when an illegal value is passed */
597#define NS_ERROR_ILLEGAL_VALUE ((nsresult) 0x80070057L)
598#define NS_ERROR_INVALID_ARG NS_ERROR_ILLEGAL_VALUE
599
600/* Returned when a class doesn't allow aggregation */
601#define NS_ERROR_NO_AGGREGATION ((nsresult) 0x80040110L)
602
603/* Returned when an operation can't complete due to an unavailable resource */
604#define NS_ERROR_NOT_AVAILABLE ((nsresult) 0x80040111L)
605
606/* Returned when a class is not registered */
607#define NS_ERROR_FACTORY_NOT_REGISTERED ((nsresult) 0x80040154L)
608
609/* Returned when a class cannot be registered, but may be tried again later */
610#define NS_ERROR_FACTORY_REGISTER_AGAIN ((nsresult) 0x80040155L)
611
612/* Returned when a dynamically loaded factory couldn't be found */
613#define NS_ERROR_FACTORY_NOT_LOADED ((nsresult) 0x800401f8L)
614
615/* Returned when a factory doesn't support signatures */
616#define NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT \
617 (NS_ERROR_BASE + 0x101)
618
619/* Returned when a factory already is registered */
620#define NS_ERROR_FACTORY_EXISTS (NS_ERROR_BASE + 0x100)
621
622
623/**
624 * An "interface id" which can be used to uniquely identify a given
625 * interface.
626 * A "unique identifier". This is modeled after OSF DCE UUIDs.
627 */
628
629struct nsID {
630 PRUint32 m0;
631 PRUint16 m1;
632 PRUint16 m2;
633 PRUint8 m3[8];
634};
635
636typedef struct nsID nsID;
637typedef nsID nsIID;
638
639struct nsISupports; /* forward declaration */
640struct nsIStackFrame; /* forward declaration */
641struct nsIException; /* forward declaration */
642typedef struct nsISupports nsISupports; /* forward declaration */
643typedef struct nsIStackFrame nsIStackFrame; /* forward declaration */
644typedef struct nsIException nsIException; /* forward declaration */
645
646/**
647 * IID for the nsISupports interface
648 * {00000000-0000-0000-c000-000000000046}
649 *
650 * To maintain binary compatibility with COM's IUnknown, we define the IID
651 * of nsISupports to be the same as that of COM's IUnknown.
652 */
653#define NS_ISUPPORTS_IID \
654 { 0x00000000, 0x0000, 0x0000, \
655 {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} }
656
657/**
658 * Reference count values
659 *
660 * This is the return type for AddRef() and Release() in nsISupports.
661 * IUnknown of COM returns an unsigned long from equivalent functions.
662 * The following ifdef exists to maintain binary compatibility with
663 * IUnknown.
664 */
665
666/**
667 * Basic component object model interface. Objects which implement
668 * this interface support runtime interface discovery (QueryInterface)
669 * and a reference counted memory model (AddRef/Release). This is
670 * modelled after the win32 IUnknown API.
671 */
672struct nsISupports_vtbl {
673
674 /**
675 * @name Methods
676 */
677
678 /**
679 * A run time mechanism for interface discovery.
680 * @param aIID [in] A requested interface IID
681 * @param aInstancePtr [out] A pointer to an interface pointer to
682 * receive the result.
683 * @return NS_OK if the interface is supported by the associated
684 * instance, NS_NOINTERFACE if it is not.
685 * NS_ERROR_INVALID_POINTER if aInstancePtr is NULL.
686 */
687 nsresult (*QueryInterface)(nsISupports *pThis, const nsID *iid, void **resultp);
688 /**
689 * Increases the reference count for this interface.
690 * The associated instance will not be deleted unless
691 * the reference count is returned to zero.
692 *
693 * @return The resulting reference count.
694 */
695 nsresult (*AddRef)(nsISupports *pThis);
696
697 /**
698 * Decreases the reference count for this interface.
699 * Generally, if the reference count returns to zero,
700 * the associated instance is deleted.
701 *
702 * @return The resulting reference count.
703 */
704 nsresult (*Release)(nsISupports *pThis);
705
706};
707
708struct nsISupports {
709 struct nsISupports_vtbl *vtbl;
710};
711
712/* starting interface: nsIException */
713#define NS_IEXCEPTION_IID_STR "f3a8d3b4-c424-4edc-8bf6-8974c983ba78"
714
715#define NS_IEXCEPTION_IID \
716 {0xf3a8d3b4, 0xc424, 0x4edc, \
717 { 0x8b, 0xf6, 0x89, 0x74, 0xc9, 0x83, 0xba, 0x78 }}
718
719struct nsIException_vtbl {
720
721 /* Methods from the Class nsISupports */
722 struct nsISupports_vtbl nsisupports;
723
724 /* readonly attribute string message; */
725 nsresult (*GetMessage)(nsIException *pThis, PRUnichar * *aMessage);
726
727 /* readonly attribute nsresult (*result; */
728 nsresult (*GetResult)(nsIException *pThis, nsresult *aResult);
729
730 /* readonly attribute string name; */
731 nsresult (*GetName)(nsIException *pThis, PRUnichar * *aName);
732
733 /* readonly attribute string filename; */
734 nsresult (*GetFilename)(nsIException *pThis, PRUnichar * *aFilename);
735
736 /* readonly attribute PRUint32 lineNumber; */
737 nsresult (*GetLineNumber)(nsIException *pThis, PRUint32 *aLineNumber);
738
739 /* readonly attribute PRUint32 columnNumber; */
740 nsresult (*GetColumnNumber)(nsIException *pThis, PRUint32 *aColumnNumber);
741
742 /* readonly attribute nsIStackFrame location; */
743 nsresult (*GetLocation)(nsIException *pThis, nsIStackFrame * *aLocation);
744
745 /* readonly attribute nsIException inner; */
746 nsresult (*GetInner)(nsIException *pThis, nsIException * *aInner);
747
748 /* readonly attribute nsISupports data; */
749 nsresult (*GetData)(nsIException *pThis, nsISupports * *aData);
750
751 /* string toString (); */
752 nsresult (*ToString)(nsIException *pThis, PRUnichar **_retval);
753};
754
755struct nsIException {
756 struct nsIException_vtbl *vtbl;
757};
758
759/* starting interface: nsIStackFrame */
760#define NS_ISTACKFRAME_IID_STR "91d82105-7c62-4f8b-9779-154277c0ee90"
761
762#define NS_ISTACKFRAME_IID \
763 {0x91d82105, 0x7c62, 0x4f8b, \
764 { 0x97, 0x79, 0x15, 0x42, 0x77, 0xc0, 0xee, 0x90 }}
765
766struct nsIStackFrame_vtbl {
767
768 /* Methods from the Class nsISupports */
769 struct nsISupports_vtbl nsisupports;
770
771 /* readonly attribute PRUint32 language; */
772 nsresult (*GetLanguage)(nsIStackFrame *pThis, PRUint32 *aLanguage);
773
774 /* readonly attribute string languageName; */
775 nsresult (*GetLanguageName)(nsIStackFrame *pThis, PRUnichar * *aLanguageName);
776
777 /* readonly attribute string filename; */
778 nsresult (*GetFilename)(nsIStackFrame *pThis, PRUnichar * *aFilename);
779
780 /* readonly attribute string name; */
781 nsresult (*GetName)(nsIStackFrame *pThis, PRUnichar * *aName);
782
783 /* readonly attribute PRInt32 lineNumber; */
784 nsresult (*GetLineNumber)(nsIStackFrame *pThis, PRInt32 *aLineNumber);
785
786 /* readonly attribute string sourceLine; */
787 nsresult (*GetSourceLine)(nsIStackFrame *pThis, PRUnichar * *aSourceLine);
788
789 /* readonly attribute nsIStackFrame caller; */
790 nsresult (*GetCaller)(nsIStackFrame *pThis, nsIStackFrame * *aCaller);
791
792 /* string toString (); */
793 nsresult (*ToString)(nsIStackFrame *pThis, PRUnichar **_retval);
794};
795
796struct nsIStackFrame {
797 struct nsIStackFrame_vtbl *vtbl;
798};
799
800/* starting interface: nsIEventTarget */
801#define NS_IEVENTTARGET_IID_STR "ea99ad5b-cc67-4efb-97c9-2ef620a59f2a"
802
803#define NS_IEVENTTARGET_IID \
804 {0xea99ad5b, 0xcc67, 0x4efb, \
805 { 0x97, 0xc9, 0x2e, 0xf6, 0x20, 0xa5, 0x9f, 0x2a }}
806
807struct nsIEventTarget;
808typedef struct nsIEventTarget nsIEventTarget;
809
810struct nsIEventTarget_vtbl {
811
812 struct nsISupports_vtbl nsisupports;
813
814 nsresult (*PostEvent)(nsIEventTarget *pThis, PLEvent * aEvent);
815
816 nsresult (*IsOnCurrentThread)(nsIEventTarget *pThis, PRBool *_retval);
817
818};
819
820struct nsIEventTarget {
821 struct nsIEventTarget_vtbl *vtbl;
822};
823
824/* starting interface: nsIEventQueue */
825#define NS_IEVENTQUEUE_IID_STR "176afb41-00a4-11d3-9f2a-00400553eef0"
826
827#define NS_IEVENTQUEUE_IID \
828 {0x176afb41, 0x00a4, 0x11d3, \
829 { 0x9f, 0x2a, 0x00, 0x40, 0x05, 0x53, 0xee, 0xf0 }}
830
831struct nsIEventQueue;
832typedef struct nsIEventQueue nsIEventQueue;
833
834struct nsIEventQueue_vtbl {
835
836 struct nsIEventTarget_vtbl nsieventtarget;
837
838 nsresult (*InitEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * owner, PLHandleEventProc handler, PLDestroyEventProc destructor);
839
840 nsresult (*PostSynchronousEvent)(nsIEventQueue *pThis, PLEvent * aEvent, void * *aResult);
841
842 nsresult (*PendingEvents)(nsIEventQueue *pThis, PRBool *_retval);
843
844 nsresult (*ProcessPendingEvents)(nsIEventQueue *pThis);
845
846 nsresult (*EventLoop)(nsIEventQueue *pThis);
847
848 nsresult (*EventAvailable)(nsIEventQueue *pThis, PRBool *aResult);
849
850 nsresult (*GetEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
851
852 nsresult (*HandleEvent)(nsIEventQueue *pThis, PLEvent * aEvent);
853
854 nsresult (*WaitForEvent)(nsIEventQueue *pThis, PLEvent * *_retval);
855
856 PRInt32 (*GetEventQueueSelectFD)(nsIEventQueue *pThis);
857
858 nsresult (*Init)(nsIEventQueue *pThis, PRBool aNative);
859
860 nsresult (*InitFromPRThread)(nsIEventQueue *pThis, PRThread * thread, PRBool aNative);
861
862 nsresult (*InitFromPLQueue)(nsIEventQueue *pThis, PLEventQueue * aQueue);
863
864 nsresult (*EnterMonitor)(nsIEventQueue *pThis);
865
866 nsresult (*ExitMonitor)(nsIEventQueue *pThis);
867
868 nsresult (*RevokeEvents)(nsIEventQueue *pThis, void * owner);
869
870 nsresult (*GetPLEventQueue)(nsIEventQueue *pThis, PLEventQueue * *_retval);
871
872 nsresult (*IsQueueNative)(nsIEventQueue *pThis, PRBool *_retval);
873
874 nsresult (*StopAcceptingEvents)(nsIEventQueue *pThis);
875
876};
877
878struct nsIEventQueue {
879 struct nsIEventQueue_vtbl *vtbl;
880};
881
882
883#define VBOX_E_OBJECT_NOT_FOUND 0x80BB0001
884#define VBOX_E_INVALID_VM_STATE 0x80BB0002
885#define VBOX_E_VM_ERROR 0x80BB0003
886#define VBOX_E_FILE_ERROR 0x80BB0004
887#define VBOX_E_IPRT_ERROR 0x80BB0005
888#define VBOX_E_PDM_ERROR 0x80BB0006
889#define VBOX_E_INVALID_OBJECT_STATE 0x80BB0007
890#define VBOX_E_HOST_ERROR 0x80BB0008
891#define VBOX_E_NOT_SUPPORTED 0x80BB0009
892#define VBOX_E_XML_ERROR 0x80BB000A
893#define VBOX_E_INVALID_SESSION_STATE 0x80BB000B
894#define VBOX_E_OBJECT_IN_USE 0x80BB000C
895
896
897struct IVirtualBoxErrorInfo;
898struct IDHCPServer;
899struct IVirtualBox;
900struct IVFSExplorer;
901struct IAppliance;
902struct IVirtualSystemDescription;
903struct IInternalMachineControl;
904struct IBIOSSettings;
905struct IEventContext;
906struct IPciAddress;
907struct IPciDeviceAttachment;
908struct IMachine;
909struct IVRDEServerInfo;
910struct IConsole;
911struct IHostNetworkInterface;
912struct IHost;
913struct ISystemProperties;
914struct IGuestOSType;
915struct IGuest;
916struct IProgress;
917struct ISnapshot;
918struct IMediumAttachment;
919struct IMedium;
920struct IMediumFormat;
921struct IKeyboard;
922struct IMouse;
923struct IFramebuffer;
924struct IFramebufferOverlay;
925struct IDisplay;
926struct INetworkAdapter;
927struct ISerialPort;
928struct IParallelPort;
929struct IMachineDebugger;
930struct IUSBController;
931struct IUSBDevice;
932struct IUSBDeviceFilter;
933struct IHostUSBDevice;
934struct IHostUSBDeviceFilter;
935struct IAudioAdapter;
936struct IVRDEServer;
937struct ISharedFolder;
938struct IInternalSessionControl;
939struct ISession;
940struct IStorageController;
941struct IManagedObjectRef;
942struct IWebsessionManager;
943struct IPerformanceMetric;
944struct IPerformanceCollector;
945struct INATEngine;
946struct IExtPackPlugIn;
947struct IExtPackBase;
948struct IExtPack;
949struct IExtPackFile;
950struct IExtPackManager;
951struct IBandwidthGroup;
952struct IBandwidthControl;
953struct IVirtualBoxClient;
954struct IEventSource;
955struct IEventListener;
956struct IEvent;
957struct IReusableEvent;
958struct IMachineEvent;
959struct IMachineStateChangedEvent;
960struct IMachineDataChangedEvent;
961struct IMediumRegisteredEvent;
962struct IMachineRegisteredEvent;
963struct ISessionStateChangedEvent;
964struct IGuestPropertyChangedEvent;
965struct ISnapshotEvent;
966struct ISnapshotTakenEvent;
967struct ISnapshotDeletedEvent;
968struct ISnapshotChangedEvent;
969struct IMousePointerShapeChangedEvent;
970struct IMouseCapabilityChangedEvent;
971struct IKeyboardLedsChangedEvent;
972struct IStateChangedEvent;
973struct IAdditionsStateChangedEvent;
974struct INetworkAdapterChangedEvent;
975struct ISerialPortChangedEvent;
976struct IParallelPortChangedEvent;
977struct IStorageControllerChangedEvent;
978struct IMediumChangedEvent;
979struct ICPUChangedEvent;
980struct ICPUExecutionCapChangedEvent;
981struct IGuestKeyboardEvent;
982struct IGuestMouseEvent;
983struct IVRDEServerChangedEvent;
984struct IVRDEServerInfoChangedEvent;
985struct IUSBControllerChangedEvent;
986struct IUSBDeviceStateChangedEvent;
987struct ISharedFolderChangedEvent;
988struct IRuntimeErrorEvent;
989struct IEventSourceChangedEvent;
990struct IExtraDataChangedEvent;
991struct IVetoEvent;
992struct IExtraDataCanChangeEvent;
993struct ICanShowWindowEvent;
994struct IShowWindowEvent;
995struct INATRedirectEvent;
996struct IHostPciDevicePlugEvent;
997struct IVBoxSVCAvailabilityChangedEvent;
998struct IBandwidthGroupChangedEvent;
999struct IGuestMonitorChangedEvent;
1000
1001typedef struct IVirtualBoxErrorInfo IVirtualBoxErrorInfo;
1002typedef struct IDHCPServer IDHCPServer;
1003typedef struct IVirtualBox IVirtualBox;
1004typedef struct IVFSExplorer IVFSExplorer;
1005typedef struct IAppliance IAppliance;
1006typedef struct IVirtualSystemDescription IVirtualSystemDescription;
1007typedef struct IInternalMachineControl IInternalMachineControl;
1008typedef struct IBIOSSettings IBIOSSettings;
1009typedef struct IEventContext IEventContext;
1010typedef struct IPciAddress IPciAddress;
1011typedef struct IPciDeviceAttachment IPciDeviceAttachment;
1012typedef struct IMachine IMachine;
1013typedef struct IVRDEServerInfo IVRDEServerInfo;
1014typedef struct IConsole IConsole;
1015typedef struct IHostNetworkInterface IHostNetworkInterface;
1016typedef struct IHost IHost;
1017typedef struct ISystemProperties ISystemProperties;
1018typedef struct IGuestOSType IGuestOSType;
1019typedef struct IGuest IGuest;
1020typedef struct IProgress IProgress;
1021typedef struct ISnapshot ISnapshot;
1022typedef struct IMediumAttachment IMediumAttachment;
1023typedef struct IMedium IMedium;
1024typedef struct IMediumFormat IMediumFormat;
1025typedef struct IKeyboard IKeyboard;
1026typedef struct IMouse IMouse;
1027typedef struct IFramebuffer IFramebuffer;
1028typedef struct IFramebufferOverlay IFramebufferOverlay;
1029typedef struct IDisplay IDisplay;
1030typedef struct INetworkAdapter INetworkAdapter;
1031typedef struct ISerialPort ISerialPort;
1032typedef struct IParallelPort IParallelPort;
1033typedef struct IMachineDebugger IMachineDebugger;
1034typedef struct IUSBController IUSBController;
1035typedef struct IUSBDevice IUSBDevice;
1036typedef struct IUSBDeviceFilter IUSBDeviceFilter;
1037typedef struct IHostUSBDevice IHostUSBDevice;
1038typedef struct IHostUSBDeviceFilter IHostUSBDeviceFilter;
1039typedef struct IAudioAdapter IAudioAdapter;
1040typedef struct IVRDEServer IVRDEServer;
1041typedef struct ISharedFolder ISharedFolder;
1042typedef struct IInternalSessionControl IInternalSessionControl;
1043typedef struct ISession ISession;
1044typedef struct IStorageController IStorageController;
1045typedef struct IManagedObjectRef IManagedObjectRef;
1046typedef struct IWebsessionManager IWebsessionManager;
1047typedef struct IPerformanceMetric IPerformanceMetric;
1048typedef struct IPerformanceCollector IPerformanceCollector;
1049typedef struct INATEngine INATEngine;
1050typedef struct IExtPackPlugIn IExtPackPlugIn;
1051typedef struct IExtPackBase IExtPackBase;
1052typedef struct IExtPack IExtPack;
1053typedef struct IExtPackFile IExtPackFile;
1054typedef struct IExtPackManager IExtPackManager;
1055typedef struct IBandwidthGroup IBandwidthGroup;
1056typedef struct IBandwidthControl IBandwidthControl;
1057typedef struct IVirtualBoxClient IVirtualBoxClient;
1058typedef struct IEventSource IEventSource;
1059typedef struct IEventListener IEventListener;
1060typedef struct IEvent IEvent;
1061typedef struct IReusableEvent IReusableEvent;
1062typedef struct IMachineEvent IMachineEvent;
1063typedef struct IMachineStateChangedEvent IMachineStateChangedEvent;
1064typedef struct IMachineDataChangedEvent IMachineDataChangedEvent;
1065typedef struct IMediumRegisteredEvent IMediumRegisteredEvent;
1066typedef struct IMachineRegisteredEvent IMachineRegisteredEvent;
1067typedef struct ISessionStateChangedEvent ISessionStateChangedEvent;
1068typedef struct IGuestPropertyChangedEvent IGuestPropertyChangedEvent;
1069typedef struct ISnapshotEvent ISnapshotEvent;
1070typedef struct ISnapshotTakenEvent ISnapshotTakenEvent;
1071typedef struct ISnapshotDeletedEvent ISnapshotDeletedEvent;
1072typedef struct ISnapshotChangedEvent ISnapshotChangedEvent;
1073typedef struct IMousePointerShapeChangedEvent IMousePointerShapeChangedEvent;
1074typedef struct IMouseCapabilityChangedEvent IMouseCapabilityChangedEvent;
1075typedef struct IKeyboardLedsChangedEvent IKeyboardLedsChangedEvent;
1076typedef struct IStateChangedEvent IStateChangedEvent;
1077typedef struct IAdditionsStateChangedEvent IAdditionsStateChangedEvent;
1078typedef struct INetworkAdapterChangedEvent INetworkAdapterChangedEvent;
1079typedef struct ISerialPortChangedEvent ISerialPortChangedEvent;
1080typedef struct IParallelPortChangedEvent IParallelPortChangedEvent;
1081typedef struct IStorageControllerChangedEvent IStorageControllerChangedEvent;
1082typedef struct IMediumChangedEvent IMediumChangedEvent;
1083typedef struct ICPUChangedEvent ICPUChangedEvent;
1084typedef struct ICPUExecutionCapChangedEvent ICPUExecutionCapChangedEvent;
1085typedef struct IGuestKeyboardEvent IGuestKeyboardEvent;
1086typedef struct IGuestMouseEvent IGuestMouseEvent;
1087typedef struct IVRDEServerChangedEvent IVRDEServerChangedEvent;
1088typedef struct IVRDEServerInfoChangedEvent IVRDEServerInfoChangedEvent;
1089typedef struct IUSBControllerChangedEvent IUSBControllerChangedEvent;
1090typedef struct IUSBDeviceStateChangedEvent IUSBDeviceStateChangedEvent;
1091typedef struct ISharedFolderChangedEvent ISharedFolderChangedEvent;
1092typedef struct IRuntimeErrorEvent IRuntimeErrorEvent;
1093typedef struct IEventSourceChangedEvent IEventSourceChangedEvent;
1094typedef struct IExtraDataChangedEvent IExtraDataChangedEvent;
1095typedef struct IVetoEvent IVetoEvent;
1096typedef struct IExtraDataCanChangeEvent IExtraDataCanChangeEvent;
1097typedef struct ICanShowWindowEvent ICanShowWindowEvent;
1098typedef struct IShowWindowEvent IShowWindowEvent;
1099typedef struct INATRedirectEvent INATRedirectEvent;
1100typedef struct IHostPciDevicePlugEvent IHostPciDevicePlugEvent;
1101typedef struct IVBoxSVCAvailabilityChangedEvent IVBoxSVCAvailabilityChangedEvent;
1102typedef struct IBandwidthGroupChangedEvent IBandwidthGroupChangedEvent;
1103typedef struct IGuestMonitorChangedEvent IGuestMonitorChangedEvent;
1104
1105/* Start of enum SettingsVersion Declaration */
1106#define SETTINGSVERSION_IID_STR "52bd6f5f-1adb-4493-975d-581a9c4b803f"
1107#define SETTINGSVERSION_IID { \
1108 0x52bd6f5f, 0x1adb, 0x4493, \
1109 { 0x97, 0x5d, 0x58, 0x1a, 0x9c, 0x4b, 0x80, 0x3f } \
1110}
1111enum SettingsVersion
1112{
1113 SettingsVersion_Null = 0,
1114 SettingsVersion_v1_0 = 1,
1115 SettingsVersion_v1_1 = 2,
1116 SettingsVersion_v1_2 = 3,
1117 SettingsVersion_v1_3pre = 4,
1118 SettingsVersion_v1_3 = 5,
1119 SettingsVersion_v1_4 = 6,
1120 SettingsVersion_v1_5 = 7,
1121 SettingsVersion_v1_6 = 8,
1122 SettingsVersion_v1_7 = 9,
1123 SettingsVersion_v1_8 = 10,
1124 SettingsVersion_v1_9 = 11,
1125 SettingsVersion_v1_10 = 12,
1126 SettingsVersion_v1_11 = 13,
1127 SettingsVersion_Future = 99999
1128};
1129/* End of enum SettingsVersion Declaration */
1130
1131
1132/* Start of enum AccessMode Declaration */
1133#define ACCESSMODE_IID_STR "1da0007c-ddf7-4be8-bcac-d84a1558785f"
1134#define ACCESSMODE_IID { \
1135 0x1da0007c, 0xddf7, 0x4be8, \
1136 { 0xbc, 0xac, 0xd8, 0x4a, 0x15, 0x58, 0x78, 0x5f } \
1137}
1138enum AccessMode
1139{
1140 AccessMode_ReadOnly = 1,
1141 AccessMode_ReadWrite = 2
1142};
1143/* End of enum AccessMode Declaration */
1144
1145
1146/* Start of enum MachineState Declaration */
1147#define MACHINESTATE_IID_STR "ec6c6a9e-113d-4ff4-b44f-0b69f21c97fe"
1148#define MACHINESTATE_IID { \
1149 0xec6c6a9e, 0x113d, 0x4ff4, \
1150 { 0xb4, 0x4f, 0x0b, 0x69, 0xf2, 0x1c, 0x97, 0xfe } \
1151}
1152enum MachineState
1153{
1154 MachineState_Null = 0,
1155 MachineState_PoweredOff = 1,
1156 MachineState_Saved = 2,
1157 MachineState_Teleported = 3,
1158 MachineState_Aborted = 4,
1159 MachineState_Running = 5,
1160 MachineState_Paused = 6,
1161 MachineState_Stuck = 7,
1162 MachineState_Teleporting = 8,
1163 MachineState_LiveSnapshotting = 9,
1164 MachineState_Starting = 10,
1165 MachineState_Stopping = 11,
1166 MachineState_Saving = 12,
1167 MachineState_Restoring = 13,
1168 MachineState_TeleportingPausedVM = 14,
1169 MachineState_TeleportingIn = 15,
1170 MachineState_FaultTolerantSyncing = 16,
1171 MachineState_DeletingSnapshotOnline = 17,
1172 MachineState_DeletingSnapshotPaused = 18,
1173 MachineState_RestoringSnapshot = 19,
1174 MachineState_DeletingSnapshot = 20,
1175 MachineState_SettingUp = 21,
1176 MachineState_FirstOnline = 5,
1177 MachineState_LastOnline = 18,
1178 MachineState_FirstTransient = 8,
1179 MachineState_LastTransient = 21
1180};
1181/* End of enum MachineState Declaration */
1182
1183
1184/* Start of enum SessionState Declaration */
1185#define SESSIONSTATE_IID_STR "cf2700c0-ea4b-47ae-9725-7810114b94d8"
1186#define SESSIONSTATE_IID { \
1187 0xcf2700c0, 0xea4b, 0x47ae, \
1188 { 0x97, 0x25, 0x78, 0x10, 0x11, 0x4b, 0x94, 0xd8 } \
1189}
1190enum SessionState
1191{
1192 SessionState_Null = 0,
1193 SessionState_Unlocked = 1,
1194 SessionState_Locked = 2,
1195 SessionState_Spawning = 3,
1196 SessionState_Unlocking = 4
1197};
1198/* End of enum SessionState Declaration */
1199
1200
1201/* Start of enum CPUPropertyType Declaration */
1202#define CPUPROPERTYTYPE_IID_STR "24d356a6-2f45-4abd-b977-1cbe9c4701f5"
1203#define CPUPROPERTYTYPE_IID { \
1204 0x24d356a6, 0x2f45, 0x4abd, \
1205 { 0xb9, 0x77, 0x1c, 0xbe, 0x9c, 0x47, 0x01, 0xf5 } \
1206}
1207enum CPUPropertyType
1208{
1209 CPUPropertyType_Null = 0,
1210 CPUPropertyType_PAE = 1,
1211 CPUPropertyType_Synthetic = 2
1212};
1213/* End of enum CPUPropertyType Declaration */
1214
1215
1216/* Start of enum HWVirtExPropertyType Declaration */
1217#define HWVIRTEXPROPERTYTYPE_IID_STR "ce81dfdd-d2b8-4a90-bbea-40ee8b7ffcee"
1218#define HWVIRTEXPROPERTYTYPE_IID { \
1219 0xce81dfdd, 0xd2b8, 0x4a90, \
1220 { 0xbb, 0xea, 0x40, 0xee, 0x8b, 0x7f, 0xfc, 0xee } \
1221}
1222enum HWVirtExPropertyType
1223{
1224 HWVirtExPropertyType_Null = 0,
1225 HWVirtExPropertyType_Enabled = 1,
1226 HWVirtExPropertyType_Exclusive = 2,
1227 HWVirtExPropertyType_VPID = 3,
1228 HWVirtExPropertyType_NestedPaging = 4,
1229 HWVirtExPropertyType_LargePages = 5,
1230 HWVirtExPropertyType_Force = 6
1231};
1232/* End of enum HWVirtExPropertyType Declaration */
1233
1234
1235/* Start of enum FaultToleranceState Declaration */
1236#define FAULTTOLERANCESTATE_IID_STR "5124f7ec-6b67-493c-9dee-ee45a44114e1"
1237#define FAULTTOLERANCESTATE_IID { \
1238 0x5124f7ec, 0x6b67, 0x493c, \
1239 { 0x9d, 0xee, 0xee, 0x45, 0xa4, 0x41, 0x14, 0xe1 } \
1240}
1241enum FaultToleranceState
1242{
1243 FaultToleranceState_Inactive = 1,
1244 FaultToleranceState_Master = 2,
1245 FaultToleranceState_Standby = 3
1246};
1247/* End of enum FaultToleranceState Declaration */
1248
1249
1250/* Start of enum LockType Declaration */
1251#define LOCKTYPE_IID_STR "138b53f8-db4b-47c5-b32b-4ef52f769413"
1252#define LOCKTYPE_IID { \
1253 0x138b53f8, 0xdb4b, 0x47c5, \
1254 { 0xb3, 0x2b, 0x4e, 0xf5, 0x2f, 0x76, 0x94, 0x13 } \
1255}
1256enum LockType
1257{
1258 LockType_Write = 2,
1259 LockType_Shared = 1
1260};
1261/* End of enum LockType Declaration */
1262
1263
1264/* Start of enum SessionType Declaration */
1265#define SESSIONTYPE_IID_STR "A13C02CB-0C2C-421E-8317-AC0E8AAA153A"
1266#define SESSIONTYPE_IID { \
1267 0xA13C02CB, 0x0C2C, 0x421E, \
1268 { 0x83, 0x17, 0xAC, 0x0E, 0x8A, 0xAA, 0x15, 0x3A } \
1269}
1270enum SessionType
1271{
1272 SessionType_Null = 0,
1273 SessionType_WriteLock = 1,
1274 SessionType_Remote = 2,
1275 SessionType_Shared = 3
1276};
1277/* End of enum SessionType Declaration */
1278
1279
1280/* Start of enum DeviceType Declaration */
1281#define DEVICETYPE_IID_STR "6d9420f7-0b56-4636-99f9-7346f1b01e57"
1282#define DEVICETYPE_IID { \
1283 0x6d9420f7, 0x0b56, 0x4636, \
1284 { 0x99, 0xf9, 0x73, 0x46, 0xf1, 0xb0, 0x1e, 0x57 } \
1285}
1286enum DeviceType
1287{
1288 DeviceType_Null = 0,
1289 DeviceType_Floppy = 1,
1290 DeviceType_DVD = 2,
1291 DeviceType_HardDisk = 3,
1292 DeviceType_Network = 4,
1293 DeviceType_USB = 5,
1294 DeviceType_SharedFolder = 6
1295};
1296/* End of enum DeviceType Declaration */
1297
1298
1299/* Start of enum DeviceActivity Declaration */
1300#define DEVICEACTIVITY_IID_STR "6FC8AEAA-130A-4eb5-8954-3F921422D707"
1301#define DEVICEACTIVITY_IID { \
1302 0x6FC8AEAA, 0x130A, 0x4eb5, \
1303 { 0x89, 0x54, 0x3F, 0x92, 0x14, 0x22, 0xD7, 0x07 } \
1304}
1305enum DeviceActivity
1306{
1307 DeviceActivity_Null = 0,
1308 DeviceActivity_Idle = 1,
1309 DeviceActivity_Reading = 2,
1310 DeviceActivity_Writing = 3
1311};
1312/* End of enum DeviceActivity Declaration */
1313
1314
1315/* Start of enum ClipboardMode Declaration */
1316#define CLIPBOARDMODE_IID_STR "33364716-4008-4701-8f14-be0fa3d62950"
1317#define CLIPBOARDMODE_IID { \
1318 0x33364716, 0x4008, 0x4701, \
1319 { 0x8f, 0x14, 0xbe, 0x0f, 0xa3, 0xd6, 0x29, 0x50 } \
1320}
1321enum ClipboardMode
1322{
1323 ClipboardMode_Disabled = 0,
1324 ClipboardMode_HostToGuest = 1,
1325 ClipboardMode_GuestToHost = 2,
1326 ClipboardMode_Bidirectional = 3
1327};
1328/* End of enum ClipboardMode Declaration */
1329
1330
1331/* Start of enum Scope Declaration */
1332#define SCOPE_IID_STR "7c91096e-499e-4eca-9f9b-9001438d7855"
1333#define SCOPE_IID { \
1334 0x7c91096e, 0x499e, 0x4eca, \
1335 { 0x9f, 0x9b, 0x90, 0x01, 0x43, 0x8d, 0x78, 0x55 } \
1336}
1337enum Scope
1338{
1339 Scope_Global = 0,
1340 Scope_Machine = 1,
1341 Scope_Session = 2
1342};
1343/* End of enum Scope Declaration */
1344
1345
1346/* Start of enum BIOSBootMenuMode Declaration */
1347#define BIOSBOOTMENUMODE_IID_STR "ae4fb9f7-29d2-45b4-b2c7-d579603135d5"
1348#define BIOSBOOTMENUMODE_IID { \
1349 0xae4fb9f7, 0x29d2, 0x45b4, \
1350 { 0xb2, 0xc7, 0xd5, 0x79, 0x60, 0x31, 0x35, 0xd5 } \
1351}
1352enum BIOSBootMenuMode
1353{
1354 BIOSBootMenuMode_Disabled = 0,
1355 BIOSBootMenuMode_MenuOnly = 1,
1356 BIOSBootMenuMode_MessageAndMenu = 2
1357};
1358/* End of enum BIOSBootMenuMode Declaration */
1359
1360
1361/* Start of enum ProcessorFeature Declaration */
1362#define PROCESSORFEATURE_IID_STR "64c38e6b-8bcf-45ad-ac03-9b406287c5bf"
1363#define PROCESSORFEATURE_IID { \
1364 0x64c38e6b, 0x8bcf, 0x45ad, \
1365 { 0xac, 0x03, 0x9b, 0x40, 0x62, 0x87, 0xc5, 0xbf } \
1366}
1367enum ProcessorFeature
1368{
1369 ProcessorFeature_HWVirtEx = 0,
1370 ProcessorFeature_PAE = 1,
1371 ProcessorFeature_LongMode = 2,
1372 ProcessorFeature_NestedPaging = 3
1373};
1374/* End of enum ProcessorFeature Declaration */
1375
1376
1377/* Start of enum FirmwareType Declaration */
1378#define FIRMWARETYPE_IID_STR "b903f264-c230-483e-ac74-2b37ce60d371"
1379#define FIRMWARETYPE_IID { \
1380 0xb903f264, 0xc230, 0x483e, \
1381 { 0xac, 0x74, 0x2b, 0x37, 0xce, 0x60, 0xd3, 0x71 } \
1382}
1383enum FirmwareType
1384{
1385 FirmwareType_BIOS = 1,
1386 FirmwareType_EFI = 2,
1387 FirmwareType_EFI32 = 3,
1388 FirmwareType_EFI64 = 4,
1389 FirmwareType_EFIDUAL = 5
1390};
1391/* End of enum FirmwareType Declaration */
1392
1393
1394/* Start of enum PointingHidType Declaration */
1395#define POINTINGHIDTYPE_IID_STR "0d3c17a2-821a-4b2e-ae41-890c6c60aa97"
1396#define POINTINGHIDTYPE_IID { \
1397 0x0d3c17a2, 0x821a, 0x4b2e, \
1398 { 0xae, 0x41, 0x89, 0x0c, 0x6c, 0x60, 0xaa, 0x97 } \
1399}
1400enum PointingHidType
1401{
1402 PointingHidType_None = 1,
1403 PointingHidType_PS2Mouse = 2,
1404 PointingHidType_USBMouse = 3,
1405 PointingHidType_USBTablet = 4,
1406 PointingHidType_ComboMouse = 5
1407};
1408/* End of enum PointingHidType Declaration */
1409
1410
1411/* Start of enum KeyboardHidType Declaration */
1412#define KEYBOARDHIDTYPE_IID_STR "5a5b0996-3a3e-44bb-9019-56979812cbcc"
1413#define KEYBOARDHIDTYPE_IID { \
1414 0x5a5b0996, 0x3a3e, 0x44bb, \
1415 { 0x90, 0x19, 0x56, 0x97, 0x98, 0x12, 0xcb, 0xcc } \
1416}
1417enum KeyboardHidType
1418{
1419 KeyboardHidType_None = 1,
1420 KeyboardHidType_PS2Keyboard = 2,
1421 KeyboardHidType_USBKeyboard = 3,
1422 KeyboardHidType_ComboKeyboard = 4
1423};
1424/* End of enum KeyboardHidType Declaration */
1425
1426
1427/* Start of enum VFSType Declaration */
1428#define VFSTYPE_IID_STR "813999ba-b949-48a8-9230-aadc6285e2f2"
1429#define VFSTYPE_IID { \
1430 0x813999ba, 0xb949, 0x48a8, \
1431 { 0x92, 0x30, 0xaa, 0xdc, 0x62, 0x85, 0xe2, 0xf2 } \
1432}
1433enum VFSType
1434{
1435 VFSType_File = 1,
1436 VFSType_Cloud = 2,
1437 VFSType_S3 = 3,
1438 VFSType_WebDav = 4
1439};
1440/* End of enum VFSType Declaration */
1441
1442
1443/* Start of enum VFSFileType Declaration */
1444#define VFSFILETYPE_IID_STR "714333cd-44e2-415f-a245-d378fa9b1242"
1445#define VFSFILETYPE_IID { \
1446 0x714333cd, 0x44e2, 0x415f, \
1447 { 0xa2, 0x45, 0xd3, 0x78, 0xfa, 0x9b, 0x12, 0x42 } \
1448}
1449enum VFSFileType
1450{
1451 VFSFileType_Unknown = 1,
1452 VFSFileType_Fifo = 2,
1453 VFSFileType_DevChar = 3,
1454 VFSFileType_Directory = 4,
1455 VFSFileType_DevBlock = 5,
1456 VFSFileType_File = 6,
1457 VFSFileType_SymLink = 7,
1458 VFSFileType_Socket = 8,
1459 VFSFileType_WhiteOut = 9
1460};
1461/* End of enum VFSFileType Declaration */
1462
1463
1464/* Start of enum VirtualSystemDescriptionType Declaration */
1465#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID_STR "c0f8f135-3a1d-417d-afa6-b38b95a91f90"
1466#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID { \
1467 0xc0f8f135, 0x3a1d, 0x417d, \
1468 { 0xaf, 0xa6, 0xb3, 0x8b, 0x95, 0xa9, 0x1f, 0x90 } \
1469}
1470enum VirtualSystemDescriptionType
1471{
1472 VirtualSystemDescriptionType_Ignore = 1,
1473 VirtualSystemDescriptionType_OS = 2,
1474 VirtualSystemDescriptionType_Name = 3,
1475 VirtualSystemDescriptionType_Product = 4,
1476 VirtualSystemDescriptionType_Vendor = 5,
1477 VirtualSystemDescriptionType_Version = 6,
1478 VirtualSystemDescriptionType_ProductUrl = 7,
1479 VirtualSystemDescriptionType_VendorUrl = 8,
1480 VirtualSystemDescriptionType_Description = 9,
1481 VirtualSystemDescriptionType_License = 10,
1482 VirtualSystemDescriptionType_Miscellaneous = 11,
1483 VirtualSystemDescriptionType_CPU = 12,
1484 VirtualSystemDescriptionType_Memory = 13,
1485 VirtualSystemDescriptionType_HardDiskControllerIDE = 14,
1486 VirtualSystemDescriptionType_HardDiskControllerSATA = 15,
1487 VirtualSystemDescriptionType_HardDiskControllerSCSI = 16,
1488 VirtualSystemDescriptionType_HardDiskControllerSAS = 17,
1489 VirtualSystemDescriptionType_HardDiskImage = 18,
1490 VirtualSystemDescriptionType_Floppy = 19,
1491 VirtualSystemDescriptionType_CDROM = 20,
1492 VirtualSystemDescriptionType_NetworkAdapter = 21,
1493 VirtualSystemDescriptionType_USBController = 22,
1494 VirtualSystemDescriptionType_SoundCard = 23
1495};
1496/* End of enum VirtualSystemDescriptionType Declaration */
1497
1498
1499/* Start of enum VirtualSystemDescriptionValueType Declaration */
1500#define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID_STR "56d9403f-3425-4118-9919-36f2a9b8c77c"
1501#define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID { \
1502 0x56d9403f, 0x3425, 0x4118, \
1503 { 0x99, 0x19, 0x36, 0xf2, 0xa9, 0xb8, 0xc7, 0x7c } \
1504}
1505enum VirtualSystemDescriptionValueType
1506{
1507 VirtualSystemDescriptionValueType_Reference = 1,
1508 VirtualSystemDescriptionValueType_Original = 2,
1509 VirtualSystemDescriptionValueType_Auto = 3,
1510 VirtualSystemDescriptionValueType_ExtraConfig = 4
1511};
1512/* End of enum VirtualSystemDescriptionValueType Declaration */
1513
1514
1515/* Start of enum CleanupMode Declaration */
1516#define CLEANUPMODE_IID_STR "67897c50-7cca-47a9-83f6-ce8fd8eb5441"
1517#define CLEANUPMODE_IID { \
1518 0x67897c50, 0x7cca, 0x47a9, \
1519 { 0x83, 0xf6, 0xce, 0x8f, 0xd8, 0xeb, 0x54, 0x41 } \
1520}
1521enum CleanupMode
1522{
1523 CleanupMode_UnregisterOnly = 1,
1524 CleanupMode_DetachAllReturnNone = 2,
1525 CleanupMode_DetachAllReturnHardDisksOnly = 3,
1526 CleanupMode_Full = 4
1527};
1528/* End of enum CleanupMode Declaration */
1529
1530
1531/* Start of enum HostNetworkInterfaceMediumType Declaration */
1532#define HOSTNETWORKINTERFACEMEDIUMTYPE_IID_STR "1aa54aaf-2497-45a2-bfb1-8eb225e93d5b"
1533#define HOSTNETWORKINTERFACEMEDIUMTYPE_IID { \
1534 0x1aa54aaf, 0x2497, 0x45a2, \
1535 { 0xbf, 0xb1, 0x8e, 0xb2, 0x25, 0xe9, 0x3d, 0x5b } \
1536}
1537enum HostNetworkInterfaceMediumType
1538{
1539 HostNetworkInterfaceMediumType_Unknown = 0,
1540 HostNetworkInterfaceMediumType_Ethernet = 1,
1541 HostNetworkInterfaceMediumType_PPP = 2,
1542 HostNetworkInterfaceMediumType_SLIP = 3
1543};
1544/* End of enum HostNetworkInterfaceMediumType Declaration */
1545
1546
1547/* Start of enum HostNetworkInterfaceStatus Declaration */
1548#define HOSTNETWORKINTERFACESTATUS_IID_STR "CC474A69-2710-434B-8D99-C38E5D5A6F41"
1549#define HOSTNETWORKINTERFACESTATUS_IID { \
1550 0xCC474A69, 0x2710, 0x434B, \
1551 { 0x8D, 0x99, 0xC3, 0x8E, 0x5D, 0x5A, 0x6F, 0x41 } \
1552}
1553enum HostNetworkInterfaceStatus
1554{
1555 HostNetworkInterfaceStatus_Unknown = 0,
1556 HostNetworkInterfaceStatus_Up = 1,
1557 HostNetworkInterfaceStatus_Down = 2
1558};
1559/* End of enum HostNetworkInterfaceStatus Declaration */
1560
1561
1562/* Start of enum HostNetworkInterfaceType Declaration */
1563#define HOSTNETWORKINTERFACETYPE_IID_STR "67431b00-9946-48a2-bc02-b25c5919f4f3"
1564#define HOSTNETWORKINTERFACETYPE_IID { \
1565 0x67431b00, 0x9946, 0x48a2, \
1566 { 0xbc, 0x02, 0xb2, 0x5c, 0x59, 0x19, 0xf4, 0xf3 } \
1567}
1568enum HostNetworkInterfaceType
1569{
1570 HostNetworkInterfaceType_Bridged = 1,
1571 HostNetworkInterfaceType_HostOnly = 2
1572};
1573/* End of enum HostNetworkInterfaceType Declaration */
1574
1575
1576/* Start of enum AdditionsRunLevelType Declaration */
1577#define ADDITIONSRUNLEVELTYPE_IID_STR "a25417ee-a9dd-4f5b-b0dc-377860087754"
1578#define ADDITIONSRUNLEVELTYPE_IID { \
1579 0xa25417ee, 0xa9dd, 0x4f5b, \
1580 { 0xb0, 0xdc, 0x37, 0x78, 0x60, 0x08, 0x77, 0x54 } \
1581}
1582enum AdditionsRunLevelType
1583{
1584 AdditionsRunLevelType_None = 0,
1585 AdditionsRunLevelType_System = 1,
1586 AdditionsRunLevelType_Userland = 2,
1587 AdditionsRunLevelType_Desktop = 3
1588};
1589/* End of enum AdditionsRunLevelType Declaration */
1590
1591
1592/* Start of enum AdditionsUpdateFlag Declaration */
1593#define ADDITIONSUPDATEFLAG_IID_STR "726a818d-18d6-4389-94e8-3e9e6826171a"
1594#define ADDITIONSUPDATEFLAG_IID { \
1595 0x726a818d, 0x18d6, 0x4389, \
1596 { 0x94, 0xe8, 0x3e, 0x9e, 0x68, 0x26, 0x17, 0x1a } \
1597}
1598enum AdditionsUpdateFlag
1599{
1600 AdditionsUpdateFlag_None = 0,
1601 AdditionsUpdateFlag_WaitForUpdateStartOnly = 1
1602};
1603/* End of enum AdditionsUpdateFlag Declaration */
1604
1605
1606/* Start of enum ExecuteProcessFlag Declaration */
1607#define EXECUTEPROCESSFLAG_IID_STR "3258e8a5-ba0c-43d5-86b5-cf91405fddc0"
1608#define EXECUTEPROCESSFLAG_IID { \
1609 0x3258e8a5, 0xba0c, 0x43d5, \
1610 { 0x86, 0xb5, 0xcf, 0x91, 0x40, 0x5f, 0xdd, 0xc0 } \
1611}
1612enum ExecuteProcessFlag
1613{
1614 ExecuteProcessFlag_None = 0,
1615 ExecuteProcessFlag_WaitForProcessStartOnly = 1,
1616 ExecuteProcessFlag_IgnoreOrphanedProcesses = 2,
1617 ExecuteProcessFlag_Hidden = 4,
1618 ExecuteProcessFlag_NoProfile = 8
1619};
1620/* End of enum ExecuteProcessFlag Declaration */
1621
1622
1623/* Start of enum ProcessInputFlag Declaration */
1624#define PROCESSINPUTFLAG_IID_STR "5d38c1dd-2604-4ddf-92e5-0c0cdd3bdbd5"
1625#define PROCESSINPUTFLAG_IID { \
1626 0x5d38c1dd, 0x2604, 0x4ddf, \
1627 { 0x92, 0xe5, 0x0c, 0x0c, 0xdd, 0x3b, 0xdb, 0xd5 } \
1628}
1629enum ProcessInputFlag
1630{
1631 ProcessInputFlag_None = 0,
1632 ProcessInputFlag_EndOfFile = 1
1633};
1634/* End of enum ProcessInputFlag Declaration */
1635
1636
1637/* Start of enum CopyFileFlag Declaration */
1638#define COPYFILEFLAG_IID_STR "23f79fdf-738a-493d-b80b-42d607c9b916"
1639#define COPYFILEFLAG_IID { \
1640 0x23f79fdf, 0x738a, 0x493d, \
1641 { 0xb8, 0x0b, 0x42, 0xd6, 0x07, 0xc9, 0xb9, 0x16 } \
1642}
1643enum CopyFileFlag
1644{
1645 CopyFileFlag_None = 0,
1646 CopyFileFlag_Recursive = 1,
1647 CopyFileFlag_Update = 2,
1648 CopyFileFlag_FollowLinks = 4
1649};
1650/* End of enum CopyFileFlag Declaration */
1651
1652
1653/* Start of enum CreateDirectoryFlag Declaration */
1654#define CREATEDIRECTORYFLAG_IID_STR "26ff5bdd-c81f-4304-857b-b8be5e3f9cd6"
1655#define CREATEDIRECTORYFLAG_IID { \
1656 0x26ff5bdd, 0xc81f, 0x4304, \
1657 { 0x85, 0x7b, 0xb8, 0xbe, 0x5e, 0x3f, 0x9c, 0xd6 } \
1658}
1659enum CreateDirectoryFlag
1660{
1661 CreateDirectoryFlag_None = 0,
1662 CreateDirectoryFlag_Parents = 1
1663};
1664/* End of enum CreateDirectoryFlag Declaration */
1665
1666
1667/* Start of enum MediumState Declaration */
1668#define MEDIUMSTATE_IID_STR "ef41e980-e012-43cd-9dea-479d4ef14d13"
1669#define MEDIUMSTATE_IID { \
1670 0xef41e980, 0xe012, 0x43cd, \
1671 { 0x9d, 0xea, 0x47, 0x9d, 0x4e, 0xf1, 0x4d, 0x13 } \
1672}
1673enum MediumState
1674{
1675 MediumState_NotCreated = 0,
1676 MediumState_Created = 1,
1677 MediumState_LockedRead = 2,
1678 MediumState_LockedWrite = 3,
1679 MediumState_Inaccessible = 4,
1680 MediumState_Creating = 5,
1681 MediumState_Deleting = 6
1682};
1683/* End of enum MediumState Declaration */
1684
1685
1686/* Start of enum MediumType Declaration */
1687#define MEDIUMTYPE_IID_STR "fe663fb5-c244-4e1b-9d81-c628b417dd04"
1688#define MEDIUMTYPE_IID { \
1689 0xfe663fb5, 0xc244, 0x4e1b, \
1690 { 0x9d, 0x81, 0xc6, 0x28, 0xb4, 0x17, 0xdd, 0x04 } \
1691}
1692enum MediumType
1693{
1694 MediumType_Normal = 0,
1695 MediumType_Immutable = 1,
1696 MediumType_Writethrough = 2,
1697 MediumType_Shareable = 3,
1698 MediumType_Readonly = 4,
1699 MediumType_MultiAttach = 5
1700};
1701/* End of enum MediumType Declaration */
1702
1703
1704/* Start of enum MediumVariant Declaration */
1705#define MEDIUMVARIANT_IID_STR "584ea502-143b-4ab0-ad14-d1028fdf0316"
1706#define MEDIUMVARIANT_IID { \
1707 0x584ea502, 0x143b, 0x4ab0, \
1708 { 0xad, 0x14, 0xd1, 0x02, 0x8f, 0xdf, 0x03, 0x16 } \
1709}
1710enum MediumVariant
1711{
1712 MediumVariant_Standard = 0,
1713 MediumVariant_VmdkSplit2G = 0x01,
1714 MediumVariant_VmdkStreamOptimized = 0x04,
1715 MediumVariant_VmdkESX = 0x08,
1716 MediumVariant_Fixed = 0x10000,
1717 MediumVariant_Diff = 0x20000
1718};
1719/* End of enum MediumVariant Declaration */
1720
1721
1722/* Start of enum DataType Declaration */
1723#define DATATYPE_IID_STR "d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7"
1724#define DATATYPE_IID { \
1725 0xd90ea51e, 0xa3f1, 0x4a01, \
1726 { 0xbe, 0xb1, 0xc1, 0x72, 0x3c, 0x0d, 0x3b, 0xa7 } \
1727}
1728enum DataType
1729{
1730 DataType_Int32 = 0,
1731 DataType_Int8 = 1,
1732 DataType_String = 2
1733};
1734/* End of enum DataType Declaration */
1735
1736
1737/* Start of enum DataFlags Declaration */
1738#define DATAFLAGS_IID_STR "86884dcf-1d6b-4f1b-b4bf-f5aa44959d60"
1739#define DATAFLAGS_IID { \
1740 0x86884dcf, 0x1d6b, 0x4f1b, \
1741 { 0xb4, 0xbf, 0xf5, 0xaa, 0x44, 0x95, 0x9d, 0x60 } \
1742}
1743enum DataFlags
1744{
1745 DataFlags_None = 0x00,
1746 DataFlags_Mandatory = 0x01,
1747 DataFlags_Expert = 0x02,
1748 DataFlags_Array = 0x04,
1749 DataFlags_FlagMask = 0x07
1750};
1751/* End of enum DataFlags Declaration */
1752
1753
1754/* Start of enum MediumFormatCapabilities Declaration */
1755#define MEDIUMFORMATCAPABILITIES_IID_STR "7342ba79-7ce0-4d94-8f86-5ed5a185d9bd"
1756#define MEDIUMFORMATCAPABILITIES_IID { \
1757 0x7342ba79, 0x7ce0, 0x4d94, \
1758 { 0x8f, 0x86, 0x5e, 0xd5, 0xa1, 0x85, 0xd9, 0xbd } \
1759}
1760enum MediumFormatCapabilities
1761{
1762 MediumFormatCapabilities_Uuid = 0x01,
1763 MediumFormatCapabilities_CreateFixed = 0x02,
1764 MediumFormatCapabilities_CreateDynamic = 0x04,
1765 MediumFormatCapabilities_CreateSplit2G = 0x08,
1766 MediumFormatCapabilities_Differencing = 0x10,
1767 MediumFormatCapabilities_Asynchronous = 0x20,
1768 MediumFormatCapabilities_File = 0x40,
1769 MediumFormatCapabilities_Properties = 0x80,
1770 MediumFormatCapabilities_TcpNetworking = 0x100,
1771 MediumFormatCapabilities_VFS = 0x200,
1772 MediumFormatCapabilities_CapabilityMask = 0x3FF
1773};
1774/* End of enum MediumFormatCapabilities Declaration */
1775
1776
1777/* Start of enum MouseButtonState Declaration */
1778#define MOUSEBUTTONSTATE_IID_STR "9ee094b8-b28a-4d56-a166-973cb588d7f8"
1779#define MOUSEBUTTONSTATE_IID { \
1780 0x9ee094b8, 0xb28a, 0x4d56, \
1781 { 0xa1, 0x66, 0x97, 0x3c, 0xb5, 0x88, 0xd7, 0xf8 } \
1782}
1783enum MouseButtonState
1784{
1785 MouseButtonState_LeftButton = 0x01,
1786 MouseButtonState_RightButton = 0x02,
1787 MouseButtonState_MiddleButton = 0x04,
1788 MouseButtonState_WheelUp = 0x08,
1789 MouseButtonState_WheelDown = 0x10,
1790 MouseButtonState_XButton1 = 0x20,
1791 MouseButtonState_XButton2 = 0x40,
1792 MouseButtonState_MouseStateMask = 0x7F
1793};
1794/* End of enum MouseButtonState Declaration */
1795
1796
1797/* Start of enum FramebufferPixelFormat Declaration */
1798#define FRAMEBUFFERPIXELFORMAT_IID_STR "7acfd5ed-29e3-45e3-8136-73c9224f3d2d"
1799#define FRAMEBUFFERPIXELFORMAT_IID { \
1800 0x7acfd5ed, 0x29e3, 0x45e3, \
1801 { 0x81, 0x36, 0x73, 0xc9, 0x22, 0x4f, 0x3d, 0x2d } \
1802}
1803enum FramebufferPixelFormat
1804{
1805 FramebufferPixelFormat_Opaque = 0,
1806 FramebufferPixelFormat_FOURCC_RGB = 0x32424752
1807};
1808/* End of enum FramebufferPixelFormat Declaration */
1809
1810
1811/* Start of enum NetworkAttachmentType Declaration */
1812#define NETWORKATTACHMENTTYPE_IID_STR "44bce1ee-99f7-4e8e-89fc-80597fd9eeaf"
1813#define NETWORKATTACHMENTTYPE_IID { \
1814 0x44bce1ee, 0x99f7, 0x4e8e, \
1815 { 0x89, 0xfc, 0x80, 0x59, 0x7f, 0xd9, 0xee, 0xaf } \
1816}
1817enum NetworkAttachmentType
1818{
1819 NetworkAttachmentType_Null = 0,
1820 NetworkAttachmentType_NAT = 1,
1821 NetworkAttachmentType_Bridged = 2,
1822 NetworkAttachmentType_Internal = 3,
1823 NetworkAttachmentType_HostOnly = 4,
1824 NetworkAttachmentType_VDE = 5
1825};
1826/* End of enum NetworkAttachmentType Declaration */
1827
1828
1829/* Start of enum NetworkAdapterType Declaration */
1830#define NETWORKADAPTERTYPE_IID_STR "3c2281e4-d952-4e87-8c7d-24379cb6a81c"
1831#define NETWORKADAPTERTYPE_IID { \
1832 0x3c2281e4, 0xd952, 0x4e87, \
1833 { 0x8c, 0x7d, 0x24, 0x37, 0x9c, 0xb6, 0xa8, 0x1c } \
1834}
1835enum NetworkAdapterType
1836{
1837 NetworkAdapterType_Null = 0,
1838 NetworkAdapterType_Am79C970A = 1,
1839 NetworkAdapterType_Am79C973 = 2,
1840 NetworkAdapterType_I82540EM = 3,
1841 NetworkAdapterType_I82543GC = 4,
1842 NetworkAdapterType_I82545EM = 5,
1843 NetworkAdapterType_Virtio = 6
1844};
1845/* End of enum NetworkAdapterType Declaration */
1846
1847
1848/* Start of enum PortMode Declaration */
1849#define PORTMODE_IID_STR "533b5fe3-0185-4197-86a7-17e37dd39d76"
1850#define PORTMODE_IID { \
1851 0x533b5fe3, 0x0185, 0x4197, \
1852 { 0x86, 0xa7, 0x17, 0xe3, 0x7d, 0xd3, 0x9d, 0x76 } \
1853}
1854enum PortMode
1855{
1856 PortMode_Disconnected = 0,
1857 PortMode_HostPipe = 1,
1858 PortMode_HostDevice = 2,
1859 PortMode_RawFile = 3
1860};
1861/* End of enum PortMode Declaration */
1862
1863
1864/* Start of enum USBDeviceState Declaration */
1865#define USBDEVICESTATE_IID_STR "b99a2e65-67fb-4882-82fd-f3e5e8193ab4"
1866#define USBDEVICESTATE_IID { \
1867 0xb99a2e65, 0x67fb, 0x4882, \
1868 { 0x82, 0xfd, 0xf3, 0xe5, 0xe8, 0x19, 0x3a, 0xb4 } \
1869}
1870enum USBDeviceState
1871{
1872 USBDeviceState_NotSupported = 0,
1873 USBDeviceState_Unavailable = 1,
1874 USBDeviceState_Busy = 2,
1875 USBDeviceState_Available = 3,
1876 USBDeviceState_Held = 4,
1877 USBDeviceState_Captured = 5
1878};
1879/* End of enum USBDeviceState Declaration */
1880
1881
1882/* Start of enum USBDeviceFilterAction Declaration */
1883#define USBDEVICEFILTERACTION_IID_STR "cbc30a49-2f4e-43b5-9da6-121320475933"
1884#define USBDEVICEFILTERACTION_IID { \
1885 0xcbc30a49, 0x2f4e, 0x43b5, \
1886 { 0x9d, 0xa6, 0x12, 0x13, 0x20, 0x47, 0x59, 0x33 } \
1887}
1888enum USBDeviceFilterAction
1889{
1890 USBDeviceFilterAction_Null = 0,
1891 USBDeviceFilterAction_Ignore = 1,
1892 USBDeviceFilterAction_Hold = 2
1893};
1894/* End of enum USBDeviceFilterAction Declaration */
1895
1896
1897/* Start of enum AudioDriverType Declaration */
1898#define AUDIODRIVERTYPE_IID_STR "4bcc3d73-c2fe-40db-b72f-0c2ca9d68496"
1899#define AUDIODRIVERTYPE_IID { \
1900 0x4bcc3d73, 0xc2fe, 0x40db, \
1901 { 0xb7, 0x2f, 0x0c, 0x2c, 0xa9, 0xd6, 0x84, 0x96 } \
1902}
1903enum AudioDriverType
1904{
1905 AudioDriverType_Null = 0,
1906 AudioDriverType_WinMM = 1,
1907 AudioDriverType_OSS = 2,
1908 AudioDriverType_ALSA = 3,
1909 AudioDriverType_DirectSound = 4,
1910 AudioDriverType_CoreAudio = 5,
1911 AudioDriverType_MMPM = 6,
1912 AudioDriverType_Pulse = 7,
1913 AudioDriverType_SolAudio = 8
1914};
1915/* End of enum AudioDriverType Declaration */
1916
1917
1918/* Start of enum AudioControllerType Declaration */
1919#define AUDIOCONTROLLERTYPE_IID_STR "7afd395c-42c3-444e-8788-3ce80292f36c"
1920#define AUDIOCONTROLLERTYPE_IID { \
1921 0x7afd395c, 0x42c3, 0x444e, \
1922 { 0x87, 0x88, 0x3c, 0xe8, 0x02, 0x92, 0xf3, 0x6c } \
1923}
1924enum AudioControllerType
1925{
1926 AudioControllerType_AC97 = 0,
1927 AudioControllerType_SB16 = 1,
1928 AudioControllerType_HDA = 2
1929};
1930/* End of enum AudioControllerType Declaration */
1931
1932
1933/* Start of enum AuthType Declaration */
1934#define AUTHTYPE_IID_STR "7eef6ef6-98c2-4dc2-ab35-10d2b292028d"
1935#define AUTHTYPE_IID { \
1936 0x7eef6ef6, 0x98c2, 0x4dc2, \
1937 { 0xab, 0x35, 0x10, 0xd2, 0xb2, 0x92, 0x02, 0x8d } \
1938}
1939enum AuthType
1940{
1941 AuthType_Null = 0,
1942 AuthType_External = 1,
1943 AuthType_Guest = 2
1944};
1945/* End of enum AuthType Declaration */
1946
1947
1948/* Start of enum StorageBus Declaration */
1949#define STORAGEBUS_IID_STR "eee67ab3-668d-4ef5-91e0-7025fe4a0d7a"
1950#define STORAGEBUS_IID { \
1951 0xeee67ab3, 0x668d, 0x4ef5, \
1952 { 0x91, 0xe0, 0x70, 0x25, 0xfe, 0x4a, 0x0d, 0x7a } \
1953}
1954enum StorageBus
1955{
1956 StorageBus_Null = 0,
1957 StorageBus_IDE = 1,
1958 StorageBus_SATA = 2,
1959 StorageBus_SCSI = 3,
1960 StorageBus_Floppy = 4,
1961 StorageBus_SAS = 5
1962};
1963/* End of enum StorageBus Declaration */
1964
1965
1966/* Start of enum StorageControllerType Declaration */
1967#define STORAGECONTROLLERTYPE_IID_STR "8a412b8a-f43e-4456-bd37-b474f0879a58"
1968#define STORAGECONTROLLERTYPE_IID { \
1969 0x8a412b8a, 0xf43e, 0x4456, \
1970 { 0xbd, 0x37, 0xb4, 0x74, 0xf0, 0x87, 0x9a, 0x58 } \
1971}
1972enum StorageControllerType
1973{
1974 StorageControllerType_Null = 0,
1975 StorageControllerType_LsiLogic = 1,
1976 StorageControllerType_BusLogic = 2,
1977 StorageControllerType_IntelAhci = 3,
1978 StorageControllerType_PIIX3 = 4,
1979 StorageControllerType_PIIX4 = 5,
1980 StorageControllerType_ICH6 = 6,
1981 StorageControllerType_I82078 = 7,
1982 StorageControllerType_LsiLogicSas = 8
1983};
1984/* End of enum StorageControllerType Declaration */
1985
1986
1987/* Start of enum ChipsetType Declaration */
1988#define CHIPSETTYPE_IID_STR "8b4096a8-a7c3-4d3b-bbb1-05a0a51ec394"
1989#define CHIPSETTYPE_IID { \
1990 0x8b4096a8, 0xa7c3, 0x4d3b, \
1991 { 0xbb, 0xb1, 0x05, 0xa0, 0xa5, 0x1e, 0xc3, 0x94 } \
1992}
1993enum ChipsetType
1994{
1995 ChipsetType_Null = 0,
1996 ChipsetType_PIIX3 = 1,
1997 ChipsetType_ICH9 = 2
1998};
1999/* End of enum ChipsetType Declaration */
2000
2001
2002/* Start of enum NATAliasMode Declaration */
2003#define NATALIASMODE_IID_STR "67772168-50d9-11df-9669-7fb714ee4fa1"
2004#define NATALIASMODE_IID { \
2005 0x67772168, 0x50d9, 0x11df, \
2006 { 0x96, 0x69, 0x7f, 0xb7, 0x14, 0xee, 0x4f, 0xa1 } \
2007}
2008enum NATAliasMode
2009{
2010 NATAliasMode_AliasLog = 0x1,
2011 NATAliasMode_AliasProxyOnly = 0x02,
2012 NATAliasMode_AliasUseSamePorts = 0x04
2013};
2014/* End of enum NATAliasMode Declaration */
2015
2016
2017/* Start of enum NATProtocol Declaration */
2018#define NATPROTOCOL_IID_STR "e90164be-eb03-11de-94af-fff9b1c1b19f"
2019#define NATPROTOCOL_IID { \
2020 0xe90164be, 0xeb03, 0x11de, \
2021 { 0x94, 0xaf, 0xff, 0xf9, 0xb1, 0xc1, 0xb1, 0x9f } \
2022}
2023enum NATProtocol
2024{
2025 NATProtocol_UDP = 0,
2026 NATProtocol_TCP = 1
2027};
2028/* End of enum NATProtocol Declaration */
2029
2030
2031/* Start of enum BandwidthGroupType Declaration */
2032#define BANDWIDTHGROUPTYPE_IID_STR "1d92b67d-dc69-4be9-ad4c-93a01e1e0c8e"
2033#define BANDWIDTHGROUPTYPE_IID { \
2034 0x1d92b67d, 0xdc69, 0x4be9, \
2035 { 0xad, 0x4c, 0x93, 0xa0, 0x1e, 0x1e, 0x0c, 0x8e } \
2036}
2037enum BandwidthGroupType
2038{
2039 BandwidthGroupType_Null = 0,
2040 BandwidthGroupType_Disk = 1,
2041 BandwidthGroupType_Network = 2
2042};
2043/* End of enum BandwidthGroupType Declaration */
2044
2045
2046/* Start of enum VBoxEventType Declaration */
2047#define VBOXEVENTTYPE_IID_STR "e71c487f-755e-46e9-a476-dd6a5d134597"
2048#define VBOXEVENTTYPE_IID { \
2049 0xe71c487f, 0x755e, 0x46e9, \
2050 { 0xa4, 0x76, 0xdd, 0x6a, 0x5d, 0x13, 0x45, 0x97 } \
2051}
2052enum VBoxEventType
2053{
2054 VBoxEventType_Invalid = 0,
2055 VBoxEventType_Any = 1,
2056 VBoxEventType_Vetoable = 2,
2057 VBoxEventType_MachineEvent = 3,
2058 VBoxEventType_SnapshotEvent = 4,
2059 VBoxEventType_InputEvent = 5,
2060 VBoxEventType_LastWildcard = 31,
2061 VBoxEventType_OnMachineStateChanged = 32,
2062 VBoxEventType_OnMachineDataChanged = 33,
2063 VBoxEventType_OnExtraDataChanged = 34,
2064 VBoxEventType_OnExtraDataCanChange = 35,
2065 VBoxEventType_OnMediumRegistered = 36,
2066 VBoxEventType_OnMachineRegistered = 37,
2067 VBoxEventType_OnSessionStateChanged = 38,
2068 VBoxEventType_OnSnapshotTaken = 39,
2069 VBoxEventType_OnSnapshotDeleted = 40,
2070 VBoxEventType_OnSnapshotChanged = 41,
2071 VBoxEventType_OnGuestPropertyChanged = 42,
2072 VBoxEventType_OnMousePointerShapeChanged = 43,
2073 VBoxEventType_OnMouseCapabilityChanged = 44,
2074 VBoxEventType_OnKeyboardLedsChanged = 45,
2075 VBoxEventType_OnStateChanged = 46,
2076 VBoxEventType_OnAdditionsStateChanged = 47,
2077 VBoxEventType_OnNetworkAdapterChanged = 48,
2078 VBoxEventType_OnSerialPortChanged = 49,
2079 VBoxEventType_OnParallelPortChanged = 50,
2080 VBoxEventType_OnStorageControllerChanged = 51,
2081 VBoxEventType_OnMediumChanged = 52,
2082 VBoxEventType_OnVRDEServerChanged = 53,
2083 VBoxEventType_OnUSBControllerChanged = 54,
2084 VBoxEventType_OnUSBDeviceStateChanged = 55,
2085 VBoxEventType_OnSharedFolderChanged = 56,
2086 VBoxEventType_OnRuntimeError = 57,
2087 VBoxEventType_OnCanShowWindow = 58,
2088 VBoxEventType_OnShowWindow = 59,
2089 VBoxEventType_OnCPUChanged = 60,
2090 VBoxEventType_OnVRDEServerInfoChanged = 61,
2091 VBoxEventType_OnEventSourceChanged = 62,
2092 VBoxEventType_OnCPUExecutionCapChanged = 63,
2093 VBoxEventType_OnGuestKeyboard = 64,
2094 VBoxEventType_OnGuestMouse = 65,
2095 VBoxEventType_OnNATRedirect = 66,
2096 VBoxEventType_OnHostPciDevicePlug = 67,
2097 VBoxEventType_OnVBoxSVCAvailabilityChanged = 68,
2098 VBoxEventType_OnBandwidthGroupChanged = 69,
2099 VBoxEventType_OnGuestMonitorChanged = 70,
2100 VBoxEventType_Last = 71
2101};
2102/* End of enum VBoxEventType Declaration */
2103
2104
2105/* Start of enum GuestMonitorChangedEventType Declaration */
2106#define GUESTMONITORCHANGEDEVENTTYPE_IID_STR "ef172985-7e36-4297-95be-e46396968d66"
2107#define GUESTMONITORCHANGEDEVENTTYPE_IID { \
2108 0xef172985, 0x7e36, 0x4297, \
2109 { 0x95, 0xbe, 0xe4, 0x63, 0x96, 0x96, 0x8d, 0x66 } \
2110}
2111enum GuestMonitorChangedEventType
2112{
2113 GuestMonitorChangedEventType_Enabled = 0,
2114 GuestMonitorChangedEventType_Disabled = 1,
2115 GuestMonitorChangedEventType_NewOrigin = 2
2116};
2117/* End of enum GuestMonitorChangedEventType Declaration */
2118
2119
2120/* Start of struct IVirtualBoxErrorInfo Declaration */
2121#define IVIRTUALBOXERRORINFO_IID_STR "e053d3c0-f493-491b-a735-3a9f0b1feed4"
2122#define IVIRTUALBOXERRORINFO_IID { \
2123 0xe053d3c0, 0xf493, 0x491b, \
2124 { 0xa7, 0x35, 0x3a, 0x9f, 0x0b, 0x1f, 0xee, 0xd4 } \
2125}
2126struct IVirtualBoxErrorInfo_vtbl
2127{
2128 struct nsIException_vtbl nsiexception;
2129
2130 nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
2131
2132 nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
2133
2134 nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
2135
2136 nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
2137
2138 nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
2139
2140};
2141
2142struct IVirtualBoxErrorInfo
2143{
2144 struct IVirtualBoxErrorInfo_vtbl *vtbl;
2145};
2146/* End of struct IVirtualBoxErrorInfo Declaration */
2147
2148
2149/* Start of struct IDHCPServer Declaration */
2150#define IDHCPSERVER_IID_STR "6cfe387c-74fb-4ca7-bff6-973bec8af7a3"
2151#define IDHCPSERVER_IID { \
2152 0x6cfe387c, 0x74fb, 0x4ca7, \
2153 { 0xbf, 0xf6, 0x97, 0x3b, 0xec, 0x8a, 0xf7, 0xa3 } \
2154}
2155struct IDHCPServer_vtbl
2156{
2157 struct nsISupports_vtbl nsisupports;
2158
2159 nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
2160 nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
2161
2162 nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
2163
2164 nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
2165
2166 nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
2167
2168 nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
2169
2170 nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
2171
2172 nsresult (*SetConfiguration)(
2173 IDHCPServer *pThis,
2174 PRUnichar * IPAddress,
2175 PRUnichar * networkMask,
2176 PRUnichar * FromIPAddress,
2177 PRUnichar * ToIPAddress
2178 );
2179
2180 nsresult (*Start)(
2181 IDHCPServer *pThis,
2182 PRUnichar * networkName,
2183 PRUnichar * trunkName,
2184 PRUnichar * trunkType
2185 );
2186
2187 nsresult (*Stop)(IDHCPServer *pThis );
2188
2189};
2190
2191struct IDHCPServer
2192{
2193 struct IDHCPServer_vtbl *vtbl;
2194};
2195/* End of struct IDHCPServer Declaration */
2196
2197
2198/* Start of struct IVirtualBox Declaration */
2199#define IVIRTUALBOX_IID_STR "d2de270c-1d4b-4c9e-843f-bbb9b47269ff"
2200#define IVIRTUALBOX_IID { \
2201 0xd2de270c, 0x1d4b, 0x4c9e, \
2202 { 0x84, 0x3f, 0xbb, 0xb9, 0xb4, 0x72, 0x69, 0xff } \
2203}
2204struct IVirtualBox_vtbl
2205{
2206 struct nsISupports_vtbl nsisupports;
2207
2208 nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
2209
2210 nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
2211
2212 nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
2213
2214 nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
2215
2216 nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
2217
2218 nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
2219
2220 nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
2221
2222 nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
2223
2224 nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
2225
2226 nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
2227
2228 nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
2229
2230 nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
2231
2232 nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
2233
2234 nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
2235
2236 nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
2237
2238 nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
2239
2240 nsresult (*GetEventSource)(IVirtualBox *pThis, IEventSource * *eventSource);
2241
2242 nsresult (*GetExtensionPackManager)(IVirtualBox *pThis, IExtPackManager * *extensionPackManager);
2243
2244 nsresult (*ComposeMachineFilename)(
2245 IVirtualBox *pThis,
2246 PRUnichar * name,
2247 PRUnichar * baseFolder,
2248 PRUnichar * * file
2249 );
2250
2251 nsresult (*CreateMachine)(
2252 IVirtualBox *pThis,
2253 PRUnichar * settingsFile,
2254 PRUnichar * name,
2255 PRUnichar * osTypeId,
2256 PRUnichar * id,
2257 PRBool forceOverwrite,
2258 IMachine * * machine
2259 );
2260
2261 nsresult (*OpenMachine)(
2262 IVirtualBox *pThis,
2263 PRUnichar * settingsFile,
2264 IMachine * * machine
2265 );
2266
2267 nsresult (*RegisterMachine)(
2268 IVirtualBox *pThis,
2269 IMachine * machine
2270 );
2271
2272 nsresult (*FindMachine)(
2273 IVirtualBox *pThis,
2274 PRUnichar * nameOrId,
2275 IMachine * * machine
2276 );
2277
2278 nsresult (*CreateAppliance)(
2279 IVirtualBox *pThis,
2280 IAppliance * * appliance
2281 );
2282
2283 nsresult (*CreateHardDisk)(
2284 IVirtualBox *pThis,
2285 PRUnichar * format,
2286 PRUnichar * location,
2287 IMedium * * medium
2288 );
2289
2290 nsresult (*OpenMedium)(
2291 IVirtualBox *pThis,
2292 PRUnichar * location,
2293 PRUint32 deviceType,
2294 PRUint32 accessMode,
2295 IMedium * * medium
2296 );
2297
2298 nsresult (*FindMedium)(
2299 IVirtualBox *pThis,
2300 PRUnichar * location,
2301 PRUint32 type,
2302 IMedium * * medium
2303 );
2304
2305 nsresult (*GetGuestOSType)(
2306 IVirtualBox *pThis,
2307 PRUnichar * id,
2308 IGuestOSType * * type
2309 );
2310
2311 nsresult (*CreateSharedFolder)(
2312 IVirtualBox *pThis,
2313 PRUnichar * name,
2314 PRUnichar * hostPath,
2315 PRBool writable,
2316 PRBool automount
2317 );
2318
2319 nsresult (*RemoveSharedFolder)(
2320 IVirtualBox *pThis,
2321 PRUnichar * name
2322 );
2323
2324 nsresult (*GetExtraDataKeys)(
2325 IVirtualBox *pThis,
2326 PRUint32 *valueSize,
2327 PRUnichar *** value
2328 );
2329
2330 nsresult (*GetExtraData)(
2331 IVirtualBox *pThis,
2332 PRUnichar * key,
2333 PRUnichar * * value
2334 );
2335
2336 nsresult (*SetExtraData)(
2337 IVirtualBox *pThis,
2338 PRUnichar * key,
2339 PRUnichar * value
2340 );
2341
2342 nsresult (*CreateDHCPServer)(
2343 IVirtualBox *pThis,
2344 PRUnichar * name,
2345 IDHCPServer * * server
2346 );
2347
2348 nsresult (*FindDHCPServerByNetworkName)(
2349 IVirtualBox *pThis,
2350 PRUnichar * name,
2351 IDHCPServer * * server
2352 );
2353
2354 nsresult (*RemoveDHCPServer)(
2355 IVirtualBox *pThis,
2356 IDHCPServer * server
2357 );
2358
2359 nsresult (*CheckFirmwarePresent)(
2360 IVirtualBox *pThis,
2361 PRUint32 firmwareType,
2362 PRUnichar * version,
2363 PRUnichar * * url,
2364 PRUnichar * * file,
2365 PRBool * result
2366 );
2367
2368};
2369
2370struct IVirtualBox
2371{
2372 struct IVirtualBox_vtbl *vtbl;
2373};
2374/* End of struct IVirtualBox Declaration */
2375
2376
2377/* Start of struct IVFSExplorer Declaration */
2378#define IVFSEXPLORER_IID_STR "003d7f92-d38e-487f-b790-8c5e8631cb2f"
2379#define IVFSEXPLORER_IID { \
2380 0x003d7f92, 0xd38e, 0x487f, \
2381 { 0xb7, 0x90, 0x8c, 0x5e, 0x86, 0x31, 0xcb, 0x2f } \
2382}
2383struct IVFSExplorer_vtbl
2384{
2385 struct nsISupports_vtbl nsisupports;
2386
2387 nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
2388
2389 nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
2390
2391 nsresult (*Update)(
2392 IVFSExplorer *pThis,
2393 IProgress * * aProgress
2394 );
2395
2396 nsresult (*Cd)(
2397 IVFSExplorer *pThis,
2398 PRUnichar * aDir,
2399 IProgress * * aProgress
2400 );
2401
2402 nsresult (*CdUp)(
2403 IVFSExplorer *pThis,
2404 IProgress * * aProgress
2405 );
2406
2407 nsresult (*EntryList)(
2408 IVFSExplorer *pThis,
2409 PRUint32 *aNamesSize,
2410 PRUnichar *** aNames,
2411 PRUint32 *aTypesSize,
2412 PRUint32* aTypes,
2413 PRUint32 *aSizesSize,
2414 PRUint32* aSizes,
2415 PRUint32 *aModesSize,
2416 PRUint32* aModes
2417 );
2418
2419 nsresult (*Exists)(
2420 IVFSExplorer *pThis,
2421 PRUint32 aNamesSize,
2422 PRUnichar ** aNames,
2423 PRUint32 *aExistsSize,
2424 PRUnichar *** aExists
2425 );
2426
2427 nsresult (*Remove)(
2428 IVFSExplorer *pThis,
2429 PRUint32 aNamesSize,
2430 PRUnichar ** aNames,
2431 IProgress * * aProgress
2432 );
2433
2434};
2435
2436struct IVFSExplorer
2437{
2438 struct IVFSExplorer_vtbl *vtbl;
2439};
2440/* End of struct IVFSExplorer Declaration */
2441
2442
2443/* Start of struct IAppliance Declaration */
2444#define IAPPLIANCE_IID_STR "7b148032-4124-4f46-b56a-b48ac1273f5a"
2445#define IAPPLIANCE_IID { \
2446 0x7b148032, 0x4124, 0x4f46, \
2447 { 0xb5, 0x6a, 0xb4, 0x8a, 0xc1, 0x27, 0x3f, 0x5a } \
2448}
2449struct IAppliance_vtbl
2450{
2451 struct nsISupports_vtbl nsisupports;
2452
2453 nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
2454
2455 nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
2456
2457 nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
2458
2459 nsresult (*GetMachines)(IAppliance *pThis, PRUint32 *machinesSize, PRUnichar * **machines);
2460
2461 nsresult (*Read)(
2462 IAppliance *pThis,
2463 PRUnichar * file,
2464 IProgress * * aProgress
2465 );
2466
2467 nsresult (*Interpret)(IAppliance *pThis );
2468
2469 nsresult (*ImportMachines)(
2470 IAppliance *pThis,
2471 IProgress * * aProgress
2472 );
2473
2474 nsresult (*CreateVFSExplorer)(
2475 IAppliance *pThis,
2476 PRUnichar * aUri,
2477 IVFSExplorer * * aExplorer
2478 );
2479
2480 nsresult (*Write)(
2481 IAppliance *pThis,
2482 PRUnichar * format,
2483 PRBool manifest,
2484 PRUnichar * path,
2485 IProgress * * progress
2486 );
2487
2488 nsresult (*GetWarnings)(
2489 IAppliance *pThis,
2490 PRUint32 *aWarningsSize,
2491 PRUnichar *** aWarnings
2492 );
2493
2494};
2495
2496struct IAppliance
2497{
2498 struct IAppliance_vtbl *vtbl;
2499};
2500/* End of struct IAppliance Declaration */
2501
2502
2503/* Start of struct IVirtualSystemDescription Declaration */
2504#define IVIRTUALSYSTEMDESCRIPTION_IID_STR "d7525e6c-531a-4c51-8e04-41235083a3d8"
2505#define IVIRTUALSYSTEMDESCRIPTION_IID { \
2506 0xd7525e6c, 0x531a, 0x4c51, \
2507 { 0x8e, 0x04, 0x41, 0x23, 0x50, 0x83, 0xa3, 0xd8 } \
2508}
2509struct IVirtualSystemDescription_vtbl
2510{
2511 struct nsISupports_vtbl nsisupports;
2512
2513 nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
2514
2515 nsresult (*GetDescription)(
2516 IVirtualSystemDescription *pThis,
2517 PRUint32 *aTypesSize,
2518 PRUint32* aTypes,
2519 PRUint32 *aRefsSize,
2520 PRUnichar *** aRefs,
2521 PRUint32 *aOvfValuesSize,
2522 PRUnichar *** aOvfValues,
2523 PRUint32 *aVBoxValuesSize,
2524 PRUnichar *** aVBoxValues,
2525 PRUint32 *aExtraConfigValuesSize,
2526 PRUnichar *** aExtraConfigValues
2527 );
2528
2529 nsresult (*GetDescriptionByType)(
2530 IVirtualSystemDescription *pThis,
2531 PRUint32 aType,
2532 PRUint32 *aTypesSize,
2533 PRUint32* aTypes,
2534 PRUint32 *aRefsSize,
2535 PRUnichar *** aRefs,
2536 PRUint32 *aOvfValuesSize,
2537 PRUnichar *** aOvfValues,
2538 PRUint32 *aVBoxValuesSize,
2539 PRUnichar *** aVBoxValues,
2540 PRUint32 *aExtraConfigValuesSize,
2541 PRUnichar *** aExtraConfigValues
2542 );
2543
2544 nsresult (*GetValuesByType)(
2545 IVirtualSystemDescription *pThis,
2546 PRUint32 aType,
2547 PRUint32 aWhich,
2548 PRUint32 *aValuesSize,
2549 PRUnichar *** aValues
2550 );
2551
2552 nsresult (*SetFinalValues)(
2553 IVirtualSystemDescription *pThis,
2554 PRUint32 aEnabledSize,
2555 PRBool* aEnabled,
2556 PRUint32 aVBoxValuesSize,
2557 PRUnichar ** aVBoxValues,
2558 PRUint32 aExtraConfigValuesSize,
2559 PRUnichar ** aExtraConfigValues
2560 );
2561
2562 nsresult (*AddDescription)(
2563 IVirtualSystemDescription *pThis,
2564 PRUint32 aType,
2565 PRUnichar * aVBoxValue,
2566 PRUnichar * aExtraConfigValue
2567 );
2568
2569};
2570
2571struct IVirtualSystemDescription
2572{
2573 struct IVirtualSystemDescription_vtbl *vtbl;
2574};
2575/* End of struct IVirtualSystemDescription Declaration */
2576
2577
2578/* Start of struct IInternalMachineControl Declaration */
2579#define IINTERNALMACHINECONTROL_IID_STR "8e723ab0-812c-5662-dd8e-7ebc89637acf"
2580#define IINTERNALMACHINECONTROL_IID { \
2581 0x8e723ab0, 0x812c, 0x5662, \
2582 { 0xdd, 0x8e, 0x7e, 0xbc, 0x89, 0x63, 0x7a, 0xcf } \
2583}
2584struct IInternalMachineControl_vtbl
2585{
2586 struct nsISupports_vtbl nsisupports;
2587
2588 nsresult (*SetRemoveSavedStateFile)(
2589 IInternalMachineControl *pThis,
2590 PRBool aRemove
2591 );
2592
2593 nsresult (*UpdateState)(
2594 IInternalMachineControl *pThis,
2595 PRUint32 state
2596 );
2597
2598 nsresult (*GetIPCId)(
2599 IInternalMachineControl *pThis,
2600 PRUnichar * * id
2601 );
2602
2603 nsresult (*BeginPowerUp)(
2604 IInternalMachineControl *pThis,
2605 IProgress * aProgress
2606 );
2607
2608 nsresult (*EndPowerUp)(
2609 IInternalMachineControl *pThis,
2610 PRInt32 result
2611 );
2612
2613 nsresult (*BeginPoweringDown)(
2614 IInternalMachineControl *pThis,
2615 IProgress * * progress
2616 );
2617
2618 nsresult (*EndPoweringDown)(
2619 IInternalMachineControl *pThis,
2620 PRInt32 result,
2621 PRUnichar * errMsg
2622 );
2623
2624 nsresult (*RunUSBDeviceFilters)(
2625 IInternalMachineControl *pThis,
2626 IUSBDevice * device,
2627 PRBool * matched,
2628 PRUint32 * maskedInterfaces
2629 );
2630
2631 nsresult (*CaptureUSBDevice)(
2632 IInternalMachineControl *pThis,
2633 PRUnichar * id
2634 );
2635
2636 nsresult (*DetachUSBDevice)(
2637 IInternalMachineControl *pThis,
2638 PRUnichar * id,
2639 PRBool done
2640 );
2641
2642 nsresult (*AutoCaptureUSBDevices)(IInternalMachineControl *pThis );
2643
2644 nsresult (*DetachAllUSBDevices)(
2645 IInternalMachineControl *pThis,
2646 PRBool done
2647 );
2648
2649 nsresult (*OnSessionEnd)(
2650 IInternalMachineControl *pThis,
2651 ISession * session,
2652 IProgress * * progress
2653 );
2654
2655 nsresult (*BeginSavingState)(
2656 IInternalMachineControl *pThis,
2657 IProgress * * progress,
2658 PRUnichar * * stateFilePath
2659 );
2660
2661 nsresult (*EndSavingState)(
2662 IInternalMachineControl *pThis,
2663 PRInt32 result,
2664 PRUnichar * errMsg
2665 );
2666
2667 nsresult (*AdoptSavedState)(
2668 IInternalMachineControl *pThis,
2669 PRUnichar * savedStateFile
2670 );
2671
2672 nsresult (*BeginTakingSnapshot)(
2673 IInternalMachineControl *pThis,
2674 IConsole * initiator,
2675 PRUnichar * name,
2676 PRUnichar * description,
2677 IProgress * consoleProgress,
2678 PRBool fTakingSnapshotOnline,
2679 PRUnichar * * stateFilePath
2680 );
2681
2682 nsresult (*EndTakingSnapshot)(
2683 IInternalMachineControl *pThis,
2684 PRBool success
2685 );
2686
2687 nsresult (*DeleteSnapshot)(
2688 IInternalMachineControl *pThis,
2689 IConsole * initiator,
2690 PRUnichar * id,
2691 PRUint32 * machineState,
2692 IProgress * * progress
2693 );
2694
2695 nsresult (*FinishOnlineMergeMedium)(
2696 IInternalMachineControl *pThis,
2697 IMediumAttachment * mediumAttachment,
2698 IMedium * source,
2699 IMedium * target,
2700 PRBool mergeForward,
2701 IMedium * parentForTarget,
2702 PRUint32 childrenToReparentSize,
2703 IMedium ** childrenToReparent
2704 );
2705
2706 nsresult (*RestoreSnapshot)(
2707 IInternalMachineControl *pThis,
2708 IConsole * initiator,
2709 ISnapshot * snapshot,
2710 PRUint32 * machineState,
2711 IProgress * * progress
2712 );
2713
2714 nsresult (*PullGuestProperties)(
2715 IInternalMachineControl *pThis,
2716 PRUint32 *nameSize,
2717 PRUnichar *** name,
2718 PRUint32 *valueSize,
2719 PRUnichar *** value,
2720 PRUint32 *timestampSize,
2721 PRInt64* timestamp,
2722 PRUint32 *flagsSize,
2723 PRUnichar *** flags
2724 );
2725
2726 nsresult (*PushGuestProperty)(
2727 IInternalMachineControl *pThis,
2728 PRUnichar * name,
2729 PRUnichar * value,
2730 PRInt64 timestamp,
2731 PRUnichar * flags
2732 );
2733
2734 nsresult (*LockMedia)(IInternalMachineControl *pThis );
2735
2736 nsresult (*UnlockMedia)(IInternalMachineControl *pThis );
2737
2738};
2739
2740struct IInternalMachineControl
2741{
2742 struct IInternalMachineControl_vtbl *vtbl;
2743};
2744/* End of struct IInternalMachineControl Declaration */
2745
2746
2747/* Start of struct IBIOSSettings Declaration */
2748#define IBIOSSETTINGS_IID_STR "38b54279-dc35-4f5e-a431-835b867c6b5e"
2749#define IBIOSSETTINGS_IID { \
2750 0x38b54279, 0xdc35, 0x4f5e, \
2751 { 0xa4, 0x31, 0x83, 0x5b, 0x86, 0x7c, 0x6b, 0x5e } \
2752}
2753struct IBIOSSettings_vtbl
2754{
2755 struct nsISupports_vtbl nsisupports;
2756
2757 nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
2758 nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
2759
2760 nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
2761 nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
2762
2763 nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
2764 nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
2765
2766 nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
2767 nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
2768
2769 nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
2770 nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
2771
2772 nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
2773 nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
2774
2775 nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
2776 nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
2777
2778 nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
2779 nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
2780
2781 nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
2782 nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
2783
2784};
2785
2786struct IBIOSSettings
2787{
2788 struct IBIOSSettings_vtbl *vtbl;
2789};
2790/* End of struct IBIOSSettings Declaration */
2791
2792
2793/* Start of struct IEventContext Declaration */
2794#define IEVENTCONTEXT_IID_STR "7563F4E7-1583-40F7-B4C4-C9BA02CB0AE3"
2795#define IEVENTCONTEXT_IID { \
2796 0x7563F4E7, 0x1583, 0x40F7, \
2797 { 0xB4, 0xC4, 0xC9, 0xBA, 0x02, 0xCB, 0x0A, 0xE3 } \
2798}
2799struct IEventContext_vtbl
2800{
2801 struct nsISupports_vtbl nsisupports;
2802
2803};
2804
2805struct IEventContext
2806{
2807 struct IEventContext_vtbl *vtbl;
2808};
2809/* End of struct IEventContext Declaration */
2810
2811
2812/* Start of struct IPciAddress Declaration */
2813#define IPCIADDRESS_IID_STR "D88B324F-DB19-4D3B-A1A9-BF5B127199A8"
2814#define IPCIADDRESS_IID { \
2815 0xD88B324F, 0xDB19, 0x4D3B, \
2816 { 0xA1, 0xA9, 0xBF, 0x5B, 0x12, 0x71, 0x99, 0xA8 } \
2817}
2818struct IPciAddress_vtbl
2819{
2820 struct nsISupports_vtbl nsisupports;
2821
2822 nsresult (*GetBus)(IPciAddress *pThis, PRInt16 *bus);
2823 nsresult (*SetBus)(IPciAddress *pThis, PRInt16 bus);
2824
2825 nsresult (*GetDevice)(IPciAddress *pThis, PRInt16 *device);
2826 nsresult (*SetDevice)(IPciAddress *pThis, PRInt16 device);
2827
2828 nsresult (*GetDevFunction)(IPciAddress *pThis, PRInt16 *devFunction);
2829 nsresult (*SetDevFunction)(IPciAddress *pThis, PRInt16 devFunction);
2830
2831 nsresult (*AsLong)(
2832 IPciAddress *pThis,
2833 PRInt32 * result
2834 );
2835
2836 nsresult (*FromLong)(
2837 IPciAddress *pThis,
2838 PRInt32 number
2839 );
2840
2841};
2842
2843struct IPciAddress
2844{
2845 struct IPciAddress_vtbl *vtbl;
2846};
2847/* End of struct IPciAddress Declaration */
2848
2849
2850/* Start of struct IPciDeviceAttachment Declaration */
2851#define IPCIDEVICEATTACHMENT_IID_STR "91f33d6f-e621-4f70-a77e-15f0e3c714d5"
2852#define IPCIDEVICEATTACHMENT_IID { \
2853 0x91f33d6f, 0xe621, 0x4f70, \
2854 { 0xa7, 0x7e, 0x15, 0xf0, 0xe3, 0xc7, 0x14, 0xd5 } \
2855}
2856struct IPciDeviceAttachment_vtbl
2857{
2858 struct nsISupports_vtbl nsisupports;
2859
2860 nsresult (*GetName)(IPciDeviceAttachment *pThis, PRUnichar * *name);
2861
2862 nsresult (*GetIsPhysicalDevice)(IPciDeviceAttachment *pThis, PRBool *isPhysicalDevice);
2863
2864 nsresult (*GetHostAddress)(IPciDeviceAttachment *pThis, PRInt32 *hostAddress);
2865
2866 nsresult (*GetGuestAddress)(IPciDeviceAttachment *pThis, PRInt32 *guestAddress);
2867
2868};
2869
2870struct IPciDeviceAttachment
2871{
2872 struct IPciDeviceAttachment_vtbl *vtbl;
2873};
2874/* End of struct IPciDeviceAttachment Declaration */
2875
2876
2877/* Start of struct IMachine Declaration */
2878#define IMACHINE_IID_STR "662c175e-a69d-40b8-a77a-1d719d0ab062"
2879#define IMACHINE_IID { \
2880 0x662c175e, 0xa69d, 0x40b8, \
2881 { 0xa7, 0x7a, 0x1d, 0x71, 0x9d, 0x0a, 0xb0, 0x62 } \
2882}
2883struct IMachine_vtbl
2884{
2885 struct nsISupports_vtbl nsisupports;
2886
2887 nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
2888
2889 nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
2890
2891 nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
2892
2893 nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
2894 nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
2895
2896 nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
2897 nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
2898
2899 nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
2900
2901 nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
2902 nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
2903
2904 nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *HardwareVersion);
2905 nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * HardwareVersion);
2906
2907 nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
2908 nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
2909
2910 nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
2911 nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
2912
2913 nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
2914 nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
2915
2916 nsresult (*GetCPUExecutionCap)(IMachine *pThis, PRUint32 *CPUExecutionCap);
2917 nsresult (*SetCPUExecutionCap)(IMachine *pThis, PRUint32 CPUExecutionCap);
2918
2919 nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
2920 nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
2921
2922 nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
2923 nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
2924
2925 nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *PageFusionEnabled);
2926 nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool PageFusionEnabled);
2927
2928 nsresult (*GetVRAMSize)(IMachine *pThis, PRUint32 *VRAMSize);
2929 nsresult (*SetVRAMSize)(IMachine *pThis, PRUint32 VRAMSize);
2930
2931 nsresult (*GetAccelerate3DEnabled)(IMachine *pThis, PRBool *accelerate3DEnabled);
2932 nsresult (*SetAccelerate3DEnabled)(IMachine *pThis, PRBool accelerate3DEnabled);
2933
2934 nsresult (*GetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool *accelerate2DVideoEnabled);
2935 nsresult (*SetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool accelerate2DVideoEnabled);
2936
2937 nsresult (*GetMonitorCount)(IMachine *pThis, PRUint32 *monitorCount);
2938 nsresult (*SetMonitorCount)(IMachine *pThis, PRUint32 monitorCount);
2939
2940 nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
2941
2942 nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
2943 nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
2944
2945 nsresult (*GetPointingHidType)(IMachine *pThis, PRUint32 *pointingHidType);
2946 nsresult (*SetPointingHidType)(IMachine *pThis, PRUint32 pointingHidType);
2947
2948 nsresult (*GetKeyboardHidType)(IMachine *pThis, PRUint32 *keyboardHidType);
2949 nsresult (*SetKeyboardHidType)(IMachine *pThis, PRUint32 keyboardHidType);
2950
2951 nsresult (*GetHpetEnabled)(IMachine *pThis, PRBool *hpetEnabled);
2952 nsresult (*SetHpetEnabled)(IMachine *pThis, PRBool hpetEnabled);
2953
2954 nsresult (*GetChipsetType)(IMachine *pThis, PRUint32 *chipsetType);
2955 nsresult (*SetChipsetType)(IMachine *pThis, PRUint32 chipsetType);
2956
2957 nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
2958 nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
2959
2960 nsresult (*GetVRDEServer)(IMachine *pThis, IVRDEServer * *VRDEServer);
2961
2962 nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
2963
2964 nsresult (*GetUSBController)(IMachine *pThis, IUSBController * *USBController);
2965
2966 nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
2967
2968 nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
2969
2970 nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
2971
2972 nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
2973
2974 nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
2975
2976 nsresult (*GetSessionType)(IMachine *pThis, PRUnichar * *sessionType);
2977
2978 nsresult (*GetSessionPid)(IMachine *pThis, PRUint32 *sessionPid);
2979
2980 nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
2981
2982 nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
2983
2984 nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
2985
2986 nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
2987
2988 nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
2989
2990 nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
2991
2992 nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
2993
2994 nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
2995
2996 nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
2997 nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
2998
2999 nsresult (*GetGuestPropertyNotificationPatterns)(IMachine *pThis, PRUnichar * *guestPropertyNotificationPatterns);
3000 nsresult (*SetGuestPropertyNotificationPatterns)(IMachine *pThis, PRUnichar * guestPropertyNotificationPatterns);
3001
3002 nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
3003 nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
3004
3005 nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
3006 nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
3007
3008 nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
3009 nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
3010
3011 nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
3012 nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
3013
3014 nsresult (*GetFaultToleranceState)(IMachine *pThis, PRUint32 *faultToleranceState);
3015 nsresult (*SetFaultToleranceState)(IMachine *pThis, PRUint32 faultToleranceState);
3016
3017 nsresult (*GetFaultTolerancePort)(IMachine *pThis, PRUint32 *faultTolerancePort);
3018 nsresult (*SetFaultTolerancePort)(IMachine *pThis, PRUint32 faultTolerancePort);
3019
3020 nsresult (*GetFaultToleranceAddress)(IMachine *pThis, PRUnichar * *faultToleranceAddress);
3021 nsresult (*SetFaultToleranceAddress)(IMachine *pThis, PRUnichar * faultToleranceAddress);
3022
3023 nsresult (*GetFaultTolerancePassword)(IMachine *pThis, PRUnichar * *faultTolerancePassword);
3024 nsresult (*SetFaultTolerancePassword)(IMachine *pThis, PRUnichar * faultTolerancePassword);
3025
3026 nsresult (*GetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 *faultToleranceSyncInterval);
3027 nsresult (*SetFaultToleranceSyncInterval)(IMachine *pThis, PRUint32 faultToleranceSyncInterval);
3028
3029 nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
3030 nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
3031
3032 nsresult (*GetIoCacheEnabled)(IMachine *pThis, PRBool *ioCacheEnabled);
3033 nsresult (*SetIoCacheEnabled)(IMachine *pThis, PRBool ioCacheEnabled);
3034
3035 nsresult (*GetIoCacheSize)(IMachine *pThis, PRUint32 *ioCacheSize);
3036 nsresult (*SetIoCacheSize)(IMachine *pThis, PRUint32 ioCacheSize);
3037
3038 nsresult (*GetBandwidthControl)(IMachine *pThis, IBandwidthControl * *bandwidthControl);
3039
3040 nsresult (*GetPciDeviceAssignments)(IMachine *pThis, PRUint32 *pciDeviceAssignmentsSize, IPciDeviceAttachment * **pciDeviceAssignments);
3041
3042 nsresult (*LockMachine)(
3043 IMachine *pThis,
3044 ISession * session,
3045 PRUint32 lockType
3046 );
3047
3048 nsresult (*LaunchVMProcess)(
3049 IMachine *pThis,
3050 ISession * session,
3051 PRUnichar * type,
3052 PRUnichar * environment,
3053 IProgress * * progress
3054 );
3055
3056 nsresult (*SetBootOrder)(
3057 IMachine *pThis,
3058 PRUint32 position,
3059 PRUint32 device
3060 );
3061
3062 nsresult (*GetBootOrder)(
3063 IMachine *pThis,
3064 PRUint32 position,
3065 PRUint32 * device
3066 );
3067
3068 nsresult (*AttachDevice)(
3069 IMachine *pThis,
3070 PRUnichar * name,
3071 PRInt32 controllerPort,
3072 PRInt32 device,
3073 PRUint32 type,
3074 IMedium * medium
3075 );
3076
3077 nsresult (*DetachDevice)(
3078 IMachine *pThis,
3079 PRUnichar * name,
3080 PRInt32 controllerPort,
3081 PRInt32 device
3082 );
3083
3084 nsresult (*PassthroughDevice)(
3085 IMachine *pThis,
3086 PRUnichar * name,
3087 PRInt32 controllerPort,
3088 PRInt32 device,
3089 PRBool passthrough
3090 );
3091
3092 nsresult (*SetBandwidthGroupForDevice)(
3093 IMachine *pThis,
3094 PRUnichar * name,
3095 PRInt32 controllerPort,
3096 PRInt32 device,
3097 IBandwidthGroup * bandwidthGroup
3098 );
3099
3100 nsresult (*MountMedium)(
3101 IMachine *pThis,
3102 PRUnichar * name,
3103 PRInt32 controllerPort,
3104 PRInt32 device,
3105 IMedium * medium,
3106 PRBool force
3107 );
3108
3109 nsresult (*GetMedium)(
3110 IMachine *pThis,
3111 PRUnichar * name,
3112 PRInt32 controllerPort,
3113 PRInt32 device,
3114 IMedium * * medium
3115 );
3116
3117 nsresult (*GetMediumAttachmentsOfController)(
3118 IMachine *pThis,
3119 PRUnichar * name,
3120 PRUint32 *mediumAttachmentsSize,
3121 IMediumAttachment *** mediumAttachments
3122 );
3123
3124 nsresult (*GetMediumAttachment)(
3125 IMachine *pThis,
3126 PRUnichar * name,
3127 PRInt32 controllerPort,
3128 PRInt32 device,
3129 IMediumAttachment * * attachment
3130 );
3131
3132 nsresult (*AttachHostPciDevice)(
3133 IMachine *pThis,
3134 PRInt32 hostAddress,
3135 PRInt32 desiredGuestAddress,
3136 IEventContext * eventContext,
3137 PRBool tryToUnbind
3138 );
3139
3140 nsresult (*DetachHostPciDevice)(
3141 IMachine *pThis,
3142 PRInt32 hostAddress
3143 );
3144
3145 nsresult (*GetNetworkAdapter)(
3146 IMachine *pThis,
3147 PRUint32 slot,
3148 INetworkAdapter * * adapter
3149 );
3150
3151 nsresult (*AddStorageController)(
3152 IMachine *pThis,
3153 PRUnichar * name,
3154 PRUint32 connectionType,
3155 IStorageController * * controller
3156 );
3157
3158 nsresult (*GetStorageControllerByName)(
3159 IMachine *pThis,
3160 PRUnichar * name,
3161 IStorageController * * storageController
3162 );
3163
3164 nsresult (*GetStorageControllerByInstance)(
3165 IMachine *pThis,
3166 PRUint32 instance,
3167 IStorageController * * storageController
3168 );
3169
3170 nsresult (*RemoveStorageController)(
3171 IMachine *pThis,
3172 PRUnichar * name
3173 );
3174
3175 nsresult (*SetStorageControllerBootable)(
3176 IMachine *pThis,
3177 PRUnichar * name,
3178 PRBool bootable
3179 );
3180
3181 nsresult (*GetSerialPort)(
3182 IMachine *pThis,
3183 PRUint32 slot,
3184 ISerialPort * * port
3185 );
3186
3187 nsresult (*GetParallelPort)(
3188 IMachine *pThis,
3189 PRUint32 slot,
3190 IParallelPort * * port
3191 );
3192
3193 nsresult (*GetExtraDataKeys)(
3194 IMachine *pThis,
3195 PRUint32 *valueSize,
3196 PRUnichar *** value
3197 );
3198
3199 nsresult (*GetExtraData)(
3200 IMachine *pThis,
3201 PRUnichar * key,
3202 PRUnichar * * value
3203 );
3204
3205 nsresult (*SetExtraData)(
3206 IMachine *pThis,
3207 PRUnichar * key,
3208 PRUnichar * value
3209 );
3210
3211 nsresult (*GetCPUProperty)(
3212 IMachine *pThis,
3213 PRUint32 property,
3214 PRBool * value
3215 );
3216
3217 nsresult (*SetCPUProperty)(
3218 IMachine *pThis,
3219 PRUint32 property,
3220 PRBool value
3221 );
3222
3223 nsresult (*GetCPUIDLeaf)(
3224 IMachine *pThis,
3225 PRUint32 id,
3226 PRUint32 * valEax,
3227 PRUint32 * valEbx,
3228 PRUint32 * valEcx,
3229 PRUint32 * valEdx
3230 );
3231
3232 nsresult (*SetCPUIDLeaf)(
3233 IMachine *pThis,
3234 PRUint32 id,
3235 PRUint32 valEax,
3236 PRUint32 valEbx,
3237 PRUint32 valEcx,
3238 PRUint32 valEdx
3239 );
3240
3241 nsresult (*RemoveCPUIDLeaf)(
3242 IMachine *pThis,
3243 PRUint32 id
3244 );
3245
3246 nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
3247
3248 nsresult (*GetHWVirtExProperty)(
3249 IMachine *pThis,
3250 PRUint32 property,
3251 PRBool * value
3252 );
3253
3254 nsresult (*SetHWVirtExProperty)(
3255 IMachine *pThis,
3256 PRUint32 property,
3257 PRBool value
3258 );
3259
3260 nsresult (*SaveSettings)(IMachine *pThis );
3261
3262 nsresult (*DiscardSettings)(IMachine *pThis );
3263
3264 nsresult (*Unregister)(
3265 IMachine *pThis,
3266 PRUint32 cleanupMode,
3267 PRUint32 *aMediaSize,
3268 IMedium *** aMedia
3269 );
3270
3271 nsresult (*Delete)(
3272 IMachine *pThis,
3273 PRUint32 aMediaSize,
3274 IMedium ** aMedia,
3275 IProgress * * aProgress
3276 );
3277
3278 nsresult (*Export)(
3279 IMachine *pThis,
3280 IAppliance * aAppliance,
3281 PRUnichar * location,
3282 IVirtualSystemDescription * * aDescription
3283 );
3284
3285 nsresult (*FindSnapshot)(
3286 IMachine *pThis,
3287 PRUnichar * nameOrId,
3288 ISnapshot * * snapshot
3289 );
3290
3291 nsresult (*CreateSharedFolder)(
3292 IMachine *pThis,
3293 PRUnichar * name,
3294 PRUnichar * hostPath,
3295 PRBool writable,
3296 PRBool automount
3297 );
3298
3299 nsresult (*RemoveSharedFolder)(
3300 IMachine *pThis,
3301 PRUnichar * name
3302 );
3303
3304 nsresult (*CanShowConsoleWindow)(
3305 IMachine *pThis,
3306 PRBool * canShow
3307 );
3308
3309 nsresult (*ShowConsoleWindow)(
3310 IMachine *pThis,
3311 PRInt64 * winId
3312 );
3313
3314 nsresult (*GetGuestProperty)(
3315 IMachine *pThis,
3316 PRUnichar * name,
3317 PRUnichar * * value,
3318 PRInt64 * timestamp,
3319 PRUnichar * * flags
3320 );
3321
3322 nsresult (*GetGuestPropertyValue)(
3323 IMachine *pThis,
3324 PRUnichar * property,
3325 PRUnichar * * value
3326 );
3327
3328 nsresult (*GetGuestPropertyTimestamp)(
3329 IMachine *pThis,
3330 PRUnichar * property,
3331 PRInt64 * value
3332 );
3333
3334 nsresult (*SetGuestProperty)(
3335 IMachine *pThis,
3336 PRUnichar * property,
3337 PRUnichar * value,
3338 PRUnichar * flags
3339 );
3340
3341 nsresult (*SetGuestPropertyValue)(
3342 IMachine *pThis,
3343 PRUnichar * property,
3344 PRUnichar * value
3345 );
3346
3347 nsresult (*EnumerateGuestProperties)(
3348 IMachine *pThis,
3349 PRUnichar * patterns,
3350 PRUint32 *nameSize,
3351 PRUnichar *** name,
3352 PRUint32 *valueSize,
3353 PRUnichar *** value,
3354 PRUint32 *timestampSize,
3355 PRInt64* timestamp,
3356 PRUint32 *flagsSize,
3357 PRUnichar *** flags
3358 );
3359
3360 nsresult (*QuerySavedGuestSize)(
3361 IMachine *pThis,
3362 PRUint32 screenId,
3363 PRUint32 * width,
3364 PRUint32 * height
3365 );
3366
3367 nsresult (*QuerySavedThumbnailSize)(
3368 IMachine *pThis,
3369 PRUint32 screenId,
3370 PRUint32 * size,
3371 PRUint32 * width,
3372 PRUint32 * height
3373 );
3374
3375 nsresult (*ReadSavedThumbnailToArray)(
3376 IMachine *pThis,
3377 PRUint32 screenId,
3378 PRBool BGR,
3379 PRUint32 * width,
3380 PRUint32 * height,
3381 PRUint32 *dataSize,
3382 PRUint8** data
3383 );
3384
3385 nsresult (*ReadSavedThumbnailPNGToArray)(
3386 IMachine *pThis,
3387 PRUint32 screenId,
3388 PRUint32 * width,
3389 PRUint32 * height,
3390 PRUint32 *dataSize,
3391 PRUint8** data
3392 );
3393
3394 nsresult (*QuerySavedScreenshotPNGSize)(
3395 IMachine *pThis,
3396 PRUint32 screenId,
3397 PRUint32 * size,
3398 PRUint32 * width,
3399 PRUint32 * height
3400 );
3401
3402 nsresult (*ReadSavedScreenshotPNGToArray)(
3403 IMachine *pThis,
3404 PRUint32 screenId,
3405 PRUint32 * width,
3406 PRUint32 * height,
3407 PRUint32 *dataSize,
3408 PRUint8** data
3409 );
3410
3411 nsresult (*HotPlugCPU)(
3412 IMachine *pThis,
3413 PRUint32 cpu
3414 );
3415
3416 nsresult (*HotUnplugCPU)(
3417 IMachine *pThis,
3418 PRUint32 cpu
3419 );
3420
3421 nsresult (*GetCPUStatus)(
3422 IMachine *pThis,
3423 PRUint32 cpu,
3424 PRBool * attached
3425 );
3426
3427 nsresult (*QueryLogFilename)(
3428 IMachine *pThis,
3429 PRUint32 idx,
3430 PRUnichar * * filename
3431 );
3432
3433 nsresult (*ReadLog)(
3434 IMachine *pThis,
3435 PRUint32 idx,
3436 PRInt64 offset,
3437 PRInt64 size,
3438 PRUint32 *dataSize,
3439 PRUint8** data
3440 );
3441
3442};
3443
3444struct IMachine
3445{
3446 struct IMachine_vtbl *vtbl;
3447};
3448/* End of struct IMachine Declaration */
3449
3450
3451/* Start of struct IVRDEServerInfo Declaration */
3452#define IVRDESERVERINFO_IID_STR "714434a1-58c3-4aab-9049-7652c5df113b"
3453#define IVRDESERVERINFO_IID { \
3454 0x714434a1, 0x58c3, 0x4aab, \
3455 { 0x90, 0x49, 0x76, 0x52, 0xc5, 0xdf, 0x11, 0x3b } \
3456}
3457struct IVRDEServerInfo_vtbl
3458{
3459 struct nsISupports_vtbl nsisupports;
3460
3461 nsresult (*GetActive)(IVRDEServerInfo *pThis, PRBool *active);
3462
3463 nsresult (*GetPort)(IVRDEServerInfo *pThis, PRInt32 *port);
3464
3465 nsresult (*GetNumberOfClients)(IVRDEServerInfo *pThis, PRUint32 *numberOfClients);
3466
3467 nsresult (*GetBeginTime)(IVRDEServerInfo *pThis, PRInt64 *beginTime);
3468
3469 nsresult (*GetEndTime)(IVRDEServerInfo *pThis, PRInt64 *endTime);
3470
3471 nsresult (*GetBytesSent)(IVRDEServerInfo *pThis, PRInt64 *bytesSent);
3472
3473 nsresult (*GetBytesSentTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesSentTotal);
3474
3475 nsresult (*GetBytesReceived)(IVRDEServerInfo *pThis, PRInt64 *bytesReceived);
3476
3477 nsresult (*GetBytesReceivedTotal)(IVRDEServerInfo *pThis, PRInt64 *bytesReceivedTotal);
3478
3479 nsresult (*GetUser)(IVRDEServerInfo *pThis, PRUnichar * *user);
3480
3481 nsresult (*GetDomain)(IVRDEServerInfo *pThis, PRUnichar * *domain);
3482
3483 nsresult (*GetClientName)(IVRDEServerInfo *pThis, PRUnichar * *clientName);
3484
3485 nsresult (*GetClientIP)(IVRDEServerInfo *pThis, PRUnichar * *clientIP);
3486
3487 nsresult (*GetClientVersion)(IVRDEServerInfo *pThis, PRUint32 *clientVersion);
3488
3489 nsresult (*GetEncryptionStyle)(IVRDEServerInfo *pThis, PRUint32 *encryptionStyle);
3490
3491};
3492
3493struct IVRDEServerInfo
3494{
3495 struct IVRDEServerInfo_vtbl *vtbl;
3496};
3497/* End of struct IVRDEServerInfo Declaration */
3498
3499
3500/* Start of struct IConsole Declaration */
3501#define ICONSOLE_IID_STR "515e8e8d-f932-4d8e-9f32-79a52aead882"
3502#define ICONSOLE_IID { \
3503 0x515e8e8d, 0xf932, 0x4d8e, \
3504 { 0x9f, 0x32, 0x79, 0xa5, 0x2a, 0xea, 0xd8, 0x82 } \
3505}
3506struct IConsole_vtbl
3507{
3508 struct nsISupports_vtbl nsisupports;
3509
3510 nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
3511
3512 nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
3513
3514 nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
3515
3516 nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
3517
3518 nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
3519
3520 nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
3521
3522 nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
3523
3524 nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
3525
3526 nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
3527
3528 nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
3529
3530 nsresult (*GetVRDEServerInfo)(IConsole *pThis, IVRDEServerInfo * *VRDEServerInfo);
3531
3532 nsresult (*GetEventSource)(IConsole *pThis, IEventSource * *eventSource);
3533
3534 nsresult (*GetAttachedPciDevices)(IConsole *pThis, PRUint32 *attachedPciDevicesSize, IPciDeviceAttachment * **attachedPciDevices);
3535
3536 nsresult (*PowerUp)(
3537 IConsole *pThis,
3538 IProgress * * progress
3539 );
3540
3541 nsresult (*PowerUpPaused)(
3542 IConsole *pThis,
3543 IProgress * * progress
3544 );
3545
3546 nsresult (*PowerDown)(
3547 IConsole *pThis,
3548 IProgress * * progress
3549 );
3550
3551 nsresult (*Reset)(IConsole *pThis );
3552
3553 nsresult (*Pause)(IConsole *pThis );
3554
3555 nsresult (*Resume)(IConsole *pThis );
3556
3557 nsresult (*PowerButton)(IConsole *pThis );
3558
3559 nsresult (*SleepButton)(IConsole *pThis );
3560
3561 nsresult (*GetPowerButtonHandled)(
3562 IConsole *pThis,
3563 PRBool * handled
3564 );
3565
3566 nsresult (*GetGuestEnteredACPIMode)(
3567 IConsole *pThis,
3568 PRBool * entered
3569 );
3570
3571 nsresult (*SaveState)(
3572 IConsole *pThis,
3573 IProgress * * progress
3574 );
3575
3576 nsresult (*AdoptSavedState)(
3577 IConsole *pThis,
3578 PRUnichar * savedStateFile
3579 );
3580
3581 nsresult (*DiscardSavedState)(
3582 IConsole *pThis,
3583 PRBool fRemoveFile
3584 );
3585
3586 nsresult (*GetDeviceActivity)(
3587 IConsole *pThis,
3588 PRUint32 type,
3589 PRUint32 * activity
3590 );
3591
3592 nsresult (*AttachUSBDevice)(
3593 IConsole *pThis,
3594 PRUnichar * id
3595 );
3596
3597 nsresult (*DetachUSBDevice)(
3598 IConsole *pThis,
3599 PRUnichar * id,
3600 IUSBDevice * * device
3601 );
3602
3603 nsresult (*FindUSBDeviceByAddress)(
3604 IConsole *pThis,
3605 PRUnichar * name,
3606 IUSBDevice * * device
3607 );
3608
3609 nsresult (*FindUSBDeviceById)(
3610 IConsole *pThis,
3611 PRUnichar * id,
3612 IUSBDevice * * device
3613 );
3614
3615 nsresult (*CreateSharedFolder)(
3616 IConsole *pThis,
3617 PRUnichar * name,
3618 PRUnichar * hostPath,
3619 PRBool writable,
3620 PRBool automount
3621 );
3622
3623 nsresult (*RemoveSharedFolder)(
3624 IConsole *pThis,
3625 PRUnichar * name
3626 );
3627
3628 nsresult (*TakeSnapshot)(
3629 IConsole *pThis,
3630 PRUnichar * name,
3631 PRUnichar * description,
3632 IProgress * * progress
3633 );
3634
3635 nsresult (*DeleteSnapshot)(
3636 IConsole *pThis,
3637 PRUnichar * id,
3638 IProgress * * progress
3639 );
3640
3641 nsresult (*RestoreSnapshot)(
3642 IConsole *pThis,
3643 ISnapshot * snapshot,
3644 IProgress * * progress
3645 );
3646
3647 nsresult (*Teleport)(
3648 IConsole *pThis,
3649 PRUnichar * hostname,
3650 PRUint32 tcpport,
3651 PRUnichar * password,
3652 PRUint32 maxDowntime,
3653 IProgress * * progress
3654 );
3655
3656};
3657
3658struct IConsole
3659{
3660 struct IConsole_vtbl *vtbl;
3661};
3662/* End of struct IConsole Declaration */
3663
3664
3665/* Start of struct IHostNetworkInterface Declaration */
3666#define IHOSTNETWORKINTERFACE_IID_STR "ce6fae58-7642-4102-b5db-c9005c2320a8"
3667#define IHOSTNETWORKINTERFACE_IID { \
3668 0xce6fae58, 0x7642, 0x4102, \
3669 { 0xb5, 0xdb, 0xc9, 0x00, 0x5c, 0x23, 0x20, 0xa8 } \
3670}
3671struct IHostNetworkInterface_vtbl
3672{
3673 struct nsISupports_vtbl nsisupports;
3674
3675 nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
3676
3677 nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
3678
3679 nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
3680
3681 nsresult (*GetDhcpEnabled)(IHostNetworkInterface *pThis, PRBool *dhcpEnabled);
3682
3683 nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
3684
3685 nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
3686
3687 nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
3688
3689 nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
3690
3691 nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
3692
3693 nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
3694
3695 nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
3696
3697 nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
3698
3699 nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
3700
3701 nsresult (*EnableStaticIpConfig)(
3702 IHostNetworkInterface *pThis,
3703 PRUnichar * IPAddress,
3704 PRUnichar * networkMask
3705 );
3706
3707 nsresult (*EnableStaticIpConfigV6)(
3708 IHostNetworkInterface *pThis,
3709 PRUnichar * IPV6Address,
3710 PRUint32 IPV6NetworkMaskPrefixLength
3711 );
3712
3713 nsresult (*EnableDynamicIpConfig)(IHostNetworkInterface *pThis );
3714
3715 nsresult (*DhcpRediscover)(IHostNetworkInterface *pThis );
3716
3717};
3718
3719struct IHostNetworkInterface
3720{
3721 struct IHostNetworkInterface_vtbl *vtbl;
3722};
3723/* End of struct IHostNetworkInterface Declaration */
3724
3725
3726/* Start of struct IHost Declaration */
3727#define IHOST_IID_STR "35b004f4-7806-4009-bfa8-d1308adba7e5"
3728#define IHOST_IID { \
3729 0x35b004f4, 0x7806, 0x4009, \
3730 { 0xbf, 0xa8, 0xd1, 0x30, 0x8a, 0xdb, 0xa7, 0xe5 } \
3731}
3732struct IHost_vtbl
3733{
3734 struct nsISupports_vtbl nsisupports;
3735
3736 nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
3737
3738 nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
3739
3740 nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
3741
3742 nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
3743
3744 nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
3745
3746 nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
3747
3748 nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
3749
3750 nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
3751
3752 nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
3753
3754 nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
3755
3756 nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
3757
3758 nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
3759
3760 nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
3761
3762 nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *Acceleration3DAvailable);
3763
3764 nsresult (*GetProcessorSpeed)(
3765 IHost *pThis,
3766 PRUint32 cpuId,
3767 PRUint32 * speed
3768 );
3769
3770 nsresult (*GetProcessorFeature)(
3771 IHost *pThis,
3772 PRUint32 feature,
3773 PRBool * supported
3774 );
3775
3776 nsresult (*GetProcessorDescription)(
3777 IHost *pThis,
3778 PRUint32 cpuId,
3779 PRUnichar * * description
3780 );
3781
3782 nsresult (*GetProcessorCPUIDLeaf)(
3783 IHost *pThis,
3784 PRUint32 cpuId,
3785 PRUint32 leaf,
3786 PRUint32 subLeaf,
3787 PRUint32 * valEax,
3788 PRUint32 * valEbx,
3789 PRUint32 * valEcx,
3790 PRUint32 * valEdx
3791 );
3792
3793 nsresult (*CreateHostOnlyNetworkInterface)(
3794 IHost *pThis,
3795 IHostNetworkInterface * * hostInterface,
3796 IProgress * * progress
3797 );
3798
3799 nsresult (*RemoveHostOnlyNetworkInterface)(
3800 IHost *pThis,
3801 PRUnichar * id,
3802 IProgress * * progress
3803 );
3804
3805 nsresult (*CreateUSBDeviceFilter)(
3806 IHost *pThis,
3807 PRUnichar * name,
3808 IHostUSBDeviceFilter * * filter
3809 );
3810
3811 nsresult (*InsertUSBDeviceFilter)(
3812 IHost *pThis,
3813 PRUint32 position,
3814 IHostUSBDeviceFilter * filter
3815 );
3816
3817 nsresult (*RemoveUSBDeviceFilter)(
3818 IHost *pThis,
3819 PRUint32 position
3820 );
3821
3822 nsresult (*FindHostDVDDrive)(
3823 IHost *pThis,
3824 PRUnichar * name,
3825 IMedium * * drive
3826 );
3827
3828 nsresult (*FindHostFloppyDrive)(
3829 IHost *pThis,
3830 PRUnichar * name,
3831 IMedium * * drive
3832 );
3833
3834 nsresult (*FindHostNetworkInterfaceByName)(
3835 IHost *pThis,
3836 PRUnichar * name,
3837 IHostNetworkInterface * * networkInterface
3838 );
3839
3840 nsresult (*FindHostNetworkInterfaceById)(
3841 IHost *pThis,
3842 PRUnichar * id,
3843 IHostNetworkInterface * * networkInterface
3844 );
3845
3846 nsresult (*FindHostNetworkInterfacesOfType)(
3847 IHost *pThis,
3848 PRUint32 type,
3849 PRUint32 *networkInterfacesSize,
3850 IHostNetworkInterface *** networkInterfaces
3851 );
3852
3853 nsresult (*FindUSBDeviceById)(
3854 IHost *pThis,
3855 PRUnichar * id,
3856 IHostUSBDevice * * device
3857 );
3858
3859 nsresult (*FindUSBDeviceByAddress)(
3860 IHost *pThis,
3861 PRUnichar * name,
3862 IHostUSBDevice * * device
3863 );
3864
3865};
3866
3867struct IHost
3868{
3869 struct IHost_vtbl *vtbl;
3870};
3871/* End of struct IHost Declaration */
3872
3873
3874/* Start of struct ISystemProperties Declaration */
3875#define ISYSTEMPROPERTIES_IID_STR "51c81048-b261-4fa2-a44e-fd756f0db589"
3876#define ISYSTEMPROPERTIES_IID { \
3877 0x51c81048, 0xb261, 0x4fa2, \
3878 { 0xa4, 0x4e, 0xfd, 0x75, 0x6f, 0x0d, 0xb5, 0x89 } \
3879}
3880struct ISystemProperties_vtbl
3881{
3882 struct nsISupports_vtbl nsisupports;
3883
3884 nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
3885
3886 nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
3887
3888 nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
3889
3890 nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
3891
3892 nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
3893
3894 nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
3895
3896 nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
3897
3898 nsresult (*GetInfoVDSize)(ISystemProperties *pThis, PRInt64 *infoVDSize);
3899
3900 nsresult (*GetNetworkAdapterCount)(ISystemProperties *pThis, PRUint32 *networkAdapterCount);
3901
3902 nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
3903
3904 nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
3905
3906 nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
3907
3908 nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
3909 nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
3910
3911 nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
3912
3913 nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
3914 nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
3915
3916 nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceWarning);
3917 nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRInt64 freeDiskSpaceWarning);
3918
3919 nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
3920 nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
3921
3922 nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 *freeDiskSpaceError);
3923 nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRInt64 freeDiskSpaceError);
3924
3925 nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
3926 nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
3927
3928 nsresult (*GetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * *VRDEAuthLibrary);
3929 nsresult (*SetVRDEAuthLibrary)(ISystemProperties *pThis, PRUnichar * VRDEAuthLibrary);
3930
3931 nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
3932 nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
3933
3934 nsresult (*GetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * *defaultVRDEExtPack);
3935 nsresult (*SetDefaultVRDEExtPack)(ISystemProperties *pThis, PRUnichar * defaultVRDEExtPack);
3936
3937 nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *LogHistoryCount);
3938 nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 LogHistoryCount);
3939
3940 nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
3941
3942 nsresult (*GetMaxDevicesPerPortForStorageBus)(
3943 ISystemProperties *pThis,
3944 PRUint32 bus,
3945 PRUint32 * maxDevicesPerPort
3946 );
3947
3948 nsresult (*GetMinPortCountForStorageBus)(
3949 ISystemProperties *pThis,
3950 PRUint32 bus,
3951 PRUint32 * minPortCount
3952 );
3953
3954 nsresult (*GetMaxPortCountForStorageBus)(
3955 ISystemProperties *pThis,
3956 PRUint32 bus,
3957 PRUint32 * maxPortCount
3958 );
3959
3960 nsresult (*GetMaxInstancesOfStorageBus)(
3961 ISystemProperties *pThis,
3962 PRUint32 chipset,
3963 PRUint32 bus,
3964 PRUint32 * maxInstances
3965 );
3966
3967 nsresult (*GetDeviceTypesForStorageBus)(
3968 ISystemProperties *pThis,
3969 PRUint32 bus,
3970 PRUint32 *deviceTypesSize,
3971 PRUint32** deviceTypes
3972 );
3973
3974 nsresult (*GetDefaultIoCacheSettingForStorageController)(
3975 ISystemProperties *pThis,
3976 PRUint32 controllerType,
3977 PRBool * enabled
3978 );
3979
3980};
3981
3982struct ISystemProperties
3983{
3984 struct ISystemProperties_vtbl *vtbl;
3985};
3986/* End of struct ISystemProperties Declaration */
3987
3988
3989/* Start of struct IGuestOSType Declaration */
3990#define IGUESTOSTYPE_IID_STR "432c1546-1354-4abf-bf08-878a32a373f5"
3991#define IGUESTOSTYPE_IID { \
3992 0x432c1546, 0x1354, 0x4abf, \
3993 { 0xbf, 0x08, 0x87, 0x8a, 0x32, 0xa3, 0x73, 0xf5 } \
3994}
3995struct IGuestOSType_vtbl
3996{
3997 struct nsISupports_vtbl nsisupports;
3998
3999 nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
4000
4001 nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
4002
4003 nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
4004
4005 nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
4006
4007 nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
4008
4009 nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
4010
4011 nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
4012
4013 nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
4014
4015 nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
4016
4017 nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRInt64 *recommendedHDD);
4018
4019 nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
4020
4021 nsresult (*GetRecommendedPae)(IGuestOSType *pThis, PRBool *recommendedPae);
4022
4023 nsresult (*GetRecommendedDvdStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDvdStorageController);
4024
4025 nsresult (*GetRecommendedDvdStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDvdStorageBus);
4026
4027 nsresult (*GetRecommendedHdStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHdStorageController);
4028
4029 nsresult (*GetRecommendedHdStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHdStorageBus);
4030
4031 nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
4032
4033 nsresult (*GetRecommendedUsbHid)(IGuestOSType *pThis, PRBool *recommendedUsbHid);
4034
4035 nsresult (*GetRecommendedHpet)(IGuestOSType *pThis, PRBool *recommendedHpet);
4036
4037 nsresult (*GetRecommendedUsbTablet)(IGuestOSType *pThis, PRBool *recommendedUsbTablet);
4038
4039 nsresult (*GetRecommendedRtcUseUtc)(IGuestOSType *pThis, PRBool *recommendedRtcUseUtc);
4040
4041 nsresult (*GetRecommendedChipset)(IGuestOSType *pThis, PRUint32 *recommendedChipset);
4042
4043 nsresult (*GetRecommendedAudioController)(IGuestOSType *pThis, PRUint32 *recommendedAudioController);
4044
4045};
4046
4047struct IGuestOSType
4048{
4049 struct IGuestOSType_vtbl *vtbl;
4050};
4051/* End of struct IGuestOSType Declaration */
4052
4053
4054/* Start of struct IGuest Declaration */
4055#define IGUEST_IID_STR "7ce7e4d8-cdaa-4d83-a0f4-510c8ee70aea"
4056#define IGUEST_IID { \
4057 0x7ce7e4d8, 0xcdaa, 0x4d83, \
4058 { 0xa0, 0xf4, 0x51, 0x0c, 0x8e, 0xe7, 0x0a, 0xea } \
4059}
4060struct IGuest_vtbl
4061{
4062 struct nsISupports_vtbl nsisupports;
4063
4064 nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
4065
4066 nsresult (*GetAdditionsRunLevel)(IGuest *pThis, PRUint32 *additionsRunLevel);
4067
4068 nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
4069
4070 nsresult (*GetSupportsSeamless)(IGuest *pThis, PRBool *supportsSeamless);
4071
4072 nsresult (*GetSupportsGraphics)(IGuest *pThis, PRBool *supportsGraphics);
4073
4074 nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
4075 nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
4076
4077 nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
4078 nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
4079
4080 nsresult (*InternalGetStatistics)(
4081 IGuest *pThis,
4082 PRUint32 * cpuUser,
4083 PRUint32 * cpuKernel,
4084 PRUint32 * cpuIdle,
4085 PRUint32 * memTotal,
4086 PRUint32 * memFree,
4087 PRUint32 * memBalloon,
4088 PRUint32 * memShared,
4089 PRUint32 * memCache,
4090 PRUint32 * pagedTotal,
4091 PRUint32 * memAllocTotal,
4092 PRUint32 * memFreeTotal,
4093 PRUint32 * memBalloonTotal,
4094 PRUint32 * memSharedTotal
4095 );
4096
4097 nsresult (*GetAdditionsStatus)(
4098 IGuest *pThis,
4099 PRUint32 level,
4100 PRBool * active
4101 );
4102
4103 nsresult (*SetCredentials)(
4104 IGuest *pThis,
4105 PRUnichar * userName,
4106 PRUnichar * password,
4107 PRUnichar * domain,
4108 PRBool allowInteractiveLogon
4109 );
4110
4111 nsresult (*ExecuteProcess)(
4112 IGuest *pThis,
4113 PRUnichar * execName,
4114 PRUint32 flags,
4115 PRUint32 argumentsSize,
4116 PRUnichar ** arguments,
4117 PRUint32 environmentSize,
4118 PRUnichar ** environment,
4119 PRUnichar * userName,
4120 PRUnichar * password,
4121 PRUint32 timeoutMS,
4122 PRUint32 * pid,
4123 IProgress * * progress
4124 );
4125
4126 nsresult (*GetProcessOutput)(
4127 IGuest *pThis,
4128 PRUint32 pid,
4129 PRUint32 flags,
4130 PRUint32 timeoutMS,
4131 PRInt64 size,
4132 PRUint32 *dataSize,
4133 PRUint8** data
4134 );
4135
4136 nsresult (*GetProcessStatus)(
4137 IGuest *pThis,
4138 PRUint32 pid,
4139 PRUint32 * exitcode,
4140 PRUint32 * flags,
4141 PRUint32 * reason
4142 );
4143
4144 nsresult (*CopyToGuest)(
4145 IGuest *pThis,
4146 PRUnichar * source,
4147 PRUnichar * dest,
4148 PRUnichar * userName,
4149 PRUnichar * password,
4150 PRUint32 flags,
4151 IProgress * * progress
4152 );
4153
4154 nsresult (*CreateDirectory)(
4155 IGuest *pThis,
4156 PRUnichar * directory,
4157 PRUnichar * userName,
4158 PRUnichar * password,
4159 PRUint32 mode,
4160 PRUint32 flags,
4161 IProgress * * progress
4162 );
4163
4164 nsresult (*SetProcessInput)(
4165 IGuest *pThis,
4166 PRUint32 pid,
4167 PRUint32 flags,
4168 PRUint32 timeoutMS,
4169 PRUint32 dataSize,
4170 PRUint8* data,
4171 PRUint32 * written
4172 );
4173
4174 nsresult (*UpdateGuestAdditions)(
4175 IGuest *pThis,
4176 PRUnichar * source,
4177 PRUint32 flags,
4178 IProgress * * progress
4179 );
4180
4181};
4182
4183struct IGuest
4184{
4185 struct IGuest_vtbl *vtbl;
4186};
4187/* End of struct IGuest Declaration */
4188
4189
4190/* Start of struct IProgress Declaration */
4191#define IPROGRESS_IID_STR "A163C98F-8635-4AA8-B770-A9941737F3EF"
4192#define IPROGRESS_IID { \
4193 0xA163C98F, 0x8635, 0x4AA8, \
4194 { 0xB7, 0x70, 0xA9, 0x94, 0x17, 0x37, 0xF3, 0xEF } \
4195}
4196struct IProgress_vtbl
4197{
4198 struct nsISupports_vtbl nsisupports;
4199
4200 nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
4201
4202 nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
4203
4204 nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
4205
4206 nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
4207
4208 nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
4209
4210 nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
4211
4212 nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
4213
4214 nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
4215
4216 nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
4217
4218 nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
4219
4220 nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
4221
4222 nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
4223
4224 nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
4225
4226 nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
4227
4228 nsresult (*GetOperationWeight)(IProgress *pThis, PRUint32 *operationWeight);
4229
4230 nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
4231 nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
4232
4233 nsresult (*SetCurrentOperationProgress)(
4234 IProgress *pThis,
4235 PRUint32 percent
4236 );
4237
4238 nsresult (*SetNextOperation)(
4239 IProgress *pThis,
4240 PRUnichar * nextOperationDescription,
4241 PRUint32 nextOperationsWeight
4242 );
4243
4244 nsresult (*WaitForCompletion)(
4245 IProgress *pThis,
4246 PRInt32 timeout
4247 );
4248
4249 nsresult (*WaitForOperationCompletion)(
4250 IProgress *pThis,
4251 PRUint32 operation,
4252 PRInt32 timeout
4253 );
4254
4255 nsresult (*Cancel)(IProgress *pThis );
4256
4257};
4258
4259struct IProgress
4260{
4261 struct IProgress_vtbl *vtbl;
4262};
4263/* End of struct IProgress Declaration */
4264
4265
4266/* Start of struct ISnapshot Declaration */
4267#define ISNAPSHOT_IID_STR "1a2d0551-58a4-4107-857e-ef414fc42ffc"
4268#define ISNAPSHOT_IID { \
4269 0x1a2d0551, 0x58a4, 0x4107, \
4270 { 0x85, 0x7e, 0xef, 0x41, 0x4f, 0xc4, 0x2f, 0xfc } \
4271}
4272struct ISnapshot_vtbl
4273{
4274 struct nsISupports_vtbl nsisupports;
4275
4276 nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
4277
4278 nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
4279 nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
4280
4281 nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
4282 nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
4283
4284 nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
4285
4286 nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
4287
4288 nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
4289
4290 nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
4291
4292 nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
4293
4294};
4295
4296struct ISnapshot
4297{
4298 struct ISnapshot_vtbl *vtbl;
4299};
4300/* End of struct ISnapshot Declaration */
4301
4302
4303/* Start of struct IMediumAttachment Declaration */
4304#define IMEDIUMATTACHMENT_IID_STR "aa4b4840-934f-454d-9a28-23e8f4235edf"
4305#define IMEDIUMATTACHMENT_IID { \
4306 0xaa4b4840, 0x934f, 0x454d, \
4307 { 0x9a, 0x28, 0x23, 0xe8, 0xf4, 0x23, 0x5e, 0xdf } \
4308}
4309struct IMediumAttachment_vtbl
4310{
4311 struct nsISupports_vtbl nsisupports;
4312
4313 nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
4314
4315 nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
4316
4317 nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
4318
4319 nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
4320
4321 nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
4322
4323 nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
4324
4325 nsresult (*GetBandwidthGroup)(IMediumAttachment *pThis, IBandwidthGroup * *bandwidthGroup);
4326
4327};
4328
4329struct IMediumAttachment
4330{
4331 struct IMediumAttachment_vtbl *vtbl;
4332};
4333/* End of struct IMediumAttachment Declaration */
4334
4335
4336/* Start of struct IMedium Declaration */
4337#define IMEDIUM_IID_STR "9edda847-1279-4b0a-9af7-9d66251ccc18"
4338#define IMEDIUM_IID { \
4339 0x9edda847, 0x1279, 0x4b0a, \
4340 { 0x9a, 0xf7, 0x9d, 0x66, 0x25, 0x1c, 0xcc, 0x18 } \
4341}
4342struct IMedium_vtbl
4343{
4344 struct nsISupports_vtbl nsisupports;
4345
4346 nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
4347
4348 nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
4349 nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
4350
4351 nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
4352
4353 nsresult (*GetVariant)(IMedium *pThis, PRUint32 *variant);
4354
4355 nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
4356 nsresult (*SetLocation)(IMedium *pThis, PRUnichar * location);
4357
4358 nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
4359
4360 nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
4361
4362 nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
4363
4364 nsresult (*GetSize)(IMedium *pThis, PRInt64 *size);
4365
4366 nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
4367
4368 nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
4369
4370 nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
4371 nsresult (*SetType)(IMedium *pThis, PRUint32 type);
4372
4373 nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
4374
4375 nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
4376
4377 nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
4378
4379 nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
4380
4381 nsresult (*GetLogicalSize)(IMedium *pThis, PRInt64 *logicalSize);
4382
4383 nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
4384 nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
4385
4386 nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
4387
4388 nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
4389
4390 nsresult (*SetIDs)(
4391 IMedium *pThis,
4392 PRBool setImageId,
4393 PRUnichar * imageId,
4394 PRBool setParentId,
4395 PRUnichar * parentId
4396 );
4397
4398 nsresult (*RefreshState)(
4399 IMedium *pThis,
4400 PRUint32 * state
4401 );
4402
4403 nsresult (*GetSnapshotIds)(
4404 IMedium *pThis,
4405 PRUnichar * machineId,
4406 PRUint32 *snapshotIdsSize,
4407 PRUnichar *** snapshotIds
4408 );
4409
4410 nsresult (*LockRead)(
4411 IMedium *pThis,
4412 PRUint32 * state
4413 );
4414
4415 nsresult (*UnlockRead)(
4416 IMedium *pThis,
4417 PRUint32 * state
4418 );
4419
4420 nsresult (*LockWrite)(
4421 IMedium *pThis,
4422 PRUint32 * state
4423 );
4424
4425 nsresult (*UnlockWrite)(
4426 IMedium *pThis,
4427 PRUint32 * state
4428 );
4429
4430 nsresult (*Close)(IMedium *pThis );
4431
4432 nsresult (*GetProperty)(
4433 IMedium *pThis,
4434 PRUnichar * name,
4435 PRUnichar * * value
4436 );
4437
4438 nsresult (*SetProperty)(
4439 IMedium *pThis,
4440 PRUnichar * name,
4441 PRUnichar * value
4442 );
4443
4444 nsresult (*GetProperties)(
4445 IMedium *pThis,
4446 PRUnichar * names,
4447 PRUint32 *returnNamesSize,
4448 PRUnichar *** returnNames,
4449 PRUint32 *returnValuesSize,
4450 PRUnichar *** returnValues
4451 );
4452
4453 nsresult (*SetProperties)(
4454 IMedium *pThis,
4455 PRUint32 namesSize,
4456 PRUnichar ** names,
4457 PRUint32 valuesSize,
4458 PRUnichar ** values
4459 );
4460
4461 nsresult (*CreateBaseStorage)(
4462 IMedium *pThis,
4463 PRInt64 logicalSize,
4464 PRUint32 variant,
4465 IProgress * * progress
4466 );
4467
4468 nsresult (*DeleteStorage)(
4469 IMedium *pThis,
4470 IProgress * * progress
4471 );
4472
4473 nsresult (*CreateDiffStorage)(
4474 IMedium *pThis,
4475 IMedium * target,
4476 PRUint32 variant,
4477 IProgress * * progress
4478 );
4479
4480 nsresult (*MergeTo)(
4481 IMedium *pThis,
4482 IMedium * target,
4483 IProgress * * progress
4484 );
4485
4486 nsresult (*CloneTo)(
4487 IMedium *pThis,
4488 IMedium * target,
4489 PRUint32 variant,
4490 IMedium * parent,
4491 IProgress * * progress
4492 );
4493
4494 nsresult (*Compact)(
4495 IMedium *pThis,
4496 IProgress * * progress
4497 );
4498
4499 nsresult (*Resize)(
4500 IMedium *pThis,
4501 PRInt64 logicalSize,
4502 IProgress * * progress
4503 );
4504
4505 nsresult (*Reset)(
4506 IMedium *pThis,
4507 IProgress * * progress
4508 );
4509
4510};
4511
4512struct IMedium
4513{
4514 struct IMedium_vtbl *vtbl;
4515};
4516/* End of struct IMedium Declaration */
4517
4518
4519/* Start of struct IMediumFormat Declaration */
4520#define IMEDIUMFORMAT_IID_STR "4e9a873f-0599-434a-8345-619ef3fb3111"
4521#define IMEDIUMFORMAT_IID { \
4522 0x4e9a873f, 0x0599, 0x434a, \
4523 { 0x83, 0x45, 0x61, 0x9e, 0xf3, 0xfb, 0x31, 0x11 } \
4524}
4525struct IMediumFormat_vtbl
4526{
4527 struct nsISupports_vtbl nsisupports;
4528
4529 nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
4530
4531 nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
4532
4533 nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilities);
4534
4535 nsresult (*DescribeFileExtensions)(
4536 IMediumFormat *pThis,
4537 PRUint32 *extensionsSize,
4538 PRUnichar *** extensions,
4539 PRUint32 *typeSize,
4540 PRUint32* type
4541 );
4542
4543 nsresult (*DescribeProperties)(
4544 IMediumFormat *pThis,
4545 PRUint32 *namesSize,
4546 PRUnichar *** names,
4547 PRUint32 *descriptionSize,
4548 PRUnichar *** description,
4549 PRUint32 *typesSize,
4550 PRUint32* types,
4551 PRUint32 *flagsSize,
4552 PRUint32* flags,
4553 PRUint32 *defaultsSize,
4554 PRUnichar *** defaults
4555 );
4556
4557};
4558
4559struct IMediumFormat
4560{
4561 struct IMediumFormat_vtbl *vtbl;
4562};
4563/* End of struct IMediumFormat Declaration */
4564
4565
4566/* Start of struct IKeyboard Declaration */
4567#define IKEYBOARD_IID_STR "f6916ec5-a881-4237-898f-7de58cf88672"
4568#define IKEYBOARD_IID { \
4569 0xf6916ec5, 0xa881, 0x4237, \
4570 { 0x89, 0x8f, 0x7d, 0xe5, 0x8c, 0xf8, 0x86, 0x72 } \
4571}
4572struct IKeyboard_vtbl
4573{
4574 struct nsISupports_vtbl nsisupports;
4575
4576 nsresult (*GetEventSource)(IKeyboard *pThis, IEventSource * *eventSource);
4577
4578 nsresult (*PutScancode)(
4579 IKeyboard *pThis,
4580 PRInt32 scancode
4581 );
4582
4583 nsresult (*PutScancodes)(
4584 IKeyboard *pThis,
4585 PRUint32 scancodesSize,
4586 PRInt32* scancodes,
4587 PRUint32 * codesStored
4588 );
4589
4590 nsresult (*PutCAD)(IKeyboard *pThis );
4591
4592};
4593
4594struct IKeyboard
4595{
4596 struct IKeyboard_vtbl *vtbl;
4597};
4598/* End of struct IKeyboard Declaration */
4599
4600
4601/* Start of struct IMouse Declaration */
4602#define IMOUSE_IID_STR "05044a52-7811-4f00-ae3a-0ab7ff707b10"
4603#define IMOUSE_IID { \
4604 0x05044a52, 0x7811, 0x4f00, \
4605 { 0xae, 0x3a, 0x0a, 0xb7, 0xff, 0x70, 0x7b, 0x10 } \
4606}
4607struct IMouse_vtbl
4608{
4609 struct nsISupports_vtbl nsisupports;
4610
4611 nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
4612
4613 nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
4614
4615 nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
4616
4617 nsresult (*GetEventSource)(IMouse *pThis, IEventSource * *eventSource);
4618
4619 nsresult (*PutMouseEvent)(
4620 IMouse *pThis,
4621 PRInt32 dx,
4622 PRInt32 dy,
4623 PRInt32 dz,
4624 PRInt32 dw,
4625 PRInt32 buttonState
4626 );
4627
4628 nsresult (*PutMouseEventAbsolute)(
4629 IMouse *pThis,
4630 PRInt32 x,
4631 PRInt32 y,
4632 PRInt32 dz,
4633 PRInt32 dw,
4634 PRInt32 buttonState
4635 );
4636
4637};
4638
4639struct IMouse
4640{
4641 struct IMouse_vtbl *vtbl;
4642};
4643/* End of struct IMouse Declaration */
4644
4645
4646/* Start of struct IFramebuffer Declaration */
4647#define IFRAMEBUFFER_IID_STR "b7ed347a-5765-40a0-ae1c-f543eb4ddeaf"
4648#define IFRAMEBUFFER_IID { \
4649 0xb7ed347a, 0x5765, 0x40a0, \
4650 { 0xae, 0x1c, 0xf5, 0x43, 0xeb, 0x4d, 0xde, 0xaf } \
4651}
4652struct IFramebuffer_vtbl
4653{
4654 struct nsISupports_vtbl nsisupports;
4655
4656 nsresult (*GetAddress)(IFramebuffer *pThis, PRUint8 * *address);
4657
4658 nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
4659
4660 nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
4661
4662 nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
4663
4664 nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
4665
4666 nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
4667
4668 nsresult (*GetUsesGuestVRAM)(IFramebuffer *pThis, PRBool *usesGuestVRAM);
4669
4670 nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
4671
4672 nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
4673
4674 nsresult (*GetWinId)(IFramebuffer *pThis, PRInt64 *winId);
4675
4676 nsresult (*Lock)(IFramebuffer *pThis );
4677
4678 nsresult (*Unlock)(IFramebuffer *pThis );
4679
4680 nsresult (*NotifyUpdate)(
4681 IFramebuffer *pThis,
4682 PRUint32 x,
4683 PRUint32 y,
4684 PRUint32 width,
4685 PRUint32 height
4686 );
4687
4688 nsresult (*RequestResize)(
4689 IFramebuffer *pThis,
4690 PRUint32 screenId,
4691 PRUint32 pixelFormat,
4692 PRUint8 * VRAM,
4693 PRUint32 bitsPerPixel,
4694 PRUint32 bytesPerLine,
4695 PRUint32 width,
4696 PRUint32 height,
4697 PRBool * finished
4698 );
4699
4700 nsresult (*VideoModeSupported)(
4701 IFramebuffer *pThis,
4702 PRUint32 width,
4703 PRUint32 height,
4704 PRUint32 bpp,
4705 PRBool * supported
4706 );
4707
4708 nsresult (*GetVisibleRegion)(
4709 IFramebuffer *pThis,
4710 PRUint8 * rectangles,
4711 PRUint32 count,
4712 PRUint32 * countCopied
4713 );
4714
4715 nsresult (*SetVisibleRegion)(
4716 IFramebuffer *pThis,
4717 PRUint8 * rectangles,
4718 PRUint32 count
4719 );
4720
4721 nsresult (*ProcessVHWACommand)(
4722 IFramebuffer *pThis,
4723 PRUint8 * command
4724 );
4725
4726};
4727
4728struct IFramebuffer
4729{
4730 struct IFramebuffer_vtbl *vtbl;
4731};
4732/* End of struct IFramebuffer Declaration */
4733
4734
4735/* Start of struct IFramebufferOverlay Declaration */
4736#define IFRAMEBUFFEROVERLAY_IID_STR "0bcc1c7e-e415-47d2-bfdb-e4c705fb0f47"
4737#define IFRAMEBUFFEROVERLAY_IID { \
4738 0x0bcc1c7e, 0xe415, 0x47d2, \
4739 { 0xbf, 0xdb, 0xe4, 0xc7, 0x05, 0xfb, 0x0f, 0x47 } \
4740}
4741struct IFramebufferOverlay_vtbl
4742{
4743 struct IFramebuffer_vtbl iframebuffer;
4744
4745 nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
4746
4747 nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
4748
4749 nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
4750 nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
4751
4752 nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
4753 nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
4754
4755 nsresult (*Move)(
4756 IFramebufferOverlay *pThis,
4757 PRUint32 x,
4758 PRUint32 y
4759 );
4760
4761};
4762
4763struct IFramebufferOverlay
4764{
4765 struct IFramebufferOverlay_vtbl *vtbl;
4766};
4767/* End of struct IFramebufferOverlay Declaration */
4768
4769
4770/* Start of struct IDisplay Declaration */
4771#define IDISPLAY_IID_STR "09EED313-CD56-4D06-BD56-FAC0F716B5DD"
4772#define IDISPLAY_IID { \
4773 0x09EED313, 0xCD56, 0x4D06, \
4774 { 0xBD, 0x56, 0xFA, 0xC0, 0xF7, 0x16, 0xB5, 0xDD } \
4775}
4776struct IDisplay_vtbl
4777{
4778 struct nsISupports_vtbl nsisupports;
4779
4780 nsresult (*GetScreenResolution)(
4781 IDisplay *pThis,
4782 PRUint32 screenId,
4783 PRUint32 * width,
4784 PRUint32 * height,
4785 PRUint32 * bitsPerPixel
4786 );
4787
4788 nsresult (*SetFramebuffer)(
4789 IDisplay *pThis,
4790 PRUint32 screenId,
4791 IFramebuffer * framebuffer
4792 );
4793
4794 nsresult (*GetFramebuffer)(
4795 IDisplay *pThis,
4796 PRUint32 screenId,
4797 IFramebuffer * * framebuffer,
4798 PRInt32 * xOrigin,
4799 PRInt32 * yOrigin
4800 );
4801
4802 nsresult (*SetVideoModeHint)(
4803 IDisplay *pThis,
4804 PRUint32 width,
4805 PRUint32 height,
4806 PRUint32 bitsPerPixel,
4807 PRUint32 display
4808 );
4809
4810 nsresult (*SetSeamlessMode)(
4811 IDisplay *pThis,
4812 PRBool enabled
4813 );
4814
4815 nsresult (*TakeScreenShot)(
4816 IDisplay *pThis,
4817 PRUint32 screenId,
4818 PRUint8 * address,
4819 PRUint32 width,
4820 PRUint32 height
4821 );
4822
4823 nsresult (*TakeScreenShotToArray)(
4824 IDisplay *pThis,
4825 PRUint32 screenId,
4826 PRUint32 width,
4827 PRUint32 height,
4828 PRUint32 *screenDataSize,
4829 PRUint8** screenData
4830 );
4831
4832 nsresult (*TakeScreenShotPNGToArray)(
4833 IDisplay *pThis,
4834 PRUint32 screenId,
4835 PRUint32 width,
4836 PRUint32 height,
4837 PRUint32 *screenDataSize,
4838 PRUint8** screenData
4839 );
4840
4841 nsresult (*DrawToScreen)(
4842 IDisplay *pThis,
4843 PRUint32 screenId,
4844 PRUint8 * address,
4845 PRUint32 x,
4846 PRUint32 y,
4847 PRUint32 width,
4848 PRUint32 height
4849 );
4850
4851 nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
4852
4853 nsresult (*ResizeCompleted)(
4854 IDisplay *pThis,
4855 PRUint32 screenId
4856 );
4857
4858 nsresult (*CompleteVHWACommand)(
4859 IDisplay *pThis,
4860 PRUint8 * command
4861 );
4862
4863};
4864
4865struct IDisplay
4866{
4867 struct IDisplay_vtbl *vtbl;
4868};
4869/* End of struct IDisplay Declaration */
4870
4871
4872/* Start of struct INetworkAdapter Declaration */
4873#define INETWORKADAPTER_IID_STR "9bf58a46-c3f7-4f31-80fa-dde9a5dc0b7b"
4874#define INETWORKADAPTER_IID { \
4875 0x9bf58a46, 0xc3f7, 0x4f31, \
4876 { 0x80, 0xfa, 0xdd, 0xe9, 0xa5, 0xdc, 0x0b, 0x7b } \
4877}
4878struct INetworkAdapter_vtbl
4879{
4880 struct nsISupports_vtbl nsisupports;
4881
4882 nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
4883 nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
4884
4885 nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
4886
4887 nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
4888 nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
4889
4890 nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
4891 nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
4892
4893 nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
4894
4895 nsresult (*GetHostInterface)(INetworkAdapter *pThis, PRUnichar * *hostInterface);
4896 nsresult (*SetHostInterface)(INetworkAdapter *pThis, PRUnichar * hostInterface);
4897
4898 nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
4899 nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
4900
4901 nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
4902 nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
4903
4904 nsresult (*GetVDENetwork)(INetworkAdapter *pThis, PRUnichar * *VDENetwork);
4905 nsresult (*SetVDENetwork)(INetworkAdapter *pThis, PRUnichar * VDENetwork);
4906
4907 nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
4908 nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
4909
4910 nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
4911 nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
4912
4913 nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
4914 nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
4915
4916 nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
4917 nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
4918
4919 nsresult (*GetNatDriver)(INetworkAdapter *pThis, INATEngine * *natDriver);
4920
4921 nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
4922 nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
4923
4924 nsresult (*GetBandwidthLimit)(INetworkAdapter *pThis, PRUint32 *bandwidthLimit);
4925 nsresult (*SetBandwidthLimit)(INetworkAdapter *pThis, PRUint32 bandwidthLimit);
4926
4927 nsresult (*AttachToNAT)(INetworkAdapter *pThis );
4928
4929 nsresult (*AttachToBridgedInterface)(INetworkAdapter *pThis );
4930
4931 nsresult (*AttachToInternalNetwork)(INetworkAdapter *pThis );
4932
4933 nsresult (*AttachToHostOnlyInterface)(INetworkAdapter *pThis );
4934
4935 nsresult (*AttachToVDE)(INetworkAdapter *pThis );
4936
4937 nsresult (*Detach)(INetworkAdapter *pThis );
4938
4939};
4940
4941struct INetworkAdapter
4942{
4943 struct INetworkAdapter_vtbl *vtbl;
4944};
4945/* End of struct INetworkAdapter Declaration */
4946
4947
4948/* Start of struct ISerialPort Declaration */
4949#define ISERIALPORT_IID_STR "937f6970-5103-4745-b78e-d28dcf1479a8"
4950#define ISERIALPORT_IID { \
4951 0x937f6970, 0x5103, 0x4745, \
4952 { 0xb7, 0x8e, 0xd2, 0x8d, 0xcf, 0x14, 0x79, 0xa8 } \
4953}
4954struct ISerialPort_vtbl
4955{
4956 struct nsISupports_vtbl nsisupports;
4957
4958 nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
4959
4960 nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
4961 nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
4962
4963 nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
4964 nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
4965
4966 nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
4967 nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
4968
4969 nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
4970 nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
4971
4972 nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
4973 nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
4974
4975 nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
4976 nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
4977
4978};
4979
4980struct ISerialPort
4981{
4982 struct ISerialPort_vtbl *vtbl;
4983};
4984/* End of struct ISerialPort Declaration */
4985
4986
4987/* Start of struct IParallelPort Declaration */
4988#define IPARALLELPORT_IID_STR "0c925f06-dd10-4b77-8de8-294d738c3214"
4989#define IPARALLELPORT_IID { \
4990 0x0c925f06, 0xdd10, 0x4b77, \
4991 { 0x8d, 0xe8, 0x29, 0x4d, 0x73, 0x8c, 0x32, 0x14 } \
4992}
4993struct IParallelPort_vtbl
4994{
4995 struct nsISupports_vtbl nsisupports;
4996
4997 nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
4998
4999 nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
5000 nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
5001
5002 nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
5003 nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
5004
5005 nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
5006 nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
5007
5008 nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
5009 nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
5010
5011};
5012
5013struct IParallelPort
5014{
5015 struct IParallelPort_vtbl *vtbl;
5016};
5017/* End of struct IParallelPort Declaration */
5018
5019
5020/* Start of struct IMachineDebugger Declaration */
5021#define IMACHINEDEBUGGER_IID_STR "1bfd2fa9-0d91-44d3-9515-368dcbb3eb4d"
5022#define IMACHINEDEBUGGER_IID { \
5023 0x1bfd2fa9, 0x0d91, 0x44d3, \
5024 { 0x95, 0x15, 0x36, 0x8d, 0xcb, 0xb3, 0xeb, 0x4d } \
5025}
5026struct IMachineDebugger_vtbl
5027{
5028 struct nsISupports_vtbl nsisupports;
5029
5030 nsresult (*GetSinglestep)(IMachineDebugger *pThis, PRBool *singlestep);
5031 nsresult (*SetSinglestep)(IMachineDebugger *pThis, PRBool singlestep);
5032
5033 nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
5034 nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
5035
5036 nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
5037 nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
5038
5039 nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
5040 nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
5041
5042 nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
5043 nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
5044
5045 nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
5046 nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
5047
5048 nsresult (*GetLogFlags)(IMachineDebugger *pThis, PRUnichar * *logFlags);
5049
5050 nsresult (*GetLogGroups)(IMachineDebugger *pThis, PRUnichar * *logGroups);
5051
5052 nsresult (*GetLogDestinations)(IMachineDebugger *pThis, PRUnichar * *logDestinations);
5053
5054 nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
5055
5056 nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
5057
5058 nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
5059
5060 nsresult (*GetOSName)(IMachineDebugger *pThis, PRUnichar * *OSName);
5061
5062 nsresult (*GetOSVersion)(IMachineDebugger *pThis, PRUnichar * *OSVersion);
5063
5064 nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
5065
5066 nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
5067 nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
5068
5069 nsresult (*GetVM)(IMachineDebugger *pThis, PRInt64 *VM);
5070
5071 nsresult (*DumpGuestCore)(
5072 IMachineDebugger *pThis,
5073 PRUnichar * filename,
5074 PRUnichar * compression
5075 );
5076
5077 nsresult (*DumpHostProcessCore)(
5078 IMachineDebugger *pThis,
5079 PRUnichar * filename,
5080 PRUnichar * compression
5081 );
5082
5083 nsresult (*Info)(
5084 IMachineDebugger *pThis,
5085 PRUnichar * name,
5086 PRUnichar * args,
5087 PRUnichar * * info
5088 );
5089
5090 nsresult (*InjectNMI)(IMachineDebugger *pThis );
5091
5092 nsresult (*ModifyLogGroups)(
5093 IMachineDebugger *pThis,
5094 PRUnichar * settings
5095 );
5096
5097 nsresult (*ModifyLogFlags)(
5098 IMachineDebugger *pThis,
5099 PRUnichar * settings
5100 );
5101
5102 nsresult (*ModifyLogDestinations)(
5103 IMachineDebugger *pThis,
5104 PRUnichar * settings
5105 );
5106
5107 nsresult (*ReadPhysicalMemory)(
5108 IMachineDebugger *pThis,
5109 PRInt64 address,
5110 PRUint32 size,
5111 PRUint32 *bytesSize,
5112 PRUint8** bytes
5113 );
5114
5115 nsresult (*WritePhysicalMemory)(
5116 IMachineDebugger *pThis,
5117 PRInt64 address,
5118 PRUint32 size,
5119 PRUint32 bytesSize,
5120 PRUint8* bytes
5121 );
5122
5123 nsresult (*ReadVirtualMemory)(
5124 IMachineDebugger *pThis,
5125 PRUint32 cpuId,
5126 PRInt64 address,
5127 PRUint32 size,
5128 PRUint32 *bytesSize,
5129 PRUint8** bytes
5130 );
5131
5132 nsresult (*WriteVirtualMemory)(
5133 IMachineDebugger *pThis,
5134 PRUint32 cpuId,
5135 PRInt64 address,
5136 PRUint32 size,
5137 PRUint32 bytesSize,
5138 PRUint8* bytes
5139 );
5140
5141 nsresult (*DetectOS)(
5142 IMachineDebugger *pThis,
5143 PRUnichar * * os
5144 );
5145
5146 nsresult (*GetRegister)(
5147 IMachineDebugger *pThis,
5148 PRUint32 cpuId,
5149 PRUnichar * name,
5150 PRUnichar * * value
5151 );
5152
5153 nsresult (*GetRegisters)(
5154 IMachineDebugger *pThis,
5155 PRUint32 cpuId,
5156 PRUint32 *namesSize,
5157 PRUnichar *** names,
5158 PRUint32 *valuesSize,
5159 PRUnichar *** values
5160 );
5161
5162 nsresult (*SetRegister)(
5163 IMachineDebugger *pThis,
5164 PRUint32 cpuId,
5165 PRUnichar * name,
5166 PRUnichar * value
5167 );
5168
5169 nsresult (*SetRegisters)(
5170 IMachineDebugger *pThis,
5171 PRUint32 cpuId,
5172 PRUint32 namesSize,
5173 PRUnichar ** names,
5174 PRUint32 valuesSize,
5175 PRUnichar ** values
5176 );
5177
5178 nsresult (*DumpGuestStack)(
5179 IMachineDebugger *pThis,
5180 PRUint32 cpuId,
5181 PRUnichar * * stack
5182 );
5183
5184 nsresult (*ResetStats)(
5185 IMachineDebugger *pThis,
5186 PRUnichar * pattern
5187 );
5188
5189 nsresult (*DumpStats)(
5190 IMachineDebugger *pThis,
5191 PRUnichar * pattern
5192 );
5193
5194 nsresult (*GetStats)(
5195 IMachineDebugger *pThis,
5196 PRUnichar * pattern,
5197 PRBool withDescriptions,
5198 PRUnichar * * stats
5199 );
5200
5201};
5202
5203struct IMachineDebugger
5204{
5205 struct IMachineDebugger_vtbl *vtbl;
5206};
5207/* End of struct IMachineDebugger Declaration */
5208
5209
5210/* Start of struct IUSBController Declaration */
5211#define IUSBCONTROLLER_IID_STR "6fdcccc5-abd3-4fec-9387-2ad3914fc4a8"
5212#define IUSBCONTROLLER_IID { \
5213 0x6fdcccc5, 0xabd3, 0x4fec, \
5214 { 0x93, 0x87, 0x2a, 0xd3, 0x91, 0x4f, 0xc4, 0xa8 } \
5215}
5216struct IUSBController_vtbl
5217{
5218 struct nsISupports_vtbl nsisupports;
5219
5220 nsresult (*GetEnabled)(IUSBController *pThis, PRBool *enabled);
5221 nsresult (*SetEnabled)(IUSBController *pThis, PRBool enabled);
5222
5223 nsresult (*GetEnabledEhci)(IUSBController *pThis, PRBool *enabledEhci);
5224 nsresult (*SetEnabledEhci)(IUSBController *pThis, PRBool enabledEhci);
5225
5226 nsresult (*GetProxyAvailable)(IUSBController *pThis, PRBool *proxyAvailable);
5227
5228 nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
5229
5230 nsresult (*GetDeviceFilters)(IUSBController *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
5231
5232 nsresult (*CreateDeviceFilter)(
5233 IUSBController *pThis,
5234 PRUnichar * name,
5235 IUSBDeviceFilter * * filter
5236 );
5237
5238 nsresult (*InsertDeviceFilter)(
5239 IUSBController *pThis,
5240 PRUint32 position,
5241 IUSBDeviceFilter * filter
5242 );
5243
5244 nsresult (*RemoveDeviceFilter)(
5245 IUSBController *pThis,
5246 PRUint32 position,
5247 IUSBDeviceFilter * * filter
5248 );
5249
5250};
5251
5252struct IUSBController
5253{
5254 struct IUSBController_vtbl *vtbl;
5255};
5256/* End of struct IUSBController Declaration */
5257
5258
5259/* Start of struct IUSBDevice Declaration */
5260#define IUSBDEVICE_IID_STR "f8967b0b-4483-400f-92b5-8b675d98a85b"
5261#define IUSBDEVICE_IID { \
5262 0xf8967b0b, 0x4483, 0x400f, \
5263 { 0x92, 0xb5, 0x8b, 0x67, 0x5d, 0x98, 0xa8, 0x5b } \
5264}
5265struct IUSBDevice_vtbl
5266{
5267 struct nsISupports_vtbl nsisupports;
5268
5269 nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
5270
5271 nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
5272
5273 nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
5274
5275 nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
5276
5277 nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
5278
5279 nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
5280
5281 nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
5282
5283 nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
5284
5285 nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
5286
5287 nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
5288
5289 nsresult (*GetPortVersion)(IUSBDevice *pThis, PRUint16 *portVersion);
5290
5291 nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
5292
5293};
5294
5295struct IUSBDevice
5296{
5297 struct IUSBDevice_vtbl *vtbl;
5298};
5299/* End of struct IUSBDevice Declaration */
5300
5301
5302/* Start of struct IUSBDeviceFilter Declaration */
5303#define IUSBDEVICEFILTER_IID_STR "d6831fb4-1a94-4c2c-96ef-8d0d6192066d"
5304#define IUSBDEVICEFILTER_IID { \
5305 0xd6831fb4, 0x1a94, 0x4c2c, \
5306 { 0x96, 0xef, 0x8d, 0x0d, 0x61, 0x92, 0x06, 0x6d } \
5307}
5308struct IUSBDeviceFilter_vtbl
5309{
5310 struct nsISupports_vtbl nsisupports;
5311
5312 nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
5313 nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
5314
5315 nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
5316 nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
5317
5318 nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
5319 nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
5320
5321 nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
5322 nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
5323
5324 nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
5325 nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
5326
5327 nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
5328 nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
5329
5330 nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
5331 nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
5332
5333 nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
5334 nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
5335
5336 nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
5337 nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
5338
5339 nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
5340 nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
5341
5342 nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
5343 nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
5344
5345};
5346
5347struct IUSBDeviceFilter
5348{
5349 struct IUSBDeviceFilter_vtbl *vtbl;
5350};
5351/* End of struct IUSBDeviceFilter Declaration */
5352
5353
5354/* Start of struct IHostUSBDevice Declaration */
5355#define IHOSTUSBDEVICE_IID_STR "173b4b44-d268-4334-a00d-b6521c9a740a"
5356#define IHOSTUSBDEVICE_IID { \
5357 0x173b4b44, 0xd268, 0x4334, \
5358 { 0xa0, 0x0d, 0xb6, 0x52, 0x1c, 0x9a, 0x74, 0x0a } \
5359}
5360struct IHostUSBDevice_vtbl
5361{
5362 struct IUSBDevice_vtbl iusbdevice;
5363
5364 nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
5365
5366};
5367
5368struct IHostUSBDevice
5369{
5370 struct IHostUSBDevice_vtbl *vtbl;
5371};
5372/* End of struct IHostUSBDevice Declaration */
5373
5374
5375/* Start of struct IHostUSBDeviceFilter Declaration */
5376#define IHOSTUSBDEVICEFILTER_IID_STR "4cc70246-d74a-400f-8222-3900489c0374"
5377#define IHOSTUSBDEVICEFILTER_IID { \
5378 0x4cc70246, 0xd74a, 0x400f, \
5379 { 0x82, 0x22, 0x39, 0x00, 0x48, 0x9c, 0x03, 0x74 } \
5380}
5381struct IHostUSBDeviceFilter_vtbl
5382{
5383 struct IUSBDeviceFilter_vtbl iusbdevicefilter;
5384
5385 nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
5386 nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
5387
5388};
5389
5390struct IHostUSBDeviceFilter
5391{
5392 struct IHostUSBDeviceFilter_vtbl *vtbl;
5393};
5394/* End of struct IHostUSBDeviceFilter Declaration */
5395
5396
5397/* Start of struct IAudioAdapter Declaration */
5398#define IAUDIOADAPTER_IID_STR "921873db-5f3f-4b69-91f9-7be9e535a2cb"
5399#define IAUDIOADAPTER_IID { \
5400 0x921873db, 0x5f3f, 0x4b69, \
5401 { 0x91, 0xf9, 0x7b, 0xe9, 0xe5, 0x35, 0xa2, 0xcb } \
5402}
5403struct IAudioAdapter_vtbl
5404{
5405 struct nsISupports_vtbl nsisupports;
5406
5407 nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
5408 nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
5409
5410 nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
5411 nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
5412
5413 nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
5414 nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
5415
5416};
5417
5418struct IAudioAdapter
5419{
5420 struct IAudioAdapter_vtbl *vtbl;
5421};
5422/* End of struct IAudioAdapter Declaration */
5423
5424
5425/* Start of struct IVRDEServer Declaration */
5426#define IVRDESERVER_IID_STR "be24e0db-e1d6-4d58-b85b-21053d1511b4"
5427#define IVRDESERVER_IID { \
5428 0xbe24e0db, 0xe1d6, 0x4d58, \
5429 { 0xb8, 0x5b, 0x21, 0x05, 0x3d, 0x15, 0x11, 0xb4 } \
5430}
5431struct IVRDEServer_vtbl
5432{
5433 struct nsISupports_vtbl nsisupports;
5434
5435 nsresult (*GetEnabled)(IVRDEServer *pThis, PRBool *enabled);
5436 nsresult (*SetEnabled)(IVRDEServer *pThis, PRBool enabled);
5437
5438 nsresult (*GetAuthType)(IVRDEServer *pThis, PRUint32 *authType);
5439 nsresult (*SetAuthType)(IVRDEServer *pThis, PRUint32 authType);
5440
5441 nsresult (*GetAuthTimeout)(IVRDEServer *pThis, PRUint32 *authTimeout);
5442 nsresult (*SetAuthTimeout)(IVRDEServer *pThis, PRUint32 authTimeout);
5443
5444 nsresult (*GetAllowMultiConnection)(IVRDEServer *pThis, PRBool *allowMultiConnection);
5445 nsresult (*SetAllowMultiConnection)(IVRDEServer *pThis, PRBool allowMultiConnection);
5446
5447 nsresult (*GetReuseSingleConnection)(IVRDEServer *pThis, PRBool *reuseSingleConnection);
5448 nsresult (*SetReuseSingleConnection)(IVRDEServer *pThis, PRBool reuseSingleConnection);
5449
5450 nsresult (*GetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * *VRDEExtPack);
5451 nsresult (*SetVRDEExtPack)(IVRDEServer *pThis, PRUnichar * VRDEExtPack);
5452
5453 nsresult (*GetAuthLibrary)(IVRDEServer *pThis, PRUnichar * *AuthLibrary);
5454 nsresult (*SetAuthLibrary)(IVRDEServer *pThis, PRUnichar * AuthLibrary);
5455
5456 nsresult (*GetVRDEProperties)(IVRDEServer *pThis, PRUint32 *VRDEPropertiesSize, PRUnichar * **VRDEProperties);
5457
5458 nsresult (*SetVRDEProperty)(
5459 IVRDEServer *pThis,
5460 PRUnichar * key,
5461 PRUnichar * value
5462 );
5463
5464 nsresult (*GetVRDEProperty)(
5465 IVRDEServer *pThis,
5466 PRUnichar * key,
5467 PRUnichar * * value
5468 );
5469
5470};
5471
5472struct IVRDEServer
5473{
5474 struct IVRDEServer_vtbl *vtbl;
5475};
5476/* End of struct IVRDEServer Declaration */
5477
5478
5479/* Start of struct ISharedFolder Declaration */
5480#define ISHAREDFOLDER_IID_STR "8388da11-b559-4574-a5b7-2bd7acd5cef8"
5481#define ISHAREDFOLDER_IID { \
5482 0x8388da11, 0xb559, 0x4574, \
5483 { 0xa5, 0xb7, 0x2b, 0xd7, 0xac, 0xd5, 0xce, 0xf8 } \
5484}
5485struct ISharedFolder_vtbl
5486{
5487 struct nsISupports_vtbl nsisupports;
5488
5489 nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
5490
5491 nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
5492
5493 nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
5494
5495 nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
5496
5497 nsresult (*GetAutoMount)(ISharedFolder *pThis, PRBool *autoMount);
5498
5499 nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
5500
5501};
5502
5503struct ISharedFolder
5504{
5505 struct ISharedFolder_vtbl *vtbl;
5506};
5507/* End of struct ISharedFolder Declaration */
5508
5509
5510/* Start of struct IInternalSessionControl Declaration */
5511#define IINTERNALSESSIONCONTROL_IID_STR "a2fbf834-149d-41da-ae52-0dc3b0f032b3"
5512#define IINTERNALSESSIONCONTROL_IID { \
5513 0xa2fbf834, 0x149d, 0x41da, \
5514 { 0xae, 0x52, 0x0d, 0xc3, 0xb0, 0xf0, 0x32, 0xb3 } \
5515}
5516struct IInternalSessionControl_vtbl
5517{
5518 struct nsISupports_vtbl nsisupports;
5519
5520 nsresult (*GetPID)(
5521 IInternalSessionControl *pThis,
5522 PRUint32 * pid
5523 );
5524
5525 nsresult (*GetRemoteConsole)(
5526 IInternalSessionControl *pThis,
5527 IConsole * * console
5528 );
5529
5530 nsresult (*AssignMachine)(
5531 IInternalSessionControl *pThis,
5532 IMachine * machine
5533 );
5534
5535 nsresult (*AssignRemoteMachine)(
5536 IInternalSessionControl *pThis,
5537 IMachine * machine,
5538 IConsole * console
5539 );
5540
5541 nsresult (*UpdateMachineState)(
5542 IInternalSessionControl *pThis,
5543 PRUint32 aMachineState
5544 );
5545
5546 nsresult (*Uninitialize)(IInternalSessionControl *pThis );
5547
5548 nsresult (*OnNetworkAdapterChange)(
5549 IInternalSessionControl *pThis,
5550 INetworkAdapter * networkAdapter,
5551 PRBool changeAdapter
5552 );
5553
5554 nsresult (*OnSerialPortChange)(
5555 IInternalSessionControl *pThis,
5556 ISerialPort * serialPort
5557 );
5558
5559 nsresult (*OnParallelPortChange)(
5560 IInternalSessionControl *pThis,
5561 IParallelPort * parallelPort
5562 );
5563
5564 nsresult (*OnStorageControllerChange)(IInternalSessionControl *pThis );
5565
5566 nsresult (*OnMediumChange)(
5567 IInternalSessionControl *pThis,
5568 IMediumAttachment * mediumAttachment,
5569 PRBool force
5570 );
5571
5572 nsresult (*OnCPUChange)(
5573 IInternalSessionControl *pThis,
5574 PRUint32 cpu,
5575 PRBool add
5576 );
5577
5578 nsresult (*OnCPUExecutionCapChange)(
5579 IInternalSessionControl *pThis,
5580 PRUint32 executionCap
5581 );
5582
5583 nsresult (*OnVRDEServerChange)(
5584 IInternalSessionControl *pThis,
5585 PRBool restart
5586 );
5587
5588 nsresult (*OnUSBControllerChange)(IInternalSessionControl *pThis );
5589
5590 nsresult (*OnSharedFolderChange)(
5591 IInternalSessionControl *pThis,
5592 PRBool global
5593 );
5594
5595 nsresult (*OnUSBDeviceAttach)(
5596 IInternalSessionControl *pThis,
5597 IUSBDevice * device,
5598 IVirtualBoxErrorInfo * error,
5599 PRUint32 maskedInterfaces
5600 );
5601
5602 nsresult (*OnUSBDeviceDetach)(
5603 IInternalSessionControl *pThis,
5604 PRUnichar * id,
5605 IVirtualBoxErrorInfo * error
5606 );
5607
5608 nsresult (*OnShowWindow)(
5609 IInternalSessionControl *pThis,
5610 PRBool check,
5611 PRBool * canShow,
5612 PRInt64 * winId
5613 );
5614
5615 nsresult (*OnBandwidthGroupChange)(
5616 IInternalSessionControl *pThis,
5617 IBandwidthGroup * bandwidthGroup
5618 );
5619
5620 nsresult (*AccessGuestProperty)(
5621 IInternalSessionControl *pThis,
5622 PRUnichar * name,
5623 PRUnichar * value,
5624 PRUnichar * flags,
5625 PRBool isSetter,
5626 PRUnichar * * retValue,
5627 PRInt64 * retTimestamp,
5628 PRUnichar * * retFlags
5629 );
5630
5631 nsresult (*EnumerateGuestProperties)(
5632 IInternalSessionControl *pThis,
5633 PRUnichar * patterns,
5634 PRUint32 *keySize,
5635 PRUnichar *** key,
5636 PRUint32 *valueSize,
5637 PRUnichar *** value,
5638 PRUint32 *timestampSize,
5639 PRInt64* timestamp,
5640 PRUint32 *flagsSize,
5641 PRUnichar *** flags
5642 );
5643
5644 nsresult (*OnlineMergeMedium)(
5645 IInternalSessionControl *pThis,
5646 IMediumAttachment * mediumAttachment,
5647 PRUint32 sourceIdx,
5648 PRUint32 targetIdx,
5649 IMedium * source,
5650 IMedium * target,
5651 PRBool mergeForward,
5652 IMedium * parentForTarget,
5653 PRUint32 childrenToReparentSize,
5654 IMedium ** childrenToReparent,
5655 IProgress * progress
5656 );
5657
5658};
5659
5660struct IInternalSessionControl
5661{
5662 struct IInternalSessionControl_vtbl *vtbl;
5663};
5664/* End of struct IInternalSessionControl Declaration */
5665
5666
5667/* Start of struct ISession Declaration */
5668#define ISESSION_IID_STR "12F4DCDB-12B2-4EC1-B7CD-DDD9F6C5BF4D"
5669#define ISESSION_IID { \
5670 0x12F4DCDB, 0x12B2, 0x4EC1, \
5671 { 0xB7, 0xCD, 0xDD, 0xD9, 0xF6, 0xC5, 0xBF, 0x4D } \
5672}
5673struct ISession_vtbl
5674{
5675 struct nsISupports_vtbl nsisupports;
5676
5677 nsresult (*GetState)(ISession *pThis, PRUint32 *state);
5678
5679 nsresult (*GetType)(ISession *pThis, PRUint32 *type);
5680
5681 nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
5682
5683 nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
5684
5685 nsresult (*UnlockMachine)(ISession *pThis );
5686
5687};
5688
5689struct ISession
5690{
5691 struct ISession_vtbl *vtbl;
5692};
5693/* End of struct ISession Declaration */
5694
5695
5696/* Start of struct IStorageController Declaration */
5697#define ISTORAGECONTROLLER_IID_STR "a1556333-09b6-46d9-bfb7-fc239b7fbe1e"
5698#define ISTORAGECONTROLLER_IID { \
5699 0xa1556333, 0x09b6, 0x46d9, \
5700 { 0xbf, 0xb7, 0xfc, 0x23, 0x9b, 0x7f, 0xbe, 0x1e } \
5701}
5702struct IStorageController_vtbl
5703{
5704 struct nsISupports_vtbl nsisupports;
5705
5706 nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
5707
5708 nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
5709
5710 nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
5711
5712 nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
5713
5714 nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
5715 nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
5716
5717 nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
5718 nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
5719
5720 nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
5721
5722 nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
5723 nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
5724
5725 nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
5726 nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
5727
5728 nsresult (*GetBootable)(IStorageController *pThis, PRBool *bootable);
5729
5730 nsresult (*GetIDEEmulationPort)(
5731 IStorageController *pThis,
5732 PRInt32 devicePosition,
5733 PRInt32 * portNumber
5734 );
5735
5736 nsresult (*SetIDEEmulationPort)(
5737 IStorageController *pThis,
5738 PRInt32 devicePosition,
5739 PRInt32 portNumber
5740 );
5741
5742};
5743
5744struct IStorageController
5745{
5746 struct IStorageController_vtbl *vtbl;
5747};
5748/* End of struct IStorageController Declaration */
5749
5750
5751/* Start of struct IPerformanceMetric Declaration */
5752#define IPERFORMANCEMETRIC_IID_STR "2a1a60ae-9345-4019-ad53-d34ba41cbfe9"
5753#define IPERFORMANCEMETRIC_IID { \
5754 0x2a1a60ae, 0x9345, 0x4019, \
5755 { 0xad, 0x53, 0xd3, 0x4b, 0xa4, 0x1c, 0xbf, 0xe9 } \
5756}
5757struct IPerformanceMetric_vtbl
5758{
5759 struct nsISupports_vtbl nsisupports;
5760
5761 nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
5762
5763 nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
5764
5765 nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
5766
5767 nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
5768
5769 nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
5770
5771 nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
5772
5773 nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
5774
5775 nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
5776
5777};
5778
5779struct IPerformanceMetric
5780{
5781 struct IPerformanceMetric_vtbl *vtbl;
5782};
5783/* End of struct IPerformanceMetric Declaration */
5784
5785
5786/* Start of struct IPerformanceCollector Declaration */
5787#define IPERFORMANCECOLLECTOR_IID_STR "e22e1acb-ac4a-43bb-a31c-17321659b0c6"
5788#define IPERFORMANCECOLLECTOR_IID { \
5789 0xe22e1acb, 0xac4a, 0x43bb, \
5790 { 0xa3, 0x1c, 0x17, 0x32, 0x16, 0x59, 0xb0, 0xc6 } \
5791}
5792struct IPerformanceCollector_vtbl
5793{
5794 struct nsISupports_vtbl nsisupports;
5795
5796 nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
5797
5798 nsresult (*GetMetrics)(
5799 IPerformanceCollector *pThis,
5800 PRUint32 metricNamesSize,
5801 PRUnichar ** metricNames,
5802 PRUint32 objectsSize,
5803 nsISupports ** objects,
5804 PRUint32 *metricsSize,
5805 IPerformanceMetric *** metrics
5806 );
5807
5808 nsresult (*SetupMetrics)(
5809 IPerformanceCollector *pThis,
5810 PRUint32 metricNamesSize,
5811 PRUnichar ** metricNames,
5812 PRUint32 objectsSize,
5813 nsISupports ** objects,
5814 PRUint32 period,
5815 PRUint32 count,
5816 PRUint32 *affectedMetricsSize,
5817 IPerformanceMetric *** affectedMetrics
5818 );
5819
5820 nsresult (*EnableMetrics)(
5821 IPerformanceCollector *pThis,
5822 PRUint32 metricNamesSize,
5823 PRUnichar ** metricNames,
5824 PRUint32 objectsSize,
5825 nsISupports ** objects,
5826 PRUint32 *affectedMetricsSize,
5827 IPerformanceMetric *** affectedMetrics
5828 );
5829
5830 nsresult (*DisableMetrics)(
5831 IPerformanceCollector *pThis,
5832 PRUint32 metricNamesSize,
5833 PRUnichar ** metricNames,
5834 PRUint32 objectsSize,
5835 nsISupports ** objects,
5836 PRUint32 *affectedMetricsSize,
5837 IPerformanceMetric *** affectedMetrics
5838 );
5839
5840 nsresult (*QueryMetricsData)(
5841 IPerformanceCollector *pThis,
5842 PRUint32 metricNamesSize,
5843 PRUnichar ** metricNames,
5844 PRUint32 objectsSize,
5845 nsISupports ** objects,
5846 PRUint32 *returnMetricNamesSize,
5847 PRUnichar *** returnMetricNames,
5848 PRUint32 *returnObjectsSize,
5849 nsISupports ** returnObjects,
5850 PRUint32 *returnUnitsSize,
5851 PRUnichar *** returnUnits,
5852 PRUint32 *returnScalesSize,
5853 PRUint32* returnScales,
5854 PRUint32 *returnSequenceNumbersSize,
5855 PRUint32* returnSequenceNumbers,
5856 PRUint32 *returnDataIndicesSize,
5857 PRUint32* returnDataIndices,
5858 PRUint32 *returnDataLengthsSize,
5859 PRUint32* returnDataLengths,
5860 PRUint32 *returnDataSize,
5861 PRInt32** returnData
5862 );
5863
5864};
5865
5866struct IPerformanceCollector
5867{
5868 struct IPerformanceCollector_vtbl *vtbl;
5869};
5870/* End of struct IPerformanceCollector Declaration */
5871
5872
5873/* Start of struct INATEngine Declaration */
5874#define INATENGINE_IID_STR "4b286616-eb03-11de-b0fb-1701eca42246"
5875#define INATENGINE_IID { \
5876 0x4b286616, 0xeb03, 0x11de, \
5877 { 0xb0, 0xfb, 0x17, 0x01, 0xec, 0xa4, 0x22, 0x46 } \
5878}
5879struct INATEngine_vtbl
5880{
5881 struct nsISupports_vtbl nsisupports;
5882
5883 nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
5884 nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
5885
5886 nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
5887 nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
5888
5889 nsresult (*GetTftpPrefix)(INATEngine *pThis, PRUnichar * *tftpPrefix);
5890 nsresult (*SetTftpPrefix)(INATEngine *pThis, PRUnichar * tftpPrefix);
5891
5892 nsresult (*GetTftpBootFile)(INATEngine *pThis, PRUnichar * *tftpBootFile);
5893 nsresult (*SetTftpBootFile)(INATEngine *pThis, PRUnichar * tftpBootFile);
5894
5895 nsresult (*GetTftpNextServer)(INATEngine *pThis, PRUnichar * *tftpNextServer);
5896 nsresult (*SetTftpNextServer)(INATEngine *pThis, PRUnichar * tftpNextServer);
5897
5898 nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
5899 nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
5900
5901 nsresult (*GetDnsPassDomain)(INATEngine *pThis, PRBool *dnsPassDomain);
5902 nsresult (*SetDnsPassDomain)(INATEngine *pThis, PRBool dnsPassDomain);
5903
5904 nsresult (*GetDnsProxy)(INATEngine *pThis, PRBool *dnsProxy);
5905 nsresult (*SetDnsProxy)(INATEngine *pThis, PRBool dnsProxy);
5906
5907 nsresult (*GetDnsUseHostResolver)(INATEngine *pThis, PRBool *dnsUseHostResolver);
5908 nsresult (*SetDnsUseHostResolver)(INATEngine *pThis, PRBool dnsUseHostResolver);
5909
5910 nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
5911
5912 nsresult (*SetNetworkSettings)(
5913 INATEngine *pThis,
5914 PRUint32 mtu,
5915 PRUint32 sockSnd,
5916 PRUint32 sockRcv,
5917 PRUint32 TcpWndSnd,
5918 PRUint32 TcpWndRcv
5919 );
5920
5921 nsresult (*GetNetworkSettings)(
5922 INATEngine *pThis,
5923 PRUint32 * mtu,
5924 PRUint32 * sockSnd,
5925 PRUint32 * sockRcv,
5926 PRUint32 * TcpWndSnd,
5927 PRUint32 * TcpWndRcv
5928 );
5929
5930 nsresult (*AddRedirect)(
5931 INATEngine *pThis,
5932 PRUnichar * name,
5933 PRUint32 proto,
5934 PRUnichar * hostIp,
5935 PRUint16 hostPort,
5936 PRUnichar * guestIp,
5937 PRUint16 guestPort
5938 );
5939
5940 nsresult (*RemoveRedirect)(
5941 INATEngine *pThis,
5942 PRUnichar * name
5943 );
5944
5945};
5946
5947struct INATEngine
5948{
5949 struct INATEngine_vtbl *vtbl;
5950};
5951/* End of struct INATEngine Declaration */
5952
5953
5954/* Start of struct IExtPackPlugIn Declaration */
5955#define IEXTPACKPLUGIN_IID_STR "58000040-e718-4746-bbce-4b86d96da461"
5956#define IEXTPACKPLUGIN_IID { \
5957 0x58000040, 0xe718, 0x4746, \
5958 { 0xbb, 0xce, 0x4b, 0x86, 0xd9, 0x6d, 0xa4, 0x61 } \
5959}
5960struct IExtPackPlugIn_vtbl
5961{
5962 struct nsISupports_vtbl nsisupports;
5963
5964 nsresult (*GetName)(IExtPackPlugIn *pThis, PRUnichar * *name);
5965
5966 nsresult (*GetDescription)(IExtPackPlugIn *pThis, PRUnichar * *description);
5967
5968 nsresult (*GetFrontend)(IExtPackPlugIn *pThis, PRUnichar * *frontend);
5969
5970 nsresult (*GetModulePath)(IExtPackPlugIn *pThis, PRUnichar * *modulePath);
5971
5972};
5973
5974struct IExtPackPlugIn
5975{
5976 struct IExtPackPlugIn_vtbl *vtbl;
5977};
5978/* End of struct IExtPackPlugIn Declaration */
5979
5980
5981/* Start of struct IExtPackBase Declaration */
5982#define IEXTPACKBASE_IID_STR "5ffb0b64-0ad6-467d-af62-1157e7dc3c99"
5983#define IEXTPACKBASE_IID { \
5984 0x5ffb0b64, 0x0ad6, 0x467d, \
5985 { 0xaf, 0x62, 0x11, 0x57, 0xe7, 0xdc, 0x3c, 0x99 } \
5986}
5987struct IExtPackBase_vtbl
5988{
5989 struct nsISupports_vtbl nsisupports;
5990
5991 nsresult (*GetName)(IExtPackBase *pThis, PRUnichar * *name);
5992
5993 nsresult (*GetDescription)(IExtPackBase *pThis, PRUnichar * *description);
5994
5995 nsresult (*GetVersion)(IExtPackBase *pThis, PRUnichar * *version);
5996
5997 nsresult (*GetRevision)(IExtPackBase *pThis, PRUint32 *revision);
5998
5999 nsresult (*GetVRDEModule)(IExtPackBase *pThis, PRUnichar * *VRDEModule);
6000
6001 nsresult (*GetPlugIns)(IExtPackBase *pThis, PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns);
6002
6003 nsresult (*GetUsable)(IExtPackBase *pThis, PRBool *usable);
6004
6005 nsresult (*GetWhyUnusable)(IExtPackBase *pThis, PRUnichar * *whyUnusable);
6006
6007 nsresult (*GetShowLicense)(IExtPackBase *pThis, PRBool *showLicense);
6008
6009 nsresult (*GetLicense)(IExtPackBase *pThis, PRUnichar * *license);
6010
6011 nsresult (*QueryLicense)(
6012 IExtPackBase *pThis,
6013 PRUnichar * preferredLocale,
6014 PRUnichar * preferredLanguage,
6015 PRUnichar * format,
6016 PRUnichar * * licenseText
6017 );
6018
6019};
6020
6021struct IExtPackBase
6022{
6023 struct IExtPackBase_vtbl *vtbl;
6024};
6025/* End of struct IExtPackBase Declaration */
6026
6027
6028/* Start of struct IExtPack Declaration */
6029#define IEXTPACK_IID_STR "431685da-3618-4ebc-b038-833ba829b4b2"
6030#define IEXTPACK_IID { \
6031 0x431685da, 0x3618, 0x4ebc, \
6032 { 0xb0, 0x38, 0x83, 0x3b, 0xa8, 0x29, 0xb4, 0xb2 } \
6033}
6034struct IExtPack_vtbl
6035{
6036 struct IExtPackBase_vtbl iextpackbase;
6037
6038 nsresult (*QueryObject)(
6039 IExtPack *pThis,
6040 PRUnichar * objUuid,
6041 nsISupports * * returnInterface
6042 );
6043
6044};
6045
6046struct IExtPack
6047{
6048 struct IExtPack_vtbl *vtbl;
6049};
6050/* End of struct IExtPack Declaration */
6051
6052
6053/* Start of struct IExtPackFile Declaration */
6054#define IEXTPACKFILE_IID_STR "b6b49f55-efcc-4f08-b486-56e8d8afb10b"
6055#define IEXTPACKFILE_IID { \
6056 0xb6b49f55, 0xefcc, 0x4f08, \
6057 { 0xb4, 0x86, 0x56, 0xe8, 0xd8, 0xaf, 0xb1, 0x0b } \
6058}
6059struct IExtPackFile_vtbl
6060{
6061 struct IExtPackBase_vtbl iextpackbase;
6062
6063 nsresult (*GetFilePath)(IExtPackFile *pThis, PRUnichar * *filePath);
6064
6065 nsresult (*Install)(
6066 IExtPackFile *pThis,
6067 PRBool replace,
6068 PRUnichar * displayInfo,
6069 IProgress * * progess
6070 );
6071
6072};
6073
6074struct IExtPackFile
6075{
6076 struct IExtPackFile_vtbl *vtbl;
6077};
6078/* End of struct IExtPackFile Declaration */
6079
6080
6081/* Start of struct IExtPackManager Declaration */
6082#define IEXTPACKMANAGER_IID_STR "2451b1ba-ab1c-42fb-b453-c58433bea8c7"
6083#define IEXTPACKMANAGER_IID { \
6084 0x2451b1ba, 0xab1c, 0x42fb, \
6085 { 0xb4, 0x53, 0xc5, 0x84, 0x33, 0xbe, 0xa8, 0xc7 } \
6086}
6087struct IExtPackManager_vtbl
6088{
6089 struct nsISupports_vtbl nsisupports;
6090
6091 nsresult (*GetInstalledExtPacks)(IExtPackManager *pThis, PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks);
6092
6093 nsresult (*Find)(
6094 IExtPackManager *pThis,
6095 PRUnichar * name,
6096 IExtPack * * returnData
6097 );
6098
6099 nsresult (*OpenExtPackFile)(
6100 IExtPackManager *pThis,
6101 PRUnichar * path,
6102 IExtPackFile * * file
6103 );
6104
6105 nsresult (*Uninstall)(
6106 IExtPackManager *pThis,
6107 PRUnichar * name,
6108 PRBool forcedRemoval,
6109 PRUnichar * displayInfo,
6110 IProgress * * progess
6111 );
6112
6113 nsresult (*Cleanup)(IExtPackManager *pThis );
6114
6115 nsresult (*QueryAllPlugInsForFrontend)(
6116 IExtPackManager *pThis,
6117 PRUnichar * frontendName,
6118 PRUint32 *plugInModulesSize,
6119 PRUnichar *** plugInModules
6120 );
6121
6122 nsresult (*IsExtPackUsable)(
6123 IExtPackManager *pThis,
6124 PRUnichar * name,
6125 PRBool * usable
6126 );
6127
6128};
6129
6130struct IExtPackManager
6131{
6132 struct IExtPackManager_vtbl *vtbl;
6133};
6134/* End of struct IExtPackManager Declaration */
6135
6136
6137/* Start of struct IBandwidthGroup Declaration */
6138#define IBANDWIDTHGROUP_IID_STR "badea2d7-0261-4146-89f0-6a57cc34833d"
6139#define IBANDWIDTHGROUP_IID { \
6140 0xbadea2d7, 0x0261, 0x4146, \
6141 { 0x89, 0xf0, 0x6a, 0x57, 0xcc, 0x34, 0x83, 0x3d } \
6142}
6143struct IBandwidthGroup_vtbl
6144{
6145 struct nsISupports_vtbl nsisupports;
6146
6147 nsresult (*GetName)(IBandwidthGroup *pThis, PRUnichar * *name);
6148
6149 nsresult (*GetType)(IBandwidthGroup *pThis, PRUint32 *type);
6150
6151 nsresult (*GetReference)(IBandwidthGroup *pThis, PRUint32 *reference);
6152
6153 nsresult (*GetMaxMbPerSec)(IBandwidthGroup *pThis, PRUint32 *maxMbPerSec);
6154 nsresult (*SetMaxMbPerSec)(IBandwidthGroup *pThis, PRUint32 maxMbPerSec);
6155
6156};
6157
6158struct IBandwidthGroup
6159{
6160 struct IBandwidthGroup_vtbl *vtbl;
6161};
6162/* End of struct IBandwidthGroup Declaration */
6163
6164
6165/* Start of struct IBandwidthControl Declaration */
6166#define IBANDWIDTHCONTROL_IID_STR "d0a24db0-f756-11df-98cf-0800200c9a66"
6167#define IBANDWIDTHCONTROL_IID { \
6168 0xd0a24db0, 0xf756, 0x11df, \
6169 { 0x98, 0xcf, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 } \
6170}
6171struct IBandwidthControl_vtbl
6172{
6173 struct nsISupports_vtbl nsisupports;
6174
6175 nsresult (*GetNumGroups)(IBandwidthControl *pThis, PRUint32 *numGroups);
6176
6177 nsresult (*CreateBandwidthGroup)(
6178 IBandwidthControl *pThis,
6179 PRUnichar * name,
6180 PRUint32 type,
6181 PRUint32 maxMbPerSec
6182 );
6183
6184 nsresult (*DeleteBandwidthGroup)(
6185 IBandwidthControl *pThis,
6186 PRUnichar * name
6187 );
6188
6189 nsresult (*GetBandwidthGroup)(
6190 IBandwidthControl *pThis,
6191 PRUnichar * name,
6192 IBandwidthGroup * * bandwidthGroup
6193 );
6194
6195 nsresult (*GetAllBandwidthGroups)(
6196 IBandwidthControl *pThis,
6197 PRUint32 *bandwidthGroupsSize,
6198 IBandwidthGroup *** bandwidthGroups
6199 );
6200
6201};
6202
6203struct IBandwidthControl
6204{
6205 struct IBandwidthControl_vtbl *vtbl;
6206};
6207/* End of struct IBandwidthControl Declaration */
6208
6209
6210/* Start of struct IVirtualBoxClient Declaration */
6211#define IVIRTUALBOXCLIENT_IID_STR "5fe0bd48-1181-40d1-991f-3b02f269a823"
6212#define IVIRTUALBOXCLIENT_IID { \
6213 0x5fe0bd48, 0x1181, 0x40d1, \
6214 { 0x99, 0x1f, 0x3b, 0x02, 0xf2, 0x69, 0xa8, 0x23 } \
6215}
6216struct IVirtualBoxClient_vtbl
6217{
6218 struct nsISupports_vtbl nsisupports;
6219
6220 nsresult (*GetVirtualBox)(IVirtualBoxClient *pThis, IVirtualBox * *virtualBox);
6221
6222 nsresult (*GetSession)(IVirtualBoxClient *pThis, ISession * *session);
6223
6224 nsresult (*GetEventSource)(IVirtualBoxClient *pThis, IEventSource * *eventSource);
6225
6226};
6227
6228struct IVirtualBoxClient
6229{
6230 struct IVirtualBoxClient_vtbl *vtbl;
6231};
6232/* End of struct IVirtualBoxClient Declaration */
6233
6234
6235/* Start of struct IEventSource Declaration */
6236#define IEVENTSOURCE_IID_STR "9b6e1aee-35f3-4f4d-b5bb-ed0ecefd8538"
6237#define IEVENTSOURCE_IID { \
6238 0x9b6e1aee, 0x35f3, 0x4f4d, \
6239 { 0xb5, 0xbb, 0xed, 0x0e, 0xce, 0xfd, 0x85, 0x38 } \
6240}
6241struct IEventSource_vtbl
6242{
6243 struct nsISupports_vtbl nsisupports;
6244
6245 nsresult (*CreateListener)(
6246 IEventSource *pThis,
6247 IEventListener * * listener
6248 );
6249
6250 nsresult (*CreateAggregator)(
6251 IEventSource *pThis,
6252 PRUint32 subordinatesSize,
6253 IEventSource ** subordinates,
6254 IEventSource * * result
6255 );
6256
6257 nsresult (*RegisterListener)(
6258 IEventSource *pThis,
6259 IEventListener * listener,
6260 PRUint32 interestingSize,
6261 PRUint32* interesting,
6262 PRBool active
6263 );
6264
6265 nsresult (*UnregisterListener)(
6266 IEventSource *pThis,
6267 IEventListener * listener
6268 );
6269
6270 nsresult (*FireEvent)(
6271 IEventSource *pThis,
6272 IEvent * event,
6273 PRInt32 timeout,
6274 PRBool * result
6275 );
6276
6277 nsresult (*GetEvent)(
6278 IEventSource *pThis,
6279 IEventListener * listener,
6280 PRInt32 timeout,
6281 IEvent * * event
6282 );
6283
6284 nsresult (*EventProcessed)(
6285 IEventSource *pThis,
6286 IEventListener * listener,
6287 IEvent * event
6288 );
6289
6290};
6291
6292struct IEventSource
6293{
6294 struct IEventSource_vtbl *vtbl;
6295};
6296/* End of struct IEventSource Declaration */
6297
6298
6299/* Start of struct IEventListener Declaration */
6300#define IEVENTLISTENER_IID_STR "67099191-32e7-4f6c-85ee-422304c71b90"
6301#define IEVENTLISTENER_IID { \
6302 0x67099191, 0x32e7, 0x4f6c, \
6303 { 0x85, 0xee, 0x42, 0x23, 0x04, 0xc7, 0x1b, 0x90 } \
6304}
6305struct IEventListener_vtbl
6306{
6307 struct nsISupports_vtbl nsisupports;
6308
6309 nsresult (*HandleEvent)(
6310 IEventListener *pThis,
6311 IEvent * event
6312 );
6313
6314};
6315
6316struct IEventListener
6317{
6318 struct IEventListener_vtbl *vtbl;
6319};
6320/* End of struct IEventListener Declaration */
6321
6322
6323/* Start of struct IEvent Declaration */
6324#define IEVENT_IID_STR "0ca2adba-8f30-401b-a8cd-fe31dbe839c0"
6325#define IEVENT_IID { \
6326 0x0ca2adba, 0x8f30, 0x401b, \
6327 { 0xa8, 0xcd, 0xfe, 0x31, 0xdb, 0xe8, 0x39, 0xc0 } \
6328}
6329struct IEvent_vtbl
6330{
6331 struct nsISupports_vtbl nsisupports;
6332
6333 nsresult (*GetType)(IEvent *pThis, PRUint32 *type);
6334
6335 nsresult (*GetSource)(IEvent *pThis, IEventSource * *source);
6336
6337 nsresult (*GetWaitable)(IEvent *pThis, PRBool *waitable);
6338
6339 nsresult (*SetProcessed)(IEvent *pThis );
6340
6341 nsresult (*WaitProcessed)(
6342 IEvent *pThis,
6343 PRInt32 timeout,
6344 PRBool * result
6345 );
6346
6347};
6348
6349struct IEvent
6350{
6351 struct IEvent_vtbl *vtbl;
6352};
6353/* End of struct IEvent Declaration */
6354
6355
6356/* Start of struct IReusableEvent Declaration */
6357#define IREUSABLEEVENT_IID_STR "69bfb134-80f6-4266-8e20-16371f68fa25"
6358#define IREUSABLEEVENT_IID { \
6359 0x69bfb134, 0x80f6, 0x4266, \
6360 { 0x8e, 0x20, 0x16, 0x37, 0x1f, 0x68, 0xfa, 0x25 } \
6361}
6362struct IReusableEvent_vtbl
6363{
6364 struct IEvent_vtbl ievent;
6365
6366 nsresult (*GetGeneration)(IReusableEvent *pThis, PRUint32 *generation);
6367
6368 nsresult (*Reuse)(IReusableEvent *pThis );
6369
6370};
6371
6372struct IReusableEvent
6373{
6374 struct IReusableEvent_vtbl *vtbl;
6375};
6376/* End of struct IReusableEvent Declaration */
6377
6378
6379/* Start of struct IMachineEvent Declaration */
6380#define IMACHINEEVENT_IID_STR "92ed7b1a-0d96-40ed-ae46-a564d484325e"
6381#define IMACHINEEVENT_IID { \
6382 0x92ed7b1a, 0x0d96, 0x40ed, \
6383 { 0xae, 0x46, 0xa5, 0x64, 0xd4, 0x84, 0x32, 0x5e } \
6384}
6385struct IMachineEvent_vtbl
6386{
6387 struct IEvent_vtbl ievent;
6388
6389 nsresult (*GetMachineId)(IMachineEvent *pThis, PRUnichar * *machineId);
6390
6391};
6392
6393struct IMachineEvent
6394{
6395 struct IMachineEvent_vtbl *vtbl;
6396};
6397/* End of struct IMachineEvent Declaration */
6398
6399
6400/* Start of struct IMachineStateChangedEvent Declaration */
6401#define IMACHINESTATECHANGEDEVENT_IID_STR "5748F794-48DF-438D-85EB-98FFD70D18C9"
6402#define IMACHINESTATECHANGEDEVENT_IID { \
6403 0x5748F794, 0x48DF, 0x438D, \
6404 { 0x85, 0xEB, 0x98, 0xFF, 0xD7, 0x0D, 0x18, 0xC9 } \
6405}
6406struct IMachineStateChangedEvent_vtbl
6407{
6408 struct IMachineEvent_vtbl imachineevent;
6409
6410 nsresult (*GetState)(IMachineStateChangedEvent *pThis, PRUint32 *state);
6411
6412};
6413
6414struct IMachineStateChangedEvent
6415{
6416 struct IMachineStateChangedEvent_vtbl *vtbl;
6417};
6418/* End of struct IMachineStateChangedEvent Declaration */
6419
6420
6421/* Start of struct IMachineDataChangedEvent Declaration */
6422#define IMACHINEDATACHANGEDEVENT_IID_STR "6AA70A6C-0DCA-4810-8C5C-457B278E3D49"
6423#define IMACHINEDATACHANGEDEVENT_IID { \
6424 0x6AA70A6C, 0x0DCA, 0x4810, \
6425 { 0x8C, 0x5C, 0x45, 0x7B, 0x27, 0x8E, 0x3D, 0x49 } \
6426}
6427struct IMachineDataChangedEvent_vtbl
6428{
6429 struct IMachineEvent_vtbl imachineevent;
6430
6431};
6432
6433struct IMachineDataChangedEvent
6434{
6435 struct IMachineDataChangedEvent_vtbl *vtbl;
6436};
6437/* End of struct IMachineDataChangedEvent Declaration */
6438
6439
6440/* Start of struct IMediumRegisteredEvent Declaration */
6441#define IMEDIUMREGISTEREDEVENT_IID_STR "53fac49a-b7f1-4a5a-a4ef-a11dd9c2a458"
6442#define IMEDIUMREGISTEREDEVENT_IID { \
6443 0x53fac49a, 0xb7f1, 0x4a5a, \
6444 { 0xa4, 0xef, 0xa1, 0x1d, 0xd9, 0xc2, 0xa4, 0x58 } \
6445}
6446struct IMediumRegisteredEvent_vtbl
6447{
6448 struct IEvent_vtbl ievent;
6449
6450 nsresult (*GetMediumId)(IMediumRegisteredEvent *pThis, PRUnichar * *mediumId);
6451
6452 nsresult (*GetMediumType)(IMediumRegisteredEvent *pThis, PRUint32 *mediumType);
6453
6454 nsresult (*GetRegistered)(IMediumRegisteredEvent *pThis, PRBool *registered);
6455
6456};
6457
6458struct IMediumRegisteredEvent
6459{
6460 struct IMediumRegisteredEvent_vtbl *vtbl;
6461};
6462/* End of struct IMediumRegisteredEvent Declaration */
6463
6464
6465/* Start of struct IMachineRegisteredEvent Declaration */
6466#define IMACHINEREGISTEREDEVENT_IID_STR "c354a762-3ff2-4f2e-8f09-07382ee25088"
6467#define IMACHINEREGISTEREDEVENT_IID { \
6468 0xc354a762, 0x3ff2, 0x4f2e, \
6469 { 0x8f, 0x09, 0x07, 0x38, 0x2e, 0xe2, 0x50, 0x88 } \
6470}
6471struct IMachineRegisteredEvent_vtbl
6472{
6473 struct IMachineEvent_vtbl imachineevent;
6474
6475 nsresult (*GetRegistered)(IMachineRegisteredEvent *pThis, PRBool *registered);
6476
6477};
6478
6479struct IMachineRegisteredEvent
6480{
6481 struct IMachineRegisteredEvent_vtbl *vtbl;
6482};
6483/* End of struct IMachineRegisteredEvent Declaration */
6484
6485
6486/* Start of struct ISessionStateChangedEvent Declaration */
6487#define ISESSIONSTATECHANGEDEVENT_IID_STR "714a3eef-799a-4489-86cd-fe8e45b2ff8e"
6488#define ISESSIONSTATECHANGEDEVENT_IID { \
6489 0x714a3eef, 0x799a, 0x4489, \
6490 { 0x86, 0xcd, 0xfe, 0x8e, 0x45, 0xb2, 0xff, 0x8e } \
6491}
6492struct ISessionStateChangedEvent_vtbl
6493{
6494 struct IMachineEvent_vtbl imachineevent;
6495
6496 nsresult (*GetState)(ISessionStateChangedEvent *pThis, PRUint32 *state);
6497
6498};
6499
6500struct ISessionStateChangedEvent
6501{
6502 struct ISessionStateChangedEvent_vtbl *vtbl;
6503};
6504/* End of struct ISessionStateChangedEvent Declaration */
6505
6506
6507/* Start of struct IGuestPropertyChangedEvent Declaration */
6508#define IGUESTPROPERTYCHANGEDEVENT_IID_STR "3f63597a-26f1-4edb-8dd2-6bddd0912368"
6509#define IGUESTPROPERTYCHANGEDEVENT_IID { \
6510 0x3f63597a, 0x26f1, 0x4edb, \
6511 { 0x8d, 0xd2, 0x6b, 0xdd, 0xd0, 0x91, 0x23, 0x68 } \
6512}
6513struct IGuestPropertyChangedEvent_vtbl
6514{
6515 struct IMachineEvent_vtbl imachineevent;
6516
6517 nsresult (*GetName)(IGuestPropertyChangedEvent *pThis, PRUnichar * *name);
6518
6519 nsresult (*GetValue)(IGuestPropertyChangedEvent *pThis, PRUnichar * *value);
6520
6521 nsresult (*GetFlags)(IGuestPropertyChangedEvent *pThis, PRUnichar * *flags);
6522
6523};
6524
6525struct IGuestPropertyChangedEvent
6526{
6527 struct IGuestPropertyChangedEvent_vtbl *vtbl;
6528};
6529/* End of struct IGuestPropertyChangedEvent Declaration */
6530
6531
6532/* Start of struct ISnapshotEvent Declaration */
6533#define ISNAPSHOTEVENT_IID_STR "21637b0e-34b8-42d3-acfb-7e96daf77c22"
6534#define ISNAPSHOTEVENT_IID { \
6535 0x21637b0e, 0x34b8, 0x42d3, \
6536 { 0xac, 0xfb, 0x7e, 0x96, 0xda, 0xf7, 0x7c, 0x22 } \
6537}
6538struct ISnapshotEvent_vtbl
6539{
6540 struct IMachineEvent_vtbl imachineevent;
6541
6542 nsresult (*GetSnapshotId)(ISnapshotEvent *pThis, PRUnichar * *snapshotId);
6543
6544};
6545
6546struct ISnapshotEvent
6547{
6548 struct ISnapshotEvent_vtbl *vtbl;
6549};
6550/* End of struct ISnapshotEvent Declaration */
6551
6552
6553/* Start of struct ISnapshotTakenEvent Declaration */
6554#define ISNAPSHOTTAKENEVENT_IID_STR "d27c0b3d-6038-422c-b45e-6d4a0503d9f1"
6555#define ISNAPSHOTTAKENEVENT_IID { \
6556 0xd27c0b3d, 0x6038, 0x422c, \
6557 { 0xb4, 0x5e, 0x6d, 0x4a, 0x05, 0x03, 0xd9, 0xf1 } \
6558}
6559struct ISnapshotTakenEvent_vtbl
6560{
6561 struct ISnapshotEvent_vtbl isnapshotevent;
6562
6563};
6564
6565struct ISnapshotTakenEvent
6566{
6567 struct ISnapshotTakenEvent_vtbl *vtbl;
6568};
6569/* End of struct ISnapshotTakenEvent Declaration */
6570
6571
6572/* Start of struct ISnapshotDeletedEvent Declaration */
6573#define ISNAPSHOTDELETEDEVENT_IID_STR "c48f3401-4a9e-43f4-b7a7-54bd285e22f4"
6574#define ISNAPSHOTDELETEDEVENT_IID { \
6575 0xc48f3401, 0x4a9e, 0x43f4, \
6576 { 0xb7, 0xa7, 0x54, 0xbd, 0x28, 0x5e, 0x22, 0xf4 } \
6577}
6578struct ISnapshotDeletedEvent_vtbl
6579{
6580 struct ISnapshotEvent_vtbl isnapshotevent;
6581
6582};
6583
6584struct ISnapshotDeletedEvent
6585{
6586 struct ISnapshotDeletedEvent_vtbl *vtbl;
6587};
6588/* End of struct ISnapshotDeletedEvent Declaration */
6589
6590
6591/* Start of struct ISnapshotChangedEvent Declaration */
6592#define ISNAPSHOTCHANGEDEVENT_IID_STR "07541941-8079-447a-a33e-47a69c7980db"
6593#define ISNAPSHOTCHANGEDEVENT_IID { \
6594 0x07541941, 0x8079, 0x447a, \
6595 { 0xa3, 0x3e, 0x47, 0xa6, 0x9c, 0x79, 0x80, 0xdb } \
6596}
6597struct ISnapshotChangedEvent_vtbl
6598{
6599 struct ISnapshotEvent_vtbl isnapshotevent;
6600
6601};
6602
6603struct ISnapshotChangedEvent
6604{
6605 struct ISnapshotChangedEvent_vtbl *vtbl;
6606};
6607/* End of struct ISnapshotChangedEvent Declaration */
6608
6609
6610/* Start of struct IMousePointerShapeChangedEvent Declaration */
6611#define IMOUSEPOINTERSHAPECHANGEDEVENT_IID_STR "a6dcf6e8-416b-4181-8c4a-45ec95177aef"
6612#define IMOUSEPOINTERSHAPECHANGEDEVENT_IID { \
6613 0xa6dcf6e8, 0x416b, 0x4181, \
6614 { 0x8c, 0x4a, 0x45, 0xec, 0x95, 0x17, 0x7a, 0xef } \
6615}
6616struct IMousePointerShapeChangedEvent_vtbl
6617{
6618 struct IEvent_vtbl ievent;
6619
6620 nsresult (*GetVisible)(IMousePointerShapeChangedEvent *pThis, PRBool *visible);
6621
6622 nsresult (*GetAlpha)(IMousePointerShapeChangedEvent *pThis, PRBool *alpha);
6623
6624 nsresult (*GetXhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *xhot);
6625
6626 nsresult (*GetYhot)(IMousePointerShapeChangedEvent *pThis, PRUint32 *yhot);
6627
6628 nsresult (*GetWidth)(IMousePointerShapeChangedEvent *pThis, PRUint32 *width);
6629
6630 nsresult (*GetHeight)(IMousePointerShapeChangedEvent *pThis, PRUint32 *height);
6631
6632 nsresult (*GetShape)(IMousePointerShapeChangedEvent *pThis, PRUint32 *shapeSize, PRUint8 **shape);
6633
6634};
6635
6636struct IMousePointerShapeChangedEvent
6637{
6638 struct IMousePointerShapeChangedEvent_vtbl *vtbl;
6639};
6640/* End of struct IMousePointerShapeChangedEvent Declaration */
6641
6642
6643/* Start of struct IMouseCapabilityChangedEvent Declaration */
6644#define IMOUSECAPABILITYCHANGEDEVENT_IID_STR "d633ad48-820c-4207-b46c-6bd3596640d5"
6645#define IMOUSECAPABILITYCHANGEDEVENT_IID { \
6646 0xd633ad48, 0x820c, 0x4207, \
6647 { 0xb4, 0x6c, 0x6b, 0xd3, 0x59, 0x66, 0x40, 0xd5 } \
6648}
6649struct IMouseCapabilityChangedEvent_vtbl
6650{
6651 struct IEvent_vtbl ievent;
6652
6653 nsresult (*GetSupportsAbsolute)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsAbsolute);
6654
6655 nsresult (*GetSupportsRelative)(IMouseCapabilityChangedEvent *pThis, PRBool *supportsRelative);
6656
6657 nsresult (*GetNeedsHostCursor)(IMouseCapabilityChangedEvent *pThis, PRBool *needsHostCursor);
6658
6659};
6660
6661struct IMouseCapabilityChangedEvent
6662{
6663 struct IMouseCapabilityChangedEvent_vtbl *vtbl;
6664};
6665/* End of struct IMouseCapabilityChangedEvent Declaration */
6666
6667
6668/* Start of struct IKeyboardLedsChangedEvent Declaration */
6669#define IKEYBOARDLEDSCHANGEDEVENT_IID_STR "6DDEF35E-4737-457B-99FC-BC52C851A44F"
6670#define IKEYBOARDLEDSCHANGEDEVENT_IID { \
6671 0x6DDEF35E, 0x4737, 0x457B, \
6672 { 0x99, 0xFC, 0xBC, 0x52, 0xC8, 0x51, 0xA4, 0x4F } \
6673}
6674struct IKeyboardLedsChangedEvent_vtbl
6675{
6676 struct IEvent_vtbl ievent;
6677
6678 nsresult (*GetNumLock)(IKeyboardLedsChangedEvent *pThis, PRBool *numLock);
6679
6680 nsresult (*GetCapsLock)(IKeyboardLedsChangedEvent *pThis, PRBool *capsLock);
6681
6682 nsresult (*GetScrollLock)(IKeyboardLedsChangedEvent *pThis, PRBool *scrollLock);
6683
6684};
6685
6686struct IKeyboardLedsChangedEvent
6687{
6688 struct IKeyboardLedsChangedEvent_vtbl *vtbl;
6689};
6690/* End of struct IKeyboardLedsChangedEvent Declaration */
6691
6692
6693/* Start of struct IStateChangedEvent Declaration */
6694#define ISTATECHANGEDEVENT_IID_STR "4376693C-CF37-453B-9289-3B0F521CAF27"
6695#define ISTATECHANGEDEVENT_IID { \
6696 0x4376693C, 0xCF37, 0x453B, \
6697 { 0x92, 0x89, 0x3B, 0x0F, 0x52, 0x1C, 0xAF, 0x27 } \
6698}
6699struct IStateChangedEvent_vtbl
6700{
6701 struct IEvent_vtbl ievent;
6702
6703 nsresult (*GetState)(IStateChangedEvent *pThis, PRUint32 *state);
6704
6705};
6706
6707struct IStateChangedEvent
6708{
6709 struct IStateChangedEvent_vtbl *vtbl;
6710};
6711/* End of struct IStateChangedEvent Declaration */
6712
6713
6714/* Start of struct IAdditionsStateChangedEvent Declaration */
6715#define IADDITIONSSTATECHANGEDEVENT_IID_STR "D70F7915-DA7C-44C8-A7AC-9F173490446A"
6716#define IADDITIONSSTATECHANGEDEVENT_IID { \
6717 0xD70F7915, 0xDA7C, 0x44C8, \
6718 { 0xA7, 0xAC, 0x9F, 0x17, 0x34, 0x90, 0x44, 0x6A } \
6719}
6720struct IAdditionsStateChangedEvent_vtbl
6721{
6722 struct IEvent_vtbl ievent;
6723
6724};
6725
6726struct IAdditionsStateChangedEvent
6727{
6728 struct IAdditionsStateChangedEvent_vtbl *vtbl;
6729};
6730/* End of struct IAdditionsStateChangedEvent Declaration */
6731
6732
6733/* Start of struct INetworkAdapterChangedEvent Declaration */
6734#define INETWORKADAPTERCHANGEDEVENT_IID_STR "08889892-1EC6-4883-801D-77F56CFD0103"
6735#define INETWORKADAPTERCHANGEDEVENT_IID { \
6736 0x08889892, 0x1EC6, 0x4883, \
6737 { 0x80, 0x1D, 0x77, 0xF5, 0x6C, 0xFD, 0x01, 0x03 } \
6738}
6739struct INetworkAdapterChangedEvent_vtbl
6740{
6741 struct IEvent_vtbl ievent;
6742
6743 nsresult (*GetNetworkAdapter)(INetworkAdapterChangedEvent *pThis, INetworkAdapter * *networkAdapter);
6744
6745};
6746
6747struct INetworkAdapterChangedEvent
6748{
6749 struct INetworkAdapterChangedEvent_vtbl *vtbl;
6750};
6751/* End of struct INetworkAdapterChangedEvent Declaration */
6752
6753
6754/* Start of struct ISerialPortChangedEvent Declaration */
6755#define ISERIALPORTCHANGEDEVENT_IID_STR "3BA329DC-659C-488B-835C-4ECA7AE71C6C"
6756#define ISERIALPORTCHANGEDEVENT_IID { \
6757 0x3BA329DC, 0x659C, 0x488B, \
6758 { 0x83, 0x5C, 0x4E, 0xCA, 0x7A, 0xE7, 0x1C, 0x6C } \
6759}
6760struct ISerialPortChangedEvent_vtbl
6761{
6762 struct IEvent_vtbl ievent;
6763
6764 nsresult (*GetSerialPort)(ISerialPortChangedEvent *pThis, ISerialPort * *serialPort);
6765
6766};
6767
6768struct ISerialPortChangedEvent
6769{
6770 struct ISerialPortChangedEvent_vtbl *vtbl;
6771};
6772/* End of struct ISerialPortChangedEvent Declaration */
6773
6774
6775/* Start of struct IParallelPortChangedEvent Declaration */
6776#define IPARALLELPORTCHANGEDEVENT_IID_STR "813C99FC-9849-4F47-813E-24A75DC85615"
6777#define IPARALLELPORTCHANGEDEVENT_IID { \
6778 0x813C99FC, 0x9849, 0x4F47, \
6779 { 0x81, 0x3E, 0x24, 0xA7, 0x5D, 0xC8, 0x56, 0x15 } \
6780}
6781struct IParallelPortChangedEvent_vtbl
6782{
6783 struct IEvent_vtbl ievent;
6784
6785 nsresult (*GetParallelPort)(IParallelPortChangedEvent *pThis, IParallelPort * *parallelPort);
6786
6787};
6788
6789struct IParallelPortChangedEvent
6790{
6791 struct IParallelPortChangedEvent_vtbl *vtbl;
6792};
6793/* End of struct IParallelPortChangedEvent Declaration */
6794
6795
6796/* Start of struct IStorageControllerChangedEvent Declaration */
6797#define ISTORAGECONTROLLERCHANGEDEVENT_IID_STR "715212BF-DA59-426E-8230-3831FAA52C56"
6798#define ISTORAGECONTROLLERCHANGEDEVENT_IID { \
6799 0x715212BF, 0xDA59, 0x426E, \
6800 { 0x82, 0x30, 0x38, 0x31, 0xFA, 0xA5, 0x2C, 0x56 } \
6801}
6802struct IStorageControllerChangedEvent_vtbl
6803{
6804 struct IEvent_vtbl ievent;
6805
6806};
6807
6808struct IStorageControllerChangedEvent
6809{
6810 struct IStorageControllerChangedEvent_vtbl *vtbl;
6811};
6812/* End of struct IStorageControllerChangedEvent Declaration */
6813
6814
6815/* Start of struct IMediumChangedEvent Declaration */
6816#define IMEDIUMCHANGEDEVENT_IID_STR "0FE2DA40-5637-472A-9736-72019EABD7DE"
6817#define IMEDIUMCHANGEDEVENT_IID { \
6818 0x0FE2DA40, 0x5637, 0x472A, \
6819 { 0x97, 0x36, 0x72, 0x01, 0x9E, 0xAB, 0xD7, 0xDE } \
6820}
6821struct IMediumChangedEvent_vtbl
6822{
6823 struct IEvent_vtbl ievent;
6824
6825 nsresult (*GetMediumAttachment)(IMediumChangedEvent *pThis, IMediumAttachment * *mediumAttachment);
6826
6827};
6828
6829struct IMediumChangedEvent
6830{
6831 struct IMediumChangedEvent_vtbl *vtbl;
6832};
6833/* End of struct IMediumChangedEvent Declaration */
6834
6835
6836/* Start of struct ICPUChangedEvent Declaration */
6837#define ICPUCHANGEDEVENT_IID_STR "D0F0BECC-EE17-4D17-A8CC-383B0EB55E9D"
6838#define ICPUCHANGEDEVENT_IID { \
6839 0xD0F0BECC, 0xEE17, 0x4D17, \
6840 { 0xA8, 0xCC, 0x38, 0x3B, 0x0E, 0xB5, 0x5E, 0x9D } \
6841}
6842struct ICPUChangedEvent_vtbl
6843{
6844 struct IEvent_vtbl ievent;
6845
6846 nsresult (*GetCpu)(ICPUChangedEvent *pThis, PRUint32 *cpu);
6847
6848 nsresult (*GetAdd)(ICPUChangedEvent *pThis, PRBool *add);
6849
6850};
6851
6852struct ICPUChangedEvent
6853{
6854 struct ICPUChangedEvent_vtbl *vtbl;
6855};
6856/* End of struct ICPUChangedEvent Declaration */
6857
6858
6859/* Start of struct ICPUExecutionCapChangedEvent Declaration */
6860#define ICPUEXECUTIONCAPCHANGEDEVENT_IID_STR "dfa7e4f5-b4a4-44ce-85a8-127ac5eb59dc"
6861#define ICPUEXECUTIONCAPCHANGEDEVENT_IID { \
6862 0xdfa7e4f5, 0xb4a4, 0x44ce, \
6863 { 0x85, 0xa8, 0x12, 0x7a, 0xc5, 0xeb, 0x59, 0xdc } \
6864}
6865struct ICPUExecutionCapChangedEvent_vtbl
6866{
6867 struct IEvent_vtbl ievent;
6868
6869 nsresult (*GetExecutionCap)(ICPUExecutionCapChangedEvent *pThis, PRUint32 *executionCap);
6870
6871};
6872
6873struct ICPUExecutionCapChangedEvent
6874{
6875 struct ICPUExecutionCapChangedEvent_vtbl *vtbl;
6876};
6877/* End of struct ICPUExecutionCapChangedEvent Declaration */
6878
6879
6880/* Start of struct IGuestKeyboardEvent Declaration */
6881#define IGUESTKEYBOARDEVENT_IID_STR "88394258-7006-40d4-b339-472ee3801844"
6882#define IGUESTKEYBOARDEVENT_IID { \
6883 0x88394258, 0x7006, 0x40d4, \
6884 { 0xb3, 0x39, 0x47, 0x2e, 0xe3, 0x80, 0x18, 0x44 } \
6885}
6886struct IGuestKeyboardEvent_vtbl
6887{
6888 struct IEvent_vtbl ievent;
6889
6890 nsresult (*GetScancodes)(IGuestKeyboardEvent *pThis, PRUint32 *scancodesSize, PRInt32 **scancodes);
6891
6892};
6893
6894struct IGuestKeyboardEvent
6895{
6896 struct IGuestKeyboardEvent_vtbl *vtbl;
6897};
6898/* End of struct IGuestKeyboardEvent Declaration */
6899
6900
6901/* Start of struct IGuestMouseEvent Declaration */
6902#define IGUESTMOUSEEVENT_IID_STR "1f85d35c-c524-40ff-8e98-307000df0992"
6903#define IGUESTMOUSEEVENT_IID { \
6904 0x1f85d35c, 0xc524, 0x40ff, \
6905 { 0x8e, 0x98, 0x30, 0x70, 0x00, 0xdf, 0x09, 0x92 } \
6906}
6907struct IGuestMouseEvent_vtbl
6908{
6909 struct IReusableEvent_vtbl ireusableevent;
6910
6911 nsresult (*GetAbsolute)(IGuestMouseEvent *pThis, PRBool *absolute);
6912
6913 nsresult (*GetX)(IGuestMouseEvent *pThis, PRInt32 *x);
6914
6915 nsresult (*GetY)(IGuestMouseEvent *pThis, PRInt32 *y);
6916
6917 nsresult (*GetZ)(IGuestMouseEvent *pThis, PRInt32 *z);
6918
6919 nsresult (*GetW)(IGuestMouseEvent *pThis, PRInt32 *w);
6920
6921 nsresult (*GetButtons)(IGuestMouseEvent *pThis, PRInt32 *buttons);
6922
6923};
6924
6925struct IGuestMouseEvent
6926{
6927 struct IGuestMouseEvent_vtbl *vtbl;
6928};
6929/* End of struct IGuestMouseEvent Declaration */
6930
6931
6932/* Start of struct IVRDEServerChangedEvent Declaration */
6933#define IVRDESERVERCHANGEDEVENT_IID_STR "a06fd66a-3188-4c8c-8756-1395e8cb691c"
6934#define IVRDESERVERCHANGEDEVENT_IID { \
6935 0xa06fd66a, 0x3188, 0x4c8c, \
6936 { 0x87, 0x56, 0x13, 0x95, 0xe8, 0xcb, 0x69, 0x1c } \
6937}
6938struct IVRDEServerChangedEvent_vtbl
6939{
6940 struct IEvent_vtbl ievent;
6941
6942};
6943
6944struct IVRDEServerChangedEvent
6945{
6946 struct IVRDEServerChangedEvent_vtbl *vtbl;
6947};
6948/* End of struct IVRDEServerChangedEvent Declaration */
6949
6950
6951/* Start of struct IVRDEServerInfoChangedEvent Declaration */
6952#define IVRDESERVERINFOCHANGEDEVENT_IID_STR "dd6a1080-e1b7-4339-a549-f0878115596e"
6953#define IVRDESERVERINFOCHANGEDEVENT_IID { \
6954 0xdd6a1080, 0xe1b7, 0x4339, \
6955 { 0xa5, 0x49, 0xf0, 0x87, 0x81, 0x15, 0x59, 0x6e } \
6956}
6957struct IVRDEServerInfoChangedEvent_vtbl
6958{
6959 struct IEvent_vtbl ievent;
6960
6961};
6962
6963struct IVRDEServerInfoChangedEvent
6964{
6965 struct IVRDEServerInfoChangedEvent_vtbl *vtbl;
6966};
6967/* End of struct IVRDEServerInfoChangedEvent Declaration */
6968
6969
6970/* Start of struct IUSBControllerChangedEvent Declaration */
6971#define IUSBCONTROLLERCHANGEDEVENT_IID_STR "93BADC0C-61D9-4940-A084-E6BB29AF3D83"
6972#define IUSBCONTROLLERCHANGEDEVENT_IID { \
6973 0x93BADC0C, 0x61D9, 0x4940, \
6974 { 0xA0, 0x84, 0xE6, 0xBB, 0x29, 0xAF, 0x3D, 0x83 } \
6975}
6976struct IUSBControllerChangedEvent_vtbl
6977{
6978 struct IEvent_vtbl ievent;
6979
6980};
6981
6982struct IUSBControllerChangedEvent
6983{
6984 struct IUSBControllerChangedEvent_vtbl *vtbl;
6985};
6986/* End of struct IUSBControllerChangedEvent Declaration */
6987
6988
6989/* Start of struct IUSBDeviceStateChangedEvent Declaration */
6990#define IUSBDEVICESTATECHANGEDEVENT_IID_STR "806da61b-6679-422a-b629-51b06b0c6d93"
6991#define IUSBDEVICESTATECHANGEDEVENT_IID { \
6992 0x806da61b, 0x6679, 0x422a, \
6993 { 0xb6, 0x29, 0x51, 0xb0, 0x6b, 0x0c, 0x6d, 0x93 } \
6994}
6995struct IUSBDeviceStateChangedEvent_vtbl
6996{
6997 struct IEvent_vtbl ievent;
6998
6999 nsresult (*GetDevice)(IUSBDeviceStateChangedEvent *pThis, IUSBDevice * *device);
7000
7001 nsresult (*GetAttached)(IUSBDeviceStateChangedEvent *pThis, PRBool *attached);
7002
7003 nsresult (*GetError)(IUSBDeviceStateChangedEvent *pThis, IVirtualBoxErrorInfo * *error);
7004
7005};
7006
7007struct IUSBDeviceStateChangedEvent
7008{
7009 struct IUSBDeviceStateChangedEvent_vtbl *vtbl;
7010};
7011/* End of struct IUSBDeviceStateChangedEvent Declaration */
7012
7013
7014/* Start of struct ISharedFolderChangedEvent Declaration */
7015#define ISHAREDFOLDERCHANGEDEVENT_IID_STR "B66349B5-3534-4239-B2DE-8E1535D94C0B"
7016#define ISHAREDFOLDERCHANGEDEVENT_IID { \
7017 0xB66349B5, 0x3534, 0x4239, \
7018 { 0xB2, 0xDE, 0x8E, 0x15, 0x35, 0xD9, 0x4C, 0x0B } \
7019}
7020struct ISharedFolderChangedEvent_vtbl
7021{
7022 struct IEvent_vtbl ievent;
7023
7024 nsresult (*GetScope)(ISharedFolderChangedEvent *pThis, PRUint32 *scope);
7025
7026};
7027
7028struct ISharedFolderChangedEvent
7029{
7030 struct ISharedFolderChangedEvent_vtbl *vtbl;
7031};
7032/* End of struct ISharedFolderChangedEvent Declaration */
7033
7034
7035/* Start of struct IRuntimeErrorEvent Declaration */
7036#define IRUNTIMEERROREVENT_IID_STR "883DD18B-0721-4CDE-867C-1A82ABAF914C"
7037#define IRUNTIMEERROREVENT_IID { \
7038 0x883DD18B, 0x0721, 0x4CDE, \
7039 { 0x86, 0x7C, 0x1A, 0x82, 0xAB, 0xAF, 0x91, 0x4C } \
7040}
7041struct IRuntimeErrorEvent_vtbl
7042{
7043 struct IEvent_vtbl ievent;
7044
7045 nsresult (*GetFatal)(IRuntimeErrorEvent *pThis, PRBool *fatal);
7046
7047 nsresult (*GetId)(IRuntimeErrorEvent *pThis, PRUnichar * *id);
7048
7049 nsresult (*GetMessage)(IRuntimeErrorEvent *pThis, PRUnichar * *message);
7050
7051};
7052
7053struct IRuntimeErrorEvent
7054{
7055 struct IRuntimeErrorEvent_vtbl *vtbl;
7056};
7057/* End of struct IRuntimeErrorEvent Declaration */
7058
7059
7060/* Start of struct IEventSourceChangedEvent Declaration */
7061#define IEVENTSOURCECHANGEDEVENT_IID_STR "e7932cb8-f6d4-4ab6-9cbf-558eb8959a6a"
7062#define IEVENTSOURCECHANGEDEVENT_IID { \
7063 0xe7932cb8, 0xf6d4, 0x4ab6, \
7064 { 0x9c, 0xbf, 0x55, 0x8e, 0xb8, 0x95, 0x9a, 0x6a } \
7065}
7066struct IEventSourceChangedEvent_vtbl
7067{
7068 struct IEvent_vtbl ievent;
7069
7070 nsresult (*GetListener)(IEventSourceChangedEvent *pThis, IEventListener * *listener);
7071
7072 nsresult (*GetAdd)(IEventSourceChangedEvent *pThis, PRBool *add);
7073
7074};
7075
7076struct IEventSourceChangedEvent
7077{
7078 struct IEventSourceChangedEvent_vtbl *vtbl;
7079};
7080/* End of struct IEventSourceChangedEvent Declaration */
7081
7082
7083/* Start of struct IExtraDataChangedEvent Declaration */
7084#define IEXTRADATACHANGEDEVENT_IID_STR "024F00CE-6E0B-492A-A8D0-968472A94DC7"
7085#define IEXTRADATACHANGEDEVENT_IID { \
7086 0x024F00CE, 0x6E0B, 0x492A, \
7087 { 0xA8, 0xD0, 0x96, 0x84, 0x72, 0xA9, 0x4D, 0xC7 } \
7088}
7089struct IExtraDataChangedEvent_vtbl
7090{
7091 struct IEvent_vtbl ievent;
7092
7093 nsresult (*GetMachineId)(IExtraDataChangedEvent *pThis, PRUnichar * *machineId);
7094
7095 nsresult (*GetKey)(IExtraDataChangedEvent *pThis, PRUnichar * *key);
7096
7097 nsresult (*GetValue)(IExtraDataChangedEvent *pThis, PRUnichar * *value);
7098
7099};
7100
7101struct IExtraDataChangedEvent
7102{
7103 struct IExtraDataChangedEvent_vtbl *vtbl;
7104};
7105/* End of struct IExtraDataChangedEvent Declaration */
7106
7107
7108/* Start of struct IVetoEvent Declaration */
7109#define IVETOEVENT_IID_STR "9a1a4130-69fe-472f-ac10-c6fa25d75007"
7110#define IVETOEVENT_IID { \
7111 0x9a1a4130, 0x69fe, 0x472f, \
7112 { 0xac, 0x10, 0xc6, 0xfa, 0x25, 0xd7, 0x50, 0x07 } \
7113}
7114struct IVetoEvent_vtbl
7115{
7116 struct IEvent_vtbl ievent;
7117
7118 nsresult (*AddVeto)(
7119 IVetoEvent *pThis,
7120 PRUnichar * reason
7121 );
7122
7123 nsresult (*IsVetoed)(
7124 IVetoEvent *pThis,
7125 PRBool * result
7126 );
7127
7128 nsresult (*GetVetos)(
7129 IVetoEvent *pThis,
7130 PRUint32 *resultSize,
7131 PRUnichar *** result
7132 );
7133
7134};
7135
7136struct IVetoEvent
7137{
7138 struct IVetoEvent_vtbl *vtbl;
7139};
7140/* End of struct IVetoEvent Declaration */
7141
7142
7143/* Start of struct IExtraDataCanChangeEvent Declaration */
7144#define IEXTRADATACANCHANGEEVENT_IID_STR "245d88bd-800a-40f8-87a6-170d02249a55"
7145#define IEXTRADATACANCHANGEEVENT_IID { \
7146 0x245d88bd, 0x800a, 0x40f8, \
7147 { 0x87, 0xa6, 0x17, 0x0d, 0x02, 0x24, 0x9a, 0x55 } \
7148}
7149struct IExtraDataCanChangeEvent_vtbl
7150{
7151 struct IVetoEvent_vtbl ivetoevent;
7152
7153 nsresult (*GetMachineId)(IExtraDataCanChangeEvent *pThis, PRUnichar * *machineId);
7154
7155 nsresult (*GetKey)(IExtraDataCanChangeEvent *pThis, PRUnichar * *key);
7156
7157 nsresult (*GetValue)(IExtraDataCanChangeEvent *pThis, PRUnichar * *value);
7158
7159};
7160
7161struct IExtraDataCanChangeEvent
7162{
7163 struct IExtraDataCanChangeEvent_vtbl *vtbl;
7164};
7165/* End of struct IExtraDataCanChangeEvent Declaration */
7166
7167
7168/* Start of struct ICanShowWindowEvent Declaration */
7169#define ICANSHOWWINDOWEVENT_IID_STR "adf292b0-92c9-4a77-9d35-e058b39fe0b9"
7170#define ICANSHOWWINDOWEVENT_IID { \
7171 0xadf292b0, 0x92c9, 0x4a77, \
7172 { 0x9d, 0x35, 0xe0, 0x58, 0xb3, 0x9f, 0xe0, 0xb9 } \
7173}
7174struct ICanShowWindowEvent_vtbl
7175{
7176 struct IVetoEvent_vtbl ivetoevent;
7177
7178};
7179
7180struct ICanShowWindowEvent
7181{
7182 struct ICanShowWindowEvent_vtbl *vtbl;
7183};
7184/* End of struct ICanShowWindowEvent Declaration */
7185
7186
7187/* Start of struct IShowWindowEvent Declaration */
7188#define ISHOWWINDOWEVENT_IID_STR "B0A0904D-2F05-4D28-855F-488F96BAD2B2"
7189#define ISHOWWINDOWEVENT_IID { \
7190 0xB0A0904D, 0x2F05, 0x4D28, \
7191 { 0x85, 0x5F, 0x48, 0x8F, 0x96, 0xBA, 0xD2, 0xB2 } \
7192}
7193struct IShowWindowEvent_vtbl
7194{
7195 struct IEvent_vtbl ievent;
7196
7197 nsresult (*GetWinId)(IShowWindowEvent *pThis, PRInt64 *winId);
7198 nsresult (*SetWinId)(IShowWindowEvent *pThis, PRInt64 winId);
7199
7200};
7201
7202struct IShowWindowEvent
7203{
7204 struct IShowWindowEvent_vtbl *vtbl;
7205};
7206/* End of struct IShowWindowEvent Declaration */
7207
7208
7209/* Start of struct INATRedirectEvent Declaration */
7210#define INATREDIRECTEVENT_IID_STR "57DE97D7-3CBB-42A0-888F-610D5832D16B"
7211#define INATREDIRECTEVENT_IID { \
7212 0x57DE97D7, 0x3CBB, 0x42A0, \
7213 { 0x88, 0x8F, 0x61, 0x0D, 0x58, 0x32, 0xD1, 0x6B } \
7214}
7215struct INATRedirectEvent_vtbl
7216{
7217 struct IMachineEvent_vtbl imachineevent;
7218
7219 nsresult (*GetSlot)(INATRedirectEvent *pThis, PRUint32 *slot);
7220
7221 nsresult (*GetRemove)(INATRedirectEvent *pThis, PRBool *remove);
7222
7223 nsresult (*GetName)(INATRedirectEvent *pThis, PRUnichar * *name);
7224
7225 nsresult (*GetProto)(INATRedirectEvent *pThis, PRUint32 *proto);
7226
7227 nsresult (*GetHostIp)(INATRedirectEvent *pThis, PRUnichar * *hostIp);
7228
7229 nsresult (*GetHostPort)(INATRedirectEvent *pThis, PRInt32 *hostPort);
7230
7231 nsresult (*GetGuestIp)(INATRedirectEvent *pThis, PRUnichar * *guestIp);
7232
7233 nsresult (*GetGuestPort)(INATRedirectEvent *pThis, PRInt32 *guestPort);
7234
7235};
7236
7237struct INATRedirectEvent
7238{
7239 struct INATRedirectEvent_vtbl *vtbl;
7240};
7241/* End of struct INATRedirectEvent Declaration */
7242
7243
7244/* Start of struct IHostPciDevicePlugEvent Declaration */
7245#define IHOSTPCIDEVICEPLUGEVENT_IID_STR "EDD4782B-DB74-43A0-B724-2BAA36F039CC"
7246#define IHOSTPCIDEVICEPLUGEVENT_IID { \
7247 0xEDD4782B, 0xDB74, 0x43A0, \
7248 { 0xB7, 0x24, 0x2B, 0xAA, 0x36, 0xF0, 0x39, 0xCC } \
7249}
7250struct IHostPciDevicePlugEvent_vtbl
7251{
7252 struct IMachineEvent_vtbl imachineevent;
7253
7254 nsresult (*GetPlugged)(IHostPciDevicePlugEvent *pThis, PRBool *plugged);
7255
7256 nsresult (*GetSuccess)(IHostPciDevicePlugEvent *pThis, PRBool *success);
7257
7258 nsresult (*GetAttachment)(IHostPciDevicePlugEvent *pThis, IPciDeviceAttachment * *attachment);
7259
7260 nsresult (*GetEventContext)(IHostPciDevicePlugEvent *pThis, IEventContext * *eventContext);
7261
7262 nsresult (*GetMessage)(IHostPciDevicePlugEvent *pThis, PRUnichar * *message);
7263
7264};
7265
7266struct IHostPciDevicePlugEvent
7267{
7268 struct IHostPciDevicePlugEvent_vtbl *vtbl;
7269};
7270/* End of struct IHostPciDevicePlugEvent Declaration */
7271
7272
7273/* Start of struct IVBoxSVCAvailabilityChangedEvent Declaration */
7274#define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID_STR "97c78fcd-d4fc-485f-8613-5af88bfcfcdc"
7275#define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID { \
7276 0x97c78fcd, 0xd4fc, 0x485f, \
7277 { 0x86, 0x13, 0x5a, 0xf8, 0x8b, 0xfc, 0xfc, 0xdc } \
7278}
7279struct IVBoxSVCAvailabilityChangedEvent_vtbl
7280{
7281 struct IEvent_vtbl ievent;
7282
7283 nsresult (*GetAvailable)(IVBoxSVCAvailabilityChangedEvent *pThis, PRBool *available);
7284
7285};
7286
7287struct IVBoxSVCAvailabilityChangedEvent
7288{
7289 struct IVBoxSVCAvailabilityChangedEvent_vtbl *vtbl;
7290};
7291/* End of struct IVBoxSVCAvailabilityChangedEvent Declaration */
7292
7293
7294/* Start of struct IBandwidthGroupChangedEvent Declaration */
7295#define IBANDWIDTHGROUPCHANGEDEVENT_IID_STR "334df94a-7556-4cbc-8c04-043096b02d82"
7296#define IBANDWIDTHGROUPCHANGEDEVENT_IID { \
7297 0x334df94a, 0x7556, 0x4cbc, \
7298 { 0x8c, 0x04, 0x04, 0x30, 0x96, 0xb0, 0x2d, 0x82 } \
7299}
7300struct IBandwidthGroupChangedEvent_vtbl
7301{
7302 struct IEvent_vtbl ievent;
7303
7304 nsresult (*GetBandwidthGroup)(IBandwidthGroupChangedEvent *pThis, IBandwidthGroup * *bandwidthGroup);
7305
7306};
7307
7308struct IBandwidthGroupChangedEvent
7309{
7310 struct IBandwidthGroupChangedEvent_vtbl *vtbl;
7311};
7312/* End of struct IBandwidthGroupChangedEvent Declaration */
7313
7314
7315/* Start of struct IGuestMonitorChangedEvent Declaration */
7316#define IGUESTMONITORCHANGEDEVENT_IID_STR "0f7b8a22-c71f-4a36-8e5f-a77d01d76090"
7317#define IGUESTMONITORCHANGEDEVENT_IID { \
7318 0x0f7b8a22, 0xc71f, 0x4a36, \
7319 { 0x8e, 0x5f, 0xa7, 0x7d, 0x01, 0xd7, 0x60, 0x90 } \
7320}
7321struct IGuestMonitorChangedEvent_vtbl
7322{
7323 struct IEvent_vtbl ievent;
7324
7325 nsresult (*GetChangeType)(IGuestMonitorChangedEvent *pThis, PRUint32 *changeType);
7326
7327 nsresult (*GetScreenId)(IGuestMonitorChangedEvent *pThis, PRUint32 *screenId);
7328
7329 nsresult (*GetOriginX)(IGuestMonitorChangedEvent *pThis, PRUint32 *originX);
7330
7331 nsresult (*GetOriginY)(IGuestMonitorChangedEvent *pThis, PRUint32 *originY);
7332
7333 nsresult (*GetWidth)(IGuestMonitorChangedEvent *pThis, PRUint32 *width);
7334
7335 nsresult (*GetHeight)(IGuestMonitorChangedEvent *pThis, PRUint32 *height);
7336
7337};
7338
7339struct IGuestMonitorChangedEvent
7340{
7341 struct IGuestMonitorChangedEvent_vtbl *vtbl;
7342};
7343/* End of struct IGuestMonitorChangedEvent Declaration */
7344
7345
7346
7347#define NS_VIRTUALBOX_CID { \
7348 0xB1A7A4F2, 0x47B9, 0x4A1E, \
7349 { 0x82, 0xB2, 0x07, 0xCC, 0xD5, 0x32, 0x3C, 0x3F } \
7350}
7351#define NS_VIRTUALBOX_CONTRACTID "@virtualbox.org/VirtualBox;1"
7352/* for compatibility with Win32 */
7353#define CLSID_VirtualBox (nsCID) NS_VIRTUALBOX_CID
7354
7355
7356
7357#define NS_VIRTUALBOXCLIENT_CID { \
7358 0xdd3fc71d, 0x26c0, 0x4fe1, \
7359 { 0xbf, 0x6f, 0x67, 0xf6, 0x33, 0x26, 0x5b, 0xba } \
7360}
7361#define NS_VIRTUALBOXCLIENT_CONTRACTID "@virtualbox.org/VirtualBoxClient;1"
7362/* for compatibility with Win32 */
7363#define CLSID_VirtualBoxClient (nsCID) NS_VIRTUALBOXCLIENT_CID
7364
7365
7366
7367#define NS_SESSION_CID { \
7368 0x3C02F46D, 0xC9D2, 0x4F11, \
7369 { 0xA3, 0x84, 0x53, 0xF0, 0xCF, 0x91, 0x72, 0x14 } \
7370}
7371#define NS_SESSION_CONTRACTID "@virtualbox.org/Session;1"
7372/* for compatibility with Win32 */
7373#define CLSID_Session (nsCID) NS_SESSION_CID
7374
7375
7376
7377#endif /* !__cplusplus */
7378
7379#ifdef IN_VBOXXPCOMC
7380# define VBOXXPCOMC_DECL(type) PR_EXPORT(type)
7381#else
7382# define VBOXXPCOMC_DECL(type) PR_IMPORT(type)
7383#endif
7384
7385#ifdef __cplusplus
7386extern "C" {
7387#endif
7388
7389
7390/**
7391 * Function table for dynamic linking.
7392 * Use VBoxGetFunctions() to obtain the pointer to it.
7393 */
7394typedef struct VBOXXPCOMC
7395{
7396 /** The size of the structure. */
7397 unsigned cb;
7398 /** The structure version. */
7399 unsigned uVersion;
7400
7401 unsigned int (*pfnGetVersion)(void);
7402
7403 void (*pfnComInitialize)(const char *pszVirtualBoxIID,
7404 IVirtualBox **ppVirtualBox,
7405 const char *pszSessionIID,
7406 ISession **ppSession);
7407 void (*pfnComUninitialize)(void);
7408
7409 void (*pfnComUnallocMem)(void *pv);
7410 void (*pfnUtf16Free)(PRUnichar *pwszString);
7411 void (*pfnUtf8Free)(char *pszString);
7412
7413 int (*pfnUtf16ToUtf8)(const PRUnichar *pwszString, char **ppszString);
7414 int (*pfnUtf8ToUtf16)(const char *pszString, PRUnichar **ppwszString);
7415
7416 void (*pfnGetEventQueue)(nsIEventQueue **eventQueue);
7417
7418 /** Tail version, same as uVersion. */
7419 unsigned uEndVersion;
7420} VBOXXPCOMC;
7421/** Pointer to a const VBoxXPCOMC function table. */
7422typedef VBOXXPCOMC const *PCVBOXXPCOM;
7423
7424/** The current interface version.
7425 * For use with VBoxGetXPCOMCFunctions and to be found in
7426 * VBOXXPCOMC::uVersion. */
7427#define VBOX_XPCOMC_VERSION 0x00020000U
7428
7429VBOXXPCOMC_DECL(PCVBOXXPCOM) VBoxGetXPCOMCFunctions(unsigned uVersion);
7430/** Typedef for VBoxGetXPCOMCFunctions. */
7431typedef PCVBOXXPCOM (*PFNVBOXGETXPCOMCFUNCTIONS)(unsigned uVersion);
7432
7433/** The symbol name of VBoxGetXPCOMCFunctions. */
7434#if defined(__OS2__)
7435# define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "_VBoxGetXPCOMCFunctions"
7436#else
7437# define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "VBoxGetXPCOMCFunctions"
7438#endif
7439
7440
7441#ifdef __cplusplus
7442}
7443#endif
7444
7445#endif /* !___VirtualBox_CXPCOM_h */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette