VirtualBox

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

Last change on this file since 77329 was 76553, checked in by vboxsync, 6 years ago

scm --update-copyright-year

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