VirtualBox

source: vbox/trunk/src/VBox/Main/cbinding/VBoxCAPI_v3_0.h@ 62485

Last change on this file since 62485 was 62485, checked in by vboxsync, 8 years ago

(C) 2016

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

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