VirtualBox

source: vbox/trunk/src/VBox/Main/cbinding/VBoxCAPI_v3_2.h@ 76542

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

Artwork: scm --fix-header-guards. bugref:9344

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 161.9 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-2017 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#define VBOX_E_DONT_CALL_AGAIN 0x80BB000D
899
900
901struct IVirtualBoxErrorInfo;
902struct ILocalOwner;
903struct IVirtualBoxCallback;
904struct IDHCPServer;
905struct IVirtualBox;
906struct IVFSExplorer;
907struct IAppliance;
908struct IVirtualSystemDescription;
909struct IInternalMachineControl;
910struct IBIOSSettings;
911struct IMachine;
912struct IConsoleCallback;
913struct IRemoteDisplayInfo;
914struct IConsole;
915struct IHostNetworkInterface;
916struct IHost;
917struct ISystemProperties;
918struct IGuestOSType;
919struct IGuest;
920struct IProgress;
921struct ISnapshot;
922struct IMediumAttachment;
923struct IMedium;
924struct IMediumFormat;
925struct IKeyboard;
926struct IMouse;
927struct IFramebuffer;
928struct IFramebufferOverlay;
929struct IDisplay;
930struct INetworkAdapter;
931struct ISerialPort;
932struct IParallelPort;
933struct IMachineDebugger;
934struct IUSBController;
935struct IUSBDevice;
936struct IUSBDeviceFilter;
937struct IHostUSBDevice;
938struct IHostUSBDeviceFilter;
939struct IAudioAdapter;
940struct IVRDPServer;
941struct ISharedFolder;
942struct IInternalSessionControl;
943struct ISession;
944struct IStorageController;
945struct IManagedObjectRef;
946struct IWebsessionManager;
947struct IPerformanceMetric;
948struct IPerformanceCollector;
949struct INATEngine;
950
951typedef struct IVirtualBoxErrorInfo IVirtualBoxErrorInfo;
952typedef struct ILocalOwner ILocalOwner;
953typedef struct IVirtualBoxCallback IVirtualBoxCallback;
954typedef struct IDHCPServer IDHCPServer;
955typedef struct IVirtualBox IVirtualBox;
956typedef struct IVFSExplorer IVFSExplorer;
957typedef struct IAppliance IAppliance;
958typedef struct IVirtualSystemDescription IVirtualSystemDescription;
959typedef struct IInternalMachineControl IInternalMachineControl;
960typedef struct IBIOSSettings IBIOSSettings;
961typedef struct IMachine IMachine;
962typedef struct IConsoleCallback IConsoleCallback;
963typedef struct IRemoteDisplayInfo IRemoteDisplayInfo;
964typedef struct IConsole IConsole;
965typedef struct IHostNetworkInterface IHostNetworkInterface;
966typedef struct IHost IHost;
967typedef struct ISystemProperties ISystemProperties;
968typedef struct IGuestOSType IGuestOSType;
969typedef struct IGuest IGuest;
970typedef struct IProgress IProgress;
971typedef struct ISnapshot ISnapshot;
972typedef struct IMediumAttachment IMediumAttachment;
973typedef struct IMedium IMedium;
974typedef struct IMediumFormat IMediumFormat;
975typedef struct IKeyboard IKeyboard;
976typedef struct IMouse IMouse;
977typedef struct IFramebuffer IFramebuffer;
978typedef struct IFramebufferOverlay IFramebufferOverlay;
979typedef struct IDisplay IDisplay;
980typedef struct INetworkAdapter INetworkAdapter;
981typedef struct ISerialPort ISerialPort;
982typedef struct IParallelPort IParallelPort;
983typedef struct IMachineDebugger IMachineDebugger;
984typedef struct IUSBController IUSBController;
985typedef struct IUSBDevice IUSBDevice;
986typedef struct IUSBDeviceFilter IUSBDeviceFilter;
987typedef struct IHostUSBDevice IHostUSBDevice;
988typedef struct IHostUSBDeviceFilter IHostUSBDeviceFilter;
989typedef struct IAudioAdapter IAudioAdapter;
990typedef struct IVRDPServer IVRDPServer;
991typedef struct ISharedFolder ISharedFolder;
992typedef struct IInternalSessionControl IInternalSessionControl;
993typedef struct ISession ISession;
994typedef struct IStorageController IStorageController;
995typedef struct IManagedObjectRef IManagedObjectRef;
996typedef struct IWebsessionManager IWebsessionManager;
997typedef struct IPerformanceMetric IPerformanceMetric;
998typedef struct IPerformanceCollector IPerformanceCollector;
999typedef struct INATEngine INATEngine;
1000
1001/* Start of enum SettingsVersion Declaration */
1002#define SETTINGSVERSION_IID_STR "52bd6f5f-1adb-4493-975d-581a9c4b803f"
1003#define SETTINGSVERSION_IID { \
1004 0x52bd6f5f, 0x1adb, 0x4493, \
1005 { 0x97, 0x5d, 0x58, 0x1a, 0x9c, 0x4b, 0x80, 0x3f } \
1006}
1007enum SettingsVersion
1008{
1009 SettingsVersion_Null = 0,
1010 SettingsVersion_v1_0 = 1,
1011 SettingsVersion_v1_1 = 2,
1012 SettingsVersion_v1_2 = 3,
1013 SettingsVersion_v1_3pre = 4,
1014 SettingsVersion_v1_3 = 5,
1015 SettingsVersion_v1_4 = 6,
1016 SettingsVersion_v1_5 = 7,
1017 SettingsVersion_v1_6 = 8,
1018 SettingsVersion_v1_7 = 9,
1019 SettingsVersion_v1_8 = 10,
1020 SettingsVersion_v1_9 = 11,
1021 SettingsVersion_v1_10 = 12,
1022 SettingsVersion_Future = 13
1023};
1024/* End of enum SettingsVersion Declaration */
1025
1026
1027/* Start of enum AccessMode Declaration */
1028#define ACCESSMODE_IID_STR "1da0007c-ddf7-4be8-bcac-d84a1558785f"
1029#define ACCESSMODE_IID { \
1030 0x1da0007c, 0xddf7, 0x4be8, \
1031 { 0xbc, 0xac, 0xd8, 0x4a, 0x15, 0x58, 0x78, 0x5f } \
1032}
1033enum AccessMode
1034{
1035 AccessMode_ReadOnly = 1,
1036 AccessMode_ReadWrite = 2
1037};
1038/* End of enum AccessMode Declaration */
1039
1040
1041/* Start of enum MachineState Declaration */
1042#define MACHINESTATE_IID_STR "e998d075-543a-41fc-8aa9-5ca3e92393fd"
1043#define MACHINESTATE_IID { \
1044 0xe998d075, 0x543a, 0x41fc, \
1045 { 0x8a, 0xa9, 0x5c, 0xa3, 0xe9, 0x23, 0x93, 0xfd } \
1046}
1047enum MachineState
1048{
1049 MachineState_Null = 0,
1050 MachineState_PoweredOff = 1,
1051 MachineState_Saved = 2,
1052 MachineState_Teleported = 3,
1053 MachineState_Aborted = 4,
1054 MachineState_Running = 5,
1055 MachineState_Paused = 6,
1056 MachineState_Stuck = 7,
1057 MachineState_Teleporting = 8,
1058 MachineState_LiveSnapshotting = 9,
1059 MachineState_Starting = 10,
1060 MachineState_Stopping = 11,
1061 MachineState_Saving = 12,
1062 MachineState_Restoring = 13,
1063 MachineState_TeleportingPausedVM = 14,
1064 MachineState_TeleportingIn = 15,
1065 MachineState_DeletingSnapshotOnline = 16,
1066 MachineState_DeletingSnapshotPaused = 17,
1067 MachineState_RestoringSnapshot = 18,
1068 MachineState_DeletingSnapshot = 19,
1069 MachineState_SettingUp = 20,
1070 MachineState_FirstOnline = 5,
1071 MachineState_LastOnline = 17,
1072 MachineState_FirstTransient = 8,
1073 MachineState_LastTransient = 20
1074};
1075/* End of enum MachineState Declaration */
1076
1077
1078/* Start of enum SessionState Declaration */
1079#define SESSIONSTATE_IID_STR "cf2700c0-ea4b-47ae-9725-7810114b94d8"
1080#define SESSIONSTATE_IID { \
1081 0xcf2700c0, 0xea4b, 0x47ae, \
1082 { 0x97, 0x25, 0x78, 0x10, 0x11, 0x4b, 0x94, 0xd8 } \
1083}
1084enum SessionState
1085{
1086 SessionState_Null = 0,
1087 SessionState_Closed = 1,
1088 SessionState_Open = 2,
1089 SessionState_Spawning = 3,
1090 SessionState_Closing = 4
1091};
1092/* End of enum SessionState Declaration */
1093
1094
1095/* Start of enum CPUPropertyType Declaration */
1096#define CPUPROPERTYTYPE_IID_STR "24d356a6-2f45-4abd-b977-1cbe9c4701f5"
1097#define CPUPROPERTYTYPE_IID { \
1098 0x24d356a6, 0x2f45, 0x4abd, \
1099 { 0xb9, 0x77, 0x1c, 0xbe, 0x9c, 0x47, 0x01, 0xf5 } \
1100}
1101enum CPUPropertyType
1102{
1103 CPUPropertyType_Null = 0,
1104 CPUPropertyType_PAE = 1,
1105 CPUPropertyType_Synthetic = 2
1106};
1107/* End of enum CPUPropertyType Declaration */
1108
1109
1110/* Start of enum HWVirtExPropertyType Declaration */
1111#define HWVIRTEXPROPERTYTYPE_IID_STR "ce81dfdd-d2b8-4a90-bbea-40ee8b7ffcee"
1112#define HWVIRTEXPROPERTYTYPE_IID { \
1113 0xce81dfdd, 0xd2b8, 0x4a90, \
1114 { 0xbb, 0xea, 0x40, 0xee, 0x8b, 0x7f, 0xfc, 0xee } \
1115}
1116enum HWVirtExPropertyType
1117{
1118 HWVirtExPropertyType_Null = 0,
1119 HWVirtExPropertyType_Enabled = 1,
1120 HWVirtExPropertyType_Exclusive = 2,
1121 HWVirtExPropertyType_VPID = 3,
1122 HWVirtExPropertyType_NestedPaging = 4,
1123 HWVirtExPropertyType_LargePages = 5,
1124 HWVirtExPropertyType_Force = 6
1125};
1126/* End of enum HWVirtExPropertyType Declaration */
1127
1128
1129/* Start of enum SessionType Declaration */
1130#define SESSIONTYPE_IID_STR "A13C02CB-0C2C-421E-8317-AC0E8AAA153A"
1131#define SESSIONTYPE_IID { \
1132 0xA13C02CB, 0x0C2C, 0x421E, \
1133 { 0x83, 0x17, 0xAC, 0x0E, 0x8A, 0xAA, 0x15, 0x3A } \
1134}
1135enum SessionType
1136{
1137 SessionType_Null = 0,
1138 SessionType_Direct = 1,
1139 SessionType_Remote = 2,
1140 SessionType_Existing = 3
1141};
1142/* End of enum SessionType Declaration */
1143
1144
1145/* Start of enum DeviceType Declaration */
1146#define DEVICETYPE_IID_STR "6d9420f7-0b56-4636-99f9-7346f1b01e57"
1147#define DEVICETYPE_IID { \
1148 0x6d9420f7, 0x0b56, 0x4636, \
1149 { 0x99, 0xf9, 0x73, 0x46, 0xf1, 0xb0, 0x1e, 0x57 } \
1150}
1151enum DeviceType
1152{
1153 DeviceType_Null = 0,
1154 DeviceType_Floppy = 1,
1155 DeviceType_DVD = 2,
1156 DeviceType_HardDisk = 3,
1157 DeviceType_Network = 4,
1158 DeviceType_USB = 5,
1159 DeviceType_SharedFolder = 6
1160};
1161/* End of enum DeviceType Declaration */
1162
1163
1164/* Start of enum DeviceActivity Declaration */
1165#define DEVICEACTIVITY_IID_STR "6FC8AEAA-130A-4eb5-8954-3F921422D707"
1166#define DEVICEACTIVITY_IID { \
1167 0x6FC8AEAA, 0x130A, 0x4eb5, \
1168 { 0x89, 0x54, 0x3F, 0x92, 0x14, 0x22, 0xD7, 0x07 } \
1169}
1170enum DeviceActivity
1171{
1172 DeviceActivity_Null = 0,
1173 DeviceActivity_Idle = 1,
1174 DeviceActivity_Reading = 2,
1175 DeviceActivity_Writing = 3
1176};
1177/* End of enum DeviceActivity Declaration */
1178
1179
1180/* Start of enum ClipboardMode Declaration */
1181#define CLIPBOARDMODE_IID_STR "33364716-4008-4701-8f14-be0fa3d62950"
1182#define CLIPBOARDMODE_IID { \
1183 0x33364716, 0x4008, 0x4701, \
1184 { 0x8f, 0x14, 0xbe, 0x0f, 0xa3, 0xd6, 0x29, 0x50 } \
1185}
1186enum ClipboardMode
1187{
1188 ClipboardMode_Disabled = 0,
1189 ClipboardMode_HostToGuest = 1,
1190 ClipboardMode_GuestToHost = 2,
1191 ClipboardMode_Bidirectional = 3
1192};
1193/* End of enum ClipboardMode Declaration */
1194
1195
1196/* Start of enum Scope Declaration */
1197#define SCOPE_IID_STR "7c91096e-499e-4eca-9f9b-9001438d7855"
1198#define SCOPE_IID { \
1199 0x7c91096e, 0x499e, 0x4eca, \
1200 { 0x9f, 0x9b, 0x90, 0x01, 0x43, 0x8d, 0x78, 0x55 } \
1201}
1202enum Scope
1203{
1204 Scope_Global = 0,
1205 Scope_Machine = 1,
1206 Scope_Session = 2
1207};
1208/* End of enum Scope Declaration */
1209
1210
1211/* Start of enum BIOSBootMenuMode Declaration */
1212#define BIOSBOOTMENUMODE_IID_STR "ae4fb9f7-29d2-45b4-b2c7-d579603135d5"
1213#define BIOSBOOTMENUMODE_IID { \
1214 0xae4fb9f7, 0x29d2, 0x45b4, \
1215 { 0xb2, 0xc7, 0xd5, 0x79, 0x60, 0x31, 0x35, 0xd5 } \
1216}
1217enum BIOSBootMenuMode
1218{
1219 BIOSBootMenuMode_Disabled = 0,
1220 BIOSBootMenuMode_MenuOnly = 1,
1221 BIOSBootMenuMode_MessageAndMenu = 2
1222};
1223/* End of enum BIOSBootMenuMode Declaration */
1224
1225
1226/* Start of enum ProcessorFeature Declaration */
1227#define PROCESSORFEATURE_IID_STR "64c38e6b-8bcf-45ad-ac03-9b406287c5bf"
1228#define PROCESSORFEATURE_IID { \
1229 0x64c38e6b, 0x8bcf, 0x45ad, \
1230 { 0xac, 0x03, 0x9b, 0x40, 0x62, 0x87, 0xc5, 0xbf } \
1231}
1232enum ProcessorFeature
1233{
1234 ProcessorFeature_HWVirtEx = 0,
1235 ProcessorFeature_PAE = 1,
1236 ProcessorFeature_LongMode = 2,
1237 ProcessorFeature_NestedPaging = 3
1238};
1239/* End of enum ProcessorFeature Declaration */
1240
1241
1242/* Start of enum FirmwareType Declaration */
1243#define FIRMWARETYPE_IID_STR "b903f264-c230-483e-ac74-2b37ce60d371"
1244#define FIRMWARETYPE_IID { \
1245 0xb903f264, 0xc230, 0x483e, \
1246 { 0xac, 0x74, 0x2b, 0x37, 0xce, 0x60, 0xd3, 0x71 } \
1247}
1248enum FirmwareType
1249{
1250 FirmwareType_BIOS = 1,
1251 FirmwareType_EFI = 2,
1252 FirmwareType_EFI32 = 3,
1253 FirmwareType_EFI64 = 4,
1254 FirmwareType_EFIDUAL = 5
1255};
1256/* End of enum FirmwareType Declaration */
1257
1258
1259/* Start of enum PointingHidType Declaration */
1260#define POINTINGHIDTYPE_IID_STR "0d3c17a2-821a-4b2e-ae41-890c6c60aa97"
1261#define POINTINGHIDTYPE_IID { \
1262 0x0d3c17a2, 0x821a, 0x4b2e, \
1263 { 0xae, 0x41, 0x89, 0x0c, 0x6c, 0x60, 0xaa, 0x97 } \
1264}
1265enum PointingHidType
1266{
1267 PointingHidType_None = 1,
1268 PointingHidType_PS2Mouse = 2,
1269 PointingHidType_USBMouse = 3,
1270 PointingHidType_USBTablet = 4,
1271 PointingHidType_ComboMouse = 5
1272};
1273/* End of enum PointingHidType Declaration */
1274
1275
1276/* Start of enum KeyboardHidType Declaration */
1277#define KEYBOARDHIDTYPE_IID_STR "5a5b0996-3a3e-44bb-9019-56979812cbcc"
1278#define KEYBOARDHIDTYPE_IID { \
1279 0x5a5b0996, 0x3a3e, 0x44bb, \
1280 { 0x90, 0x19, 0x56, 0x97, 0x98, 0x12, 0xcb, 0xcc } \
1281}
1282enum KeyboardHidType
1283{
1284 KeyboardHidType_None = 1,
1285 KeyboardHidType_PS2Keyboard = 2,
1286 KeyboardHidType_USBKeyboard = 3,
1287 KeyboardHidType_ComboKeyboard = 4
1288};
1289/* End of enum KeyboardHidType Declaration */
1290
1291
1292/* Start of enum VFSType Declaration */
1293#define VFSTYPE_IID_STR "813999ba-b949-48a8-9230-aadc6285e2f2"
1294#define VFSTYPE_IID { \
1295 0x813999ba, 0xb949, 0x48a8, \
1296 { 0x92, 0x30, 0xaa, 0xdc, 0x62, 0x85, 0xe2, 0xf2 } \
1297}
1298enum VFSType
1299{
1300 VFSType_File = 1,
1301 VFSType_Cloud = 2,
1302 VFSType_S3 = 3,
1303 VFSType_WebDav = 4
1304};
1305/* End of enum VFSType Declaration */
1306
1307
1308/* Start of enum VFSFileType Declaration */
1309#define VFSFILETYPE_IID_STR "714333cd-44e2-415f-a245-d378fa9b1242"
1310#define VFSFILETYPE_IID { \
1311 0x714333cd, 0x44e2, 0x415f, \
1312 { 0xa2, 0x45, 0xd3, 0x78, 0xfa, 0x9b, 0x12, 0x42 } \
1313}
1314enum VFSFileType
1315{
1316 VFSFileType_Unknown = 1,
1317 VFSFileType_Fifo = 2,
1318 VFSFileType_DevChar = 3,
1319 VFSFileType_Directory = 4,
1320 VFSFileType_DevBlock = 5,
1321 VFSFileType_File = 6,
1322 VFSFileType_SymLink = 7,
1323 VFSFileType_Socket = 8,
1324 VFSFileType_WhiteOut = 9
1325};
1326/* End of enum VFSFileType Declaration */
1327
1328
1329/* Start of enum VirtualSystemDescriptionType Declaration */
1330#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID_STR "c0f8f135-3a1d-417d-afa6-b38b95a91f90"
1331#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID { \
1332 0xc0f8f135, 0x3a1d, 0x417d, \
1333 { 0xaf, 0xa6, 0xb3, 0x8b, 0x95, 0xa9, 0x1f, 0x90 } \
1334}
1335enum VirtualSystemDescriptionType
1336{
1337 VirtualSystemDescriptionType_Ignore = 1,
1338 VirtualSystemDescriptionType_OS = 2,
1339 VirtualSystemDescriptionType_Name = 3,
1340 VirtualSystemDescriptionType_Product = 4,
1341 VirtualSystemDescriptionType_Vendor = 5,
1342 VirtualSystemDescriptionType_Version = 6,
1343 VirtualSystemDescriptionType_ProductUrl = 7,
1344 VirtualSystemDescriptionType_VendorUrl = 8,
1345 VirtualSystemDescriptionType_Description = 9,
1346 VirtualSystemDescriptionType_License = 10,
1347 VirtualSystemDescriptionType_Miscellaneous = 11,
1348 VirtualSystemDescriptionType_CPU = 12,
1349 VirtualSystemDescriptionType_Memory = 13,
1350 VirtualSystemDescriptionType_HardDiskControllerIDE = 14,
1351 VirtualSystemDescriptionType_HardDiskControllerSATA = 15,
1352 VirtualSystemDescriptionType_HardDiskControllerSCSI = 16,
1353 VirtualSystemDescriptionType_HardDiskControllerSAS = 17,
1354 VirtualSystemDescriptionType_HardDiskImage = 18,
1355 VirtualSystemDescriptionType_Floppy = 19,
1356 VirtualSystemDescriptionType_CDROM = 20,
1357 VirtualSystemDescriptionType_NetworkAdapter = 21,
1358 VirtualSystemDescriptionType_USBController = 22,
1359 VirtualSystemDescriptionType_SoundCard = 23
1360};
1361/* End of enum VirtualSystemDescriptionType Declaration */
1362
1363
1364/* Start of enum VirtualSystemDescriptionValueType Declaration */
1365#define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID_STR "56d9403f-3425-4118-9919-36f2a9b8c77c"
1366#define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID { \
1367 0x56d9403f, 0x3425, 0x4118, \
1368 { 0x99, 0x19, 0x36, 0xf2, 0xa9, 0xb8, 0xc7, 0x7c } \
1369}
1370enum VirtualSystemDescriptionValueType
1371{
1372 VirtualSystemDescriptionValueType_Reference = 1,
1373 VirtualSystemDescriptionValueType_Original = 2,
1374 VirtualSystemDescriptionValueType_Auto = 3,
1375 VirtualSystemDescriptionValueType_ExtraConfig = 4
1376};
1377/* End of enum VirtualSystemDescriptionValueType Declaration */
1378
1379
1380/* Start of enum HostNetworkInterfaceMediumType Declaration */
1381#define HOSTNETWORKINTERFACEMEDIUMTYPE_IID_STR "1aa54aaf-2497-45a2-bfb1-8eb225e93d5b"
1382#define HOSTNETWORKINTERFACEMEDIUMTYPE_IID { \
1383 0x1aa54aaf, 0x2497, 0x45a2, \
1384 { 0xbf, 0xb1, 0x8e, 0xb2, 0x25, 0xe9, 0x3d, 0x5b } \
1385}
1386enum HostNetworkInterfaceMediumType
1387{
1388 HostNetworkInterfaceMediumType_Unknown = 0,
1389 HostNetworkInterfaceMediumType_Ethernet = 1,
1390 HostNetworkInterfaceMediumType_PPP = 2,
1391 HostNetworkInterfaceMediumType_SLIP = 3
1392};
1393/* End of enum HostNetworkInterfaceMediumType Declaration */
1394
1395
1396/* Start of enum HostNetworkInterfaceStatus Declaration */
1397#define HOSTNETWORKINTERFACESTATUS_IID_STR "CC474A69-2710-434B-8D99-C38E5D5A6F41"
1398#define HOSTNETWORKINTERFACESTATUS_IID { \
1399 0xCC474A69, 0x2710, 0x434B, \
1400 { 0x8D, 0x99, 0xC3, 0x8E, 0x5D, 0x5A, 0x6F, 0x41 } \
1401}
1402enum HostNetworkInterfaceStatus
1403{
1404 HostNetworkInterfaceStatus_Unknown = 0,
1405 HostNetworkInterfaceStatus_Up = 1,
1406 HostNetworkInterfaceStatus_Down = 2
1407};
1408/* End of enum HostNetworkInterfaceStatus Declaration */
1409
1410
1411/* Start of enum HostNetworkInterfaceType Declaration */
1412#define HOSTNETWORKINTERFACETYPE_IID_STR "67431b00-9946-48a2-bc02-b25c5919f4f3"
1413#define HOSTNETWORKINTERFACETYPE_IID { \
1414 0x67431b00, 0x9946, 0x48a2, \
1415 { 0xbc, 0x02, 0xb2, 0x5c, 0x59, 0x19, 0xf4, 0xf3 } \
1416}
1417enum HostNetworkInterfaceType
1418{
1419 HostNetworkInterfaceType_Bridged = 1,
1420 HostNetworkInterfaceType_HostOnly = 2
1421};
1422/* End of enum HostNetworkInterfaceType Declaration */
1423
1424
1425/* Start of enum MediumState Declaration */
1426#define MEDIUMSTATE_IID_STR "ef41e980-e012-43cd-9dea-479d4ef14d13"
1427#define MEDIUMSTATE_IID { \
1428 0xef41e980, 0xe012, 0x43cd, \
1429 { 0x9d, 0xea, 0x47, 0x9d, 0x4e, 0xf1, 0x4d, 0x13 } \
1430}
1431enum MediumState
1432{
1433 MediumState_NotCreated = 0,
1434 MediumState_Created = 1,
1435 MediumState_LockedRead = 2,
1436 MediumState_LockedWrite = 3,
1437 MediumState_Inaccessible = 4,
1438 MediumState_Creating = 5,
1439 MediumState_Deleting = 6
1440};
1441/* End of enum MediumState Declaration */
1442
1443
1444/* Start of enum MediumType Declaration */
1445#define MEDIUMTYPE_IID_STR "46bf1fd4-ad86-4ded-8c49-28bd2d148e5a"
1446#define MEDIUMTYPE_IID { \
1447 0x46bf1fd4, 0xad86, 0x4ded, \
1448 { 0x8c, 0x49, 0x28, 0xbd, 0x2d, 0x14, 0x8e, 0x5a } \
1449}
1450enum MediumType
1451{
1452 MediumType_Normal = 0,
1453 MediumType_Immutable = 1,
1454 MediumType_Writethrough = 2,
1455 MediumType_Shareable = 3
1456};
1457/* End of enum MediumType Declaration */
1458
1459
1460/* Start of enum MediumVariant Declaration */
1461#define MEDIUMVARIANT_IID_STR "584ea502-143b-4ab0-ad14-d1028fdf0316"
1462#define MEDIUMVARIANT_IID { \
1463 0x584ea502, 0x143b, 0x4ab0, \
1464 { 0xad, 0x14, 0xd1, 0x02, 0x8f, 0xdf, 0x03, 0x16 } \
1465}
1466enum MediumVariant
1467{
1468 MediumVariant_Standard = 0,
1469 MediumVariant_VmdkSplit2G = 0x01,
1470 MediumVariant_VmdkStreamOptimized = 0x04,
1471 MediumVariant_VmdkESX = 0x08,
1472 MediumVariant_Fixed = 0x10000,
1473 MediumVariant_Diff = 0x20000
1474};
1475/* End of enum MediumVariant Declaration */
1476
1477
1478/* Start of enum DataType Declaration */
1479#define DATATYPE_IID_STR "d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7"
1480#define DATATYPE_IID { \
1481 0xd90ea51e, 0xa3f1, 0x4a01, \
1482 { 0xbe, 0xb1, 0xc1, 0x72, 0x3c, 0x0d, 0x3b, 0xa7 } \
1483}
1484enum DataType
1485{
1486 DataType_Int32 = 0,
1487 DataType_Int8 = 1,
1488 DataType_String = 2
1489};
1490/* End of enum DataType Declaration */
1491
1492
1493/* Start of enum DataFlags Declaration */
1494#define DATAFLAGS_IID_STR "86884dcf-1d6b-4f1b-b4bf-f5aa44959d60"
1495#define DATAFLAGS_IID { \
1496 0x86884dcf, 0x1d6b, 0x4f1b, \
1497 { 0xb4, 0xbf, 0xf5, 0xaa, 0x44, 0x95, 0x9d, 0x60 } \
1498}
1499enum DataFlags
1500{
1501 DataFlags_None = 0x00,
1502 DataFlags_Mandatory = 0x01,
1503 DataFlags_Expert = 0x02,
1504 DataFlags_Array = 0x04,
1505 DataFlags_FlagMask = 0x07
1506};
1507/* End of enum DataFlags Declaration */
1508
1509
1510/* Start of enum MediumFormatCapabilities Declaration */
1511#define MEDIUMFORMATCAPABILITIES_IID_STR "70fcf810-99e8-4edc-aee4-7f51d489e657"
1512#define MEDIUMFORMATCAPABILITIES_IID { \
1513 0x70fcf810, 0x99e8, 0x4edc, \
1514 { 0xae, 0xe4, 0x7f, 0x51, 0xd4, 0x89, 0xe6, 0x57 } \
1515}
1516enum MediumFormatCapabilities
1517{
1518 MediumFormatCapabilities_Uuid = 0x01,
1519 MediumFormatCapabilities_CreateFixed = 0x02,
1520 MediumFormatCapabilities_CreateDynamic = 0x04,
1521 MediumFormatCapabilities_CreateSplit2G = 0x08,
1522 MediumFormatCapabilities_Differencing = 0x10,
1523 MediumFormatCapabilities_Asynchronous = 0x20,
1524 MediumFormatCapabilities_File = 0x40,
1525 MediumFormatCapabilities_Properties = 0x80,
1526 MediumFormatCapabilities_CapabilityMask = 0xFF
1527};
1528/* End of enum MediumFormatCapabilities Declaration */
1529
1530
1531/* Start of enum MouseButtonState Declaration */
1532#define MOUSEBUTTONSTATE_IID_STR "9ee094b8-b28a-4d56-a166-973cb588d7f8"
1533#define MOUSEBUTTONSTATE_IID { \
1534 0x9ee094b8, 0xb28a, 0x4d56, \
1535 { 0xa1, 0x66, 0x97, 0x3c, 0xb5, 0x88, 0xd7, 0xf8 } \
1536}
1537enum MouseButtonState
1538{
1539 MouseButtonState_LeftButton = 0x01,
1540 MouseButtonState_RightButton = 0x02,
1541 MouseButtonState_MiddleButton = 0x04,
1542 MouseButtonState_WheelUp = 0x08,
1543 MouseButtonState_WheelDown = 0x10,
1544 MouseButtonState_XButton1 = 0x20,
1545 MouseButtonState_XButton2 = 0x40,
1546 MouseButtonState_MouseStateMask = 0x7F
1547};
1548/* End of enum MouseButtonState Declaration */
1549
1550
1551/* Start of enum FramebufferPixelFormat Declaration */
1552#define FRAMEBUFFERPIXELFORMAT_IID_STR "7acfd5ed-29e3-45e3-8136-73c9224f3d2d"
1553#define FRAMEBUFFERPIXELFORMAT_IID { \
1554 0x7acfd5ed, 0x29e3, 0x45e3, \
1555 { 0x81, 0x36, 0x73, 0xc9, 0x22, 0x4f, 0x3d, 0x2d } \
1556}
1557enum FramebufferPixelFormat
1558{
1559 FramebufferPixelFormat_Opaque = 0,
1560 FramebufferPixelFormat_FOURCC_RGB = 0x32424752
1561};
1562/* End of enum FramebufferPixelFormat Declaration */
1563
1564
1565/* Start of enum NetworkAttachmentType Declaration */
1566#define NETWORKATTACHMENTTYPE_IID_STR "44bce1ee-99f7-4e8e-89fc-80597fd9eeaf"
1567#define NETWORKATTACHMENTTYPE_IID { \
1568 0x44bce1ee, 0x99f7, 0x4e8e, \
1569 { 0x89, 0xfc, 0x80, 0x59, 0x7f, 0xd9, 0xee, 0xaf } \
1570}
1571enum NetworkAttachmentType
1572{
1573 NetworkAttachmentType_Null = 0,
1574 NetworkAttachmentType_NAT = 1,
1575 NetworkAttachmentType_Bridged = 2,
1576 NetworkAttachmentType_Internal = 3,
1577 NetworkAttachmentType_HostOnly = 4,
1578 NetworkAttachmentType_VDE = 5
1579};
1580/* End of enum NetworkAttachmentType Declaration */
1581
1582
1583/* Start of enum NetworkAdapterType Declaration */
1584#define NETWORKADAPTERTYPE_IID_STR "3c2281e4-d952-4e87-8c7d-24379cb6a81c"
1585#define NETWORKADAPTERTYPE_IID { \
1586 0x3c2281e4, 0xd952, 0x4e87, \
1587 { 0x8c, 0x7d, 0x24, 0x37, 0x9c, 0xb6, 0xa8, 0x1c } \
1588}
1589enum NetworkAdapterType
1590{
1591 NetworkAdapterType_Null = 0,
1592 NetworkAdapterType_Am79C970A = 1,
1593 NetworkAdapterType_Am79C973 = 2,
1594 NetworkAdapterType_I82540EM = 3,
1595 NetworkAdapterType_I82543GC = 4,
1596 NetworkAdapterType_I82545EM = 5,
1597 NetworkAdapterType_Virtio = 6
1598};
1599/* End of enum NetworkAdapterType Declaration */
1600
1601
1602/* Start of enum PortMode Declaration */
1603#define PORTMODE_IID_STR "533b5fe3-0185-4197-86a7-17e37dd39d76"
1604#define PORTMODE_IID { \
1605 0x533b5fe3, 0x0185, 0x4197, \
1606 { 0x86, 0xa7, 0x17, 0xe3, 0x7d, 0xd3, 0x9d, 0x76 } \
1607}
1608enum PortMode
1609{
1610 PortMode_Disconnected = 0,
1611 PortMode_HostPipe = 1,
1612 PortMode_HostDevice = 2,
1613 PortMode_RawFile = 3
1614};
1615/* End of enum PortMode Declaration */
1616
1617
1618/* Start of enum USBDeviceState Declaration */
1619#define USBDEVICESTATE_IID_STR "b99a2e65-67fb-4882-82fd-f3e5e8193ab4"
1620#define USBDEVICESTATE_IID { \
1621 0xb99a2e65, 0x67fb, 0x4882, \
1622 { 0x82, 0xfd, 0xf3, 0xe5, 0xe8, 0x19, 0x3a, 0xb4 } \
1623}
1624enum USBDeviceState
1625{
1626 USBDeviceState_NotSupported = 0,
1627 USBDeviceState_Unavailable = 1,
1628 USBDeviceState_Busy = 2,
1629 USBDeviceState_Available = 3,
1630 USBDeviceState_Held = 4,
1631 USBDeviceState_Captured = 5
1632};
1633/* End of enum USBDeviceState Declaration */
1634
1635
1636/* Start of enum USBDeviceFilterAction Declaration */
1637#define USBDEVICEFILTERACTION_IID_STR "cbc30a49-2f4e-43b5-9da6-121320475933"
1638#define USBDEVICEFILTERACTION_IID { \
1639 0xcbc30a49, 0x2f4e, 0x43b5, \
1640 { 0x9d, 0xa6, 0x12, 0x13, 0x20, 0x47, 0x59, 0x33 } \
1641}
1642enum USBDeviceFilterAction
1643{
1644 USBDeviceFilterAction_Null = 0,
1645 USBDeviceFilterAction_Ignore = 1,
1646 USBDeviceFilterAction_Hold = 2
1647};
1648/* End of enum USBDeviceFilterAction Declaration */
1649
1650
1651/* Start of enum AudioDriverType Declaration */
1652#define AUDIODRIVERTYPE_IID_STR "4bcc3d73-c2fe-40db-b72f-0c2ca9d68496"
1653#define AUDIODRIVERTYPE_IID { \
1654 0x4bcc3d73, 0xc2fe, 0x40db, \
1655 { 0xb7, 0x2f, 0x0c, 0x2c, 0xa9, 0xd6, 0x84, 0x96 } \
1656}
1657enum AudioDriverType
1658{
1659 AudioDriverType_Null = 0,
1660 AudioDriverType_WinMM = 1,
1661 AudioDriverType_OSS = 2,
1662 AudioDriverType_ALSA = 3,
1663 AudioDriverType_DirectSound = 4,
1664 AudioDriverType_CoreAudio = 5,
1665 AudioDriverType_MMPM = 6,
1666 AudioDriverType_Pulse = 7,
1667 AudioDriverType_SolAudio = 8
1668};
1669/* End of enum AudioDriverType Declaration */
1670
1671
1672/* Start of enum AudioControllerType Declaration */
1673#define AUDIOCONTROLLERTYPE_IID_STR "7afd395c-42c3-444e-8788-3ce80292f36c"
1674#define AUDIOCONTROLLERTYPE_IID { \
1675 0x7afd395c, 0x42c3, 0x444e, \
1676 { 0x87, 0x88, 0x3c, 0xe8, 0x02, 0x92, 0xf3, 0x6c } \
1677}
1678enum AudioControllerType
1679{
1680 AudioControllerType_AC97 = 0,
1681 AudioControllerType_SB16 = 1
1682};
1683/* End of enum AudioControllerType Declaration */
1684
1685
1686/* Start of enum VRDPAuthType Declaration */
1687#define VRDPAUTHTYPE_IID_STR "3d91887a-b67f-4b33-85bf-2da7ab1ea83a"
1688#define VRDPAUTHTYPE_IID { \
1689 0x3d91887a, 0xb67f, 0x4b33, \
1690 { 0x85, 0xbf, 0x2d, 0xa7, 0xab, 0x1e, 0xa8, 0x3a } \
1691}
1692enum VRDPAuthType
1693{
1694 VRDPAuthType_Null = 0,
1695 VRDPAuthType_External = 1,
1696 VRDPAuthType_Guest = 2
1697};
1698/* End of enum VRDPAuthType Declaration */
1699
1700
1701/* Start of enum StorageBus Declaration */
1702#define STORAGEBUS_IID_STR "eee67ab3-668d-4ef5-91e0-7025fe4a0d7a"
1703#define STORAGEBUS_IID { \
1704 0xeee67ab3, 0x668d, 0x4ef5, \
1705 { 0x91, 0xe0, 0x70, 0x25, 0xfe, 0x4a, 0x0d, 0x7a } \
1706}
1707enum StorageBus
1708{
1709 StorageBus_Null = 0,
1710 StorageBus_IDE = 1,
1711 StorageBus_SATA = 2,
1712 StorageBus_SCSI = 3,
1713 StorageBus_Floppy = 4,
1714 StorageBus_SAS = 5
1715};
1716/* End of enum StorageBus Declaration */
1717
1718
1719/* Start of enum StorageControllerType Declaration */
1720#define STORAGECONTROLLERTYPE_IID_STR "8a412b8a-f43e-4456-bd37-b474f0879a58"
1721#define STORAGECONTROLLERTYPE_IID { \
1722 0x8a412b8a, 0xf43e, 0x4456, \
1723 { 0xbd, 0x37, 0xb4, 0x74, 0xf0, 0x87, 0x9a, 0x58 } \
1724}
1725enum StorageControllerType
1726{
1727 StorageControllerType_Null = 0,
1728 StorageControllerType_LsiLogic = 1,
1729 StorageControllerType_BusLogic = 2,
1730 StorageControllerType_IntelAhci = 3,
1731 StorageControllerType_PIIX3 = 4,
1732 StorageControllerType_PIIX4 = 5,
1733 StorageControllerType_ICH6 = 6,
1734 StorageControllerType_I82078 = 7,
1735 StorageControllerType_LsiLogicSas = 8
1736};
1737/* End of enum StorageControllerType Declaration */
1738
1739
1740/* Start of enum NATAliasMode Declaration */
1741#define NATALIASMODE_IID_STR "67772168-50d9-11df-9669-7fb714ee4fa1"
1742#define NATALIASMODE_IID { \
1743 0x67772168, 0x50d9, 0x11df, \
1744 { 0x96, 0x69, 0x7f, 0xb7, 0x14, 0xee, 0x4f, 0xa1 } \
1745}
1746enum NATAliasMode
1747{
1748 NATAliasMode_AliasLog = 0x1,
1749 NATAliasMode_AliasProxyOnly = 0x02,
1750 NATAliasMode_AliasUseSamePorts = 0x04
1751};
1752/* End of enum NATAliasMode Declaration */
1753
1754
1755/* Start of enum NATProtocol Declaration */
1756#define NATPROTOCOL_IID_STR "e90164be-eb03-11de-94af-fff9b1c1b19f"
1757#define NATPROTOCOL_IID { \
1758 0xe90164be, 0xeb03, 0x11de, \
1759 { 0x94, 0xaf, 0xff, 0xf9, 0xb1, 0xc1, 0xb1, 0x9f } \
1760}
1761enum NATProtocol
1762{
1763 NATProtocol_UDP = 0,
1764 NATProtocol_TCP = 1
1765};
1766/* End of enum NATProtocol Declaration */
1767
1768
1769/* Start of struct IVirtualBoxErrorInfo Declaration */
1770#define IVIRTUALBOXERRORINFO_IID_STR "4b86d186-407e-4f9e-8be8-e50061be8725"
1771#define IVIRTUALBOXERRORINFO_IID { \
1772 0x4b86d186, 0x407e, 0x4f9e, \
1773 { 0x8b, 0xe8, 0xe5, 0x00, 0x61, 0xbe, 0x87, 0x25 } \
1774}
1775struct IVirtualBoxErrorInfo_vtbl
1776{
1777 struct nsIException_vtbl nsiexception;
1778
1779 nsresult (*GetResultCode)(IVirtualBoxErrorInfo *pThis, PRInt32 *resultCode);
1780
1781 nsresult (*GetInterfaceID)(IVirtualBoxErrorInfo *pThis, PRUnichar * *interfaceID);
1782
1783 nsresult (*GetComponent)(IVirtualBoxErrorInfo *pThis, PRUnichar * *component);
1784
1785 nsresult (*GetText)(IVirtualBoxErrorInfo *pThis, PRUnichar * *text);
1786
1787 nsresult (*GetNext)(IVirtualBoxErrorInfo *pThis, IVirtualBoxErrorInfo * *next);
1788
1789};
1790
1791struct IVirtualBoxErrorInfo
1792{
1793 struct IVirtualBoxErrorInfo_vtbl *vtbl;
1794};
1795/* End of struct IVirtualBoxErrorInfo Declaration */
1796
1797
1798/* Start of struct ILocalOwner Declaration */
1799#define ILOCALOWNER_IID_STR "308FF42A-DC45-49D4-A950-B1EEE5E00BB5"
1800#define ILOCALOWNER_IID { \
1801 0x308FF42A, 0xDC45, 0x49D4, \
1802 { 0xA9, 0x50, 0xB1, 0xEE, 0xE5, 0xE0, 0x0B, 0xB5 } \
1803}
1804struct ILocalOwner_vtbl
1805{
1806 struct nsISupports_vtbl nsisupports;
1807
1808 nsresult (*SetLocalObject)(
1809 ILocalOwner *pThis,
1810 nsISupports * object
1811 );
1812
1813};
1814
1815struct ILocalOwner
1816{
1817 struct ILocalOwner_vtbl *vtbl;
1818};
1819/* End of struct ILocalOwner Declaration */
1820
1821
1822/* Start of struct IVirtualBoxCallback Declaration */
1823#define IVIRTUALBOXCALLBACK_IID_STR "7f6a65b6-ad5d-4a67-8872-0b11cb7ea95c"
1824#define IVIRTUALBOXCALLBACK_IID { \
1825 0x7f6a65b6, 0xad5d, 0x4a67, \
1826 { 0x88, 0x72, 0x0b, 0x11, 0xcb, 0x7e, 0xa9, 0x5c } \
1827}
1828struct IVirtualBoxCallback_vtbl
1829{
1830 struct nsISupports_vtbl nsisupports;
1831
1832 nsresult (*OnMachineStateChange)(
1833 IVirtualBoxCallback *pThis,
1834 PRUnichar * machineId,
1835 PRUint32 state
1836 );
1837
1838 nsresult (*OnMachineDataChange)(
1839 IVirtualBoxCallback *pThis,
1840 PRUnichar * machineId
1841 );
1842
1843 nsresult (*OnExtraDataCanChange)(
1844 IVirtualBoxCallback *pThis,
1845 PRUnichar * machineId,
1846 PRUnichar * key,
1847 PRUnichar * value,
1848 PRUnichar * * error,
1849 PRBool * allowChange
1850 );
1851
1852 nsresult (*OnExtraDataChange)(
1853 IVirtualBoxCallback *pThis,
1854 PRUnichar * machineId,
1855 PRUnichar * key,
1856 PRUnichar * value
1857 );
1858
1859 nsresult (*OnMediumRegistered)(
1860 IVirtualBoxCallback *pThis,
1861 PRUnichar * mediumId,
1862 PRUint32 mediumType,
1863 PRBool registered
1864 );
1865
1866 nsresult (*OnMachineRegistered)(
1867 IVirtualBoxCallback *pThis,
1868 PRUnichar * machineId,
1869 PRBool registered
1870 );
1871
1872 nsresult (*OnSessionStateChange)(
1873 IVirtualBoxCallback *pThis,
1874 PRUnichar * machineId,
1875 PRUint32 state
1876 );
1877
1878 nsresult (*OnSnapshotTaken)(
1879 IVirtualBoxCallback *pThis,
1880 PRUnichar * machineId,
1881 PRUnichar * snapshotId
1882 );
1883
1884 nsresult (*OnSnapshotDeleted)(
1885 IVirtualBoxCallback *pThis,
1886 PRUnichar * machineId,
1887 PRUnichar * snapshotId
1888 );
1889
1890 nsresult (*OnSnapshotChange)(
1891 IVirtualBoxCallback *pThis,
1892 PRUnichar * machineId,
1893 PRUnichar * snapshotId
1894 );
1895
1896 nsresult (*OnGuestPropertyChange)(
1897 IVirtualBoxCallback *pThis,
1898 PRUnichar * machineId,
1899 PRUnichar * name,
1900 PRUnichar * value,
1901 PRUnichar * flags
1902 );
1903
1904};
1905
1906struct IVirtualBoxCallback
1907{
1908 struct IVirtualBoxCallback_vtbl *vtbl;
1909};
1910/* End of struct IVirtualBoxCallback Declaration */
1911
1912
1913/* Start of struct IDHCPServer Declaration */
1914#define IDHCPSERVER_IID_STR "6cfe387c-74fb-4ca7-bff6-973bec8af7a3"
1915#define IDHCPSERVER_IID { \
1916 0x6cfe387c, 0x74fb, 0x4ca7, \
1917 { 0xbf, 0xf6, 0x97, 0x3b, 0xec, 0x8a, 0xf7, 0xa3 } \
1918}
1919struct IDHCPServer_vtbl
1920{
1921 struct nsISupports_vtbl nsisupports;
1922
1923 nsresult (*GetEnabled)(IDHCPServer *pThis, PRBool *enabled);
1924 nsresult (*SetEnabled)(IDHCPServer *pThis, PRBool enabled);
1925
1926 nsresult (*GetIPAddress)(IDHCPServer *pThis, PRUnichar * *IPAddress);
1927
1928 nsresult (*GetNetworkMask)(IDHCPServer *pThis, PRUnichar * *networkMask);
1929
1930 nsresult (*GetNetworkName)(IDHCPServer *pThis, PRUnichar * *networkName);
1931
1932 nsresult (*GetLowerIP)(IDHCPServer *pThis, PRUnichar * *lowerIP);
1933
1934 nsresult (*GetUpperIP)(IDHCPServer *pThis, PRUnichar * *upperIP);
1935
1936 nsresult (*SetConfiguration)(
1937 IDHCPServer *pThis,
1938 PRUnichar * IPAddress,
1939 PRUnichar * networkMask,
1940 PRUnichar * FromIPAddress,
1941 PRUnichar * ToIPAddress
1942 );
1943
1944 nsresult (*Start)(
1945 IDHCPServer *pThis,
1946 PRUnichar * networkName,
1947 PRUnichar * trunkName,
1948 PRUnichar * trunkType
1949 );
1950
1951 nsresult (*Stop)(IDHCPServer *pThis );
1952
1953};
1954
1955struct IDHCPServer
1956{
1957 struct IDHCPServer_vtbl *vtbl;
1958};
1959/* End of struct IDHCPServer Declaration */
1960
1961
1962/* Start of struct IVirtualBox Declaration */
1963#define IVIRTUALBOX_IID_STR "3f36e024-7fed-4f20-a02c-9158a82b44e6"
1964#define IVIRTUALBOX_IID { \
1965 0x3f36e024, 0x7fed, 0x4f20, \
1966 { 0xa0, 0x2c, 0x91, 0x58, 0xa8, 0x2b, 0x44, 0xe6 } \
1967}
1968struct IVirtualBox_vtbl
1969{
1970 struct nsISupports_vtbl nsisupports;
1971
1972 nsresult (*GetVersion)(IVirtualBox *pThis, PRUnichar * *version);
1973
1974 nsresult (*GetRevision)(IVirtualBox *pThis, PRUint32 *revision);
1975
1976 nsresult (*GetPackageType)(IVirtualBox *pThis, PRUnichar * *packageType);
1977
1978 nsresult (*GetHomeFolder)(IVirtualBox *pThis, PRUnichar * *homeFolder);
1979
1980 nsresult (*GetSettingsFilePath)(IVirtualBox *pThis, PRUnichar * *settingsFilePath);
1981
1982 nsresult (*GetHost)(IVirtualBox *pThis, IHost * *host);
1983
1984 nsresult (*GetSystemProperties)(IVirtualBox *pThis, ISystemProperties * *systemProperties);
1985
1986 nsresult (*GetMachines)(IVirtualBox *pThis, PRUint32 *machinesSize, IMachine * **machines);
1987
1988 nsresult (*GetHardDisks)(IVirtualBox *pThis, PRUint32 *hardDisksSize, IMedium * **hardDisks);
1989
1990 nsresult (*GetDVDImages)(IVirtualBox *pThis, PRUint32 *DVDImagesSize, IMedium * **DVDImages);
1991
1992 nsresult (*GetFloppyImages)(IVirtualBox *pThis, PRUint32 *floppyImagesSize, IMedium * **floppyImages);
1993
1994 nsresult (*GetProgressOperations)(IVirtualBox *pThis, PRUint32 *progressOperationsSize, IProgress * **progressOperations);
1995
1996 nsresult (*GetGuestOSTypes)(IVirtualBox *pThis, PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes);
1997
1998 nsresult (*GetSharedFolders)(IVirtualBox *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
1999
2000 nsresult (*GetPerformanceCollector)(IVirtualBox *pThis, IPerformanceCollector * *performanceCollector);
2001
2002 nsresult (*GetDHCPServers)(IVirtualBox *pThis, PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers);
2003
2004 nsresult (*CreateMachine)(
2005 IVirtualBox *pThis,
2006 PRUnichar * name,
2007 PRUnichar * osTypeId,
2008 PRUnichar * baseFolder,
2009 PRUnichar * id,
2010 PRBool override,
2011 IMachine * * machine
2012 );
2013
2014 nsresult (*CreateLegacyMachine)(
2015 IVirtualBox *pThis,
2016 PRUnichar * name,
2017 PRUnichar * osTypeId,
2018 PRUnichar * settingsFile,
2019 PRUnichar * id,
2020 IMachine * * machine
2021 );
2022
2023 nsresult (*OpenMachine)(
2024 IVirtualBox *pThis,
2025 PRUnichar * settingsFile,
2026 IMachine * * machine
2027 );
2028
2029 nsresult (*RegisterMachine)(
2030 IVirtualBox *pThis,
2031 IMachine * machine
2032 );
2033
2034 nsresult (*GetMachine)(
2035 IVirtualBox *pThis,
2036 PRUnichar * id,
2037 IMachine * * machine
2038 );
2039
2040 nsresult (*FindMachine)(
2041 IVirtualBox *pThis,
2042 PRUnichar * name,
2043 IMachine * * machine
2044 );
2045
2046 nsresult (*UnregisterMachine)(
2047 IVirtualBox *pThis,
2048 PRUnichar * id,
2049 IMachine * * machine
2050 );
2051
2052 nsresult (*CreateAppliance)(
2053 IVirtualBox *pThis,
2054 IAppliance * * appliance
2055 );
2056
2057 nsresult (*CreateHardDisk)(
2058 IVirtualBox *pThis,
2059 PRUnichar * format,
2060 PRUnichar * location,
2061 IMedium * * medium
2062 );
2063
2064 nsresult (*OpenHardDisk)(
2065 IVirtualBox *pThis,
2066 PRUnichar * location,
2067 PRUint32 accessMode,
2068 PRBool setImageId,
2069 PRUnichar * imageId,
2070 PRBool setParentId,
2071 PRUnichar * parentId,
2072 IMedium * * medium
2073 );
2074
2075 nsresult (*GetHardDisk)(
2076 IVirtualBox *pThis,
2077 PRUnichar * id,
2078 IMedium * * medium
2079 );
2080
2081 nsresult (*FindHardDisk)(
2082 IVirtualBox *pThis,
2083 PRUnichar * location,
2084 IMedium * * medium
2085 );
2086
2087 nsresult (*OpenDVDImage)(
2088 IVirtualBox *pThis,
2089 PRUnichar * location,
2090 PRUnichar * id,
2091 IMedium * * image
2092 );
2093
2094 nsresult (*GetDVDImage)(
2095 IVirtualBox *pThis,
2096 PRUnichar * id,
2097 IMedium * * image
2098 );
2099
2100 nsresult (*FindDVDImage)(
2101 IVirtualBox *pThis,
2102 PRUnichar * location,
2103 IMedium * * image
2104 );
2105
2106 nsresult (*OpenFloppyImage)(
2107 IVirtualBox *pThis,
2108 PRUnichar * location,
2109 PRUnichar * id,
2110 IMedium * * image
2111 );
2112
2113 nsresult (*GetFloppyImage)(
2114 IVirtualBox *pThis,
2115 PRUnichar * id,
2116 IMedium * * image
2117 );
2118
2119 nsresult (*FindFloppyImage)(
2120 IVirtualBox *pThis,
2121 PRUnichar * location,
2122 IMedium * * image
2123 );
2124
2125 nsresult (*GetGuestOSType)(
2126 IVirtualBox *pThis,
2127 PRUnichar * id,
2128 IGuestOSType * * type
2129 );
2130
2131 nsresult (*CreateSharedFolder)(
2132 IVirtualBox *pThis,
2133 PRUnichar * name,
2134 PRUnichar * hostPath,
2135 PRBool writable
2136 );
2137
2138 nsresult (*RemoveSharedFolder)(
2139 IVirtualBox *pThis,
2140 PRUnichar * name
2141 );
2142
2143 nsresult (*GetExtraDataKeys)(
2144 IVirtualBox *pThis,
2145 PRUint32 *valueSize,
2146 PRUnichar *** value
2147 );
2148
2149 nsresult (*GetExtraData)(
2150 IVirtualBox *pThis,
2151 PRUnichar * key,
2152 PRUnichar * * value
2153 );
2154
2155 nsresult (*SetExtraData)(
2156 IVirtualBox *pThis,
2157 PRUnichar * key,
2158 PRUnichar * value
2159 );
2160
2161 nsresult (*OpenSession)(
2162 IVirtualBox *pThis,
2163 ISession * session,
2164 PRUnichar * machineId
2165 );
2166
2167 nsresult (*OpenRemoteSession)(
2168 IVirtualBox *pThis,
2169 ISession * session,
2170 PRUnichar * machineId,
2171 PRUnichar * type,
2172 PRUnichar * environment,
2173 IProgress * * progress
2174 );
2175
2176 nsresult (*OpenExistingSession)(
2177 IVirtualBox *pThis,
2178 ISession * session,
2179 PRUnichar * machineId
2180 );
2181
2182 nsresult (*RegisterCallback)(
2183 IVirtualBox *pThis,
2184 IVirtualBoxCallback * callback
2185 );
2186
2187 nsresult (*UnregisterCallback)(
2188 IVirtualBox *pThis,
2189 IVirtualBoxCallback * callback
2190 );
2191
2192 nsresult (*WaitForPropertyChange)(
2193 IVirtualBox *pThis,
2194 PRUnichar * what,
2195 PRUint32 timeout,
2196 PRUnichar * * changed,
2197 PRUnichar * * values
2198 );
2199
2200 nsresult (*CreateDHCPServer)(
2201 IVirtualBox *pThis,
2202 PRUnichar * name,
2203 IDHCPServer * * server
2204 );
2205
2206 nsresult (*FindDHCPServerByNetworkName)(
2207 IVirtualBox *pThis,
2208 PRUnichar * name,
2209 IDHCPServer * * server
2210 );
2211
2212 nsresult (*RemoveDHCPServer)(
2213 IVirtualBox *pThis,
2214 IDHCPServer * server
2215 );
2216
2217 nsresult (*CheckFirmwarePresent)(
2218 IVirtualBox *pThis,
2219 PRUint32 firmwareType,
2220 PRUnichar * version,
2221 PRUnichar * * url,
2222 PRUnichar * * file,
2223 PRBool * result
2224 );
2225
2226};
2227
2228struct IVirtualBox
2229{
2230 struct IVirtualBox_vtbl *vtbl;
2231};
2232/* End of struct IVirtualBox Declaration */
2233
2234
2235/* Start of struct IVFSExplorer Declaration */
2236#define IVFSEXPLORER_IID_STR "2bb864a1-02a3-4474-a1d4-fb5f23b742e1"
2237#define IVFSEXPLORER_IID { \
2238 0x2bb864a1, 0x02a3, 0x4474, \
2239 { 0xa1, 0xd4, 0xfb, 0x5f, 0x23, 0xb7, 0x42, 0xe1 } \
2240}
2241struct IVFSExplorer_vtbl
2242{
2243 struct nsISupports_vtbl nsisupports;
2244
2245 nsresult (*GetPath)(IVFSExplorer *pThis, PRUnichar * *path);
2246
2247 nsresult (*GetType)(IVFSExplorer *pThis, PRUint32 *type);
2248
2249 nsresult (*Update)(
2250 IVFSExplorer *pThis,
2251 IProgress * * aProgress
2252 );
2253
2254 nsresult (*Cd)(
2255 IVFSExplorer *pThis,
2256 PRUnichar * aDir,
2257 IProgress * * aProgress
2258 );
2259
2260 nsresult (*CdUp)(
2261 IVFSExplorer *pThis,
2262 IProgress * * aProgress
2263 );
2264
2265 nsresult (*EntryList)(
2266 IVFSExplorer *pThis,
2267 PRUint32 *aNamesSize,
2268 PRUnichar *** aNames,
2269 PRUint32 *aTypesSize,
2270 PRUint32* aTypes
2271 );
2272
2273 nsresult (*Exists)(
2274 IVFSExplorer *pThis,
2275 PRUint32 aNamesSize,
2276 PRUnichar ** aNames,
2277 PRUint32 *aExistsSize,
2278 PRUnichar *** aExists
2279 );
2280
2281 nsresult (*Remove)(
2282 IVFSExplorer *pThis,
2283 PRUint32 aNamesSize,
2284 PRUnichar ** aNames,
2285 IProgress * * aProgress
2286 );
2287
2288};
2289
2290struct IVFSExplorer
2291{
2292 struct IVFSExplorer_vtbl *vtbl;
2293};
2294/* End of struct IVFSExplorer Declaration */
2295
2296
2297/* Start of struct IAppliance Declaration */
2298#define IAPPLIANCE_IID_STR "e3ba9ab9-ac2c-4266-8bd2-91c4bf721ceb"
2299#define IAPPLIANCE_IID { \
2300 0xe3ba9ab9, 0xac2c, 0x4266, \
2301 { 0x8b, 0xd2, 0x91, 0xc4, 0xbf, 0x72, 0x1c, 0xeb } \
2302}
2303struct IAppliance_vtbl
2304{
2305 struct nsISupports_vtbl nsisupports;
2306
2307 nsresult (*GetPath)(IAppliance *pThis, PRUnichar * *path);
2308
2309 nsresult (*GetDisks)(IAppliance *pThis, PRUint32 *disksSize, PRUnichar * **disks);
2310
2311 nsresult (*GetVirtualSystemDescriptions)(IAppliance *pThis, PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions);
2312
2313 nsresult (*Read)(
2314 IAppliance *pThis,
2315 PRUnichar * file,
2316 IProgress * * aProgress
2317 );
2318
2319 nsresult (*Interpret)(IAppliance *pThis );
2320
2321 nsresult (*ImportMachines)(
2322 IAppliance *pThis,
2323 IProgress * * aProgress
2324 );
2325
2326 nsresult (*CreateVFSExplorer)(
2327 IAppliance *pThis,
2328 PRUnichar * aUri,
2329 IVFSExplorer * * aExplorer
2330 );
2331
2332 nsresult (*Write)(
2333 IAppliance *pThis,
2334 PRUnichar * format,
2335 PRUnichar * path,
2336 IProgress * * aProgress
2337 );
2338
2339 nsresult (*GetWarnings)(
2340 IAppliance *pThis,
2341 PRUint32 *aWarningsSize,
2342 PRUnichar *** aWarnings
2343 );
2344
2345};
2346
2347struct IAppliance
2348{
2349 struct IAppliance_vtbl *vtbl;
2350};
2351/* End of struct IAppliance Declaration */
2352
2353
2354/* Start of struct IVirtualSystemDescription Declaration */
2355#define IVIRTUALSYSTEMDESCRIPTION_IID_STR "d7525e6c-531a-4c51-8e04-41235083a3d8"
2356#define IVIRTUALSYSTEMDESCRIPTION_IID { \
2357 0xd7525e6c, 0x531a, 0x4c51, \
2358 { 0x8e, 0x04, 0x41, 0x23, 0x50, 0x83, 0xa3, 0xd8 } \
2359}
2360struct IVirtualSystemDescription_vtbl
2361{
2362 struct nsISupports_vtbl nsisupports;
2363
2364 nsresult (*GetCount)(IVirtualSystemDescription *pThis, PRUint32 *count);
2365
2366 nsresult (*GetDescription)(
2367 IVirtualSystemDescription *pThis,
2368 PRUint32 *aTypesSize,
2369 PRUint32* aTypes,
2370 PRUint32 *aRefsSize,
2371 PRUnichar *** aRefs,
2372 PRUint32 *aOvfValuesSize,
2373 PRUnichar *** aOvfValues,
2374 PRUint32 *aVBoxValuesSize,
2375 PRUnichar *** aVBoxValues,
2376 PRUint32 *aExtraConfigValuesSize,
2377 PRUnichar *** aExtraConfigValues
2378 );
2379
2380 nsresult (*GetDescriptionByType)(
2381 IVirtualSystemDescription *pThis,
2382 PRUint32 aType,
2383 PRUint32 *aTypesSize,
2384 PRUint32* aTypes,
2385 PRUint32 *aRefsSize,
2386 PRUnichar *** aRefs,
2387 PRUint32 *aOvfValuesSize,
2388 PRUnichar *** aOvfValues,
2389 PRUint32 *aVBoxValuesSize,
2390 PRUnichar *** aVBoxValues,
2391 PRUint32 *aExtraConfigValuesSize,
2392 PRUnichar *** aExtraConfigValues
2393 );
2394
2395 nsresult (*GetValuesByType)(
2396 IVirtualSystemDescription *pThis,
2397 PRUint32 aType,
2398 PRUint32 aWhich,
2399 PRUint32 *aValuesSize,
2400 PRUnichar *** aValues
2401 );
2402
2403 nsresult (*SetFinalValues)(
2404 IVirtualSystemDescription *pThis,
2405 PRUint32 aEnabledSize,
2406 PRBool* aEnabled,
2407 PRUint32 aVBoxValuesSize,
2408 PRUnichar ** aVBoxValues,
2409 PRUint32 aExtraConfigValuesSize,
2410 PRUnichar ** aExtraConfigValues
2411 );
2412
2413 nsresult (*AddDescription)(
2414 IVirtualSystemDescription *pThis,
2415 PRUint32 aType,
2416 PRUnichar * aVBoxValue,
2417 PRUnichar * aExtraConfigValue
2418 );
2419
2420};
2421
2422struct IVirtualSystemDescription
2423{
2424 struct IVirtualSystemDescription_vtbl *vtbl;
2425};
2426/* End of struct IVirtualSystemDescription Declaration */
2427
2428
2429/* Start of struct IInternalMachineControl Declaration */
2430#define IINTERNALMACHINECONTROL_IID_STR "26604a54-8628-491b-a0ea-e1392a16d13b"
2431#define IINTERNALMACHINECONTROL_IID { \
2432 0x26604a54, 0x8628, 0x491b, \
2433 { 0xa0, 0xea, 0xe1, 0x39, 0x2a, 0x16, 0xd1, 0x3b } \
2434}
2435struct IInternalMachineControl_vtbl
2436{
2437 struct nsISupports_vtbl nsisupports;
2438
2439 nsresult (*SetRemoveSavedState)(
2440 IInternalMachineControl *pThis,
2441 PRBool aRemove
2442 );
2443
2444 nsresult (*UpdateState)(
2445 IInternalMachineControl *pThis,
2446 PRUint32 state
2447 );
2448
2449 nsresult (*GetIPCId)(
2450 IInternalMachineControl *pThis,
2451 PRUnichar * * id
2452 );
2453
2454 nsresult (*BeginPowerUp)(
2455 IInternalMachineControl *pThis,
2456 IProgress * progress
2457 );
2458
2459 nsresult (*EndPowerUp)(
2460 IInternalMachineControl *pThis,
2461 PRInt32 result
2462 );
2463
2464 nsresult (*RunUSBDeviceFilters)(
2465 IInternalMachineControl *pThis,
2466 IUSBDevice * device,
2467 PRBool * matched,
2468 PRUint32 * maskedInterfaces
2469 );
2470
2471 nsresult (*CaptureUSBDevice)(
2472 IInternalMachineControl *pThis,
2473 PRUnichar * id
2474 );
2475
2476 nsresult (*DetachUSBDevice)(
2477 IInternalMachineControl *pThis,
2478 PRUnichar * id,
2479 PRBool done
2480 );
2481
2482 nsresult (*AutoCaptureUSBDevices)(IInternalMachineControl *pThis );
2483
2484 nsresult (*DetachAllUSBDevices)(
2485 IInternalMachineControl *pThis,
2486 PRBool done
2487 );
2488
2489 nsresult (*OnSessionEnd)(
2490 IInternalMachineControl *pThis,
2491 ISession * session,
2492 IProgress * * progress
2493 );
2494
2495 nsresult (*BeginSavingState)(
2496 IInternalMachineControl *pThis,
2497 IProgress * progress,
2498 PRUnichar * * stateFilePath
2499 );
2500
2501 nsresult (*EndSavingState)(
2502 IInternalMachineControl *pThis,
2503 PRBool success
2504 );
2505
2506 nsresult (*AdoptSavedState)(
2507 IInternalMachineControl *pThis,
2508 PRUnichar * savedStateFile
2509 );
2510
2511 nsresult (*BeginTakingSnapshot)(
2512 IInternalMachineControl *pThis,
2513 IConsole * initiator,
2514 PRUnichar * name,
2515 PRUnichar * description,
2516 IProgress * consoleProgress,
2517 PRBool fTakingSnapshotOnline,
2518 PRUnichar * * stateFilePath
2519 );
2520
2521 nsresult (*EndTakingSnapshot)(
2522 IInternalMachineControl *pThis,
2523 PRBool success
2524 );
2525
2526 nsresult (*DeleteSnapshot)(
2527 IInternalMachineControl *pThis,
2528 IConsole * initiator,
2529 PRUnichar * id,
2530 PRUint32 * machineState,
2531 IProgress * * progress
2532 );
2533
2534 nsresult (*FinishOnlineMergeMedium)(
2535 IInternalMachineControl *pThis,
2536 IMediumAttachment * mediumAttachment,
2537 IMedium * source,
2538 IMedium * target,
2539 PRBool mergeForward,
2540 IMedium * parentForTarget,
2541 PRUint32 childrenToReparentSize,
2542 IMedium ** childrenToReparent
2543 );
2544
2545 nsresult (*RestoreSnapshot)(
2546 IInternalMachineControl *pThis,
2547 IConsole * initiator,
2548 ISnapshot * snapshot,
2549 PRUint32 * machineState,
2550 IProgress * * progress
2551 );
2552
2553 nsresult (*PullGuestProperties)(
2554 IInternalMachineControl *pThis,
2555 PRUint32 *nameSize,
2556 PRUnichar *** name,
2557 PRUint32 *valueSize,
2558 PRUnichar *** value,
2559 PRUint32 *timestampSize,
2560 PRUint64* timestamp,
2561 PRUint32 *flagsSize,
2562 PRUnichar *** flags
2563 );
2564
2565 nsresult (*PushGuestProperty)(
2566 IInternalMachineControl *pThis,
2567 PRUnichar * name,
2568 PRUnichar * value,
2569 PRUint64 timestamp,
2570 PRUnichar * flags
2571 );
2572
2573 nsresult (*LockMedia)(IInternalMachineControl *pThis );
2574
2575 nsresult (*UnlockMedia)(IInternalMachineControl *pThis );
2576
2577};
2578
2579struct IInternalMachineControl
2580{
2581 struct IInternalMachineControl_vtbl *vtbl;
2582};
2583/* End of struct IInternalMachineControl Declaration */
2584
2585
2586/* Start of struct IBIOSSettings Declaration */
2587#define IBIOSSETTINGS_IID_STR "38b54279-dc35-4f5e-a431-835b867c6b5e"
2588#define IBIOSSETTINGS_IID { \
2589 0x38b54279, 0xdc35, 0x4f5e, \
2590 { 0xa4, 0x31, 0x83, 0x5b, 0x86, 0x7c, 0x6b, 0x5e } \
2591}
2592struct IBIOSSettings_vtbl
2593{
2594 struct nsISupports_vtbl nsisupports;
2595
2596 nsresult (*GetLogoFadeIn)(IBIOSSettings *pThis, PRBool *logoFadeIn);
2597 nsresult (*SetLogoFadeIn)(IBIOSSettings *pThis, PRBool logoFadeIn);
2598
2599 nsresult (*GetLogoFadeOut)(IBIOSSettings *pThis, PRBool *logoFadeOut);
2600 nsresult (*SetLogoFadeOut)(IBIOSSettings *pThis, PRBool logoFadeOut);
2601
2602 nsresult (*GetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 *logoDisplayTime);
2603 nsresult (*SetLogoDisplayTime)(IBIOSSettings *pThis, PRUint32 logoDisplayTime);
2604
2605 nsresult (*GetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * *logoImagePath);
2606 nsresult (*SetLogoImagePath)(IBIOSSettings *pThis, PRUnichar * logoImagePath);
2607
2608 nsresult (*GetBootMenuMode)(IBIOSSettings *pThis, PRUint32 *bootMenuMode);
2609 nsresult (*SetBootMenuMode)(IBIOSSettings *pThis, PRUint32 bootMenuMode);
2610
2611 nsresult (*GetACPIEnabled)(IBIOSSettings *pThis, PRBool *ACPIEnabled);
2612 nsresult (*SetACPIEnabled)(IBIOSSettings *pThis, PRBool ACPIEnabled);
2613
2614 nsresult (*GetIOAPICEnabled)(IBIOSSettings *pThis, PRBool *IOAPICEnabled);
2615 nsresult (*SetIOAPICEnabled)(IBIOSSettings *pThis, PRBool IOAPICEnabled);
2616
2617 nsresult (*GetTimeOffset)(IBIOSSettings *pThis, PRInt64 *timeOffset);
2618 nsresult (*SetTimeOffset)(IBIOSSettings *pThis, PRInt64 timeOffset);
2619
2620 nsresult (*GetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool *PXEDebugEnabled);
2621 nsresult (*SetPXEDebugEnabled)(IBIOSSettings *pThis, PRBool PXEDebugEnabled);
2622
2623};
2624
2625struct IBIOSSettings
2626{
2627 struct IBIOSSettings_vtbl *vtbl;
2628};
2629/* End of struct IBIOSSettings Declaration */
2630
2631
2632/* Start of struct IMachine Declaration */
2633#define IMACHINE_IID_STR "6d9212cb-a5c0-48b7-bbc1-3fa2ba2ee6d2"
2634#define IMACHINE_IID { \
2635 0x6d9212cb, 0xa5c0, 0x48b7, \
2636 { 0xbb, 0xc1, 0x3f, 0xa2, 0xba, 0x2e, 0xe6, 0xd2 } \
2637}
2638struct IMachine_vtbl
2639{
2640 struct nsISupports_vtbl nsisupports;
2641
2642 nsresult (*GetParent)(IMachine *pThis, IVirtualBox * *parent);
2643
2644 nsresult (*GetAccessible)(IMachine *pThis, PRBool *accessible);
2645
2646 nsresult (*GetAccessError)(IMachine *pThis, IVirtualBoxErrorInfo * *accessError);
2647
2648 nsresult (*GetName)(IMachine *pThis, PRUnichar * *name);
2649 nsresult (*SetName)(IMachine *pThis, PRUnichar * name);
2650
2651 nsresult (*GetDescription)(IMachine *pThis, PRUnichar * *description);
2652 nsresult (*SetDescription)(IMachine *pThis, PRUnichar * description);
2653
2654 nsresult (*GetId)(IMachine *pThis, PRUnichar * *id);
2655
2656 nsresult (*GetOSTypeId)(IMachine *pThis, PRUnichar * *OSTypeId);
2657 nsresult (*SetOSTypeId)(IMachine *pThis, PRUnichar * OSTypeId);
2658
2659 nsresult (*GetHardwareVersion)(IMachine *pThis, PRUnichar * *HardwareVersion);
2660 nsresult (*SetHardwareVersion)(IMachine *pThis, PRUnichar * HardwareVersion);
2661
2662 nsresult (*GetHardwareUUID)(IMachine *pThis, PRUnichar * *hardwareUUID);
2663 nsresult (*SetHardwareUUID)(IMachine *pThis, PRUnichar * hardwareUUID);
2664
2665 nsresult (*GetCPUCount)(IMachine *pThis, PRUint32 *CPUCount);
2666 nsresult (*SetCPUCount)(IMachine *pThis, PRUint32 CPUCount);
2667
2668 nsresult (*GetCPUHotPlugEnabled)(IMachine *pThis, PRBool *CPUHotPlugEnabled);
2669 nsresult (*SetCPUHotPlugEnabled)(IMachine *pThis, PRBool CPUHotPlugEnabled);
2670
2671 nsresult (*GetMemorySize)(IMachine *pThis, PRUint32 *memorySize);
2672 nsresult (*SetMemorySize)(IMachine *pThis, PRUint32 memorySize);
2673
2674 nsresult (*GetMemoryBalloonSize)(IMachine *pThis, PRUint32 *memoryBalloonSize);
2675 nsresult (*SetMemoryBalloonSize)(IMachine *pThis, PRUint32 memoryBalloonSize);
2676
2677 nsresult (*GetPageFusionEnabled)(IMachine *pThis, PRBool *PageFusionEnabled);
2678 nsresult (*SetPageFusionEnabled)(IMachine *pThis, PRBool PageFusionEnabled);
2679
2680 nsresult (*GetVRAMSize)(IMachine *pThis, PRUint32 *VRAMSize);
2681 nsresult (*SetVRAMSize)(IMachine *pThis, PRUint32 VRAMSize);
2682
2683 nsresult (*GetAccelerate3DEnabled)(IMachine *pThis, PRBool *accelerate3DEnabled);
2684 nsresult (*SetAccelerate3DEnabled)(IMachine *pThis, PRBool accelerate3DEnabled);
2685
2686 nsresult (*GetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool *accelerate2DVideoEnabled);
2687 nsresult (*SetAccelerate2DVideoEnabled)(IMachine *pThis, PRBool accelerate2DVideoEnabled);
2688
2689 nsresult (*GetMonitorCount)(IMachine *pThis, PRUint32 *monitorCount);
2690 nsresult (*SetMonitorCount)(IMachine *pThis, PRUint32 monitorCount);
2691
2692 nsresult (*GetBIOSSettings)(IMachine *pThis, IBIOSSettings * *BIOSSettings);
2693
2694 nsresult (*GetFirmwareType)(IMachine *pThis, PRUint32 *firmwareType);
2695 nsresult (*SetFirmwareType)(IMachine *pThis, PRUint32 firmwareType);
2696
2697 nsresult (*GetPointingHidType)(IMachine *pThis, PRUint32 *pointingHidType);
2698 nsresult (*SetPointingHidType)(IMachine *pThis, PRUint32 pointingHidType);
2699
2700 nsresult (*GetKeyboardHidType)(IMachine *pThis, PRUint32 *keyboardHidType);
2701 nsresult (*SetKeyboardHidType)(IMachine *pThis, PRUint32 keyboardHidType);
2702
2703 nsresult (*GetHpetEnabled)(IMachine *pThis, PRBool *hpetEnabled);
2704 nsresult (*SetHpetEnabled)(IMachine *pThis, PRBool hpetEnabled);
2705
2706 nsresult (*GetSnapshotFolder)(IMachine *pThis, PRUnichar * *snapshotFolder);
2707 nsresult (*SetSnapshotFolder)(IMachine *pThis, PRUnichar * snapshotFolder);
2708
2709 nsresult (*GetVRDPServer)(IMachine *pThis, IVRDPServer * *VRDPServer);
2710
2711 nsresult (*GetMediumAttachments)(IMachine *pThis, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments);
2712
2713 nsresult (*GetUSBController)(IMachine *pThis, IUSBController * *USBController);
2714
2715 nsresult (*GetAudioAdapter)(IMachine *pThis, IAudioAdapter * *audioAdapter);
2716
2717 nsresult (*GetStorageControllers)(IMachine *pThis, PRUint32 *storageControllersSize, IStorageController * **storageControllers);
2718
2719 nsresult (*GetSettingsFilePath)(IMachine *pThis, PRUnichar * *settingsFilePath);
2720
2721 nsresult (*GetSettingsModified)(IMachine *pThis, PRBool *settingsModified);
2722
2723 nsresult (*GetSessionState)(IMachine *pThis, PRUint32 *sessionState);
2724
2725 nsresult (*GetSessionType)(IMachine *pThis, PRUnichar * *sessionType);
2726
2727 nsresult (*GetSessionPid)(IMachine *pThis, PRUint32 *sessionPid);
2728
2729 nsresult (*GetState)(IMachine *pThis, PRUint32 *state);
2730
2731 nsresult (*GetLastStateChange)(IMachine *pThis, PRInt64 *lastStateChange);
2732
2733 nsresult (*GetStateFilePath)(IMachine *pThis, PRUnichar * *stateFilePath);
2734
2735 nsresult (*GetLogFolder)(IMachine *pThis, PRUnichar * *logFolder);
2736
2737 nsresult (*GetCurrentSnapshot)(IMachine *pThis, ISnapshot * *currentSnapshot);
2738
2739 nsresult (*GetSnapshotCount)(IMachine *pThis, PRUint32 *snapshotCount);
2740
2741 nsresult (*GetCurrentStateModified)(IMachine *pThis, PRBool *currentStateModified);
2742
2743 nsresult (*GetSharedFolders)(IMachine *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
2744
2745 nsresult (*GetClipboardMode)(IMachine *pThis, PRUint32 *clipboardMode);
2746 nsresult (*SetClipboardMode)(IMachine *pThis, PRUint32 clipboardMode);
2747
2748 nsresult (*GetGuestPropertyNotificationPatterns)(IMachine *pThis, PRUnichar * *guestPropertyNotificationPatterns);
2749 nsresult (*SetGuestPropertyNotificationPatterns)(IMachine *pThis, PRUnichar * guestPropertyNotificationPatterns);
2750
2751 nsresult (*GetTeleporterEnabled)(IMachine *pThis, PRBool *teleporterEnabled);
2752 nsresult (*SetTeleporterEnabled)(IMachine *pThis, PRBool teleporterEnabled);
2753
2754 nsresult (*GetTeleporterPort)(IMachine *pThis, PRUint32 *teleporterPort);
2755 nsresult (*SetTeleporterPort)(IMachine *pThis, PRUint32 teleporterPort);
2756
2757 nsresult (*GetTeleporterAddress)(IMachine *pThis, PRUnichar * *teleporterAddress);
2758 nsresult (*SetTeleporterAddress)(IMachine *pThis, PRUnichar * teleporterAddress);
2759
2760 nsresult (*GetTeleporterPassword)(IMachine *pThis, PRUnichar * *teleporterPassword);
2761 nsresult (*SetTeleporterPassword)(IMachine *pThis, PRUnichar * teleporterPassword);
2762
2763 nsresult (*GetRTCUseUTC)(IMachine *pThis, PRBool *RTCUseUTC);
2764 nsresult (*SetRTCUseUTC)(IMachine *pThis, PRBool RTCUseUTC);
2765
2766 nsresult (*GetIoCacheEnabled)(IMachine *pThis, PRBool *ioCacheEnabled);
2767 nsresult (*SetIoCacheEnabled)(IMachine *pThis, PRBool ioCacheEnabled);
2768
2769 nsresult (*GetIoCacheSize)(IMachine *pThis, PRUint32 *ioCacheSize);
2770 nsresult (*SetIoCacheSize)(IMachine *pThis, PRUint32 ioCacheSize);
2771
2772 nsresult (*GetIoBandwidthMax)(IMachine *pThis, PRUint32 *ioBandwidthMax);
2773 nsresult (*SetIoBandwidthMax)(IMachine *pThis, PRUint32 ioBandwidthMax);
2774
2775 nsresult (*SetBootOrder)(
2776 IMachine *pThis,
2777 PRUint32 position,
2778 PRUint32 device
2779 );
2780
2781 nsresult (*GetBootOrder)(
2782 IMachine *pThis,
2783 PRUint32 position,
2784 PRUint32 * device
2785 );
2786
2787 nsresult (*AttachDevice)(
2788 IMachine *pThis,
2789 PRUnichar * name,
2790 PRInt32 controllerPort,
2791 PRInt32 device,
2792 PRUint32 type,
2793 PRUnichar * id
2794 );
2795
2796 nsresult (*DetachDevice)(
2797 IMachine *pThis,
2798 PRUnichar * name,
2799 PRInt32 controllerPort,
2800 PRInt32 device
2801 );
2802
2803 nsresult (*PassthroughDevice)(
2804 IMachine *pThis,
2805 PRUnichar * name,
2806 PRInt32 controllerPort,
2807 PRInt32 device,
2808 PRBool passthrough
2809 );
2810
2811 nsresult (*MountMedium)(
2812 IMachine *pThis,
2813 PRUnichar * name,
2814 PRInt32 controllerPort,
2815 PRInt32 device,
2816 PRUnichar * medium,
2817 PRBool force
2818 );
2819
2820 nsresult (*GetMedium)(
2821 IMachine *pThis,
2822 PRUnichar * name,
2823 PRInt32 controllerPort,
2824 PRInt32 device,
2825 IMedium * * medium
2826 );
2827
2828 nsresult (*GetMediumAttachmentsOfController)(
2829 IMachine *pThis,
2830 PRUnichar * name,
2831 PRUint32 *mediumAttachmentsSize,
2832 IMediumAttachment *** mediumAttachments
2833 );
2834
2835 nsresult (*GetMediumAttachment)(
2836 IMachine *pThis,
2837 PRUnichar * name,
2838 PRInt32 controllerPort,
2839 PRInt32 device,
2840 IMediumAttachment * * attachment
2841 );
2842
2843 nsresult (*GetNetworkAdapter)(
2844 IMachine *pThis,
2845 PRUint32 slot,
2846 INetworkAdapter * * adapter
2847 );
2848
2849 nsresult (*AddStorageController)(
2850 IMachine *pThis,
2851 PRUnichar * name,
2852 PRUint32 connectionType,
2853 IStorageController * * controller
2854 );
2855
2856 nsresult (*GetStorageControllerByName)(
2857 IMachine *pThis,
2858 PRUnichar * name,
2859 IStorageController * * storageController
2860 );
2861
2862 nsresult (*GetStorageControllerByInstance)(
2863 IMachine *pThis,
2864 PRUint32 instance,
2865 IStorageController * * storageController
2866 );
2867
2868 nsresult (*RemoveStorageController)(
2869 IMachine *pThis,
2870 PRUnichar * name
2871 );
2872
2873 nsresult (*GetSerialPort)(
2874 IMachine *pThis,
2875 PRUint32 slot,
2876 ISerialPort * * port
2877 );
2878
2879 nsresult (*GetParallelPort)(
2880 IMachine *pThis,
2881 PRUint32 slot,
2882 IParallelPort * * port
2883 );
2884
2885 nsresult (*GetExtraDataKeys)(
2886 IMachine *pThis,
2887 PRUint32 *valueSize,
2888 PRUnichar *** value
2889 );
2890
2891 nsresult (*GetExtraData)(
2892 IMachine *pThis,
2893 PRUnichar * key,
2894 PRUnichar * * value
2895 );
2896
2897 nsresult (*SetExtraData)(
2898 IMachine *pThis,
2899 PRUnichar * key,
2900 PRUnichar * value
2901 );
2902
2903 nsresult (*GetCPUProperty)(
2904 IMachine *pThis,
2905 PRUint32 property,
2906 PRBool * value
2907 );
2908
2909 nsresult (*SetCPUProperty)(
2910 IMachine *pThis,
2911 PRUint32 property,
2912 PRBool value
2913 );
2914
2915 nsresult (*GetCPUIDLeaf)(
2916 IMachine *pThis,
2917 PRUint32 id,
2918 PRUint32 * valEax,
2919 PRUint32 * valEbx,
2920 PRUint32 * valEcx,
2921 PRUint32 * valEdx
2922 );
2923
2924 nsresult (*SetCPUIDLeaf)(
2925 IMachine *pThis,
2926 PRUint32 id,
2927 PRUint32 valEax,
2928 PRUint32 valEbx,
2929 PRUint32 valEcx,
2930 PRUint32 valEdx
2931 );
2932
2933 nsresult (*RemoveCPUIDLeaf)(
2934 IMachine *pThis,
2935 PRUint32 id
2936 );
2937
2938 nsresult (*RemoveAllCPUIDLeaves)(IMachine *pThis );
2939
2940 nsresult (*GetHWVirtExProperty)(
2941 IMachine *pThis,
2942 PRUint32 property,
2943 PRBool * value
2944 );
2945
2946 nsresult (*SetHWVirtExProperty)(
2947 IMachine *pThis,
2948 PRUint32 property,
2949 PRBool value
2950 );
2951
2952 nsresult (*SaveSettings)(IMachine *pThis );
2953
2954 nsresult (*DiscardSettings)(IMachine *pThis );
2955
2956 nsresult (*DeleteSettings)(IMachine *pThis );
2957
2958 nsresult (*Export)(
2959 IMachine *pThis,
2960 IAppliance * aAppliance,
2961 IVirtualSystemDescription * * aDescription
2962 );
2963
2964 nsresult (*GetSnapshot)(
2965 IMachine *pThis,
2966 PRUnichar * id,
2967 ISnapshot * * snapshot
2968 );
2969
2970 nsresult (*FindSnapshot)(
2971 IMachine *pThis,
2972 PRUnichar * name,
2973 ISnapshot * * snapshot
2974 );
2975
2976 nsresult (*SetCurrentSnapshot)(
2977 IMachine *pThis,
2978 PRUnichar * id
2979 );
2980
2981 nsresult (*CreateSharedFolder)(
2982 IMachine *pThis,
2983 PRUnichar * name,
2984 PRUnichar * hostPath,
2985 PRBool writable
2986 );
2987
2988 nsresult (*RemoveSharedFolder)(
2989 IMachine *pThis,
2990 PRUnichar * name
2991 );
2992
2993 nsresult (*CanShowConsoleWindow)(
2994 IMachine *pThis,
2995 PRBool * canShow
2996 );
2997
2998 nsresult (*ShowConsoleWindow)(
2999 IMachine *pThis,
3000 PRUint64 * winId
3001 );
3002
3003 nsresult (*GetGuestProperty)(
3004 IMachine *pThis,
3005 PRUnichar * name,
3006 PRUnichar * * value,
3007 PRUint64 * timestamp,
3008 PRUnichar * * flags
3009 );
3010
3011 nsresult (*GetGuestPropertyValue)(
3012 IMachine *pThis,
3013 PRUnichar * property,
3014 PRUnichar * * value
3015 );
3016
3017 nsresult (*GetGuestPropertyTimestamp)(
3018 IMachine *pThis,
3019 PRUnichar * property,
3020 PRUint64 * value
3021 );
3022
3023 nsresult (*SetGuestProperty)(
3024 IMachine *pThis,
3025 PRUnichar * property,
3026 PRUnichar * value,
3027 PRUnichar * flags
3028 );
3029
3030 nsresult (*SetGuestPropertyValue)(
3031 IMachine *pThis,
3032 PRUnichar * property,
3033 PRUnichar * value
3034 );
3035
3036 nsresult (*EnumerateGuestProperties)(
3037 IMachine *pThis,
3038 PRUnichar * patterns,
3039 PRUint32 *nameSize,
3040 PRUnichar *** name,
3041 PRUint32 *valueSize,
3042 PRUnichar *** value,
3043 PRUint32 *timestampSize,
3044 PRUint64* timestamp,
3045 PRUint32 *flagsSize,
3046 PRUnichar *** flags
3047 );
3048
3049 nsresult (*QuerySavedThumbnailSize)(
3050 IMachine *pThis,
3051 PRUint32 screenId,
3052 PRUint32 * size,
3053 PRUint32 * width,
3054 PRUint32 * height
3055 );
3056
3057 nsresult (*ReadSavedThumbnailToArray)(
3058 IMachine *pThis,
3059 PRUint32 screenId,
3060 PRBool BGR,
3061 PRUint32 * width,
3062 PRUint32 * height,
3063 PRUint32 *dataSize,
3064 PRUint8** data
3065 );
3066
3067 nsresult (*QuerySavedScreenshotPNGSize)(
3068 IMachine *pThis,
3069 PRUint32 screenId,
3070 PRUint32 * size,
3071 PRUint32 * width,
3072 PRUint32 * height
3073 );
3074
3075 nsresult (*ReadSavedScreenshotPNGToArray)(
3076 IMachine *pThis,
3077 PRUint32 screenId,
3078 PRUint32 * width,
3079 PRUint32 * height,
3080 PRUint32 *dataSize,
3081 PRUint8** data
3082 );
3083
3084 nsresult (*HotPlugCPU)(
3085 IMachine *pThis,
3086 PRUint32 cpu
3087 );
3088
3089 nsresult (*HotUnplugCPU)(
3090 IMachine *pThis,
3091 PRUint32 cpu
3092 );
3093
3094 nsresult (*GetCPUStatus)(
3095 IMachine *pThis,
3096 PRUint32 cpu,
3097 PRBool * attached
3098 );
3099
3100 nsresult (*QueryLogFilename)(
3101 IMachine *pThis,
3102 PRUint32 idx,
3103 PRUnichar * * filename
3104 );
3105
3106 nsresult (*ReadLog)(
3107 IMachine *pThis,
3108 PRUint32 idx,
3109 PRUint64 offset,
3110 PRUint64 size,
3111 PRUint32 *dataSize,
3112 PRUint8** data
3113 );
3114
3115};
3116
3117struct IMachine
3118{
3119 struct IMachine_vtbl *vtbl;
3120};
3121/* End of struct IMachine Declaration */
3122
3123
3124/* Start of struct IConsoleCallback Declaration */
3125#define ICONSOLECALLBACK_IID_STR "60703f8d-81e4-4b45-a147-dcfd07692b19"
3126#define ICONSOLECALLBACK_IID { \
3127 0x60703f8d, 0x81e4, 0x4b45, \
3128 { 0xa1, 0x47, 0xdc, 0xfd, 0x07, 0x69, 0x2b, 0x19 } \
3129}
3130struct IConsoleCallback_vtbl
3131{
3132 struct nsISupports_vtbl nsisupports;
3133
3134 nsresult (*OnMousePointerShapeChange)(
3135 IConsoleCallback *pThis,
3136 PRBool visible,
3137 PRBool alpha,
3138 PRUint32 xHot,
3139 PRUint32 yHot,
3140 PRUint32 width,
3141 PRUint32 height,
3142 PRUint32 shapeSize,
3143 PRUint8* shape
3144 );
3145
3146 nsresult (*OnMouseCapabilityChange)(
3147 IConsoleCallback *pThis,
3148 PRBool supportsAbsolute,
3149 PRBool supportsRelative,
3150 PRBool needsHostCursor
3151 );
3152
3153 nsresult (*OnKeyboardLedsChange)(
3154 IConsoleCallback *pThis,
3155 PRBool numLock,
3156 PRBool capsLock,
3157 PRBool scrollLock
3158 );
3159
3160 nsresult (*OnStateChange)(
3161 IConsoleCallback *pThis,
3162 PRUint32 state
3163 );
3164
3165 nsresult (*OnAdditionsStateChange)(IConsoleCallback *pThis );
3166
3167 nsresult (*OnNetworkAdapterChange)(
3168 IConsoleCallback *pThis,
3169 INetworkAdapter * networkAdapter
3170 );
3171
3172 nsresult (*OnSerialPortChange)(
3173 IConsoleCallback *pThis,
3174 ISerialPort * serialPort
3175 );
3176
3177 nsresult (*OnParallelPortChange)(
3178 IConsoleCallback *pThis,
3179 IParallelPort * parallelPort
3180 );
3181
3182 nsresult (*OnStorageControllerChange)(IConsoleCallback *pThis );
3183
3184 nsresult (*OnMediumChange)(
3185 IConsoleCallback *pThis,
3186 IMediumAttachment * mediumAttachment
3187 );
3188
3189 nsresult (*OnCPUChange)(
3190 IConsoleCallback *pThis,
3191 PRUint32 cpu,
3192 PRBool add
3193 );
3194
3195 nsresult (*OnVRDPServerChange)(IConsoleCallback *pThis );
3196
3197 nsresult (*OnRemoteDisplayInfoChange)(IConsoleCallback *pThis );
3198
3199 nsresult (*OnUSBControllerChange)(IConsoleCallback *pThis );
3200
3201 nsresult (*OnUSBDeviceStateChange)(
3202 IConsoleCallback *pThis,
3203 IUSBDevice * device,
3204 PRBool attached,
3205 IVirtualBoxErrorInfo * error
3206 );
3207
3208 nsresult (*OnSharedFolderChange)(
3209 IConsoleCallback *pThis,
3210 PRUint32 scope
3211 );
3212
3213 nsresult (*OnRuntimeError)(
3214 IConsoleCallback *pThis,
3215 PRBool fatal,
3216 PRUnichar * id,
3217 PRUnichar * message
3218 );
3219
3220 nsresult (*OnCanShowWindow)(
3221 IConsoleCallback *pThis,
3222 PRBool * canShow
3223 );
3224
3225 nsresult (*OnShowWindow)(
3226 IConsoleCallback *pThis,
3227 PRUint64 * winId
3228 );
3229
3230};
3231
3232struct IConsoleCallback
3233{
3234 struct IConsoleCallback_vtbl *vtbl;
3235};
3236/* End of struct IConsoleCallback Declaration */
3237
3238
3239/* Start of struct IRemoteDisplayInfo Declaration */
3240#define IREMOTEDISPLAYINFO_IID_STR "b3741084-806f-4c3b-8c42-ebad1a81e45a"
3241#define IREMOTEDISPLAYINFO_IID { \
3242 0xb3741084, 0x806f, 0x4c3b, \
3243 { 0x8c, 0x42, 0xeb, 0xad, 0x1a, 0x81, 0xe4, 0x5a } \
3244}
3245struct IRemoteDisplayInfo_vtbl
3246{
3247 struct nsISupports_vtbl nsisupports;
3248
3249 nsresult (*GetActive)(IRemoteDisplayInfo *pThis, PRBool *active);
3250
3251 nsresult (*GetPort)(IRemoteDisplayInfo *pThis, PRInt32 *port);
3252
3253 nsresult (*GetNumberOfClients)(IRemoteDisplayInfo *pThis, PRUint32 *numberOfClients);
3254
3255 nsresult (*GetBeginTime)(IRemoteDisplayInfo *pThis, PRInt64 *beginTime);
3256
3257 nsresult (*GetEndTime)(IRemoteDisplayInfo *pThis, PRInt64 *endTime);
3258
3259 nsresult (*GetBytesSent)(IRemoteDisplayInfo *pThis, PRUint64 *bytesSent);
3260
3261 nsresult (*GetBytesSentTotal)(IRemoteDisplayInfo *pThis, PRUint64 *bytesSentTotal);
3262
3263 nsresult (*GetBytesReceived)(IRemoteDisplayInfo *pThis, PRUint64 *bytesReceived);
3264
3265 nsresult (*GetBytesReceivedTotal)(IRemoteDisplayInfo *pThis, PRUint64 *bytesReceivedTotal);
3266
3267 nsresult (*GetUser)(IRemoteDisplayInfo *pThis, PRUnichar * *user);
3268
3269 nsresult (*GetDomain)(IRemoteDisplayInfo *pThis, PRUnichar * *domain);
3270
3271 nsresult (*GetClientName)(IRemoteDisplayInfo *pThis, PRUnichar * *clientName);
3272
3273 nsresult (*GetClientIP)(IRemoteDisplayInfo *pThis, PRUnichar * *clientIP);
3274
3275 nsresult (*GetClientVersion)(IRemoteDisplayInfo *pThis, PRUint32 *clientVersion);
3276
3277 nsresult (*GetEncryptionStyle)(IRemoteDisplayInfo *pThis, PRUint32 *encryptionStyle);
3278
3279};
3280
3281struct IRemoteDisplayInfo
3282{
3283 struct IRemoteDisplayInfo_vtbl *vtbl;
3284};
3285/* End of struct IRemoteDisplayInfo Declaration */
3286
3287
3288/* Start of struct IConsole Declaration */
3289#define ICONSOLE_IID_STR "6375231a-c17c-464b-92cb-ae9e128d71c3"
3290#define ICONSOLE_IID { \
3291 0x6375231a, 0xc17c, 0x464b, \
3292 { 0x92, 0xcb, 0xae, 0x9e, 0x12, 0x8d, 0x71, 0xc3 } \
3293}
3294struct IConsole_vtbl
3295{
3296 struct nsISupports_vtbl nsisupports;
3297
3298 nsresult (*GetMachine)(IConsole *pThis, IMachine * *machine);
3299
3300 nsresult (*GetState)(IConsole *pThis, PRUint32 *state);
3301
3302 nsresult (*GetGuest)(IConsole *pThis, IGuest * *guest);
3303
3304 nsresult (*GetKeyboard)(IConsole *pThis, IKeyboard * *keyboard);
3305
3306 nsresult (*GetMouse)(IConsole *pThis, IMouse * *mouse);
3307
3308 nsresult (*GetDisplay)(IConsole *pThis, IDisplay * *display);
3309
3310 nsresult (*GetDebugger)(IConsole *pThis, IMachineDebugger * *debugger);
3311
3312 nsresult (*GetUSBDevices)(IConsole *pThis, PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices);
3313
3314 nsresult (*GetRemoteUSBDevices)(IConsole *pThis, PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices);
3315
3316 nsresult (*GetSharedFolders)(IConsole *pThis, PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders);
3317
3318 nsresult (*GetRemoteDisplayInfo)(IConsole *pThis, IRemoteDisplayInfo * *remoteDisplayInfo);
3319
3320 nsresult (*PowerUp)(
3321 IConsole *pThis,
3322 IProgress * * progress
3323 );
3324
3325 nsresult (*PowerUpPaused)(
3326 IConsole *pThis,
3327 IProgress * * progress
3328 );
3329
3330 nsresult (*PowerDown)(
3331 IConsole *pThis,
3332 IProgress * * progress
3333 );
3334
3335 nsresult (*Reset)(IConsole *pThis );
3336
3337 nsresult (*Pause)(IConsole *pThis );
3338
3339 nsresult (*Resume)(IConsole *pThis );
3340
3341 nsresult (*PowerButton)(IConsole *pThis );
3342
3343 nsresult (*SleepButton)(IConsole *pThis );
3344
3345 nsresult (*GetPowerButtonHandled)(
3346 IConsole *pThis,
3347 PRBool * handled
3348 );
3349
3350 nsresult (*GetGuestEnteredACPIMode)(
3351 IConsole *pThis,
3352 PRBool * entered
3353 );
3354
3355 nsresult (*SaveState)(
3356 IConsole *pThis,
3357 IProgress * * progress
3358 );
3359
3360 nsresult (*AdoptSavedState)(
3361 IConsole *pThis,
3362 PRUnichar * savedStateFile
3363 );
3364
3365 nsresult (*ForgetSavedState)(
3366 IConsole *pThis,
3367 PRBool remove
3368 );
3369
3370 nsresult (*GetDeviceActivity)(
3371 IConsole *pThis,
3372 PRUint32 type,
3373 PRUint32 * activity
3374 );
3375
3376 nsresult (*AttachUSBDevice)(
3377 IConsole *pThis,
3378 PRUnichar * id
3379 );
3380
3381 nsresult (*DetachUSBDevice)(
3382 IConsole *pThis,
3383 PRUnichar * id,
3384 IUSBDevice * * device
3385 );
3386
3387 nsresult (*FindUSBDeviceByAddress)(
3388 IConsole *pThis,
3389 PRUnichar * name,
3390 IUSBDevice * * device
3391 );
3392
3393 nsresult (*FindUSBDeviceById)(
3394 IConsole *pThis,
3395 PRUnichar * id,
3396 IUSBDevice * * device
3397 );
3398
3399 nsresult (*CreateSharedFolder)(
3400 IConsole *pThis,
3401 PRUnichar * name,
3402 PRUnichar * hostPath,
3403 PRBool writable
3404 );
3405
3406 nsresult (*RemoveSharedFolder)(
3407 IConsole *pThis,
3408 PRUnichar * name
3409 );
3410
3411 nsresult (*TakeSnapshot)(
3412 IConsole *pThis,
3413 PRUnichar * name,
3414 PRUnichar * description,
3415 IProgress * * progress
3416 );
3417
3418 nsresult (*DeleteSnapshot)(
3419 IConsole *pThis,
3420 PRUnichar * id,
3421 IProgress * * progress
3422 );
3423
3424 nsresult (*RestoreSnapshot)(
3425 IConsole *pThis,
3426 ISnapshot * snapshot,
3427 IProgress * * progress
3428 );
3429
3430 nsresult (*Teleport)(
3431 IConsole *pThis,
3432 PRUnichar * hostname,
3433 PRUint32 tcpport,
3434 PRUnichar * password,
3435 PRUint32 maxDowntime,
3436 IProgress * * progress
3437 );
3438
3439 nsresult (*RegisterCallback)(
3440 IConsole *pThis,
3441 IConsoleCallback * callback
3442 );
3443
3444 nsresult (*UnregisterCallback)(
3445 IConsole *pThis,
3446 IConsoleCallback * callback
3447 );
3448
3449};
3450
3451struct IConsole
3452{
3453 struct IConsole_vtbl *vtbl;
3454};
3455/* End of struct IConsole Declaration */
3456
3457
3458/* Start of struct IHostNetworkInterface Declaration */
3459#define IHOSTNETWORKINTERFACE_IID_STR "ce6fae58-7642-4102-b5db-c9005c2320a8"
3460#define IHOSTNETWORKINTERFACE_IID { \
3461 0xce6fae58, 0x7642, 0x4102, \
3462 { 0xb5, 0xdb, 0xc9, 0x00, 0x5c, 0x23, 0x20, 0xa8 } \
3463}
3464struct IHostNetworkInterface_vtbl
3465{
3466 struct nsISupports_vtbl nsisupports;
3467
3468 nsresult (*GetName)(IHostNetworkInterface *pThis, PRUnichar * *name);
3469
3470 nsresult (*GetId)(IHostNetworkInterface *pThis, PRUnichar * *id);
3471
3472 nsresult (*GetNetworkName)(IHostNetworkInterface *pThis, PRUnichar * *networkName);
3473
3474 nsresult (*GetDhcpEnabled)(IHostNetworkInterface *pThis, PRBool *dhcpEnabled);
3475
3476 nsresult (*GetIPAddress)(IHostNetworkInterface *pThis, PRUnichar * *IPAddress);
3477
3478 nsresult (*GetNetworkMask)(IHostNetworkInterface *pThis, PRUnichar * *networkMask);
3479
3480 nsresult (*GetIPV6Supported)(IHostNetworkInterface *pThis, PRBool *IPV6Supported);
3481
3482 nsresult (*GetIPV6Address)(IHostNetworkInterface *pThis, PRUnichar * *IPV6Address);
3483
3484 nsresult (*GetIPV6NetworkMaskPrefixLength)(IHostNetworkInterface *pThis, PRUint32 *IPV6NetworkMaskPrefixLength);
3485
3486 nsresult (*GetHardwareAddress)(IHostNetworkInterface *pThis, PRUnichar * *hardwareAddress);
3487
3488 nsresult (*GetMediumType)(IHostNetworkInterface *pThis, PRUint32 *mediumType);
3489
3490 nsresult (*GetStatus)(IHostNetworkInterface *pThis, PRUint32 *status);
3491
3492 nsresult (*GetInterfaceType)(IHostNetworkInterface *pThis, PRUint32 *interfaceType);
3493
3494 nsresult (*EnableStaticIpConfig)(
3495 IHostNetworkInterface *pThis,
3496 PRUnichar * IPAddress,
3497 PRUnichar * networkMask
3498 );
3499
3500 nsresult (*EnableStaticIpConfigV6)(
3501 IHostNetworkInterface *pThis,
3502 PRUnichar * IPV6Address,
3503 PRUint32 IPV6NetworkMaskPrefixLength
3504 );
3505
3506 nsresult (*EnableDynamicIpConfig)(IHostNetworkInterface *pThis );
3507
3508 nsresult (*DhcpRediscover)(IHostNetworkInterface *pThis );
3509
3510};
3511
3512struct IHostNetworkInterface
3513{
3514 struct IHostNetworkInterface_vtbl *vtbl;
3515};
3516/* End of struct IHostNetworkInterface Declaration */
3517
3518
3519/* Start of struct IHost Declaration */
3520#define IHOST_IID_STR "35b004f4-7806-4009-bfa8-d1308adba7e5"
3521#define IHOST_IID { \
3522 0x35b004f4, 0x7806, 0x4009, \
3523 { 0xbf, 0xa8, 0xd1, 0x30, 0x8a, 0xdb, 0xa7, 0xe5 } \
3524}
3525struct IHost_vtbl
3526{
3527 struct nsISupports_vtbl nsisupports;
3528
3529 nsresult (*GetDVDDrives)(IHost *pThis, PRUint32 *DVDDrivesSize, IMedium * **DVDDrives);
3530
3531 nsresult (*GetFloppyDrives)(IHost *pThis, PRUint32 *floppyDrivesSize, IMedium * **floppyDrives);
3532
3533 nsresult (*GetUSBDevices)(IHost *pThis, PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices);
3534
3535 nsresult (*GetUSBDeviceFilters)(IHost *pThis, PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters);
3536
3537 nsresult (*GetNetworkInterfaces)(IHost *pThis, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces);
3538
3539 nsresult (*GetProcessorCount)(IHost *pThis, PRUint32 *processorCount);
3540
3541 nsresult (*GetProcessorOnlineCount)(IHost *pThis, PRUint32 *processorOnlineCount);
3542
3543 nsresult (*GetProcessorCoreCount)(IHost *pThis, PRUint32 *processorCoreCount);
3544
3545 nsresult (*GetMemorySize)(IHost *pThis, PRUint32 *memorySize);
3546
3547 nsresult (*GetMemoryAvailable)(IHost *pThis, PRUint32 *memoryAvailable);
3548
3549 nsresult (*GetOperatingSystem)(IHost *pThis, PRUnichar * *operatingSystem);
3550
3551 nsresult (*GetOSVersion)(IHost *pThis, PRUnichar * *OSVersion);
3552
3553 nsresult (*GetUTCTime)(IHost *pThis, PRInt64 *UTCTime);
3554
3555 nsresult (*GetAcceleration3DAvailable)(IHost *pThis, PRBool *Acceleration3DAvailable);
3556
3557 nsresult (*GetProcessorSpeed)(
3558 IHost *pThis,
3559 PRUint32 cpuId,
3560 PRUint32 * speed
3561 );
3562
3563 nsresult (*GetProcessorFeature)(
3564 IHost *pThis,
3565 PRUint32 feature,
3566 PRBool * supported
3567 );
3568
3569 nsresult (*GetProcessorDescription)(
3570 IHost *pThis,
3571 PRUint32 cpuId,
3572 PRUnichar * * description
3573 );
3574
3575 nsresult (*GetProcessorCPUIDLeaf)(
3576 IHost *pThis,
3577 PRUint32 cpuId,
3578 PRUint32 leaf,
3579 PRUint32 subLeaf,
3580 PRUint32 * valEax,
3581 PRUint32 * valEbx,
3582 PRUint32 * valEcx,
3583 PRUint32 * valEdx
3584 );
3585
3586 nsresult (*CreateHostOnlyNetworkInterface)(
3587 IHost *pThis,
3588 IHostNetworkInterface * * hostInterface,
3589 IProgress * * progress
3590 );
3591
3592 nsresult (*RemoveHostOnlyNetworkInterface)(
3593 IHost *pThis,
3594 PRUnichar * id,
3595 IProgress * * progress
3596 );
3597
3598 nsresult (*CreateUSBDeviceFilter)(
3599 IHost *pThis,
3600 PRUnichar * name,
3601 IHostUSBDeviceFilter * * filter
3602 );
3603
3604 nsresult (*InsertUSBDeviceFilter)(
3605 IHost *pThis,
3606 PRUint32 position,
3607 IHostUSBDeviceFilter * filter
3608 );
3609
3610 nsresult (*RemoveUSBDeviceFilter)(
3611 IHost *pThis,
3612 PRUint32 position
3613 );
3614
3615 nsresult (*FindHostDVDDrive)(
3616 IHost *pThis,
3617 PRUnichar * name,
3618 IMedium * * drive
3619 );
3620
3621 nsresult (*FindHostFloppyDrive)(
3622 IHost *pThis,
3623 PRUnichar * name,
3624 IMedium * * drive
3625 );
3626
3627 nsresult (*FindHostNetworkInterfaceByName)(
3628 IHost *pThis,
3629 PRUnichar * name,
3630 IHostNetworkInterface * * networkInterface
3631 );
3632
3633 nsresult (*FindHostNetworkInterfaceById)(
3634 IHost *pThis,
3635 PRUnichar * id,
3636 IHostNetworkInterface * * networkInterface
3637 );
3638
3639 nsresult (*FindHostNetworkInterfacesOfType)(
3640 IHost *pThis,
3641 PRUint32 type,
3642 PRUint32 *networkInterfacesSize,
3643 IHostNetworkInterface *** networkInterfaces
3644 );
3645
3646 nsresult (*FindUSBDeviceById)(
3647 IHost *pThis,
3648 PRUnichar * id,
3649 IHostUSBDevice * * device
3650 );
3651
3652 nsresult (*FindUSBDeviceByAddress)(
3653 IHost *pThis,
3654 PRUnichar * name,
3655 IHostUSBDevice * * device
3656 );
3657
3658};
3659
3660struct IHost
3661{
3662 struct IHost_vtbl *vtbl;
3663};
3664/* End of struct IHost Declaration */
3665
3666
3667/* Start of struct ISystemProperties Declaration */
3668#define ISYSTEMPROPERTIES_IID_STR "07c3ffd8-8f59-49cc-b608-53a332e85cc3"
3669#define ISYSTEMPROPERTIES_IID { \
3670 0x07c3ffd8, 0x8f59, 0x49cc, \
3671 { 0xb6, 0x08, 0x53, 0xa3, 0x32, 0xe8, 0x5c, 0xc3 } \
3672}
3673struct ISystemProperties_vtbl
3674{
3675 struct nsISupports_vtbl nsisupports;
3676
3677 nsresult (*GetMinGuestRAM)(ISystemProperties *pThis, PRUint32 *minGuestRAM);
3678
3679 nsresult (*GetMaxGuestRAM)(ISystemProperties *pThis, PRUint32 *maxGuestRAM);
3680
3681 nsresult (*GetMinGuestVRAM)(ISystemProperties *pThis, PRUint32 *minGuestVRAM);
3682
3683 nsresult (*GetMaxGuestVRAM)(ISystemProperties *pThis, PRUint32 *maxGuestVRAM);
3684
3685 nsresult (*GetMinGuestCPUCount)(ISystemProperties *pThis, PRUint32 *minGuestCPUCount);
3686
3687 nsresult (*GetMaxGuestCPUCount)(ISystemProperties *pThis, PRUint32 *maxGuestCPUCount);
3688
3689 nsresult (*GetMaxGuestMonitors)(ISystemProperties *pThis, PRUint32 *maxGuestMonitors);
3690
3691 nsresult (*GetMaxVDISize)(ISystemProperties *pThis, PRUint64 *maxVDISize);
3692
3693 nsresult (*GetNetworkAdapterCount)(ISystemProperties *pThis, PRUint32 *networkAdapterCount);
3694
3695 nsresult (*GetSerialPortCount)(ISystemProperties *pThis, PRUint32 *serialPortCount);
3696
3697 nsresult (*GetParallelPortCount)(ISystemProperties *pThis, PRUint32 *parallelPortCount);
3698
3699 nsresult (*GetMaxBootPosition)(ISystemProperties *pThis, PRUint32 *maxBootPosition);
3700
3701 nsresult (*GetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * *defaultMachineFolder);
3702 nsresult (*SetDefaultMachineFolder)(ISystemProperties *pThis, PRUnichar * defaultMachineFolder);
3703
3704 nsresult (*GetDefaultHardDiskFolder)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFolder);
3705 nsresult (*SetDefaultHardDiskFolder)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFolder);
3706
3707 nsresult (*GetMediumFormats)(ISystemProperties *pThis, PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats);
3708
3709 nsresult (*GetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * *defaultHardDiskFormat);
3710 nsresult (*SetDefaultHardDiskFormat)(ISystemProperties *pThis, PRUnichar * defaultHardDiskFormat);
3711
3712 nsresult (*GetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRUint64 *freeDiskSpaceWarning);
3713 nsresult (*SetFreeDiskSpaceWarning)(ISystemProperties *pThis, PRUint64 freeDiskSpaceWarning);
3714
3715 nsresult (*GetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentWarning);
3716 nsresult (*SetFreeDiskSpacePercentWarning)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentWarning);
3717
3718 nsresult (*GetFreeDiskSpaceError)(ISystemProperties *pThis, PRUint64 *freeDiskSpaceError);
3719 nsresult (*SetFreeDiskSpaceError)(ISystemProperties *pThis, PRUint64 freeDiskSpaceError);
3720
3721 nsresult (*GetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 *freeDiskSpacePercentError);
3722 nsresult (*SetFreeDiskSpacePercentError)(ISystemProperties *pThis, PRUint32 freeDiskSpacePercentError);
3723
3724 nsresult (*GetRemoteDisplayAuthLibrary)(ISystemProperties *pThis, PRUnichar * *remoteDisplayAuthLibrary);
3725 nsresult (*SetRemoteDisplayAuthLibrary)(ISystemProperties *pThis, PRUnichar * remoteDisplayAuthLibrary);
3726
3727 nsresult (*GetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * *webServiceAuthLibrary);
3728 nsresult (*SetWebServiceAuthLibrary)(ISystemProperties *pThis, PRUnichar * webServiceAuthLibrary);
3729
3730 nsresult (*GetLogHistoryCount)(ISystemProperties *pThis, PRUint32 *LogHistoryCount);
3731 nsresult (*SetLogHistoryCount)(ISystemProperties *pThis, PRUint32 LogHistoryCount);
3732
3733 nsresult (*GetDefaultAudioDriver)(ISystemProperties *pThis, PRUint32 *defaultAudioDriver);
3734
3735 nsresult (*GetMaxDevicesPerPortForStorageBus)(
3736 ISystemProperties *pThis,
3737 PRUint32 bus,
3738 PRUint32 * maxDevicesPerPort
3739 );
3740
3741 nsresult (*GetMinPortCountForStorageBus)(
3742 ISystemProperties *pThis,
3743 PRUint32 bus,
3744 PRUint32 * minPortCount
3745 );
3746
3747 nsresult (*GetMaxPortCountForStorageBus)(
3748 ISystemProperties *pThis,
3749 PRUint32 bus,
3750 PRUint32 * maxPortCount
3751 );
3752
3753 nsresult (*GetMaxInstancesOfStorageBus)(
3754 ISystemProperties *pThis,
3755 PRUint32 bus,
3756 PRUint32 * maxInstances
3757 );
3758
3759 nsresult (*GetDeviceTypesForStorageBus)(
3760 ISystemProperties *pThis,
3761 PRUint32 bus,
3762 PRUint32 *deviceTypesSize,
3763 PRUint32** deviceTypes
3764 );
3765
3766};
3767
3768struct ISystemProperties
3769{
3770 struct ISystemProperties_vtbl *vtbl;
3771};
3772/* End of struct ISystemProperties Declaration */
3773
3774
3775/* Start of struct IGuestOSType Declaration */
3776#define IGUESTOSTYPE_IID_STR "e3f6727e-a09b-41ea-a824-864a176472f3"
3777#define IGUESTOSTYPE_IID { \
3778 0xe3f6727e, 0xa09b, 0x41ea, \
3779 { 0xa8, 0x24, 0x86, 0x4a, 0x17, 0x64, 0x72, 0xf3 } \
3780}
3781struct IGuestOSType_vtbl
3782{
3783 struct nsISupports_vtbl nsisupports;
3784
3785 nsresult (*GetFamilyId)(IGuestOSType *pThis, PRUnichar * *familyId);
3786
3787 nsresult (*GetFamilyDescription)(IGuestOSType *pThis, PRUnichar * *familyDescription);
3788
3789 nsresult (*GetId)(IGuestOSType *pThis, PRUnichar * *id);
3790
3791 nsresult (*GetDescription)(IGuestOSType *pThis, PRUnichar * *description);
3792
3793 nsresult (*GetIs64Bit)(IGuestOSType *pThis, PRBool *is64Bit);
3794
3795 nsresult (*GetRecommendedIOAPIC)(IGuestOSType *pThis, PRBool *recommendedIOAPIC);
3796
3797 nsresult (*GetRecommendedVirtEx)(IGuestOSType *pThis, PRBool *recommendedVirtEx);
3798
3799 nsresult (*GetRecommendedRAM)(IGuestOSType *pThis, PRUint32 *recommendedRAM);
3800
3801 nsresult (*GetRecommendedVRAM)(IGuestOSType *pThis, PRUint32 *recommendedVRAM);
3802
3803 nsresult (*GetRecommendedHDD)(IGuestOSType *pThis, PRUint32 *recommendedHDD);
3804
3805 nsresult (*GetAdapterType)(IGuestOSType *pThis, PRUint32 *adapterType);
3806
3807 nsresult (*GetRecommendedPae)(IGuestOSType *pThis, PRBool *recommendedPae);
3808
3809 nsresult (*GetRecommendedDvdStorageController)(IGuestOSType *pThis, PRUint32 *recommendedDvdStorageController);
3810
3811 nsresult (*GetRecommendedDvdStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedDvdStorageBus);
3812
3813 nsresult (*GetRecommendedHdStorageController)(IGuestOSType *pThis, PRUint32 *recommendedHdStorageController);
3814
3815 nsresult (*GetRecommendedHdStorageBus)(IGuestOSType *pThis, PRUint32 *recommendedHdStorageBus);
3816
3817 nsresult (*GetRecommendedFirmware)(IGuestOSType *pThis, PRUint32 *recommendedFirmware);
3818
3819 nsresult (*GetRecommendedUsbHid)(IGuestOSType *pThis, PRBool *recommendedUsbHid);
3820
3821 nsresult (*GetRecommendedHpet)(IGuestOSType *pThis, PRBool *recommendedHpet);
3822
3823 nsresult (*GetRecommendedUsbTablet)(IGuestOSType *pThis, PRBool *recommendedUsbTablet);
3824
3825 nsresult (*GetRecommendedRtcUseUtc)(IGuestOSType *pThis, PRBool *recommendedRtcUseUtc);
3826
3827};
3828
3829struct IGuestOSType
3830{
3831 struct IGuestOSType_vtbl *vtbl;
3832};
3833/* End of struct IGuestOSType Declaration */
3834
3835
3836/* Start of struct IGuest Declaration */
3837#define IGUEST_IID_STR "d915dff1-ed38-495a-91f1-ab6c53932468"
3838#define IGUEST_IID { \
3839 0xd915dff1, 0xed38, 0x495a, \
3840 { 0x91, 0xf1, 0xab, 0x6c, 0x53, 0x93, 0x24, 0x68 } \
3841}
3842struct IGuest_vtbl
3843{
3844 struct nsISupports_vtbl nsisupports;
3845
3846 nsresult (*GetOSTypeId)(IGuest *pThis, PRUnichar * *OSTypeId);
3847
3848 nsresult (*GetAdditionsActive)(IGuest *pThis, PRBool *additionsActive);
3849
3850 nsresult (*GetAdditionsVersion)(IGuest *pThis, PRUnichar * *additionsVersion);
3851
3852 nsresult (*GetSupportsSeamless)(IGuest *pThis, PRBool *supportsSeamless);
3853
3854 nsresult (*GetSupportsGraphics)(IGuest *pThis, PRBool *supportsGraphics);
3855
3856 nsresult (*GetMemoryBalloonSize)(IGuest *pThis, PRUint32 *memoryBalloonSize);
3857 nsresult (*SetMemoryBalloonSize)(IGuest *pThis, PRUint32 memoryBalloonSize);
3858
3859 nsresult (*GetPageFusionEnabled)(IGuest *pThis, PRBool *pageFusionEnabled);
3860 nsresult (*SetPageFusionEnabled)(IGuest *pThis, PRBool pageFusionEnabled);
3861
3862 nsresult (*GetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 *statisticsUpdateInterval);
3863 nsresult (*SetStatisticsUpdateInterval)(IGuest *pThis, PRUint32 statisticsUpdateInterval);
3864
3865 nsresult (*InternalGetStatistics)(
3866 IGuest *pThis,
3867 PRUint32 * cpuUser,
3868 PRUint32 * cpuKernel,
3869 PRUint32 * cpuIdle,
3870 PRUint32 * memTotal,
3871 PRUint32 * memFree,
3872 PRUint32 * memBalloon,
3873 PRUint32 * memShared,
3874 PRUint32 * memCache,
3875 PRUint32 * pagedTotal,
3876 PRUint32 * memAllocTotal,
3877 PRUint32 * memFreeTotal,
3878 PRUint32 * memBalloonTotal,
3879 PRUint32 * memSharedTotal
3880 );
3881
3882 nsresult (*SetCredentials)(
3883 IGuest *pThis,
3884 PRUnichar * userName,
3885 PRUnichar * password,
3886 PRUnichar * domain,
3887 PRBool allowInteractiveLogon
3888 );
3889
3890 nsresult (*ExecuteProcess)(
3891 IGuest *pThis,
3892 PRUnichar * execName,
3893 PRUint32 flags,
3894 PRUint32 argumentsSize,
3895 PRUnichar ** arguments,
3896 PRUint32 environmentSize,
3897 PRUnichar ** environment,
3898 PRUnichar * userName,
3899 PRUnichar * password,
3900 PRUint32 timeoutMS,
3901 PRUint32 * pid,
3902 IProgress * * progress
3903 );
3904
3905 nsresult (*GetProcessOutput)(
3906 IGuest *pThis,
3907 PRUint32 pid,
3908 PRUint32 flags,
3909 PRUint32 timeoutMS,
3910 PRUint64 size,
3911 PRUint32 *dataSize,
3912 PRUint8** data
3913 );
3914
3915 nsresult (*GetProcessStatus)(
3916 IGuest *pThis,
3917 PRUint32 pid,
3918 PRUint32 * exitcode,
3919 PRUint32 * flags,
3920 PRUint32 * reason
3921 );
3922
3923};
3924
3925struct IGuest
3926{
3927 struct IGuest_vtbl *vtbl;
3928};
3929/* End of struct IGuest Declaration */
3930
3931
3932/* Start of struct IProgress Declaration */
3933#define IPROGRESS_IID_STR "856aa038-853f-42e2-acf7-6e7b02dbe294"
3934#define IPROGRESS_IID { \
3935 0x856aa038, 0x853f, 0x42e2, \
3936 { 0xac, 0xf7, 0x6e, 0x7b, 0x02, 0xdb, 0xe2, 0x94 } \
3937}
3938struct IProgress_vtbl
3939{
3940 struct nsISupports_vtbl nsisupports;
3941
3942 nsresult (*GetId)(IProgress *pThis, PRUnichar * *id);
3943
3944 nsresult (*GetDescription)(IProgress *pThis, PRUnichar * *description);
3945
3946 nsresult (*GetInitiator)(IProgress *pThis, nsISupports * *initiator);
3947
3948 nsresult (*GetCancelable)(IProgress *pThis, PRBool *cancelable);
3949
3950 nsresult (*GetPercent)(IProgress *pThis, PRUint32 *percent);
3951
3952 nsresult (*GetTimeRemaining)(IProgress *pThis, PRInt32 *timeRemaining);
3953
3954 nsresult (*GetCompleted)(IProgress *pThis, PRBool *completed);
3955
3956 nsresult (*GetCanceled)(IProgress *pThis, PRBool *canceled);
3957
3958 nsresult (*GetResultCode)(IProgress *pThis, PRInt32 *resultCode);
3959
3960 nsresult (*GetErrorInfo)(IProgress *pThis, IVirtualBoxErrorInfo * *errorInfo);
3961
3962 nsresult (*GetOperationCount)(IProgress *pThis, PRUint32 *operationCount);
3963
3964 nsresult (*GetOperation)(IProgress *pThis, PRUint32 *operation);
3965
3966 nsresult (*GetOperationDescription)(IProgress *pThis, PRUnichar * *operationDescription);
3967
3968 nsresult (*GetOperationPercent)(IProgress *pThis, PRUint32 *operationPercent);
3969
3970 nsresult (*GetTimeout)(IProgress *pThis, PRUint32 *timeout);
3971 nsresult (*SetTimeout)(IProgress *pThis, PRUint32 timeout);
3972
3973 nsresult (*SetCurrentOperationProgress)(
3974 IProgress *pThis,
3975 PRUint32 percent
3976 );
3977
3978 nsresult (*SetNextOperation)(
3979 IProgress *pThis,
3980 PRUnichar * nextOperationDescription,
3981 PRUint32 nextOperationsWeight
3982 );
3983
3984 nsresult (*WaitForCompletion)(
3985 IProgress *pThis,
3986 PRInt32 timeout
3987 );
3988
3989 nsresult (*WaitForOperationCompletion)(
3990 IProgress *pThis,
3991 PRUint32 operation,
3992 PRInt32 timeout
3993 );
3994
3995 nsresult (*Cancel)(IProgress *pThis );
3996
3997};
3998
3999struct IProgress
4000{
4001 struct IProgress_vtbl *vtbl;
4002};
4003/* End of struct IProgress Declaration */
4004
4005
4006/* Start of struct ISnapshot Declaration */
4007#define ISNAPSHOT_IID_STR "1a2d0551-58a4-4107-857e-ef414fc42ffc"
4008#define ISNAPSHOT_IID { \
4009 0x1a2d0551, 0x58a4, 0x4107, \
4010 { 0x85, 0x7e, 0xef, 0x41, 0x4f, 0xc4, 0x2f, 0xfc } \
4011}
4012struct ISnapshot_vtbl
4013{
4014 struct nsISupports_vtbl nsisupports;
4015
4016 nsresult (*GetId)(ISnapshot *pThis, PRUnichar * *id);
4017
4018 nsresult (*GetName)(ISnapshot *pThis, PRUnichar * *name);
4019 nsresult (*SetName)(ISnapshot *pThis, PRUnichar * name);
4020
4021 nsresult (*GetDescription)(ISnapshot *pThis, PRUnichar * *description);
4022 nsresult (*SetDescription)(ISnapshot *pThis, PRUnichar * description);
4023
4024 nsresult (*GetTimeStamp)(ISnapshot *pThis, PRInt64 *timeStamp);
4025
4026 nsresult (*GetOnline)(ISnapshot *pThis, PRBool *online);
4027
4028 nsresult (*GetMachine)(ISnapshot *pThis, IMachine * *machine);
4029
4030 nsresult (*GetParent)(ISnapshot *pThis, ISnapshot * *parent);
4031
4032 nsresult (*GetChildren)(ISnapshot *pThis, PRUint32 *childrenSize, ISnapshot * **children);
4033
4034};
4035
4036struct ISnapshot
4037{
4038 struct ISnapshot_vtbl *vtbl;
4039};
4040/* End of struct ISnapshot Declaration */
4041
4042
4043/* Start of struct IMediumAttachment Declaration */
4044#define IMEDIUMATTACHMENT_IID_STR "e58eb3eb-8627-428b-bdf8-34487c848de5"
4045#define IMEDIUMATTACHMENT_IID { \
4046 0xe58eb3eb, 0x8627, 0x428b, \
4047 { 0xbd, 0xf8, 0x34, 0x48, 0x7c, 0x84, 0x8d, 0xe5 } \
4048}
4049struct IMediumAttachment_vtbl
4050{
4051 struct nsISupports_vtbl nsisupports;
4052
4053 nsresult (*GetMedium)(IMediumAttachment *pThis, IMedium * *medium);
4054
4055 nsresult (*GetController)(IMediumAttachment *pThis, PRUnichar * *controller);
4056
4057 nsresult (*GetPort)(IMediumAttachment *pThis, PRInt32 *port);
4058
4059 nsresult (*GetDevice)(IMediumAttachment *pThis, PRInt32 *device);
4060
4061 nsresult (*GetType)(IMediumAttachment *pThis, PRUint32 *type);
4062
4063 nsresult (*GetPassthrough)(IMediumAttachment *pThis, PRBool *passthrough);
4064
4065};
4066
4067struct IMediumAttachment
4068{
4069 struct IMediumAttachment_vtbl *vtbl;
4070};
4071/* End of struct IMediumAttachment Declaration */
4072
4073
4074/* Start of struct IMedium Declaration */
4075#define IMEDIUM_IID_STR "1d578f43-5ef1-4415-b556-7592d3ccdc8f"
4076#define IMEDIUM_IID { \
4077 0x1d578f43, 0x5ef1, 0x4415, \
4078 { 0xb5, 0x56, 0x75, 0x92, 0xd3, 0xcc, 0xdc, 0x8f } \
4079}
4080struct IMedium_vtbl
4081{
4082 struct nsISupports_vtbl nsisupports;
4083
4084 nsresult (*GetId)(IMedium *pThis, PRUnichar * *id);
4085
4086 nsresult (*GetDescription)(IMedium *pThis, PRUnichar * *description);
4087 nsresult (*SetDescription)(IMedium *pThis, PRUnichar * description);
4088
4089 nsresult (*GetState)(IMedium *pThis, PRUint32 *state);
4090
4091 nsresult (*GetLocation)(IMedium *pThis, PRUnichar * *location);
4092 nsresult (*SetLocation)(IMedium *pThis, PRUnichar * location);
4093
4094 nsresult (*GetName)(IMedium *pThis, PRUnichar * *name);
4095
4096 nsresult (*GetDeviceType)(IMedium *pThis, PRUint32 *deviceType);
4097
4098 nsresult (*GetHostDrive)(IMedium *pThis, PRBool *hostDrive);
4099
4100 nsresult (*GetSize)(IMedium *pThis, PRUint64 *size);
4101
4102 nsresult (*GetFormat)(IMedium *pThis, PRUnichar * *format);
4103
4104 nsresult (*GetMediumFormat)(IMedium *pThis, IMediumFormat * *mediumFormat);
4105
4106 nsresult (*GetType)(IMedium *pThis, PRUint32 *type);
4107 nsresult (*SetType)(IMedium *pThis, PRUint32 type);
4108
4109 nsresult (*GetParent)(IMedium *pThis, IMedium * *parent);
4110
4111 nsresult (*GetChildren)(IMedium *pThis, PRUint32 *childrenSize, IMedium * **children);
4112
4113 nsresult (*GetBase)(IMedium *pThis, IMedium * *base);
4114
4115 nsresult (*GetReadOnly)(IMedium *pThis, PRBool *readOnly);
4116
4117 nsresult (*GetLogicalSize)(IMedium *pThis, PRUint64 *logicalSize);
4118
4119 nsresult (*GetAutoReset)(IMedium *pThis, PRBool *autoReset);
4120 nsresult (*SetAutoReset)(IMedium *pThis, PRBool autoReset);
4121
4122 nsresult (*GetLastAccessError)(IMedium *pThis, PRUnichar * *lastAccessError);
4123
4124 nsresult (*GetMachineIds)(IMedium *pThis, PRUint32 *machineIdsSize, PRUnichar * **machineIds);
4125
4126 nsresult (*RefreshState)(
4127 IMedium *pThis,
4128 PRUint32 * state
4129 );
4130
4131 nsresult (*GetSnapshotIds)(
4132 IMedium *pThis,
4133 PRUnichar * machineId,
4134 PRUint32 *snapshotIdsSize,
4135 PRUnichar *** snapshotIds
4136 );
4137
4138 nsresult (*LockRead)(
4139 IMedium *pThis,
4140 PRUint32 * state
4141 );
4142
4143 nsresult (*UnlockRead)(
4144 IMedium *pThis,
4145 PRUint32 * state
4146 );
4147
4148 nsresult (*LockWrite)(
4149 IMedium *pThis,
4150 PRUint32 * state
4151 );
4152
4153 nsresult (*UnlockWrite)(
4154 IMedium *pThis,
4155 PRUint32 * state
4156 );
4157
4158 nsresult (*Close)(IMedium *pThis );
4159
4160 nsresult (*GetProperty)(
4161 IMedium *pThis,
4162 PRUnichar * name,
4163 PRUnichar * * value
4164 );
4165
4166 nsresult (*SetProperty)(
4167 IMedium *pThis,
4168 PRUnichar * name,
4169 PRUnichar * value
4170 );
4171
4172 nsresult (*GetProperties)(
4173 IMedium *pThis,
4174 PRUnichar * names,
4175 PRUint32 *returnNamesSize,
4176 PRUnichar *** returnNames,
4177 PRUint32 *returnValuesSize,
4178 PRUnichar *** returnValues
4179 );
4180
4181 nsresult (*SetProperties)(
4182 IMedium *pThis,
4183 PRUint32 namesSize,
4184 PRUnichar ** names,
4185 PRUint32 valuesSize,
4186 PRUnichar ** values
4187 );
4188
4189 nsresult (*CreateBaseStorage)(
4190 IMedium *pThis,
4191 PRUint64 logicalSize,
4192 PRUint32 variant,
4193 IProgress * * progress
4194 );
4195
4196 nsresult (*DeleteStorage)(
4197 IMedium *pThis,
4198 IProgress * * progress
4199 );
4200
4201 nsresult (*CreateDiffStorage)(
4202 IMedium *pThis,
4203 IMedium * target,
4204 PRUint32 variant,
4205 IProgress * * progress
4206 );
4207
4208 nsresult (*MergeTo)(
4209 IMedium *pThis,
4210 IMedium * target,
4211 IProgress * * progress
4212 );
4213
4214 nsresult (*CloneTo)(
4215 IMedium *pThis,
4216 IMedium * target,
4217 PRUint32 variant,
4218 IMedium * parent,
4219 IProgress * * progress
4220 );
4221
4222 nsresult (*Compact)(
4223 IMedium *pThis,
4224 IProgress * * progress
4225 );
4226
4227 nsresult (*Resize)(
4228 IMedium *pThis,
4229 PRUint64 logicalSize,
4230 IProgress * * progress
4231 );
4232
4233 nsresult (*Reset)(
4234 IMedium *pThis,
4235 IProgress * * progress
4236 );
4237
4238};
4239
4240struct IMedium
4241{
4242 struct IMedium_vtbl *vtbl;
4243};
4244/* End of struct IMedium Declaration */
4245
4246
4247/* Start of struct IMediumFormat Declaration */
4248#define IMEDIUMFORMAT_IID_STR "89f52554-d469-4799-9fad-1705e86a08b1"
4249#define IMEDIUMFORMAT_IID { \
4250 0x89f52554, 0xd469, 0x4799, \
4251 { 0x9f, 0xad, 0x17, 0x05, 0xe8, 0x6a, 0x08, 0xb1 } \
4252}
4253struct IMediumFormat_vtbl
4254{
4255 struct nsISupports_vtbl nsisupports;
4256
4257 nsresult (*GetId)(IMediumFormat *pThis, PRUnichar * *id);
4258
4259 nsresult (*GetName)(IMediumFormat *pThis, PRUnichar * *name);
4260
4261 nsresult (*GetFileExtensions)(IMediumFormat *pThis, PRUint32 *fileExtensionsSize, PRUnichar * **fileExtensions);
4262
4263 nsresult (*GetCapabilities)(IMediumFormat *pThis, PRUint32 *capabilities);
4264
4265 nsresult (*DescribeProperties)(
4266 IMediumFormat *pThis,
4267 PRUint32 *namesSize,
4268 PRUnichar *** names,
4269 PRUint32 *descriptionSize,
4270 PRUnichar *** description,
4271 PRUint32 *typesSize,
4272 PRUint32* types,
4273 PRUint32 *flagsSize,
4274 PRUint32* flags,
4275 PRUint32 *defaultsSize,
4276 PRUnichar *** defaults
4277 );
4278
4279};
4280
4281struct IMediumFormat
4282{
4283 struct IMediumFormat_vtbl *vtbl;
4284};
4285/* End of struct IMediumFormat Declaration */
4286
4287
4288/* Start of struct IKeyboard Declaration */
4289#define IKEYBOARD_IID_STR "2d1a531b-4c6e-49cc-8af6-5c857b78b5d7"
4290#define IKEYBOARD_IID { \
4291 0x2d1a531b, 0x4c6e, 0x49cc, \
4292 { 0x8a, 0xf6, 0x5c, 0x85, 0x7b, 0x78, 0xb5, 0xd7 } \
4293}
4294struct IKeyboard_vtbl
4295{
4296 struct nsISupports_vtbl nsisupports;
4297
4298 nsresult (*PutScancode)(
4299 IKeyboard *pThis,
4300 PRInt32 scancode
4301 );
4302
4303 nsresult (*PutScancodes)(
4304 IKeyboard *pThis,
4305 PRUint32 scancodesSize,
4306 PRInt32* scancodes,
4307 PRUint32 * codesStored
4308 );
4309
4310 nsresult (*PutCAD)(IKeyboard *pThis );
4311
4312};
4313
4314struct IKeyboard
4315{
4316 struct IKeyboard_vtbl *vtbl;
4317};
4318/* End of struct IKeyboard Declaration */
4319
4320
4321/* Start of struct IMouse Declaration */
4322#define IMOUSE_IID_STR "7c0f2eae-f92d-498c-b802-e1a3763774dc"
4323#define IMOUSE_IID { \
4324 0x7c0f2eae, 0xf92d, 0x498c, \
4325 { 0xb8, 0x02, 0xe1, 0xa3, 0x76, 0x37, 0x74, 0xdc } \
4326}
4327struct IMouse_vtbl
4328{
4329 struct nsISupports_vtbl nsisupports;
4330
4331 nsresult (*GetAbsoluteSupported)(IMouse *pThis, PRBool *absoluteSupported);
4332
4333 nsresult (*GetRelativeSupported)(IMouse *pThis, PRBool *relativeSupported);
4334
4335 nsresult (*GetNeedsHostCursor)(IMouse *pThis, PRBool *needsHostCursor);
4336
4337 nsresult (*PutMouseEvent)(
4338 IMouse *pThis,
4339 PRInt32 dx,
4340 PRInt32 dy,
4341 PRInt32 dz,
4342 PRInt32 dw,
4343 PRInt32 buttonState
4344 );
4345
4346 nsresult (*PutMouseEventAbsolute)(
4347 IMouse *pThis,
4348 PRInt32 x,
4349 PRInt32 y,
4350 PRInt32 dz,
4351 PRInt32 dw,
4352 PRInt32 buttonState
4353 );
4354
4355};
4356
4357struct IMouse
4358{
4359 struct IMouse_vtbl *vtbl;
4360};
4361/* End of struct IMouse Declaration */
4362
4363
4364/* Start of struct IFramebuffer Declaration */
4365#define IFRAMEBUFFER_IID_STR "b7ed347a-5765-40a0-ae1c-f543eb4ddeaf"
4366#define IFRAMEBUFFER_IID { \
4367 0xb7ed347a, 0x5765, 0x40a0, \
4368 { 0xae, 0x1c, 0xf5, 0x43, 0xeb, 0x4d, 0xde, 0xaf } \
4369}
4370struct IFramebuffer_vtbl
4371{
4372 struct nsISupports_vtbl nsisupports;
4373
4374 nsresult (*GetAddress)(IFramebuffer *pThis, PRUint8 * *address);
4375
4376 nsresult (*GetWidth)(IFramebuffer *pThis, PRUint32 *width);
4377
4378 nsresult (*GetHeight)(IFramebuffer *pThis, PRUint32 *height);
4379
4380 nsresult (*GetBitsPerPixel)(IFramebuffer *pThis, PRUint32 *bitsPerPixel);
4381
4382 nsresult (*GetBytesPerLine)(IFramebuffer *pThis, PRUint32 *bytesPerLine);
4383
4384 nsresult (*GetPixelFormat)(IFramebuffer *pThis, PRUint32 *pixelFormat);
4385
4386 nsresult (*GetUsesGuestVRAM)(IFramebuffer *pThis, PRBool *usesGuestVRAM);
4387
4388 nsresult (*GetHeightReduction)(IFramebuffer *pThis, PRUint32 *heightReduction);
4389
4390 nsresult (*GetOverlay)(IFramebuffer *pThis, IFramebufferOverlay * *overlay);
4391
4392 nsresult (*GetWinId)(IFramebuffer *pThis, PRUint64 *winId);
4393
4394 nsresult (*Lock)(IFramebuffer *pThis );
4395
4396 nsresult (*Unlock)(IFramebuffer *pThis );
4397
4398 nsresult (*NotifyUpdate)(
4399 IFramebuffer *pThis,
4400 PRUint32 x,
4401 PRUint32 y,
4402 PRUint32 width,
4403 PRUint32 height
4404 );
4405
4406 nsresult (*RequestResize)(
4407 IFramebuffer *pThis,
4408 PRUint32 screenId,
4409 PRUint32 pixelFormat,
4410 PRUint8 * VRAM,
4411 PRUint32 bitsPerPixel,
4412 PRUint32 bytesPerLine,
4413 PRUint32 width,
4414 PRUint32 height,
4415 PRBool * finished
4416 );
4417
4418 nsresult (*VideoModeSupported)(
4419 IFramebuffer *pThis,
4420 PRUint32 width,
4421 PRUint32 height,
4422 PRUint32 bpp,
4423 PRBool * supported
4424 );
4425
4426 nsresult (*GetVisibleRegion)(
4427 IFramebuffer *pThis,
4428 PRUint8 * rectangles,
4429 PRUint32 count,
4430 PRUint32 * countCopied
4431 );
4432
4433 nsresult (*SetVisibleRegion)(
4434 IFramebuffer *pThis,
4435 PRUint8 * rectangles,
4436 PRUint32 count
4437 );
4438
4439 nsresult (*ProcessVHWACommand)(
4440 IFramebuffer *pThis,
4441 PRUint8 * command
4442 );
4443
4444};
4445
4446struct IFramebuffer
4447{
4448 struct IFramebuffer_vtbl *vtbl;
4449};
4450/* End of struct IFramebuffer Declaration */
4451
4452
4453/* Start of struct IFramebufferOverlay Declaration */
4454#define IFRAMEBUFFEROVERLAY_IID_STR "0bcc1c7e-e415-47d2-bfdb-e4c705fb0f47"
4455#define IFRAMEBUFFEROVERLAY_IID { \
4456 0x0bcc1c7e, 0xe415, 0x47d2, \
4457 { 0xbf, 0xdb, 0xe4, 0xc7, 0x05, 0xfb, 0x0f, 0x47 } \
4458}
4459struct IFramebufferOverlay_vtbl
4460{
4461 struct IFramebuffer_vtbl iframebuffer;
4462
4463 nsresult (*GetX)(IFramebufferOverlay *pThis, PRUint32 *x);
4464
4465 nsresult (*GetY)(IFramebufferOverlay *pThis, PRUint32 *y);
4466
4467 nsresult (*GetVisible)(IFramebufferOverlay *pThis, PRBool *visible);
4468 nsresult (*SetVisible)(IFramebufferOverlay *pThis, PRBool visible);
4469
4470 nsresult (*GetAlpha)(IFramebufferOverlay *pThis, PRUint32 *alpha);
4471 nsresult (*SetAlpha)(IFramebufferOverlay *pThis, PRUint32 alpha);
4472
4473 nsresult (*Move)(
4474 IFramebufferOverlay *pThis,
4475 PRUint32 x,
4476 PRUint32 y
4477 );
4478
4479};
4480
4481struct IFramebufferOverlay
4482{
4483 struct IFramebufferOverlay_vtbl *vtbl;
4484};
4485/* End of struct IFramebufferOverlay Declaration */
4486
4487
4488/* Start of struct IDisplay Declaration */
4489#define IDISPLAY_IID_STR "1fa79e39-0cc9-4ab3-9df3-ed3e96b42496"
4490#define IDISPLAY_IID { \
4491 0x1fa79e39, 0x0cc9, 0x4ab3, \
4492 { 0x9d, 0xf3, 0xed, 0x3e, 0x96, 0xb4, 0x24, 0x96 } \
4493}
4494struct IDisplay_vtbl
4495{
4496 struct nsISupports_vtbl nsisupports;
4497
4498 nsresult (*GetScreenResolution)(
4499 IDisplay *pThis,
4500 PRUint32 screenId,
4501 PRUint32 * width,
4502 PRUint32 * height,
4503 PRUint32 * bitsPerPixel
4504 );
4505
4506 nsresult (*SetFramebuffer)(
4507 IDisplay *pThis,
4508 PRUint32 screenId,
4509 IFramebuffer * framebuffer
4510 );
4511
4512 nsresult (*GetFramebuffer)(
4513 IDisplay *pThis,
4514 PRUint32 screenId,
4515 IFramebuffer * * framebuffer,
4516 PRInt32 * xOrigin,
4517 PRInt32 * yOrigin
4518 );
4519
4520 nsresult (*SetVideoModeHint)(
4521 IDisplay *pThis,
4522 PRUint32 width,
4523 PRUint32 height,
4524 PRUint32 bitsPerPixel,
4525 PRUint32 display
4526 );
4527
4528 nsresult (*SetSeamlessMode)(
4529 IDisplay *pThis,
4530 PRBool enabled
4531 );
4532
4533 nsresult (*TakeScreenShot)(
4534 IDisplay *pThis,
4535 PRUint32 screenId,
4536 PRUint8 * address,
4537 PRUint32 width,
4538 PRUint32 height
4539 );
4540
4541 nsresult (*TakeScreenShotToArray)(
4542 IDisplay *pThis,
4543 PRUint32 screenId,
4544 PRUint32 width,
4545 PRUint32 height,
4546 PRUint32 *screenDataSize,
4547 PRUint8** screenData
4548 );
4549
4550 nsresult (*DrawToScreen)(
4551 IDisplay *pThis,
4552 PRUint32 screenId,
4553 PRUint8 * address,
4554 PRUint32 x,
4555 PRUint32 y,
4556 PRUint32 width,
4557 PRUint32 height
4558 );
4559
4560 nsresult (*InvalidateAndUpdate)(IDisplay *pThis );
4561
4562 nsresult (*ResizeCompleted)(
4563 IDisplay *pThis,
4564 PRUint32 screenId
4565 );
4566
4567 nsresult (*CompleteVHWACommand)(
4568 IDisplay *pThis,
4569 PRUint8 * command
4570 );
4571
4572};
4573
4574struct IDisplay
4575{
4576 struct IDisplay_vtbl *vtbl;
4577};
4578/* End of struct IDisplay Declaration */
4579
4580
4581/* Start of struct INetworkAdapter Declaration */
4582#define INETWORKADAPTER_IID_STR "5bdb9df8-a5e1-4322-a139-b7a4a734c790"
4583#define INETWORKADAPTER_IID { \
4584 0x5bdb9df8, 0xa5e1, 0x4322, \
4585 { 0xa1, 0x39, 0xb7, 0xa4, 0xa7, 0x34, 0xc7, 0x90 } \
4586}
4587struct INetworkAdapter_vtbl
4588{
4589 struct nsISupports_vtbl nsisupports;
4590
4591 nsresult (*GetAdapterType)(INetworkAdapter *pThis, PRUint32 *adapterType);
4592 nsresult (*SetAdapterType)(INetworkAdapter *pThis, PRUint32 adapterType);
4593
4594 nsresult (*GetSlot)(INetworkAdapter *pThis, PRUint32 *slot);
4595
4596 nsresult (*GetEnabled)(INetworkAdapter *pThis, PRBool *enabled);
4597 nsresult (*SetEnabled)(INetworkAdapter *pThis, PRBool enabled);
4598
4599 nsresult (*GetMACAddress)(INetworkAdapter *pThis, PRUnichar * *MACAddress);
4600 nsresult (*SetMACAddress)(INetworkAdapter *pThis, PRUnichar * MACAddress);
4601
4602 nsresult (*GetAttachmentType)(INetworkAdapter *pThis, PRUint32 *attachmentType);
4603
4604 nsresult (*GetHostInterface)(INetworkAdapter *pThis, PRUnichar * *hostInterface);
4605 nsresult (*SetHostInterface)(INetworkAdapter *pThis, PRUnichar * hostInterface);
4606
4607 nsresult (*GetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * *internalNetwork);
4608 nsresult (*SetInternalNetwork)(INetworkAdapter *pThis, PRUnichar * internalNetwork);
4609
4610 nsresult (*GetNATNetwork)(INetworkAdapter *pThis, PRUnichar * *NATNetwork);
4611 nsresult (*SetNATNetwork)(INetworkAdapter *pThis, PRUnichar * NATNetwork);
4612
4613 nsresult (*GetVDENetwork)(INetworkAdapter *pThis, PRUnichar * *VDENetwork);
4614 nsresult (*SetVDENetwork)(INetworkAdapter *pThis, PRUnichar * VDENetwork);
4615
4616 nsresult (*GetCableConnected)(INetworkAdapter *pThis, PRBool *cableConnected);
4617 nsresult (*SetCableConnected)(INetworkAdapter *pThis, PRBool cableConnected);
4618
4619 nsresult (*GetLineSpeed)(INetworkAdapter *pThis, PRUint32 *lineSpeed);
4620 nsresult (*SetLineSpeed)(INetworkAdapter *pThis, PRUint32 lineSpeed);
4621
4622 nsresult (*GetTraceEnabled)(INetworkAdapter *pThis, PRBool *traceEnabled);
4623 nsresult (*SetTraceEnabled)(INetworkAdapter *pThis, PRBool traceEnabled);
4624
4625 nsresult (*GetTraceFile)(INetworkAdapter *pThis, PRUnichar * *traceFile);
4626 nsresult (*SetTraceFile)(INetworkAdapter *pThis, PRUnichar * traceFile);
4627
4628 nsresult (*GetNatDriver)(INetworkAdapter *pThis, INATEngine * *natDriver);
4629
4630 nsresult (*GetBootPriority)(INetworkAdapter *pThis, PRUint32 *bootPriority);
4631 nsresult (*SetBootPriority)(INetworkAdapter *pThis, PRUint32 bootPriority);
4632
4633 nsresult (*AttachToNAT)(INetworkAdapter *pThis );
4634
4635 nsresult (*AttachToBridgedInterface)(INetworkAdapter *pThis );
4636
4637 nsresult (*AttachToInternalNetwork)(INetworkAdapter *pThis );
4638
4639 nsresult (*AttachToHostOnlyInterface)(INetworkAdapter *pThis );
4640
4641 nsresult (*AttachToVDE)(INetworkAdapter *pThis );
4642
4643 nsresult (*Detach)(INetworkAdapter *pThis );
4644
4645};
4646
4647struct INetworkAdapter
4648{
4649 struct INetworkAdapter_vtbl *vtbl;
4650};
4651/* End of struct INetworkAdapter Declaration */
4652
4653
4654/* Start of struct ISerialPort Declaration */
4655#define ISERIALPORT_IID_STR "937f6970-5103-4745-b78e-d28dcf1479a8"
4656#define ISERIALPORT_IID { \
4657 0x937f6970, 0x5103, 0x4745, \
4658 { 0xb7, 0x8e, 0xd2, 0x8d, 0xcf, 0x14, 0x79, 0xa8 } \
4659}
4660struct ISerialPort_vtbl
4661{
4662 struct nsISupports_vtbl nsisupports;
4663
4664 nsresult (*GetSlot)(ISerialPort *pThis, PRUint32 *slot);
4665
4666 nsresult (*GetEnabled)(ISerialPort *pThis, PRBool *enabled);
4667 nsresult (*SetEnabled)(ISerialPort *pThis, PRBool enabled);
4668
4669 nsresult (*GetIOBase)(ISerialPort *pThis, PRUint32 *IOBase);
4670 nsresult (*SetIOBase)(ISerialPort *pThis, PRUint32 IOBase);
4671
4672 nsresult (*GetIRQ)(ISerialPort *pThis, PRUint32 *IRQ);
4673 nsresult (*SetIRQ)(ISerialPort *pThis, PRUint32 IRQ);
4674
4675 nsresult (*GetHostMode)(ISerialPort *pThis, PRUint32 *hostMode);
4676 nsresult (*SetHostMode)(ISerialPort *pThis, PRUint32 hostMode);
4677
4678 nsresult (*GetServer)(ISerialPort *pThis, PRBool *server);
4679 nsresult (*SetServer)(ISerialPort *pThis, PRBool server);
4680
4681 nsresult (*GetPath)(ISerialPort *pThis, PRUnichar * *path);
4682 nsresult (*SetPath)(ISerialPort *pThis, PRUnichar * path);
4683
4684};
4685
4686struct ISerialPort
4687{
4688 struct ISerialPort_vtbl *vtbl;
4689};
4690/* End of struct ISerialPort Declaration */
4691
4692
4693/* Start of struct IParallelPort Declaration */
4694#define IPARALLELPORT_IID_STR "0c925f06-dd10-4b77-8de8-294d738c3214"
4695#define IPARALLELPORT_IID { \
4696 0x0c925f06, 0xdd10, 0x4b77, \
4697 { 0x8d, 0xe8, 0x29, 0x4d, 0x73, 0x8c, 0x32, 0x14 } \
4698}
4699struct IParallelPort_vtbl
4700{
4701 struct nsISupports_vtbl nsisupports;
4702
4703 nsresult (*GetSlot)(IParallelPort *pThis, PRUint32 *slot);
4704
4705 nsresult (*GetEnabled)(IParallelPort *pThis, PRBool *enabled);
4706 nsresult (*SetEnabled)(IParallelPort *pThis, PRBool enabled);
4707
4708 nsresult (*GetIOBase)(IParallelPort *pThis, PRUint32 *IOBase);
4709 nsresult (*SetIOBase)(IParallelPort *pThis, PRUint32 IOBase);
4710
4711 nsresult (*GetIRQ)(IParallelPort *pThis, PRUint32 *IRQ);
4712 nsresult (*SetIRQ)(IParallelPort *pThis, PRUint32 IRQ);
4713
4714 nsresult (*GetPath)(IParallelPort *pThis, PRUnichar * *path);
4715 nsresult (*SetPath)(IParallelPort *pThis, PRUnichar * path);
4716
4717};
4718
4719struct IParallelPort
4720{
4721 struct IParallelPort_vtbl *vtbl;
4722};
4723/* End of struct IParallelPort Declaration */
4724
4725
4726/* Start of struct IMachineDebugger Declaration */
4727#define IMACHINEDEBUGGER_IID_STR "b0b2a2dd-0627-4502-91c2-ddc5e77609e0"
4728#define IMACHINEDEBUGGER_IID { \
4729 0xb0b2a2dd, 0x0627, 0x4502, \
4730 { 0x91, 0xc2, 0xdd, 0xc5, 0xe7, 0x76, 0x09, 0xe0 } \
4731}
4732struct IMachineDebugger_vtbl
4733{
4734 struct nsISupports_vtbl nsisupports;
4735
4736 nsresult (*GetSinglestep)(IMachineDebugger *pThis, PRBool *singlestep);
4737 nsresult (*SetSinglestep)(IMachineDebugger *pThis, PRBool singlestep);
4738
4739 nsresult (*GetRecompileUser)(IMachineDebugger *pThis, PRBool *recompileUser);
4740 nsresult (*SetRecompileUser)(IMachineDebugger *pThis, PRBool recompileUser);
4741
4742 nsresult (*GetRecompileSupervisor)(IMachineDebugger *pThis, PRBool *recompileSupervisor);
4743 nsresult (*SetRecompileSupervisor)(IMachineDebugger *pThis, PRBool recompileSupervisor);
4744
4745 nsresult (*GetPATMEnabled)(IMachineDebugger *pThis, PRBool *PATMEnabled);
4746 nsresult (*SetPATMEnabled)(IMachineDebugger *pThis, PRBool PATMEnabled);
4747
4748 nsresult (*GetCSAMEnabled)(IMachineDebugger *pThis, PRBool *CSAMEnabled);
4749 nsresult (*SetCSAMEnabled)(IMachineDebugger *pThis, PRBool CSAMEnabled);
4750
4751 nsresult (*GetLogEnabled)(IMachineDebugger *pThis, PRBool *logEnabled);
4752 nsresult (*SetLogEnabled)(IMachineDebugger *pThis, PRBool logEnabled);
4753
4754 nsresult (*GetHWVirtExEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExEnabled);
4755
4756 nsresult (*GetHWVirtExNestedPagingEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExNestedPagingEnabled);
4757
4758 nsresult (*GetHWVirtExVPIDEnabled)(IMachineDebugger *pThis, PRBool *HWVirtExVPIDEnabled);
4759
4760 nsresult (*GetPAEEnabled)(IMachineDebugger *pThis, PRBool *PAEEnabled);
4761
4762 nsresult (*GetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 *virtualTimeRate);
4763 nsresult (*SetVirtualTimeRate)(IMachineDebugger *pThis, PRUint32 virtualTimeRate);
4764
4765 nsresult (*GetVM)(IMachineDebugger *pThis, PRUint64 *VM);
4766
4767 nsresult (*ResetStats)(
4768 IMachineDebugger *pThis,
4769 PRUnichar * pattern
4770 );
4771
4772 nsresult (*DumpStats)(
4773 IMachineDebugger *pThis,
4774 PRUnichar * pattern
4775 );
4776
4777 nsresult (*GetStats)(
4778 IMachineDebugger *pThis,
4779 PRUnichar * pattern,
4780 PRBool withDescriptions,
4781 PRUnichar * * stats
4782 );
4783
4784 nsresult (*InjectNMI)(IMachineDebugger *pThis );
4785
4786};
4787
4788struct IMachineDebugger
4789{
4790 struct IMachineDebugger_vtbl *vtbl;
4791};
4792/* End of struct IMachineDebugger Declaration */
4793
4794
4795/* Start of struct IUSBController Declaration */
4796#define IUSBCONTROLLER_IID_STR "6fdcccc5-abd3-4fec-9387-2ad3914fc4a8"
4797#define IUSBCONTROLLER_IID { \
4798 0x6fdcccc5, 0xabd3, 0x4fec, \
4799 { 0x93, 0x87, 0x2a, 0xd3, 0x91, 0x4f, 0xc4, 0xa8 } \
4800}
4801struct IUSBController_vtbl
4802{
4803 struct nsISupports_vtbl nsisupports;
4804
4805 nsresult (*GetEnabled)(IUSBController *pThis, PRBool *enabled);
4806 nsresult (*SetEnabled)(IUSBController *pThis, PRBool enabled);
4807
4808 nsresult (*GetEnabledEhci)(IUSBController *pThis, PRBool *enabledEhci);
4809 nsresult (*SetEnabledEhci)(IUSBController *pThis, PRBool enabledEhci);
4810
4811 nsresult (*GetProxyAvailable)(IUSBController *pThis, PRBool *proxyAvailable);
4812
4813 nsresult (*GetUSBStandard)(IUSBController *pThis, PRUint16 *USBStandard);
4814
4815 nsresult (*GetDeviceFilters)(IUSBController *pThis, PRUint32 *deviceFiltersSize, IUSBDeviceFilter * **deviceFilters);
4816
4817 nsresult (*CreateDeviceFilter)(
4818 IUSBController *pThis,
4819 PRUnichar * name,
4820 IUSBDeviceFilter * * filter
4821 );
4822
4823 nsresult (*InsertDeviceFilter)(
4824 IUSBController *pThis,
4825 PRUint32 position,
4826 IUSBDeviceFilter * filter
4827 );
4828
4829 nsresult (*RemoveDeviceFilter)(
4830 IUSBController *pThis,
4831 PRUint32 position,
4832 IUSBDeviceFilter * * filter
4833 );
4834
4835};
4836
4837struct IUSBController
4838{
4839 struct IUSBController_vtbl *vtbl;
4840};
4841/* End of struct IUSBController Declaration */
4842
4843
4844/* Start of struct IUSBDevice Declaration */
4845#define IUSBDEVICE_IID_STR "f8967b0b-4483-400f-92b5-8b675d98a85b"
4846#define IUSBDEVICE_IID { \
4847 0xf8967b0b, 0x4483, 0x400f, \
4848 { 0x92, 0xb5, 0x8b, 0x67, 0x5d, 0x98, 0xa8, 0x5b } \
4849}
4850struct IUSBDevice_vtbl
4851{
4852 struct nsISupports_vtbl nsisupports;
4853
4854 nsresult (*GetId)(IUSBDevice *pThis, PRUnichar * *id);
4855
4856 nsresult (*GetVendorId)(IUSBDevice *pThis, PRUint16 *vendorId);
4857
4858 nsresult (*GetProductId)(IUSBDevice *pThis, PRUint16 *productId);
4859
4860 nsresult (*GetRevision)(IUSBDevice *pThis, PRUint16 *revision);
4861
4862 nsresult (*GetManufacturer)(IUSBDevice *pThis, PRUnichar * *manufacturer);
4863
4864 nsresult (*GetProduct)(IUSBDevice *pThis, PRUnichar * *product);
4865
4866 nsresult (*GetSerialNumber)(IUSBDevice *pThis, PRUnichar * *serialNumber);
4867
4868 nsresult (*GetAddress)(IUSBDevice *pThis, PRUnichar * *address);
4869
4870 nsresult (*GetPort)(IUSBDevice *pThis, PRUint16 *port);
4871
4872 nsresult (*GetVersion)(IUSBDevice *pThis, PRUint16 *version);
4873
4874 nsresult (*GetPortVersion)(IUSBDevice *pThis, PRUint16 *portVersion);
4875
4876 nsresult (*GetRemote)(IUSBDevice *pThis, PRBool *remote);
4877
4878};
4879
4880struct IUSBDevice
4881{
4882 struct IUSBDevice_vtbl *vtbl;
4883};
4884/* End of struct IUSBDevice Declaration */
4885
4886
4887/* Start of struct IUSBDeviceFilter Declaration */
4888#define IUSBDEVICEFILTER_IID_STR "d6831fb4-1a94-4c2c-96ef-8d0d6192066d"
4889#define IUSBDEVICEFILTER_IID { \
4890 0xd6831fb4, 0x1a94, 0x4c2c, \
4891 { 0x96, 0xef, 0x8d, 0x0d, 0x61, 0x92, 0x06, 0x6d } \
4892}
4893struct IUSBDeviceFilter_vtbl
4894{
4895 struct nsISupports_vtbl nsisupports;
4896
4897 nsresult (*GetName)(IUSBDeviceFilter *pThis, PRUnichar * *name);
4898 nsresult (*SetName)(IUSBDeviceFilter *pThis, PRUnichar * name);
4899
4900 nsresult (*GetActive)(IUSBDeviceFilter *pThis, PRBool *active);
4901 nsresult (*SetActive)(IUSBDeviceFilter *pThis, PRBool active);
4902
4903 nsresult (*GetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * *vendorId);
4904 nsresult (*SetVendorId)(IUSBDeviceFilter *pThis, PRUnichar * vendorId);
4905
4906 nsresult (*GetProductId)(IUSBDeviceFilter *pThis, PRUnichar * *productId);
4907 nsresult (*SetProductId)(IUSBDeviceFilter *pThis, PRUnichar * productId);
4908
4909 nsresult (*GetRevision)(IUSBDeviceFilter *pThis, PRUnichar * *revision);
4910 nsresult (*SetRevision)(IUSBDeviceFilter *pThis, PRUnichar * revision);
4911
4912 nsresult (*GetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * *manufacturer);
4913 nsresult (*SetManufacturer)(IUSBDeviceFilter *pThis, PRUnichar * manufacturer);
4914
4915 nsresult (*GetProduct)(IUSBDeviceFilter *pThis, PRUnichar * *product);
4916 nsresult (*SetProduct)(IUSBDeviceFilter *pThis, PRUnichar * product);
4917
4918 nsresult (*GetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * *serialNumber);
4919 nsresult (*SetSerialNumber)(IUSBDeviceFilter *pThis, PRUnichar * serialNumber);
4920
4921 nsresult (*GetPort)(IUSBDeviceFilter *pThis, PRUnichar * *port);
4922 nsresult (*SetPort)(IUSBDeviceFilter *pThis, PRUnichar * port);
4923
4924 nsresult (*GetRemote)(IUSBDeviceFilter *pThis, PRUnichar * *remote);
4925 nsresult (*SetRemote)(IUSBDeviceFilter *pThis, PRUnichar * remote);
4926
4927 nsresult (*GetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 *maskedInterfaces);
4928 nsresult (*SetMaskedInterfaces)(IUSBDeviceFilter *pThis, PRUint32 maskedInterfaces);
4929
4930};
4931
4932struct IUSBDeviceFilter
4933{
4934 struct IUSBDeviceFilter_vtbl *vtbl;
4935};
4936/* End of struct IUSBDeviceFilter Declaration */
4937
4938
4939/* Start of struct IHostUSBDevice Declaration */
4940#define IHOSTUSBDEVICE_IID_STR "173b4b44-d268-4334-a00d-b6521c9a740a"
4941#define IHOSTUSBDEVICE_IID { \
4942 0x173b4b44, 0xd268, 0x4334, \
4943 { 0xa0, 0x0d, 0xb6, 0x52, 0x1c, 0x9a, 0x74, 0x0a } \
4944}
4945struct IHostUSBDevice_vtbl
4946{
4947 struct IUSBDevice_vtbl iusbdevice;
4948
4949 nsresult (*GetState)(IHostUSBDevice *pThis, PRUint32 *state);
4950
4951};
4952
4953struct IHostUSBDevice
4954{
4955 struct IHostUSBDevice_vtbl *vtbl;
4956};
4957/* End of struct IHostUSBDevice Declaration */
4958
4959
4960/* Start of struct IHostUSBDeviceFilter Declaration */
4961#define IHOSTUSBDEVICEFILTER_IID_STR "4cc70246-d74a-400f-8222-3900489c0374"
4962#define IHOSTUSBDEVICEFILTER_IID { \
4963 0x4cc70246, 0xd74a, 0x400f, \
4964 { 0x82, 0x22, 0x39, 0x00, 0x48, 0x9c, 0x03, 0x74 } \
4965}
4966struct IHostUSBDeviceFilter_vtbl
4967{
4968 struct IUSBDeviceFilter_vtbl iusbdevicefilter;
4969
4970 nsresult (*GetAction)(IHostUSBDeviceFilter *pThis, PRUint32 *action);
4971 nsresult (*SetAction)(IHostUSBDeviceFilter *pThis, PRUint32 action);
4972
4973};
4974
4975struct IHostUSBDeviceFilter
4976{
4977 struct IHostUSBDeviceFilter_vtbl *vtbl;
4978};
4979/* End of struct IHostUSBDeviceFilter Declaration */
4980
4981
4982/* Start of struct IAudioAdapter Declaration */
4983#define IAUDIOADAPTER_IID_STR "921873db-5f3f-4b69-91f9-7be9e535a2cb"
4984#define IAUDIOADAPTER_IID { \
4985 0x921873db, 0x5f3f, 0x4b69, \
4986 { 0x91, 0xf9, 0x7b, 0xe9, 0xe5, 0x35, 0xa2, 0xcb } \
4987}
4988struct IAudioAdapter_vtbl
4989{
4990 struct nsISupports_vtbl nsisupports;
4991
4992 nsresult (*GetEnabled)(IAudioAdapter *pThis, PRBool *enabled);
4993 nsresult (*SetEnabled)(IAudioAdapter *pThis, PRBool enabled);
4994
4995 nsresult (*GetAudioController)(IAudioAdapter *pThis, PRUint32 *audioController);
4996 nsresult (*SetAudioController)(IAudioAdapter *pThis, PRUint32 audioController);
4997
4998 nsresult (*GetAudioDriver)(IAudioAdapter *pThis, PRUint32 *audioDriver);
4999 nsresult (*SetAudioDriver)(IAudioAdapter *pThis, PRUint32 audioDriver);
5000
5001};
5002
5003struct IAudioAdapter
5004{
5005 struct IAudioAdapter_vtbl *vtbl;
5006};
5007/* End of struct IAudioAdapter Declaration */
5008
5009
5010/* Start of struct IVRDPServer Declaration */
5011#define IVRDPSERVER_IID_STR "7aeeb530-0b08-41fe-835d-9be9ec1dbe5c"
5012#define IVRDPSERVER_IID { \
5013 0x7aeeb530, 0x0b08, 0x41fe, \
5014 { 0x83, 0x5d, 0x9b, 0xe9, 0xec, 0x1d, 0xbe, 0x5c } \
5015}
5016struct IVRDPServer_vtbl
5017{
5018 struct nsISupports_vtbl nsisupports;
5019
5020 nsresult (*GetEnabled)(IVRDPServer *pThis, PRBool *enabled);
5021 nsresult (*SetEnabled)(IVRDPServer *pThis, PRBool enabled);
5022
5023 nsresult (*GetPorts)(IVRDPServer *pThis, PRUnichar * *ports);
5024 nsresult (*SetPorts)(IVRDPServer *pThis, PRUnichar * ports);
5025
5026 nsresult (*GetNetAddress)(IVRDPServer *pThis, PRUnichar * *netAddress);
5027 nsresult (*SetNetAddress)(IVRDPServer *pThis, PRUnichar * netAddress);
5028
5029 nsresult (*GetAuthType)(IVRDPServer *pThis, PRUint32 *authType);
5030 nsresult (*SetAuthType)(IVRDPServer *pThis, PRUint32 authType);
5031
5032 nsresult (*GetAuthTimeout)(IVRDPServer *pThis, PRUint32 *authTimeout);
5033 nsresult (*SetAuthTimeout)(IVRDPServer *pThis, PRUint32 authTimeout);
5034
5035 nsresult (*GetAllowMultiConnection)(IVRDPServer *pThis, PRBool *allowMultiConnection);
5036 nsresult (*SetAllowMultiConnection)(IVRDPServer *pThis, PRBool allowMultiConnection);
5037
5038 nsresult (*GetReuseSingleConnection)(IVRDPServer *pThis, PRBool *reuseSingleConnection);
5039 nsresult (*SetReuseSingleConnection)(IVRDPServer *pThis, PRBool reuseSingleConnection);
5040
5041 nsresult (*GetVideoChannel)(IVRDPServer *pThis, PRBool *videoChannel);
5042 nsresult (*SetVideoChannel)(IVRDPServer *pThis, PRBool videoChannel);
5043
5044 nsresult (*GetVideoChannelQuality)(IVRDPServer *pThis, PRUint32 *videoChannelQuality);
5045 nsresult (*SetVideoChannelQuality)(IVRDPServer *pThis, PRUint32 videoChannelQuality);
5046
5047};
5048
5049struct IVRDPServer
5050{
5051 struct IVRDPServer_vtbl *vtbl;
5052};
5053/* End of struct IVRDPServer Declaration */
5054
5055
5056/* Start of struct ISharedFolder Declaration */
5057#define ISHAREDFOLDER_IID_STR "64637bb2-9e17-471c-b8f3-f8968dd9884e"
5058#define ISHAREDFOLDER_IID { \
5059 0x64637bb2, 0x9e17, 0x471c, \
5060 { 0xb8, 0xf3, 0xf8, 0x96, 0x8d, 0xd9, 0x88, 0x4e } \
5061}
5062struct ISharedFolder_vtbl
5063{
5064 struct nsISupports_vtbl nsisupports;
5065
5066 nsresult (*GetName)(ISharedFolder *pThis, PRUnichar * *name);
5067
5068 nsresult (*GetHostPath)(ISharedFolder *pThis, PRUnichar * *hostPath);
5069
5070 nsresult (*GetAccessible)(ISharedFolder *pThis, PRBool *accessible);
5071
5072 nsresult (*GetWritable)(ISharedFolder *pThis, PRBool *writable);
5073
5074 nsresult (*GetLastAccessError)(ISharedFolder *pThis, PRUnichar * *lastAccessError);
5075
5076};
5077
5078struct ISharedFolder
5079{
5080 struct ISharedFolder_vtbl *vtbl;
5081};
5082/* End of struct ISharedFolder Declaration */
5083
5084
5085/* Start of struct IInternalSessionControl Declaration */
5086#define IINTERNALSESSIONCONTROL_IID_STR "ab161f72-e4b3-44e6-a919-2256474bda66"
5087#define IINTERNALSESSIONCONTROL_IID { \
5088 0xab161f72, 0xe4b3, 0x44e6, \
5089 { 0xa9, 0x19, 0x22, 0x56, 0x47, 0x4b, 0xda, 0x66 } \
5090}
5091struct IInternalSessionControl_vtbl
5092{
5093 struct nsISupports_vtbl nsisupports;
5094
5095 nsresult (*GetPID)(
5096 IInternalSessionControl *pThis,
5097 PRUint32 * pid
5098 );
5099
5100 nsresult (*GetRemoteConsole)(
5101 IInternalSessionControl *pThis,
5102 IConsole * * console
5103 );
5104
5105 nsresult (*AssignMachine)(
5106 IInternalSessionControl *pThis,
5107 IMachine * machine
5108 );
5109
5110 nsresult (*AssignRemoteMachine)(
5111 IInternalSessionControl *pThis,
5112 IMachine * machine,
5113 IConsole * console
5114 );
5115
5116 nsresult (*UpdateMachineState)(
5117 IInternalSessionControl *pThis,
5118 PRUint32 aMachineState
5119 );
5120
5121 nsresult (*Uninitialize)(IInternalSessionControl *pThis );
5122
5123 nsresult (*OnNetworkAdapterChange)(
5124 IInternalSessionControl *pThis,
5125 INetworkAdapter * networkAdapter,
5126 PRBool changeAdapter
5127 );
5128
5129 nsresult (*OnSerialPortChange)(
5130 IInternalSessionControl *pThis,
5131 ISerialPort * serialPort
5132 );
5133
5134 nsresult (*OnParallelPortChange)(
5135 IInternalSessionControl *pThis,
5136 IParallelPort * parallelPort
5137 );
5138
5139 nsresult (*OnStorageControllerChange)(IInternalSessionControl *pThis );
5140
5141 nsresult (*OnMediumChange)(
5142 IInternalSessionControl *pThis,
5143 IMediumAttachment * mediumAttachment,
5144 PRBool force
5145 );
5146
5147 nsresult (*OnCPUChange)(
5148 IInternalSessionControl *pThis,
5149 PRUint32 cpu,
5150 PRBool add
5151 );
5152
5153 nsresult (*OnVRDPServerChange)(
5154 IInternalSessionControl *pThis,
5155 PRBool restart
5156 );
5157
5158 nsresult (*OnUSBControllerChange)(IInternalSessionControl *pThis );
5159
5160 nsresult (*OnSharedFolderChange)(
5161 IInternalSessionControl *pThis,
5162 PRBool global
5163 );
5164
5165 nsresult (*OnUSBDeviceAttach)(
5166 IInternalSessionControl *pThis,
5167 IUSBDevice * device,
5168 IVirtualBoxErrorInfo * error,
5169 PRUint32 maskedInterfaces
5170 );
5171
5172 nsresult (*OnUSBDeviceDetach)(
5173 IInternalSessionControl *pThis,
5174 PRUnichar * id,
5175 IVirtualBoxErrorInfo * error
5176 );
5177
5178 nsresult (*OnShowWindow)(
5179 IInternalSessionControl *pThis,
5180 PRBool check,
5181 PRBool * canShow,
5182 PRUint64 * winId
5183 );
5184
5185 nsresult (*AccessGuestProperty)(
5186 IInternalSessionControl *pThis,
5187 PRUnichar * name,
5188 PRUnichar * value,
5189 PRUnichar * flags,
5190 PRBool isSetter,
5191 PRUnichar * * retValue,
5192 PRUint64 * retTimestamp,
5193 PRUnichar * * retFlags
5194 );
5195
5196 nsresult (*EnumerateGuestProperties)(
5197 IInternalSessionControl *pThis,
5198 PRUnichar * patterns,
5199 PRUint32 *keySize,
5200 PRUnichar *** key,
5201 PRUint32 *valueSize,
5202 PRUnichar *** value,
5203 PRUint32 *timestampSize,
5204 PRUint64* timestamp,
5205 PRUint32 *flagsSize,
5206 PRUnichar *** flags
5207 );
5208
5209 nsresult (*OnlineMergeMedium)(
5210 IInternalSessionControl *pThis,
5211 IMediumAttachment * mediumAttachment,
5212 PRUint32 sourceIdx,
5213 PRUint32 targetIdx,
5214 IMedium * source,
5215 IMedium * target,
5216 PRBool mergeForward,
5217 IMedium * parentForTarget,
5218 PRUint32 childrenToReparentSize,
5219 IMedium ** childrenToReparent,
5220 IProgress * progress
5221 );
5222
5223};
5224
5225struct IInternalSessionControl
5226{
5227 struct IInternalSessionControl_vtbl *vtbl;
5228};
5229/* End of struct IInternalSessionControl Declaration */
5230
5231
5232/* Start of struct ISession Declaration */
5233#define ISESSION_IID_STR "12F4DCDB-12B2-4EC1-B7CD-DDD9F6C5BF4D"
5234#define ISESSION_IID { \
5235 0x12F4DCDB, 0x12B2, 0x4EC1, \
5236 { 0xB7, 0xCD, 0xDD, 0xD9, 0xF6, 0xC5, 0xBF, 0x4D } \
5237}
5238struct ISession_vtbl
5239{
5240 struct nsISupports_vtbl nsisupports;
5241
5242 nsresult (*GetState)(ISession *pThis, PRUint32 *state);
5243
5244 nsresult (*GetType)(ISession *pThis, PRUint32 *type);
5245
5246 nsresult (*GetMachine)(ISession *pThis, IMachine * *machine);
5247
5248 nsresult (*GetConsole)(ISession *pThis, IConsole * *console);
5249
5250 nsresult (*Close)(ISession *pThis );
5251
5252};
5253
5254struct ISession
5255{
5256 struct ISession_vtbl *vtbl;
5257};
5258/* End of struct ISession Declaration */
5259
5260
5261/* Start of struct IStorageController Declaration */
5262#define ISTORAGECONTROLLER_IID_STR "fd93adc0-bbaa-4256-9e6e-00e29f9151c9"
5263#define ISTORAGECONTROLLER_IID { \
5264 0xfd93adc0, 0xbbaa, 0x4256, \
5265 { 0x9e, 0x6e, 0x00, 0xe2, 0x9f, 0x91, 0x51, 0xc9 } \
5266}
5267struct IStorageController_vtbl
5268{
5269 struct nsISupports_vtbl nsisupports;
5270
5271 nsresult (*GetName)(IStorageController *pThis, PRUnichar * *name);
5272
5273 nsresult (*GetMaxDevicesPerPortCount)(IStorageController *pThis, PRUint32 *maxDevicesPerPortCount);
5274
5275 nsresult (*GetMinPortCount)(IStorageController *pThis, PRUint32 *minPortCount);
5276
5277 nsresult (*GetMaxPortCount)(IStorageController *pThis, PRUint32 *maxPortCount);
5278
5279 nsresult (*GetInstance)(IStorageController *pThis, PRUint32 *instance);
5280 nsresult (*SetInstance)(IStorageController *pThis, PRUint32 instance);
5281
5282 nsresult (*GetPortCount)(IStorageController *pThis, PRUint32 *portCount);
5283 nsresult (*SetPortCount)(IStorageController *pThis, PRUint32 portCount);
5284
5285 nsresult (*GetBus)(IStorageController *pThis, PRUint32 *bus);
5286
5287 nsresult (*GetControllerType)(IStorageController *pThis, PRUint32 *controllerType);
5288 nsresult (*SetControllerType)(IStorageController *pThis, PRUint32 controllerType);
5289
5290 nsresult (*GetUseHostIOCache)(IStorageController *pThis, PRBool *useHostIOCache);
5291 nsresult (*SetUseHostIOCache)(IStorageController *pThis, PRBool useHostIOCache);
5292
5293 nsresult (*GetIDEEmulationPort)(
5294 IStorageController *pThis,
5295 PRInt32 devicePosition,
5296 PRInt32 * portNumber
5297 );
5298
5299 nsresult (*SetIDEEmulationPort)(
5300 IStorageController *pThis,
5301 PRInt32 devicePosition,
5302 PRInt32 portNumber
5303 );
5304
5305};
5306
5307struct IStorageController
5308{
5309 struct IStorageController_vtbl *vtbl;
5310};
5311/* End of struct IStorageController Declaration */
5312
5313
5314/* Start of struct IPerformanceMetric Declaration */
5315#define IPERFORMANCEMETRIC_IID_STR "2a1a60ae-9345-4019-ad53-d34ba41cbfe9"
5316#define IPERFORMANCEMETRIC_IID { \
5317 0x2a1a60ae, 0x9345, 0x4019, \
5318 { 0xad, 0x53, 0xd3, 0x4b, 0xa4, 0x1c, 0xbf, 0xe9 } \
5319}
5320struct IPerformanceMetric_vtbl
5321{
5322 struct nsISupports_vtbl nsisupports;
5323
5324 nsresult (*GetMetricName)(IPerformanceMetric *pThis, PRUnichar * *metricName);
5325
5326 nsresult (*GetObject)(IPerformanceMetric *pThis, nsISupports * *object);
5327
5328 nsresult (*GetDescription)(IPerformanceMetric *pThis, PRUnichar * *description);
5329
5330 nsresult (*GetPeriod)(IPerformanceMetric *pThis, PRUint32 *period);
5331
5332 nsresult (*GetCount)(IPerformanceMetric *pThis, PRUint32 *count);
5333
5334 nsresult (*GetUnit)(IPerformanceMetric *pThis, PRUnichar * *unit);
5335
5336 nsresult (*GetMinimumValue)(IPerformanceMetric *pThis, PRInt32 *minimumValue);
5337
5338 nsresult (*GetMaximumValue)(IPerformanceMetric *pThis, PRInt32 *maximumValue);
5339
5340};
5341
5342struct IPerformanceMetric
5343{
5344 struct IPerformanceMetric_vtbl *vtbl;
5345};
5346/* End of struct IPerformanceMetric Declaration */
5347
5348
5349/* Start of struct IPerformanceCollector Declaration */
5350#define IPERFORMANCECOLLECTOR_IID_STR "e22e1acb-ac4a-43bb-a31c-17321659b0c6"
5351#define IPERFORMANCECOLLECTOR_IID { \
5352 0xe22e1acb, 0xac4a, 0x43bb, \
5353 { 0xa3, 0x1c, 0x17, 0x32, 0x16, 0x59, 0xb0, 0xc6 } \
5354}
5355struct IPerformanceCollector_vtbl
5356{
5357 struct nsISupports_vtbl nsisupports;
5358
5359 nsresult (*GetMetricNames)(IPerformanceCollector *pThis, PRUint32 *metricNamesSize, PRUnichar * **metricNames);
5360
5361 nsresult (*GetMetrics)(
5362 IPerformanceCollector *pThis,
5363 PRUint32 metricNamesSize,
5364 PRUnichar ** metricNames,
5365 PRUint32 objectsSize,
5366 nsISupports ** objects,
5367 PRUint32 *metricsSize,
5368 IPerformanceMetric *** metrics
5369 );
5370
5371 nsresult (*SetupMetrics)(
5372 IPerformanceCollector *pThis,
5373 PRUint32 metricNamesSize,
5374 PRUnichar ** metricNames,
5375 PRUint32 objectsSize,
5376 nsISupports ** objects,
5377 PRUint32 period,
5378 PRUint32 count,
5379 PRUint32 *affectedMetricsSize,
5380 IPerformanceMetric *** affectedMetrics
5381 );
5382
5383 nsresult (*EnableMetrics)(
5384 IPerformanceCollector *pThis,
5385 PRUint32 metricNamesSize,
5386 PRUnichar ** metricNames,
5387 PRUint32 objectsSize,
5388 nsISupports ** objects,
5389 PRUint32 *affectedMetricsSize,
5390 IPerformanceMetric *** affectedMetrics
5391 );
5392
5393 nsresult (*DisableMetrics)(
5394 IPerformanceCollector *pThis,
5395 PRUint32 metricNamesSize,
5396 PRUnichar ** metricNames,
5397 PRUint32 objectsSize,
5398 nsISupports ** objects,
5399 PRUint32 *affectedMetricsSize,
5400 IPerformanceMetric *** affectedMetrics
5401 );
5402
5403 nsresult (*QueryMetricsData)(
5404 IPerformanceCollector *pThis,
5405 PRUint32 metricNamesSize,
5406 PRUnichar ** metricNames,
5407 PRUint32 objectsSize,
5408 nsISupports ** objects,
5409 PRUint32 *returnMetricNamesSize,
5410 PRUnichar *** returnMetricNames,
5411 PRUint32 *returnObjectsSize,
5412 nsISupports ** returnObjects,
5413 PRUint32 *returnUnitsSize,
5414 PRUnichar *** returnUnits,
5415 PRUint32 *returnScalesSize,
5416 PRUint32* returnScales,
5417 PRUint32 *returnSequenceNumbersSize,
5418 PRUint32* returnSequenceNumbers,
5419 PRUint32 *returnDataIndicesSize,
5420 PRUint32* returnDataIndices,
5421 PRUint32 *returnDataLengthsSize,
5422 PRUint32* returnDataLengths,
5423 PRUint32 *returnDataSize,
5424 PRInt32** returnData
5425 );
5426
5427};
5428
5429struct IPerformanceCollector
5430{
5431 struct IPerformanceCollector_vtbl *vtbl;
5432};
5433/* End of struct IPerformanceCollector Declaration */
5434
5435
5436/* Start of struct INATEngine Declaration */
5437#define INATENGINE_IID_STR "4b286616-eb03-11de-b0fb-1701eca42246"
5438#define INATENGINE_IID { \
5439 0x4b286616, 0xeb03, 0x11de, \
5440 { 0xb0, 0xfb, 0x17, 0x01, 0xec, 0xa4, 0x22, 0x46 } \
5441}
5442struct INATEngine_vtbl
5443{
5444 struct nsISupports_vtbl nsisupports;
5445
5446 nsresult (*GetNetwork)(INATEngine *pThis, PRUnichar * *network);
5447 nsresult (*SetNetwork)(INATEngine *pThis, PRUnichar * network);
5448
5449 nsresult (*GetHostIP)(INATEngine *pThis, PRUnichar * *hostIP);
5450 nsresult (*SetHostIP)(INATEngine *pThis, PRUnichar * hostIP);
5451
5452 nsresult (*GetTftpPrefix)(INATEngine *pThis, PRUnichar * *tftpPrefix);
5453 nsresult (*SetTftpPrefix)(INATEngine *pThis, PRUnichar * tftpPrefix);
5454
5455 nsresult (*GetTftpBootFile)(INATEngine *pThis, PRUnichar * *tftpBootFile);
5456 nsresult (*SetTftpBootFile)(INATEngine *pThis, PRUnichar * tftpBootFile);
5457
5458 nsresult (*GetTftpNextServer)(INATEngine *pThis, PRUnichar * *tftpNextServer);
5459 nsresult (*SetTftpNextServer)(INATEngine *pThis, PRUnichar * tftpNextServer);
5460
5461 nsresult (*GetAliasMode)(INATEngine *pThis, PRUint32 *aliasMode);
5462 nsresult (*SetAliasMode)(INATEngine *pThis, PRUint32 aliasMode);
5463
5464 nsresult (*GetDnsPassDomain)(INATEngine *pThis, PRBool *dnsPassDomain);
5465 nsresult (*SetDnsPassDomain)(INATEngine *pThis, PRBool dnsPassDomain);
5466
5467 nsresult (*GetDnsProxy)(INATEngine *pThis, PRBool *dnsProxy);
5468 nsresult (*SetDnsProxy)(INATEngine *pThis, PRBool dnsProxy);
5469
5470 nsresult (*GetDnsUseHostResolver)(INATEngine *pThis, PRBool *dnsUseHostResolver);
5471 nsresult (*SetDnsUseHostResolver)(INATEngine *pThis, PRBool dnsUseHostResolver);
5472
5473 nsresult (*GetRedirects)(INATEngine *pThis, PRUint32 *redirectsSize, PRUnichar * **redirects);
5474
5475 nsresult (*SetNetworkSettings)(
5476 INATEngine *pThis,
5477 PRUint32 mtu,
5478 PRUint32 sockSnd,
5479 PRUint32 sockRcv,
5480 PRUint32 TcpWndSnd,
5481 PRUint32 TcpWndRcv
5482 );
5483
5484 nsresult (*GetNetworkSettings)(
5485 INATEngine *pThis,
5486 PRUint32 * mtu,
5487 PRUint32 * sockSnd,
5488 PRUint32 * sockRcv,
5489 PRUint32 * TcpWndSnd,
5490 PRUint32 * TcpWndRcv
5491 );
5492
5493 nsresult (*AddRedirect)(
5494 INATEngine *pThis,
5495 PRUnichar * name,
5496 PRUint32 proto,
5497 PRUnichar * hostIp,
5498 PRUint16 hostPort,
5499 PRUnichar * guestIp,
5500 PRUint16 guestPort
5501 );
5502
5503 nsresult (*RemoveRedirect)(
5504 INATEngine *pThis,
5505 PRUnichar * name
5506 );
5507
5508};
5509
5510struct INATEngine
5511{
5512 struct INATEngine_vtbl *vtbl;
5513};
5514/* End of struct INATEngine Declaration */
5515
5516
5517
5518#define NS_VIRTUALBOX_CID { \
5519 0xB1A7A4F2, 0x47B9, 0x4A1E, \
5520 { 0x82, 0xB2, 0x07, 0xCC, 0xD5, 0x32, 0x3C, 0x3F } \
5521}
5522#define NS_VIRTUALBOX_CONTRACTID "@virtualbox.org/VirtualBox;1"
5523/* for compatibility with Win32 */
5524#define CLSID_VirtualBox (nsCID) NS_VIRTUALBOX_CID
5525
5526
5527
5528#define NS_SESSION_CID { \
5529 0x3C02F46D, 0xC9D2, 0x4F11, \
5530 { 0xA3, 0x84, 0x53, 0xF0, 0xCF, 0x91, 0x72, 0x14 } \
5531}
5532#define NS_SESSION_CONTRACTID "@virtualbox.org/Session;1"
5533/* for compatibility with Win32 */
5534#define CLSID_Session (nsCID) NS_SESSION_CID
5535
5536
5537
5538#define NS_CALLBACKWRAPPER_CID { \
5539 0x49EE8561, 0x5563, 0x4715, \
5540 { 0xB1, 0x8C, 0xA4, 0xB1, 0xA4, 0x90, 0xDA, 0xFE } \
5541}
5542#define NS_CALLBACKWRAPPER_CONTRACTID "@virtualbox.org/CallbackWrapper;1"
5543/* for compatibility with Win32 */
5544#define CLSID_CallbackWrapper (nsCID) NS_CALLBACKWRAPPER_CID
5545
5546
5547
5548#endif /* !__cplusplus */
5549
5550#ifdef IN_VBOXXPCOMC
5551# define VBOXXPCOMC_DECL(type) PR_EXPORT(type)
5552#else
5553# define VBOXXPCOMC_DECL(type) PR_IMPORT(type)
5554#endif
5555
5556#ifdef __cplusplus
5557extern "C" {
5558#endif
5559
5560
5561/**
5562 * Function table for dynamic linking.
5563 * Use VBoxGetFunctions() to obtain the pointer to it.
5564 */
5565typedef struct VBOXXPCOMC
5566{
5567 /** The size of the structure. */
5568 unsigned cb;
5569 /** The structure version. */
5570 unsigned uVersion;
5571
5572 unsigned int (*pfnGetVersion)(void);
5573
5574 void (*pfnComInitialize)(const char *pszVirtualBoxIID,
5575 IVirtualBox **ppVirtualBox,
5576 const char *pszSessionIID,
5577 ISession **ppSession);
5578 void (*pfnComUninitialize)(void);
5579
5580 void (*pfnComUnallocMem)(void *pv);
5581 void (*pfnUtf16Free)(PRUnichar *pwszString);
5582 void (*pfnUtf8Free)(char *pszString);
5583
5584 int (*pfnUtf16ToUtf8)(const PRUnichar *pwszString, char **ppszString);
5585 int (*pfnUtf8ToUtf16)(const char *pszString, PRUnichar **ppwszString);
5586
5587 void (*pfnGetEventQueue)(nsIEventQueue **eventQueue);
5588
5589 /** Tail version, same as uVersion. */
5590 unsigned uEndVersion;
5591} VBOXXPCOMC;
5592/** Pointer to a const VBoxXPCOMC function table. */
5593typedef VBOXXPCOMC const *PCVBOXXPCOM;
5594
5595/** The current interface version.
5596 * For use with VBoxGetXPCOMCFunctions and to be found in
5597 * VBOXXPCOMC::uVersion. */
5598#define VBOX_XPCOMC_VERSION 0x00020000U
5599
5600VBOXXPCOMC_DECL(PCVBOXXPCOM) VBoxGetXPCOMCFunctions(unsigned uVersion);
5601/** Typedef for VBoxGetXPCOMCFunctions. */
5602typedef PCVBOXXPCOM (*PFNVBOXGETXPCOMCFUNCTIONS)(unsigned uVersion);
5603
5604/** The symbol name of VBoxGetXPCOMCFunctions. */
5605#if defined(__OS2__)
5606# define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "_VBoxGetXPCOMCFunctions"
5607#else
5608# define VBOX_GET_XPCOMC_FUNCTIONS_SYMBOL_NAME "VBoxGetXPCOMCFunctions"
5609#endif
5610
5611
5612#ifdef __cplusplus
5613}
5614#endif
5615
5616#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