VirtualBox

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

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

scm --update-copyright-year

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