VirtualBox

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

最後變更 在這個檔案從29167是 29167,由 vboxsync 提交於 15 年 前

Main/cbinding: add the bindings for 3.1 and generate the bindings for 3.2

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

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