VirtualBox

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

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

*: scm --update-copyright-year

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

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