VirtualBox

source: vbox/trunk/src/VBox/Main/cbinding/VBoxCAPI_v3_1.h@ 78126

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