VirtualBox

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

最後變更 在這個檔案從49908是 39885,由 vboxsync 提交於 13 年 前

Main/cbindings: update XPCOM C bindings again

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

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