listVMs

decompiled_code:
int __fastcall listVMs(__int64 *a1, __int64 a2)
{
__int64 v4; // rax
int v5; // eax
unsigned int v6; // esi
unsigned int v7; // ebx
__int64 v8; // rax
__int64 *v9; // rbp
__int64 v10; // rax
int result; // eax
unsigned int i; // ebx
__int64 v13; // rdi
__int64 *v14; // rdi
__int64 v15; // rax
unsigned int v16; // [rsp+0h] [rbp-68h] BYREF
int v17; // [rsp+4h] [rbp-64h] BYREF
__int64 v18; // [rsp+8h] [rbp-60h] BYREF
__int64 v19; // [rsp+10h] [rbp-58h] BYREF
__int64 v20; // [rsp+18h] [rbp-50h] BYREF
const char *v21; // [rsp+20h] [rbp-48h] BYREF
void *ptr[8]; // [rsp+28h] [rbp-40h] BYREF

v4 = *a1;
v16 = 0;
v18 = 0LL;
v5 = (*(__int64 (__fastcall **)(__int64 *, unsigned int *, __int64 *))(v4 + 80))(a1, &v16, &v18);
if ( v5 < 0 )
return fprintf(stderr, "could not get list of machines, rc=%08x\n", (unsigned int)v5);
if ( !v16 )
return puts("\tNo VMs");
puts("VM List:\n");
v6 = v16;
if ( v16 )
{
v7 = 0;
while ( 1 )
{
v9 = *(__int64 **)(v18 + 8LL * v7);
v17 = 0;
printf("\tMachine #%u\n", v7);
if ( v9 )
{
(*(void (__fastcall **)(__int64 *, int *))(*v9 + 32))(v9, &v17);
if ( v17 )
{
(*(void (__fastcall **)(__int64 *, const char **))(*v9 + 48))(v9, &v21);
(*(void (__fastcall **)(const char *, void **))(g_pVBoxFuncs + 56LL))(v21, ptr);
printf("\tName: %s\n", (const char *)ptr[0]);
(*(void (__fastcall **)(void *))(g_pVBoxFuncs + 48LL))(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 32LL))(v21);
}
else
{
puts("\tName: <inaccessible>");
}
v8 = *v9;
v21 = 0LL;
ptr[0] = 0LL;
(*(void (__fastcall **)(__int64 *, const char **))(v8 + 80))(v9, &v21);
(*(void (__fastcall **)(const char *, void **))(g_pVBoxFuncs + 56LL))(v21, ptr);
printf("\tUUID: %s\n", (const char *)ptr[0]);
(*(void (__fastcall **)(void *))(g_pVBoxFuncs + 48LL))(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 40LL))(v21);
if ( !v17 )
goto LABEL_7;
++v7;
ptr[0] = calloc(0x40uLL, 1uLL);
(*(void (__fastcall **)(__int64 *, const char **))(*v9 + 408))(v9, &v21);
(*(void (__fastcall **)(const char *, void **))(g_pVBoxFuncs + 56LL))(v21, ptr);
printf("\tConfig file: %s\n", (const char *)ptr[0]);
free(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 32LL))(v21);
(*(void (__fastcall **)(__int64 *, void **))(*v9 + 168))(v9, ptr);
printf("\tMemory size: %uMB\n", LODWORD(ptr[0]));
v10 = *v9;
ptr[0] = 0LL;
(*(void (__fastcall **)(__int64 *, __int64 *))(v10 + 88))(v9, &v19);
(*(void (__fastcall **)(__int64 *, __int64, void **))(*a1 + 296))(a1, v19, ptr);
(*(void (__fastcall **)(void *, __int64 *))(*(_QWORD *)ptr[0] + 48LL))(ptr[0], &v20);
(*(void (__fastcall **)(__int64, const char **))(g_pVBoxFuncs + 56LL))(v20, &v21);
printf("\tGuest OS: %s\n\n", v21);
(*(void (__fastcall **)(void *))(*(_QWORD *)ptr[0] + 16LL))(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 48LL))(v21);
(*(void (__fastcall **)(__int64))(g_pVBoxFuncs + 32LL))(v20);
(*(void (__fastcall **)(__int64))(g_pVBoxFuncs + 32LL))(v19);
v6 = v16;
if ( v16 <= v7 )
break;
}
else
{
puts("\t(skipped, NULL)");
LABEL_7:
v6 = v16;
if ( v16 <= ++v7 )
break;
}
}
}
printf("Type Machine# to start (0 - %u) or 'quit' to do nothing: ", v6 - 1);
fflush(stdout);
result = _isoc99_scanf("%u", &v21) - 1;
if ( !result )
{
result = (int)v21;
if ( (unsigned int)v21 < v16 )
{
v14 = *(__int64 **)(v18 + 8LL * (unsigned int)v21);
if ( v14 )
{
v15 = *v14;
ptr[0] = 0LL;
(*(void (__fastcall **)(__int64 *, void **))(v15 + 80))(v14, ptr);
startVM(a1, a2, (__int64)ptr[0]);
result = (*(__int64 (__fastcall **)(void *))(g_pVBoxFuncs + 40LL))(ptr[0]);
}
}
}
if ( v16 )
{
for ( i = 0; i < v16; ++i )
{
result = i;
v13 = *(_QWORD *)(v18 + 8LL * i);
if ( v13 )
result = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v13 + 16LL))(v13);
}
}
return result;
}

canonical_decompiled_code:
int __fastcall func1(__int64 *a1, __int64 a2)
{
__int64 v4; // rax
int v5; // eax
unsigned int v6; // esi
unsigned int v7; // ebx
__int64 v8; // rax
__int64 *v9; // rbp
__int64 v10; // rax
int result; // eax
unsigned int i; // ebx
__int64 v13; // rdi
__int64 *v14; // rdi
__int64 v15; // rax
unsigned int v16; // [rsp+0h] [rbp-68h] BYREF
int v17; // [rsp+4h] [rbp-64h] BYREF
__int64 v18; // [rsp+8h] [rbp-60h] BYREF
__int64 v19; // [rsp+10h] [rbp-58h] BYREF
__int64 v20; // [rsp+18h] [rbp-50h] BYREF
const char *v21; // [rsp+20h] [rbp-48h] BYREF
void *ptr[8]; // [rsp+28h] [rbp-40h] BYREF

v4 = *a1;
v16 = 0;
v18 = 0LL;
v5 = (*(__int64 (__fastcall **)(__int64 *, unsigned int *, __int64 *))(v4 + 80))(a1, &v16, &v18);
if ( v5 < 0 )
return fprintf(stderr, "could not get list of machines, rc=%08x\n", (unsigned int)v5);
if ( !v16 )
return puts("\tNo VMs");
puts("VM List:\n");
v6 = v16;
if ( v16 )
{
v7 = 0;
while ( 1 )
{
v9 = *(__int64 **)(v18 + 8LL * v7);
v17 = 0;
printf("\tMachine #%u\n", v7);
if ( v9 )
{
(*(void (__fastcall **)(__int64 *, int *))(*v9 + 32))(v9, &v17);
if ( v17 )
{
(*(void (__fastcall **)(__int64 *, const char **))(*v9 + 48))(v9, &v21);
(*(void (__fastcall **)(const char *, void **))(g_pVBoxFuncs + 56LL))(v21, ptr);
printf("\tName: %s\n", (const char *)ptr[0]);
(*(void (__fastcall **)(void *))(g_pVBoxFuncs + 48LL))(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 32LL))(v21);
}
else
{
puts("\tName: <inaccessible>");
}
v8 = *v9;
v21 = 0LL;
ptr[0] = 0LL;
(*(void (__fastcall **)(__int64 *, const char **))(v8 + 80))(v9, &v21);
(*(void (__fastcall **)(const char *, void **))(g_pVBoxFuncs + 56LL))(v21, ptr);
printf("\tUUID: %s\n", (const char *)ptr[0]);
(*(void (__fastcall **)(void *))(g_pVBoxFuncs + 48LL))(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 40LL))(v21);
if ( !v17 )
goto LABEL_7;
++v7;
ptr[0] = calloc(0x40uLL, 1uLL);
(*(void (__fastcall **)(__int64 *, const char **))(*v9 + 408))(v9, &v21);
(*(void (__fastcall **)(const char *, void **))(g_pVBoxFuncs + 56LL))(v21, ptr);
printf("\tConfig file: %s\n", (const char *)ptr[0]);
free(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 32LL))(v21);
(*(void (__fastcall **)(__int64 *, void **))(*v9 + 168))(v9, ptr);
printf("\tMemory size: %uMB\n", LODWORD(ptr[0]));
v10 = *v9;
ptr[0] = 0LL;
(*(void (__fastcall **)(__int64 *, __int64 *))(v10 + 88))(v9, &v19);
(*(void (__fastcall **)(__int64 *, __int64, void **))(*a1 + 296))(a1, v19, ptr);
(*(void (__fastcall **)(void *, __int64 *))(*(_QWORD *)ptr[0] + 48LL))(ptr[0], &v20);
(*(void (__fastcall **)(__int64, const char **))(g_pVBoxFuncs + 56LL))(v20, &v21);
printf("\tGuest OS: %s\n\n", v21);
(*(void (__fastcall **)(void *))(*(_QWORD *)ptr[0] + 16LL))(ptr[0]);
(*(void (__fastcall **)(const char *))(g_pVBoxFuncs + 48LL))(v21);
(*(void (__fastcall **)(__int64))(g_pVBoxFuncs + 32LL))(v20);
(*(void (__fastcall **)(__int64))(g_pVBoxFuncs + 32LL))(v19);
v6 = v16;
if ( v16 <= v7 )
break;
}
else
{
puts("\t(skipped, NULL)");
LABEL_7:
v6 = v16;
if ( v16 <= ++v7 )
break;
}
}
}
printf("Type Machine# to start (0 - %u) or 'quit' to do nothing: ", v6 - 1);
fflush(stdout);
result = _isoc99_scanf("%u", &v21) - 1;
if ( !result )
{
result = (int)v21;
if ( (unsigned int)v21 < v16 )
{
v14 = *(__int64 **)(v18 + 8LL * (unsigned int)v21);
if ( v14 )
{
v15 = *v14;
ptr[0] = 0LL;
(*(void (__fastcall **)(__int64 *, void **))(v15 + 80))(v14, ptr);
func0(a1, a2, (__int64)ptr[0]);
result = (*(__int64 (__fastcall **)(void *))(g_pVBoxFuncs + 40LL))(ptr[0]);
}
}
}
if ( v16 )
{
for ( i = 0; i < v16; ++i )
{
result = i;
v13 = *(_QWORD *)(v18 + 8LL * i);
if ( v13 )
result = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v13 + 16LL))(v13);
}
}
return result;
}

original_code:
static void listVMs(IVirtualBox *virtualBox, ISession *session)
{
    nsresult rc;
    IMachine **machines = ((void *)0);
    PRUint32 machineCnt = 0;
    PRUint32 i;
    unsigned start_id;
    rc = virtualBox->vtbl->GetMachines(virtualBox, &machineCnt, &machines);
    if (((__builtin_expect(((rc) & 0x80000000), 0))))
    {
        fprintf(stderr, "could not get list of machines, rc=%08x\n",
            (unsigned)rc);
        return;
    }
    if (machineCnt == 0)
    {
        printf("\tNo VMs\n");
        return;
    }
    printf("VM List:\n\n");
    for (i = 0; i < machineCnt; ++i)
    {
        IMachine *machine = machines[i];
        PRBool isAccessible = 0;
        printf("\tMachine #%u\n", (unsigned)i);
        if (!machine)
        {
            printf("\t(skipped, NULL)\n");
            continue;
        }
        machine->vtbl->GetAccessible(machine, &isAccessible);
        if (isAccessible)
        {
            PRUnichar *machineNameUtf16;
            char *machineName;
            machine->vtbl->GetName(machine, &machineNameUtf16);
            g_pVBoxFuncs->pfnUtf16ToUtf8(machineNameUtf16,&machineName);
            printf("\tName:        %s\n", machineName);
            g_pVBoxFuncs->pfnUtf8Free(machineName);
            g_pVBoxFuncs->pfnComUnallocMem(machineNameUtf16);
        }
        else
        {
            printf("\tName:        <inaccessible>\n");
        }
        {
            PRUnichar *uuidUtf16 = ((void *)0);
            char *uuidUtf8 = ((void *)0);
            machine->vtbl->GetId(machine, &uuidUtf16);
            g_pVBoxFuncs->pfnUtf16ToUtf8(uuidUtf16, &uuidUtf8);
            printf("\tUUID:        %s\n", uuidUtf8);
            g_pVBoxFuncs->pfnUtf8Free(uuidUtf8);
            g_pVBoxFuncs->pfnUtf16Free(uuidUtf16);
        }
        if (isAccessible)
        {
            {
                PRUnichar *configFile;
                char *configFile1 = calloc((size_t)64, (size_t)1);
                machine->vtbl->GetSettingsFilePath(machine, &configFile);
                g_pVBoxFuncs->pfnUtf16ToUtf8(configFile, &configFile1);
                printf("\tConfig file: %s\n", configFile1);
                free(configFile1);
                g_pVBoxFuncs->pfnComUnallocMem(configFile);
            }
            {
                PRUint32 memorySize;
                machine->vtbl->GetMemorySize(machine, &memorySize);
                printf("\tMemory size: %uMB\n", memorySize);
            }
            {
                PRUnichar *typeId;
                PRUnichar *osNameUtf16;
                char *osName;
                IGuestOSType *osType = ((void *)0);
                machine->vtbl->GetOSTypeId(machine, &typeId);
                virtualBox->vtbl->GetGuestOSType(virtualBox, typeId, &osType);
                osType->vtbl->GetDescription(osType, &osNameUtf16);
                g_pVBoxFuncs->pfnUtf16ToUtf8(osNameUtf16,&osName);
                printf("\tGuest OS:    %s\n\n", osName);
                osType->vtbl->nsisupports.Release((void *)osType);
                g_pVBoxFuncs->pfnUtf8Free(osName);
                g_pVBoxFuncs->pfnComUnallocMem(osNameUtf16);
                g_pVBoxFuncs->pfnComUnallocMem(typeId);
            }
        }
    }
    printf("Type Machine# to start (0 - %u) or 'quit' to do nothing: ",
        (unsigned)(machineCnt - 1));
    fflush(stdout);
    if (scanf("%u", &start_id) == 1 && start_id < machineCnt)
    {
        IMachine *machine = machines[start_id];
        if (machine)
        {
            PRUnichar *uuidUtf16 = ((void *)0);
            machine->vtbl->GetId(machine, &uuidUtf16);
            startVM(virtualBox, session, uuidUtf16);
            g_pVBoxFuncs->pfnUtf16Free(uuidUtf16);
        }
    }
    for (i = 0; i < machineCnt; ++i)
    {
        IMachine *machine = machines[i];
        if (machine)
        {
            machine->vtbl->nsisupports.Release((void *)machine);
        }
    }
}

canonical_original_code:
static void listVMs(struct IVirtualBox *virtualBox, struct ISession *session)
{
    unsigned int rc;
    struct IMachine **machines = ((void *)0);
    unsigned int machineCnt = 0;
    unsigned int i;
    unsigned int start_id;
    rc = virtualBox->vtbl->GetMachines(virtualBox, &machineCnt, &machines);
    if (((__builtin_expect(((rc) & 0x80000000), 0))))
    {
        fprintf(stderr, "could not get list of machines, rc=%08x\n",
            (unsigned int)rc);
        return;
    }
    if (machineCnt == 0)
    {
        printf("\tNo VMs\n");
        return;
    }
    printf("VM List:\n\n");
    for (i = 0; i < machineCnt; ++i)
    {
        struct IMachine *machine = machines[i];
        int isAccessible = 0;
        printf("\tMachine #%u\n", (unsigned int)i);
        if (!machine)
        {
            printf("\t(skipped, NULL)\n");
            continue;
        }
        machine->vtbl->GetAccessible(machine, &isAccessible);
        if (isAccessible)
        {
            unsigned short *machineNameUtf16;
            char *machineName;
            machine->vtbl->GetName(machine, &machineNameUtf16);
            g_pVBoxFuncs->pfnUtf16ToUtf8(machineNameUtf16,&machineName);
            printf("\tName:        %s\n", machineName);
            g_pVBoxFuncs->pfnUtf8Free(machineName);
            g_pVBoxFuncs->pfnComUnallocMem(machineNameUtf16);
        }
        else
        {
            printf("\tName:        <inaccessible>\n");
        }
        {
            unsigned short *uuidUtf16 = ((void *)0);
            char *uuidUtf8 = ((void *)0);
            machine->vtbl->GetId(machine, &uuidUtf16);
            g_pVBoxFuncs->pfnUtf16ToUtf8(uuidUtf16, &uuidUtf8);
            printf("\tUUID:        %s\n", uuidUtf8);
            g_pVBoxFuncs->pfnUtf8Free(uuidUtf8);
            g_pVBoxFuncs->pfnUtf16Free(uuidUtf16);
        }
        if (isAccessible)
        {
            {
                unsigned short *configFile;
                char *configFile1 = calloc((size_t)64, (size_t)1);
                machine->vtbl->GetSettingsFilePath(machine, &configFile);
                g_pVBoxFuncs->pfnUtf16ToUtf8(configFile, &configFile1);
                printf("\tConfig file: %s\n", configFile1);
                free(configFile1);
                g_pVBoxFuncs->pfnComUnallocMem(configFile);
            }
            {
                unsigned int memorySize;
                machine->vtbl->GetMemorySize(machine, &memorySize);
                printf("\tMemory size: %uMB\n", memorySize);
            }
            {
                unsigned short *typeId;
                unsigned short *osNameUtf16;
                char *osName;
                struct IGuestOSType *osType = ((void *)0);
                machine->vtbl->GetOSTypeId(machine, &typeId);
                virtualBox->vtbl->GetGuestOSType(virtualBox, typeId, &osType);
                osType->vtbl->GetDescription(osType, &osNameUtf16);
                g_pVBoxFuncs->pfnUtf16ToUtf8(osNameUtf16,&osName);
                printf("\tGuest OS:    %s\n\n", osName);
                osType->vtbl->nsisupports.Release((void *)osType);
                g_pVBoxFuncs->pfnUtf8Free(osName);
                g_pVBoxFuncs->pfnComUnallocMem(osNameUtf16);
                g_pVBoxFuncs->pfnComUnallocMem(typeId);
            }
        }
    }
    printf("Type Machine# to start (0 - %u) or 'quit' to do nothing: ",
        (unsigned int)(machineCnt - 1));
    fflush(stdout);
    if (scanf("%u", &start_id) == 1 && start_id < machineCnt)
    {
        struct IMachine *machine = machines[start_id];
        if (machine)
        {
            unsigned short *uuidUtf16 = ((void *)0);
            machine->vtbl->GetId(machine, &uuidUtf16);
            startVM(virtualBox, session, uuidUtf16);
            g_pVBoxFuncs->pfnUtf16Free(uuidUtf16);
        }
    }
    for (i = 0; i < machineCnt; ++i)
    {
        struct IMachine *machine = machines[i];
        if (machine)
        {
            machine->vtbl->nsisupports.Release((void *)machine);
        }
    }
}

variable_types: struct IMachine { struct IMachine_vtbl { struct nsISupports_vtbl { unsigned int (*QueryInterface)(struct nsISupports { struct nsISupports_vtbl *vtbl; } *pThis, struct nsID { unsigned int m0; unsigned short m1; unsigned short m2; unsigned char m3[8]; } *iid, void **resultp); unsigned int (*AddRef)(struct nsISupports *pThis); unsigned int (*Release)(struct nsISupports *pThis); } nsisupports; unsigned int (*GetParent)(struct IMachine *pThis, struct IVirtualBox { struct IVirtualBox_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetVersion)(struct IVirtualBox *pThis, unsigned short **version); unsigned int (*GetRevision)(struct IVirtualBox *pThis, unsigned int *revision); unsigned int (*GetPackageType)(struct IVirtualBox *pThis, unsigned short **packageType); unsigned int (*GetHomeFolder)(struct IVirtualBox *pThis, unsigned short **homeFolder); unsigned int (*GetSettingsFilePath)(struct IVirtualBox *pThis, unsigned short **settingsFilePath); unsigned int (*GetHost)(struct IVirtualBox *pThis, struct IHost { struct IHost_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetDVDDrives)(struct IHost *pThis, unsigned int *DVDDrivesSize, struct IMedium { struct IMedium_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct IMedium *pThis, unsigned short **id); unsigned int (*GetDescription)(struct IMedium *pThis, unsigned short **description); unsigned int (*SetDescription)(struct IMedium *pThis, unsigned short *description); unsigned int (*GetState)(struct IMedium *pThis, unsigned int *state); unsigned int (*GetLocation)(struct IMedium *pThis, unsigned short **location); unsigned int (*SetLocation)(struct IMedium *pThis, unsigned short *location); unsigned int (*GetName)(struct IMedium *pThis, unsigned short **name); unsigned int (*GetDeviceType)(struct IMedium *pThis, unsigned int *deviceType); unsigned int (*GetHostDrive)(struct IMedium *pThis, int *hostDrive); unsigned int (*GetSize)(struct IMedium *pThis, unsigned long *size); unsigned int (*GetFormat)(struct IMedium *pThis, unsigned short **format); unsigned int (*GetMediumFormat)(struct IMedium *pThis, struct IMediumFormat { struct IMediumFormat_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct IMediumFormat *pThis, unsigned short **id); unsigned int (*GetName)(struct IMediumFormat *pThis, unsigned short **name); unsigned int (*GetFileExtensions)(struct IMediumFormat *pThis, unsigned int *fileExtensionsSize, unsigned short ***fileExtensions); unsigned int (*GetCapabilities)(struct IMediumFormat *pThis, unsigned int *capabilities); unsigned int (*DescribeProperties)(struct IMediumFormat *pThis, unsigned int *namesSize, unsigned short ***names, unsigned int *descriptionSize, unsigned short ***description, unsigned int *typesSize, unsigned int *types, unsigned int *flagsSize, unsigned int *flags, unsigned int *defaultsSize, unsigned short ***defaults); } *vtbl; } **mediumFormat); unsigned int (*GetType)(struct IMedium *pThis, unsigned int *type); unsigned int (*SetType)(struct IMedium *pThis, unsigned int type); unsigned int (*GetParent)(struct IMedium *pThis, struct IMedium **parent); unsigned int (*GetChildren)(struct IMedium *pThis, unsigned int *childrenSize, struct IMedium ***children); unsigned int (*GetBase)(struct IMedium *pThis, struct IMedium **base); unsigned int (*GetReadOnly)(struct IMedium *pThis, int *readOnly); unsigned int (*GetLogicalSize)(struct IMedium *pThis, unsigned long *logicalSize); unsigned int (*GetAutoReset)(struct IMedium *pThis, int *autoReset); unsigned int (*SetAutoReset)(struct IMedium *pThis, int autoReset); unsigned int (*GetLastAccessError)(struct IMedium *pThis, unsigned short **lastAccessError); unsigned int (*GetMachineIds)(struct IMedium *pThis, unsigned int *machineIdsSize, unsigned short ***machineIds); unsigned int (*RefreshState)(struct IMedium *pThis, unsigned int *state); unsigned int (*GetSnapshotIds)(struct IMedium *pThis, unsigned short *machineId, unsigned int *snapshotIdsSize, unsigned short ***snapshotIds); unsigned int (*LockRead)(struct IMedium *pThis, unsigned int *state); unsigned int (*UnlockRead)(struct IMedium *pThis, unsigned int *state); unsigned int (*LockWrite)(struct IMedium *pThis, unsigned int *state); unsigned int (*UnlockWrite)(struct IMedium *pThis, unsigned int *state); unsigned int (*Close)(struct IMedium *pThis); unsigned int (*GetProperty)(struct IMedium *pThis, unsigned short *name, unsigned short **value); unsigned int (*SetProperty)(struct IMedium *pThis, unsigned short *name, unsigned short *value); unsigned int (*GetProperties)(struct IMedium *pThis, unsigned short *names, unsigned int *returnNamesSize, unsigned short ***returnNames, unsigned int *returnValuesSize, unsigned short ***returnValues); unsigned int (*SetProperties)(struct IMedium *pThis, unsigned int namesSize, unsigned short **names, unsigned int valuesSize, unsigned short **values); unsigned int (*CreateBaseStorage)(struct IMedium *pThis, unsigned long logicalSize, unsigned int variant, struct IProgress { struct IProgress_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct IProgress *pThis, unsigned short **id); unsigned int (*GetDescription)(struct IProgress *pThis, unsigned short **description); unsigned int (*GetInitiator)(struct IProgress *pThis, struct nsISupports **initiator); unsigned int (*GetCancelable)(struct IProgress *pThis, int *cancelable); unsigned int (*GetPercent)(struct IProgress *pThis, unsigned int *percent); unsigned int (*GetTimeRemaining)(struct IProgress *pThis, int *timeRemaining); unsigned int (*GetCompleted)(struct IProgress *pThis, int *completed); unsigned int (*GetCanceled)(struct IProgress *pThis, int *canceled); unsigned int (*GetResultCode)(struct IProgress *pThis, int *resultCode); unsigned int (*GetErrorInfo)(struct IProgress *pThis, struct IVirtualBoxErrorInfo { struct IVirtualBoxErrorInfo_vtbl { struct nsIException_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMessage)(struct nsIException { struct nsIException_vtbl *vtbl; } *pThis, unsigned short **aMessage); unsigned int (*GetResult)(struct nsIException *pThis, unsigned int *aResult); unsigned int (*GetName)(struct nsIException *pThis, unsigned short **aName); unsigned int (*GetFilename)(struct nsIException *pThis, unsigned short **aFilename); unsigned int (*GetLineNumber)(struct nsIException *pThis, unsigned int *aLineNumber); unsigned int (*GetColumnNumber)(struct nsIException *pThis, unsigned int *aColumnNumber); unsigned int (*GetLocation)(struct nsIException *pThis, struct nsIStackFrame { struct nsIStackFrame_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetLanguage)(struct nsIStackFrame *pThis, unsigned int *aLanguage); unsigned int (*GetLanguageName)(struct nsIStackFrame *pThis, unsigned short **aLanguageName); unsigned int (*GetFilename)(struct nsIStackFrame *pThis, unsigned short **aFilename); unsigned int (*GetName)(struct nsIStackFrame *pThis, unsigned short **aName); unsigned int (*GetLineNumber)(struct nsIStackFrame *pThis, int *aLineNumber); unsigned int (*GetSourceLine)(struct nsIStackFrame *pThis, unsigned short **aSourceLine); unsigned int (*GetCaller)(struct nsIStackFrame *pThis, struct nsIStackFrame **aCaller); unsigned int (*ToString)(struct nsIStackFrame *pThis, unsigned short **_retval); } *vtbl; } **aLocation); unsigned int (*GetInner)(struct nsIException *pThis, struct nsIException **aInner); unsigned int (*GetData)(struct nsIException *pThis, struct nsISupports **aData); unsigned int (*ToString)(struct nsIException *pThis, unsigned short **_retval); } nsiexception; unsigned int (*GetResultCode)(struct IVirtualBoxErrorInfo *pThis, int *resultCode); unsigned int (*GetInterfaceID)(struct IVirtualBoxErrorInfo *pThis, unsigned short **interfaceID); unsigned int (*GetComponent)(struct IVirtualBoxErrorInfo *pThis, unsigned short **component); unsigned int (*GetText)(struct IVirtualBoxErrorInfo *pThis, unsigned short **text); unsigned int (*GetNext)(struct IVirtualBoxErrorInfo *pThis, struct IVirtualBoxErrorInfo **next); } *vtbl; } **errorInfo); unsigned int (*GetOperationCount)(struct IProgress *pThis, unsigned int *operationCount); unsigned int (*GetOperation)(struct IProgress *pThis, unsigned int *operation); unsigned int (*GetOperationDescription)(struct IProgress *pThis, unsigned short **operationDescription); unsigned int (*GetOperationPercent)(struct IProgress *pThis, unsigned int *operationPercent); unsigned int (*GetTimeout)(struct IProgress *pThis, unsigned int *timeout); unsigned int (*SetTimeout)(struct IProgress *pThis, unsigned int timeout); unsigned int (*SetCurrentOperationProgress)(struct IProgress *pThis, unsigned int percent); unsigned int (*SetNextOperation)(struct IProgress *pThis, unsigned short *nextOperationDescription, unsigned int nextOperationsWeight); unsigned int (*WaitForCompletion)(struct IProgress *pThis, int timeout); unsigned int (*WaitForOperationCompletion)(struct IProgress *pThis, unsigned int operation, int timeout); unsigned int (*Cancel)(struct IProgress *pThis); } *vtbl; } **progress); unsigned int (*DeleteStorage)(struct IMedium *pThis, struct IProgress **progress); unsigned int (*CreateDiffStorage)(struct IMedium *pThis, struct IMedium *target, unsigned int variant, struct IProgress **progress); unsigned int (*MergeTo)(struct IMedium *pThis, struct IMedium *target, struct IProgress **progress); unsigned int (*CloneTo)(struct IMedium *pThis, struct IMedium *target, unsigned int variant, struct IMedium *parent, struct IProgress **progress); unsigned int (*Compact)(struct IMedium *pThis, struct IProgress **progress); unsigned int (*Resize)(struct IMedium *pThis, unsigned long logicalSize, struct IProgress **progress); unsigned int (*Reset)(struct IMedium *pThis, struct IProgress **progress); } *vtbl; } ***DVDDrives); unsigned int (*GetFloppyDrives)(struct IHost *pThis, unsigned int *floppyDrivesSize, struct IMedium ***floppyDrives); unsigned int (*GetUSBDevices)(struct IHost *pThis, unsigned int *USBDevicesSize, struct IHostUSBDevice { struct IHostUSBDevice_vtbl { struct IUSBDevice_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct IUSBDevice { struct IUSBDevice_vtbl *vtbl; } *pThis, unsigned short **id); unsigned int (*GetVendorId)(struct IUSBDevice *pThis, unsigned short *vendorId); unsigned int (*GetProductId)(struct IUSBDevice *pThis, unsigned short *productId); unsigned int (*GetRevision)(struct IUSBDevice *pThis, unsigned short *revision); unsigned int (*GetManufacturer)(struct IUSBDevice *pThis, unsigned short **manufacturer); unsigned int (*GetProduct)(struct IUSBDevice *pThis, unsigned short **product); unsigned int (*GetSerialNumber)(struct IUSBDevice *pThis, unsigned short **serialNumber); unsigned int (*GetAddress)(struct IUSBDevice *pThis, unsigned short **address); unsigned int (*GetPort)(struct IUSBDevice *pThis, unsigned short *port); unsigned int (*GetVersion)(struct IUSBDevice *pThis, unsigned short *version); unsigned int (*GetPortVersion)(struct IUSBDevice *pThis, unsigned short *portVersion); unsigned int (*GetRemote)(struct IUSBDevice *pThis, int *remote); } iusbdevice; unsigned int (*GetState)(struct IHostUSBDevice *pThis, unsigned int *state); } *vtbl; } ***USBDevices); unsigned int (*GetUSBDeviceFilters)(struct IHost *pThis, unsigned int *USBDeviceFiltersSize, struct IHostUSBDeviceFilter { struct IHostUSBDeviceFilter_vtbl { struct IUSBDeviceFilter_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetName)(struct IUSBDeviceFilter { struct IUSBDeviceFilter_vtbl *vtbl; } *pThis, unsigned short **name); unsigned int (*SetName)(struct IUSBDeviceFilter *pThis, unsigned short *name); unsigned int (*GetActive)(struct IUSBDeviceFilter *pThis, int *active); unsigned int (*SetActive)(struct IUSBDeviceFilter *pThis, int active); unsigned int (*GetVendorId)(struct IUSBDeviceFilter *pThis, unsigned short **vendorId); unsigned int (*SetVendorId)(struct IUSBDeviceFilter *pThis, unsigned short *vendorId); unsigned int (*GetProductId)(struct IUSBDeviceFilter *pThis, unsigned short **productId); unsigned int (*SetProductId)(struct IUSBDeviceFilter *pThis, unsigned short *productId); unsigned int (*GetRevision)(struct IUSBDeviceFilter *pThis, unsigned short **revision); unsigned int (*SetRevision)(struct IUSBDeviceFilter *pThis, unsigned short *revision); unsigned int (*GetManufacturer)(struct IUSBDeviceFilter *pThis, unsigned short **manufacturer); unsigned int (*SetManufacturer)(struct IUSBDeviceFilter *pThis, unsigned short *manufacturer); unsigned int (*GetProduct)(struct IUSBDeviceFilter *pThis, unsigned short **product); unsigned int (*SetProduct)(struct IUSBDeviceFilter *pThis, unsigned short *product); unsigned int (*GetSerialNumber)(struct IUSBDeviceFilter *pThis, unsigned short **serialNumber); unsigned int (*SetSerialNumber)(struct IUSBDeviceFilter *pThis, unsigned short *serialNumber); unsigned int (*GetPort)(struct IUSBDeviceFilter *pThis, unsigned short **port); unsigned int (*SetPort)(struct IUSBDeviceFilter *pThis, unsigned short *port); unsigned int (*GetRemote)(struct IUSBDeviceFilter *pThis, unsigned short **remote); unsigned int (*SetRemote)(struct IUSBDeviceFilter *pThis, unsigned short *remote); unsigned int (*GetMaskedInterfaces)(struct IUSBDeviceFilter *pThis, unsigned int *maskedInterfaces); unsigned int (*SetMaskedInterfaces)(struct IUSBDeviceFilter *pThis, unsigned int maskedInterfaces); } iusbdevicefilter; unsigned int (*GetAction)(struct IHostUSBDeviceFilter *pThis, unsigned int *action); unsigned int (*SetAction)(struct IHostUSBDeviceFilter *pThis, unsigned int action); } *vtbl; } ***USBDeviceFilters); unsigned int (*GetNetworkInterfaces)(struct IHost *pThis, unsigned int *networkInterfacesSize, struct IHostNetworkInterface { struct IHostNetworkInterface_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetName)(struct IHostNetworkInterface *pThis, unsigned short **name); unsigned int (*GetId)(struct IHostNetworkInterface *pThis, unsigned short **id); unsigned int (*GetNetworkName)(struct IHostNetworkInterface *pThis, unsigned short **networkName); unsigned int (*GetDhcpEnabled)(struct IHostNetworkInterface *pThis, int *dhcpEnabled); unsigned int (*GetIPAddress)(struct IHostNetworkInterface *pThis, unsigned short **IPAddress); unsigned int (*GetNetworkMask)(struct IHostNetworkInterface *pThis, unsigned short **networkMask); unsigned int (*GetIPV6Supported)(struct IHostNetworkInterface *pThis, int *IPV6Supported); unsigned int (*GetIPV6Address)(struct IHostNetworkInterface *pThis, unsigned short **IPV6Address); unsigned int (*GetIPV6NetworkMaskPrefixLength)(struct IHostNetworkInterface *pThis, unsigned int *IPV6NetworkMaskPrefixLength); unsigned int (*GetHardwareAddress)(struct IHostNetworkInterface *pThis, unsigned short **hardwareAddress); unsigned int (*GetMediumType)(struct IHostNetworkInterface *pThis, unsigned int *mediumType); unsigned int (*GetStatus)(struct IHostNetworkInterface *pThis, unsigned int *status); unsigned int (*GetInterfaceType)(struct IHostNetworkInterface *pThis, unsigned int *interfaceType); unsigned int (*EnableStaticIpConfig)(struct IHostNetworkInterface *pThis, unsigned short *IPAddress, unsigned short *networkMask); unsigned int (*EnableStaticIpConfigV6)(struct IHostNetworkInterface *pThis, unsigned short *IPV6Address, unsigned int IPV6NetworkMaskPrefixLength); unsigned int (*EnableDynamicIpConfig)(struct IHostNetworkInterface *pThis); unsigned int (*DhcpRediscover)(struct IHostNetworkInterface *pThis); } *vtbl; } ***networkInterfaces); unsigned int (*GetProcessorCount)(struct IHost *pThis, unsigned int *processorCount); unsigned int (*GetProcessorOnlineCount)(struct IHost *pThis, unsigned int *processorOnlineCount); unsigned int (*GetProcessorCoreCount)(struct IHost *pThis, unsigned int *processorCoreCount); unsigned int (*GetMemorySize)(struct IHost *pThis, unsigned int *memorySize); unsigned int (*GetMemoryAvailable)(struct IHost *pThis, unsigned int *memoryAvailable); unsigned int (*GetOperatingSystem)(struct IHost *pThis, unsigned short **operatingSystem); unsigned int (*GetOSVersion)(struct IHost *pThis, unsigned short **OSVersion); unsigned int (*GetUTCTime)(struct IHost *pThis, long *UTCTime); unsigned int (*GetAcceleration3DAvailable)(struct IHost *pThis, int *Acceleration3DAvailable); unsigned int (*GetProcessorSpeed)(struct IHost *pThis, unsigned int cpuId, unsigned int *speed); unsigned int (*GetProcessorFeature)(struct IHost *pThis, unsigned int feature, int *supported); unsigned int (*GetProcessorDescription)(struct IHost *pThis, unsigned int cpuId, unsigned short **description); unsigned int (*GetProcessorCPUIDLeaf)(struct IHost *pThis, unsigned int cpuId, unsigned int leaf, unsigned int subLeaf, unsigned int *valEax, unsigned int *valEbx, unsigned int *valEcx, unsigned int *valEdx); unsigned int (*CreateHostOnlyNetworkInterface)(struct IHost *pThis, struct IHostNetworkInterface **hostInterface, struct IProgress **progress); unsigned int (*RemoveHostOnlyNetworkInterface)(struct IHost *pThis, unsigned short *id, struct IProgress **progress); unsigned int (*CreateUSBDeviceFilter)(struct IHost *pThis, unsigned short *name, struct IHostUSBDeviceFilter **filter); unsigned int (*InsertUSBDeviceFilter)(struct IHost *pThis, unsigned int position, struct IHostUSBDeviceFilter *filter); unsigned int (*RemoveUSBDeviceFilter)(struct IHost *pThis, unsigned int position); unsigned int (*FindHostDVDDrive)(struct IHost *pThis, unsigned short *name, struct IMedium **drive); unsigned int (*FindHostFloppyDrive)(struct IHost *pThis, unsigned short *name, struct IMedium **drive); unsigned int (*FindHostNetworkInterfaceByName)(struct IHost *pThis, unsigned short *name, struct IHostNetworkInterface **networkInterface); unsigned int (*FindHostNetworkInterfaceById)(struct IHost *pThis, unsigned short *id, struct IHostNetworkInterface **networkInterface); unsigned int (*FindHostNetworkInterfacesOfType)(struct IHost *pThis, unsigned int type, unsigned int *networkInterfacesSize, struct IHostNetworkInterface ***networkInterfaces); unsigned int (*FindUSBDeviceById)(struct IHost *pThis, unsigned short *id, struct IHostUSBDevice **device); unsigned int (*FindUSBDeviceByAddress)(struct IHost *pThis, unsigned short *name, struct IHostUSBDevice **device); } *vtbl; } **host); unsigned int (*GetSystemProperties)(struct IVirtualBox *pThis, struct ISystemProperties { struct ISystemProperties_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMinGuestRAM)(struct ISystemProperties *pThis, unsigned int *minGuestRAM); unsigned int (*GetMaxGuestRAM)(struct ISystemProperties *pThis, unsigned int *maxGuestRAM); unsigned int (*GetMinGuestVRAM)(struct ISystemProperties *pThis, unsigned int *minGuestVRAM); unsigned int (*GetMaxGuestVRAM)(struct ISystemProperties *pThis, unsigned int *maxGuestVRAM); unsigned int (*GetMinGuestCPUCount)(struct ISystemProperties *pThis, unsigned int *minGuestCPUCount); unsigned int (*GetMaxGuestCPUCount)(struct ISystemProperties *pThis, unsigned int *maxGuestCPUCount); unsigned int (*GetMaxGuestMonitors)(struct ISystemProperties *pThis, unsigned int *maxGuestMonitors); unsigned int (*GetMaxVDISize)(struct ISystemProperties *pThis, unsigned long *maxVDISize); unsigned int (*GetNetworkAdapterCount)(struct ISystemProperties *pThis, unsigned int *networkAdapterCount); unsigned int (*GetSerialPortCount)(struct ISystemProperties *pThis, unsigned int *serialPortCount); unsigned int (*GetParallelPortCount)(struct ISystemProperties *pThis, unsigned int *parallelPortCount); unsigned int (*GetMaxBootPosition)(struct ISystemProperties *pThis, unsigned int *maxBootPosition); unsigned int (*GetDefaultMachineFolder)(struct ISystemProperties *pThis, unsigned short **defaultMachineFolder); unsigned int (*SetDefaultMachineFolder)(struct ISystemProperties *pThis, unsigned short *defaultMachineFolder); unsigned int (*GetDefaultHardDiskFolder)(struct ISystemProperties *pThis, unsigned short **defaultHardDiskFolder); unsigned int (*SetDefaultHardDiskFolder)(struct ISystemProperties *pThis, unsigned short *defaultHardDiskFolder); unsigned int (*GetMediumFormats)(struct ISystemProperties *pThis, unsigned int *mediumFormatsSize, struct IMediumFormat ***mediumFormats); unsigned int (*GetDefaultHardDiskFormat)(struct ISystemProperties *pThis, unsigned short **defaultHardDiskFormat); unsigned int (*SetDefaultHardDiskFormat)(struct ISystemProperties *pThis, unsigned short *defaultHardDiskFormat); unsigned int (*GetFreeDiskSpaceWarning)(struct ISystemProperties *pThis, unsigned long *freeDiskSpaceWarning); unsigned int (*SetFreeDiskSpaceWarning)(struct ISystemProperties *pThis, unsigned long freeDiskSpaceWarning); unsigned int (*GetFreeDiskSpacePercentWarning)(struct ISystemProperties *pThis, unsigned int *freeDiskSpacePercentWarning); unsigned int (*SetFreeDiskSpacePercentWarning)(struct ISystemProperties *pThis, unsigned int freeDiskSpacePercentWarning); unsigned int (*GetFreeDiskSpaceError)(struct ISystemProperties *pThis, unsigned long *freeDiskSpaceError); unsigned int (*SetFreeDiskSpaceError)(struct ISystemProperties *pThis, unsigned long freeDiskSpaceError); unsigned int (*GetFreeDiskSpacePercentError)(struct ISystemProperties *pThis, unsigned int *freeDiskSpacePercentError); unsigned int (*SetFreeDiskSpacePercentError)(struct ISystemProperties *pThis, unsigned int freeDiskSpacePercentError); unsigned int (*GetRemoteDisplayAuthLibrary)(struct ISystemProperties *pThis, unsigned short **remoteDisplayAuthLibrary); unsigned int (*SetRemoteDisplayAuthLibrary)(struct ISystemProperties *pThis, unsigned short *remoteDisplayAuthLibrary); unsigned int (*GetWebServiceAuthLibrary)(struct ISystemProperties *pThis, unsigned short **webServiceAuthLibrary); unsigned int (*SetWebServiceAuthLibrary)(struct ISystemProperties *pThis, unsigned short *webServiceAuthLibrary); unsigned int (*GetLogHistoryCount)(struct ISystemProperties *pThis, unsigned int *LogHistoryCount); unsigned int (*SetLogHistoryCount)(struct ISystemProperties *pThis, unsigned int LogHistoryCount); unsigned int (*GetDefaultAudioDriver)(struct ISystemProperties *pThis, unsigned int *defaultAudioDriver); unsigned int (*GetMaxDevicesPerPortForStorageBus)(struct ISystemProperties *pThis, unsigned int bus, unsigned int *maxDevicesPerPort); unsigned int (*GetMinPortCountForStorageBus)(struct ISystemProperties *pThis, unsigned int bus, unsigned int *minPortCount); unsigned int (*GetMaxPortCountForStorageBus)(struct ISystemProperties *pThis, unsigned int bus, unsigned int *maxPortCount); unsigned int (*GetMaxInstancesOfStorageBus)(struct ISystemProperties *pThis, unsigned int bus, unsigned int *maxInstances); unsigned int (*GetDeviceTypesForStorageBus)(struct ISystemProperties *pThis, unsigned int bus, unsigned int *deviceTypesSize, unsigned int **deviceTypes); } *vtbl; } **systemProperties); unsigned int (*GetMachines)(struct IVirtualBox *pThis, unsigned int *machinesSize, struct IMachine ***machines); unsigned int (*GetHardDisks)(struct IVirtualBox *pThis, unsigned int *hardDisksSize, struct IMedium ***hardDisks); unsigned int (*GetDVDImages)(struct IVirtualBox *pThis, unsigned int *DVDImagesSize, struct IMedium ***DVDImages); unsigned int (*GetFloppyImages)(struct IVirtualBox *pThis, unsigned int *floppyImagesSize, struct IMedium ***floppyImages); unsigned int (*GetProgressOperations)(struct IVirtualBox *pThis, unsigned int *progressOperationsSize, struct IProgress ***progressOperations); unsigned int (*GetGuestOSTypes)(struct IVirtualBox *pThis, unsigned int *guestOSTypesSize, struct IGuestOSType { struct IGuestOSType_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetFamilyId)(struct IGuestOSType *pThis, unsigned short **familyId); unsigned int (*GetFamilyDescription)(struct IGuestOSType *pThis, unsigned short **familyDescription); unsigned int (*GetId)(struct IGuestOSType *pThis, unsigned short **id); unsigned int (*GetDescription)(struct IGuestOSType *pThis, unsigned short **description); unsigned int (*GetIs64Bit)(struct IGuestOSType *pThis, int *is64Bit); unsigned int (*GetRecommendedIOAPIC)(struct IGuestOSType *pThis, int *recommendedIOAPIC); unsigned int (*GetRecommendedVirtEx)(struct IGuestOSType *pThis, int *recommendedVirtEx); unsigned int (*GetRecommendedRAM)(struct IGuestOSType *pThis, unsigned int *recommendedRAM); unsigned int (*GetRecommendedVRAM)(struct IGuestOSType *pThis, unsigned int *recommendedVRAM); unsigned int (*GetRecommendedHDD)(struct IGuestOSType *pThis, unsigned int *recommendedHDD); unsigned int (*GetAdapterType)(struct IGuestOSType *pThis, unsigned int *adapterType); unsigned int (*GetRecommendedPae)(struct IGuestOSType *pThis, int *recommendedPae); unsigned int (*GetRecommendedDvdStorageController)(struct IGuestOSType *pThis, unsigned int *recommendedDvdStorageController); unsigned int (*GetRecommendedDvdStorageBus)(struct IGuestOSType *pThis, unsigned int *recommendedDvdStorageBus); unsigned int (*GetRecommendedHdStorageController)(struct IGuestOSType *pThis, unsigned int *recommendedHdStorageController); unsigned int (*GetRecommendedHdStorageBus)(struct IGuestOSType *pThis, unsigned int *recommendedHdStorageBus); unsigned int (*GetRecommendedFirmware)(struct IGuestOSType *pThis, unsigned int *recommendedFirmware); unsigned int (*GetRecommendedUsbHid)(struct IGuestOSType *pThis, int *recommendedUsbHid); unsigned int (*GetRecommendedHpet)(struct IGuestOSType *pThis, int *recommendedHpet); unsigned int (*GetRecommendedUsbTablet)(struct IGuestOSType *pThis, int *recommendedUsbTablet); unsigned int (*GetRecommendedRtcUseUtc)(struct IGuestOSType *pThis, int *recommendedRtcUseUtc); } *vtbl; } ***guestOSTypes); unsigned int (*GetSharedFolders)(struct IVirtualBox *pThis, unsigned int *sharedFoldersSize, struct ISharedFolder { struct ISharedFolder_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetName)(struct ISharedFolder *pThis, unsigned short **name); unsigned int (*GetHostPath)(struct ISharedFolder *pThis, unsigned short **hostPath); unsigned int (*GetAccessible)(struct ISharedFolder *pThis, int *accessible); unsigned int (*GetWritable)(struct ISharedFolder *pThis, int *writable); unsigned int (*GetLastAccessError)(struct ISharedFolder *pThis, unsigned short **lastAccessError); } *vtbl; } ***sharedFolders); unsigned int (*GetPerformanceCollector)(struct IVirtualBox *pThis, struct IPerformanceCollector { struct IPerformanceCollector_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMetricNames)(struct IPerformanceCollector *pThis, unsigned int *metricNamesSize, unsigned short ***metricNames); unsigned int (*GetMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *metricsSize, struct IPerformanceMetric { struct IPerformanceMetric_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMetricName)(struct IPerformanceMetric *pThis, unsigned short **metricName); unsigned int (*GetObject)(struct IPerformanceMetric *pThis, struct nsISupports **object); unsigned int (*GetDescription)(struct IPerformanceMetric *pThis, unsigned short **description); unsigned int (*GetPeriod)(struct IPerformanceMetric *pThis, unsigned int *period); unsigned int (*GetCount)(struct IPerformanceMetric *pThis, unsigned int *count); unsigned int (*GetUnit)(struct IPerformanceMetric *pThis, unsigned short **unit); unsigned int (*GetMinimumValue)(struct IPerformanceMetric *pThis, int *minimumValue); unsigned int (*GetMaximumValue)(struct IPerformanceMetric *pThis, int *maximumValue); } *vtbl; } ***metrics); unsigned int (*SetupMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int period, unsigned int count, unsigned int *affectedMetricsSize, struct IPerformanceMetric ***affectedMetrics); unsigned int (*EnableMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *affectedMetricsSize, struct IPerformanceMetric ***affectedMetrics); unsigned int (*DisableMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *affectedMetricsSize, struct IPerformanceMetric ***affectedMetrics); unsigned int (*QueryMetricsData)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *returnMetricNamesSize, unsigned short ***returnMetricNames, unsigned int *returnObjectsSize, struct nsISupports **returnObjects, unsigned int *returnUnitsSize, unsigned short ***returnUnits, unsigned int *returnScalesSize, unsigned int *returnScales, unsigned int *returnSequenceNumbersSize, unsigned int *returnSequenceNumbers, unsigned int *returnDataIndicesSize, unsigned int *returnDataIndices, unsigned int *returnDataLengthsSize, unsigned int *returnDataLengths, unsigned int *returnDataSize, int **returnData); } *vtbl; } **performanceCollector); unsigned int (*GetDHCPServers)(struct IVirtualBox *pThis, unsigned int *DHCPServersSize, struct IDHCPServer { struct IDHCPServer_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetEnabled)(struct IDHCPServer *pThis, int *enabled); unsigned int (*SetEnabled)(struct IDHCPServer *pThis, int enabled); unsigned int (*GetIPAddress)(struct IDHCPServer *pThis, unsigned short **IPAddress); unsigned int (*GetNetworkMask)(struct IDHCPServer *pThis, unsigned short **networkMask); unsigned int (*GetNetworkName)(struct IDHCPServer *pThis, unsigned short **networkName); unsigned int (*GetLowerIP)(struct IDHCPServer *pThis, unsigned short **lowerIP); unsigned int (*GetUpperIP)(struct IDHCPServer *pThis, unsigned short **upperIP); unsigned int (*SetConfiguration)(struct IDHCPServer *pThis, unsigned short *IPAddress, unsigned short *networkMask, unsigned short *FromIPAddress, unsigned short *ToIPAddress); unsigned int (*Start)(struct IDHCPServer *pThis, unsigned short *networkName, unsigned short *trunkName, unsigned short *trunkType); unsigned int (*Stop)(struct IDHCPServer *pThis); } *vtbl; } ***DHCPServers); unsigned int (*CreateMachine)(struct IVirtualBox *pThis, unsigned short *name, unsigned short *osTypeId, unsigned short *baseFolder, unsigned short *id, int override, struct IMachine **machine); unsigned int (*CreateLegacyMachine)(struct IVirtualBox *pThis, unsigned short *name, unsigned short *osTypeId, unsigned short *settingsFile, unsigned short *id, struct IMachine **machine); unsigned int (*OpenMachine)(struct IVirtualBox *pThis, unsigned short *settingsFile, struct IMachine **machine); unsigned int (*RegisterMachine)(struct IVirtualBox *pThis, struct IMachine *machine); unsigned int (*GetMachine)(struct IVirtualBox *pThis, unsigned short *id, struct IMachine **machine); unsigned int (*FindMachine)(struct IVirtualBox *pThis, unsigned short *name, struct IMachine **machine); unsigned int (*UnregisterMachine)(struct IVirtualBox *pThis, unsigned short *id, struct IMachine **machine); unsigned int (*CreateAppliance)(struct IVirtualBox *pThis, struct IAppliance { struct IAppliance_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetPath)(struct IAppliance *pThis, unsigned short **path); unsigned int (*GetDisks)(struct IAppliance *pThis, unsigned int *disksSize, unsigned short ***disks); unsigned int (*GetVirtualSystemDescriptions)(struct IAppliance *pThis, unsigned int *virtualSystemDescriptionsSize, struct IVirtualSystemDescription { struct IVirtualSystemDescription_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetCount)(struct IVirtualSystemDescription *pThis, unsigned int *count); unsigned int (*GetDescription)(struct IVirtualSystemDescription *pThis, unsigned int *aTypesSize, unsigned int *aTypes, unsigned int *aRefsSize, unsigned short ***aRefs, unsigned int *aOvfValuesSize, unsigned short ***aOvfValues, unsigned int *aVBoxValuesSize, unsigned short ***aVBoxValues, unsigned int *aExtraConfigValuesSize, unsigned short ***aExtraConfigValues); unsigned int (*GetDescriptionByType)(struct IVirtualSystemDescription *pThis, unsigned int aType, unsigned int *aTypesSize, unsigned int *aTypes, unsigned int *aRefsSize, unsigned short ***aRefs, unsigned int *aOvfValuesSize, unsigned short ***aOvfValues, unsigned int *aVBoxValuesSize, unsigned short ***aVBoxValues, unsigned int *aExtraConfigValuesSize, unsigned short ***aExtraConfigValues); unsigned int (*GetValuesByType)(struct IVirtualSystemDescription *pThis, unsigned int aType, unsigned int aWhich, unsigned int *aValuesSize, unsigned short ***aValues); unsigned int (*SetFinalValues)(struct IVirtualSystemDescription *pThis, unsigned int aEnabledSize, int *aEnabled, unsigned int aVBoxValuesSize, unsigned short **aVBoxValues, unsigned int aExtraConfigValuesSize, unsigned short **aExtraConfigValues); unsigned int (*AddDescription)(struct IVirtualSystemDescription *pThis, unsigned int aType, unsigned short *aVBoxValue, unsigned short *aExtraConfigValue); } *vtbl; } ***virtualSystemDescriptions); unsigned int (*Read)(struct IAppliance *pThis, unsigned short *file, struct IProgress **aProgress); unsigned int (*Interpret)(struct IAppliance *pThis); unsigned int (*ImportMachines)(struct IAppliance *pThis, struct IProgress **aProgress); unsigned int (*CreateVFSExplorer)(struct IAppliance *pThis, unsigned short *aUri, struct IVFSExplorer { struct IVFSExplorer_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetPath)(struct IVFSExplorer *pThis, unsigned short **path); unsigned int (*GetType)(struct IVFSExplorer *pThis, unsigned int *type); unsigned int (*Update)(struct IVFSExplorer *pThis, struct IProgress **aProgress); unsigned int (*Cd)(struct IVFSExplorer *pThis, unsigned short *aDir, struct IProgress **aProgress); unsigned int (*CdUp)(struct IVFSExplorer *pThis, struct IProgress **aProgress); unsigned int (*EntryList)(struct IVFSExplorer *pThis, unsigned int *aNamesSize, unsigned short ***aNames, unsigned int *aTypesSize, unsigned int *aTypes); unsigned int (*Exists)(struct IVFSExplorer *pThis, unsigned int aNamesSize, unsigned short **aNames, unsigned int *aExistsSize, unsigned short ***aExists); unsigned int (*Remove)(struct IVFSExplorer *pThis, unsigned int aNamesSize, unsigned short **aNames, struct IProgress **aProgress); } *vtbl; } **aExplorer); unsigned int (*Write)(struct IAppliance *pThis, unsigned short *format, unsigned short *path, struct IProgress **aProgress); unsigned int (*GetWarnings)(struct IAppliance *pThis, unsigned int *aWarningsSize, unsigned short ***aWarnings); } *vtbl; } **appliance); unsigned int (*CreateHardDisk)(struct IVirtualBox *pThis, unsigned short *format, unsigned short *location, struct IMedium **medium); unsigned int (*OpenHardDisk)(struct IVirtualBox *pThis, unsigned short *location, unsigned int accessMode, int setImageId, unsigned short *imageId, int setParentId, unsigned short *parentId, struct IMedium **medium); unsigned int (*GetHardDisk)(struct IVirtualBox *pThis, unsigned short *id, struct IMedium **medium); unsigned int (*FindHardDisk)(struct IVirtualBox *pThis, unsigned short *location, struct IMedium **medium); unsigned int (*OpenDVDImage)(struct IVirtualBox *pThis, unsigned short *location, unsigned short *id, struct IMedium **image); unsigned int (*GetDVDImage)(struct IVirtualBox *pThis, unsigned short *id, struct IMedium **image); unsigned int (*FindDVDImage)(struct IVirtualBox *pThis, unsigned short *location, struct IMedium **image); unsigned int (*OpenFloppyImage)(struct IVirtualBox *pThis, unsigned short *location, unsigned short *id, struct IMedium **image); unsigned int (*GetFloppyImage)(struct IVirtualBox *pThis, unsigned short *id, struct IMedium **image); unsigned int (*FindFloppyImage)(struct IVirtualBox *pThis, unsigned short *location, struct IMedium **image); unsigned int (*GetGuestOSType)(struct IVirtualBox *pThis, unsigned short *id, struct IGuestOSType **type); unsigned int (*CreateSharedFolder)(struct IVirtualBox *pThis, unsigned short *name, unsigned short *hostPath, int writable); unsigned int (*RemoveSharedFolder)(struct IVirtualBox *pThis, unsigned short *name); unsigned int (*GetExtraDataKeys)(struct IVirtualBox *pThis, unsigned int *valueSize, unsigned short ***value); unsigned int (*GetExtraData)(struct IVirtualBox *pThis, unsigned short *key, unsigned short **value); unsigned int (*SetExtraData)(struct IVirtualBox *pThis, unsigned short *key, unsigned short *value); unsigned int (*OpenSession)(struct IVirtualBox *pThis, struct ISession { struct ISession_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetState)(struct ISession *pThis, unsigned int *state); unsigned int (*GetType)(struct ISession *pThis, unsigned int *type); unsigned int (*GetMachine)(struct ISession *pThis, struct IMachine **machine); unsigned int (*GetConsole)(struct ISession *pThis, struct IConsole { struct IConsole_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMachine)(struct IConsole *pThis, struct IMachine **machine); unsigned int (*GetState)(struct IConsole *pThis, unsigned int *state); unsigned int (*GetGuest)(struct IConsole *pThis, struct IGuest { struct IGuest_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetOSTypeId)(struct IGuest *pThis, unsigned short **OSTypeId); unsigned int (*GetAdditionsActive)(struct IGuest *pThis, int *additionsActive); unsigned int (*GetAdditionsVersion)(struct IGuest *pThis, unsigned short **additionsVersion); unsigned int (*GetSupportsSeamless)(struct IGuest *pThis, int *supportsSeamless); unsigned int (*GetSupportsGraphics)(struct IGuest *pThis, int *supportsGraphics); unsigned int (*GetMemoryBalloonSize)(struct IGuest *pThis, unsigned int *memoryBalloonSize); unsigned int (*SetMemoryBalloonSize)(struct IGuest *pThis, unsigned int memoryBalloonSize); unsigned int (*GetPageFusionEnabled)(struct IGuest *pThis, int *pageFusionEnabled); unsigned int (*SetPageFusionEnabled)(struct IGuest *pThis, int pageFusionEnabled); unsigned int (*GetStatisticsUpdateInterval)(struct IGuest *pThis, unsigned int *statisticsUpdateInterval); unsigned int (*SetStatisticsUpdateInterval)(struct IGuest *pThis, unsigned int statisticsUpdateInterval); unsigned int (*InternalGetStatistics)(struct IGuest *pThis, unsigned int *cpuUser, unsigned int *cpuKernel, unsigned int *cpuIdle, unsigned int *memTotal, unsigned int *memFree, unsigned int *memBalloon, unsigned int *memShared, unsigned int *memCache, unsigned int *pagedTotal, unsigned int *memAllocTotal, unsigned int *memFreeTotal, unsigned int *memBalloonTotal, unsigned int *memSharedTotal); unsigned int (*SetCredentials)(struct IGuest *pThis, unsigned short *userName, unsigned short *password, unsigned short *domain, int allowInteractiveLogon); unsigned int (*ExecuteProcess)(struct IGuest *pThis, unsigned short *execName, unsigned int flags, unsigned int argumentsSize, unsigned short **arguments, unsigned int environmentSize, unsigned short **environment, unsigned short *userName, unsigned short *password, unsigned int timeoutMS, unsigned int *pid, struct IProgress **progress); unsigned int (*GetProcessOutput)(struct IGuest *pThis, unsigned int pid, unsigned int flags, unsigned int timeoutMS, unsigned long size, unsigned int *dataSize, unsigned char **data); unsigned int (*GetProcessStatus)(struct IGuest *pThis, unsigned int pid, unsigned int *exitcode, unsigned int *flags, unsigned int *reason); } *vtbl; } **guest); unsigned int (*GetKeyboard)(struct IConsole *pThis, struct IKeyboard { struct IKeyboard_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*PutScancode)(struct IKeyboard *pThis, int scancode); unsigned int (*PutScancodes)(struct IKeyboard *pThis, unsigned int scancodesSize, int *scancodes, unsigned int *codesStored); unsigned int (*PutCAD)(struct IKeyboard *pThis); } *vtbl; } **keyboard); unsigned int (*GetMouse)(struct IConsole *pThis, struct IMouse { struct IMouse_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetAbsoluteSupported)(struct IMouse *pThis, int *absoluteSupported); unsigned int (*GetRelativeSupported)(struct IMouse *pThis, int *relativeSupported); unsigned int (*GetNeedsHostCursor)(struct IMouse *pThis, int *needsHostCursor); unsigned int (*PutMouseEvent)(struct IMouse *pThis, int dx, int dy, int dz, int dw, int buttonState); unsigned int (*PutMouseEventAbsolute)(struct IMouse *pThis, int x, int y, int dz, int dw, int buttonState); } *vtbl; } **mouse); unsigned int (*GetDisplay)(struct IConsole *pThis, struct IDisplay { struct IDisplay_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetScreenResolution)(struct IDisplay *pThis, unsigned int screenId, unsigned int *width, unsigned int *height, unsigned int *bitsPerPixel); unsigned int (*SetFramebuffer)(struct IDisplay *pThis, unsigned int screenId, struct IFramebuffer { struct IFramebuffer_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetAddress)(struct IFramebuffer *pThis, unsigned char **address); unsigned int (*GetWidth)(struct IFramebuffer *pThis, unsigned int *width); unsigned int (*GetHeight)(struct IFramebuffer *pThis, unsigned int *height); unsigned int (*GetBitsPerPixel)(struct IFramebuffer *pThis, unsigned int *bitsPerPixel); unsigned int (*GetBytesPerLine)(struct IFramebuffer *pThis, unsigned int *bytesPerLine); unsigned int (*GetPixelFormat)(struct IFramebuffer *pThis, unsigned int *pixelFormat); unsigned int (*GetUsesGuestVRAM)(struct IFramebuffer *pThis, int *usesGuestVRAM); unsigned int (*GetHeightReduction)(struct IFramebuffer *pThis, unsigned int *heightReduction); unsigned int (*GetOverlay)(struct IFramebuffer *pThis, struct IFramebufferOverlay { struct IFramebufferOverlay_vtbl { struct IFramebuffer_vtbl iframebuffer; unsigned int (*GetX)(struct IFramebufferOverlay *pThis, unsigned int *x); unsigned int (*GetY)(struct IFramebufferOverlay *pThis, unsigned int *y); unsigned int (*GetVisible)(struct IFramebufferOverlay *pThis, int *visible); unsigned int (*SetVisible)(struct IFramebufferOverlay *pThis, int visible); unsigned int (*GetAlpha)(struct IFramebufferOverlay *pThis, unsigned int *alpha); unsigned int (*SetAlpha)(struct IFramebufferOverlay *pThis, unsigned int alpha); unsigned int (*Move)(struct IFramebufferOverlay *pThis, unsigned int x, unsigned int y); } *vtbl; } **overlay); unsigned int (*GetWinId)(struct IFramebuffer *pThis, unsigned long *winId); unsigned int (*Lock)(struct IFramebuffer *pThis); unsigned int (*Unlock)(struct IFramebuffer *pThis); unsigned int (*NotifyUpdate)(struct IFramebuffer *pThis, unsigned int x, unsigned int y, unsigned int width, unsigned int height); unsigned int (*RequestResize)(struct IFramebuffer *pThis, unsigned int screenId, unsigned int pixelFormat, unsigned char *VRAM, unsigned int bitsPerPixel, unsigned int bytesPerLine, unsigned int width, unsigned int height, int *finished); unsigned int (*VideoModeSupported)(struct IFramebuffer *pThis, unsigned int width, unsigned int height, unsigned int bpp, int *supported); unsigned int (*GetVisibleRegion)(struct IFramebuffer *pThis, unsigned char *rectangles, unsigned int count, unsigned int *countCopied); unsigned int (*SetVisibleRegion)(struct IFramebuffer *pThis, unsigned char *rectangles, unsigned int count); unsigned int (*ProcessVHWACommand)(struct IFramebuffer *pThis, unsigned char *command); } *vtbl; } *framebuffer); unsigned int (*GetFramebuffer)(struct IDisplay *pThis, unsigned int screenId, struct IFramebuffer **framebuffer, int *xOrigin, int *yOrigin); unsigned int (*SetVideoModeHint)(struct IDisplay *pThis, unsigned int width, unsigned int height, unsigned int bitsPerPixel, unsigned int display); unsigned int (*SetSeamlessMode)(struct IDisplay *pThis, int enabled); unsigned int (*TakeScreenShot)(struct IDisplay *pThis, unsigned int screenId, unsigned char *address, unsigned int width, unsigned int height); unsigned int (*TakeScreenShotToArray)(struct IDisplay *pThis, unsigned int screenId, unsigned int width, unsigned int height, unsigned int *screenDataSize, unsigned char **screenData); unsigned int (*DrawToScreen)(struct IDisplay *pThis, unsigned int screenId, unsigned char *address, unsigned int x, unsigned int y, unsigned int width, unsigned int height); unsigned int (*InvalidateAndUpdate)(struct IDisplay *pThis); unsigned int (*ResizeCompleted)(struct IDisplay *pThis, unsigned int screenId); unsigned int (*CompleteVHWACommand)(struct IDisplay *pThis, unsigned char *command); } *vtbl; } **display); unsigned int (*GetDebugger)(struct IConsole *pThis, struct IMachineDebugger { struct IMachineDebugger_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetSinglestep)(struct IMachineDebugger *pThis, int *singlestep); unsigned int (*SetSinglestep)(struct IMachineDebugger *pThis, int singlestep); unsigned int (*GetRecompileUser)(struct IMachineDebugger *pThis, int *recompileUser); unsigned int (*SetRecompileUser)(struct IMachineDebugger *pThis, int recompileUser); unsigned int (*GetRecompileSupervisor)(struct IMachineDebugger *pThis, int *recompileSupervisor); unsigned int (*SetRecompileSupervisor)(struct IMachineDebugger *pThis, int recompileSupervisor); unsigned int (*GetPATMEnabled)(struct IMachineDebugger *pThis, int *PATMEnabled); unsigned int (*SetPATMEnabled)(struct IMachineDebugger *pThis, int PATMEnabled); unsigned int (*GetCSAMEnabled)(struct IMachineDebugger *pThis, int *CSAMEnabled); unsigned int (*SetCSAMEnabled)(struct IMachineDebugger *pThis, int CSAMEnabled); unsigned int (*GetLogEnabled)(struct IMachineDebugger *pThis, int *logEnabled); unsigned int (*SetLogEnabled)(struct IMachineDebugger *pThis, int logEnabled); unsigned int (*GetHWVirtExEnabled)(struct IMachineDebugger *pThis, int *HWVirtExEnabled); unsigned int (*GetHWVirtExNestedPagingEnabled)(struct IMachineDebugger *pThis, int *HWVirtExNestedPagingEnabled); unsigned int (*GetHWVirtExVPIDEnabled)(struct IMachineDebugger *pThis, int *HWVirtExVPIDEnabled); unsigned int (*GetPAEEnabled)(struct IMachineDebugger *pThis, int *PAEEnabled); unsigned int (*GetVirtualTimeRate)(struct IMachineDebugger *pThis, unsigned int *virtualTimeRate); unsigned int (*SetVirtualTimeRate)(struct IMachineDebugger *pThis, unsigned int virtualTimeRate); unsigned int (*GetVM)(struct IMachineDebugger *pThis, unsigned long *VM); unsigned int (*ResetStats)(struct IMachineDebugger *pThis, unsigned short *pattern); unsigned int (*DumpStats)(struct IMachineDebugger *pThis, unsigned short *pattern); unsigned int (*GetStats)(struct IMachineDebugger *pThis, unsigned short *pattern, int withDescriptions, unsigned short **stats); unsigned int (*InjectNMI)(struct IMachineDebugger *pThis); } *vtbl; } **debugger); unsigned int (*GetUSBDevices)(struct IConsole *pThis, unsigned int *USBDevicesSize, struct IUSBDevice ***USBDevices); unsigned int (*GetRemoteUSBDevices)(struct IConsole *pThis, unsigned int *remoteUSBDevicesSize, struct IHostUSBDevice ***remoteUSBDevices); unsigned int (*GetSharedFolders)(struct IConsole *pThis, unsigned int *sharedFoldersSize, struct ISharedFolder ***sharedFolders); unsigned int (*GetRemoteDisplayInfo)(struct IConsole *pThis, struct IRemoteDisplayInfo { struct IRemoteDisplayInfo_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetActive)(struct IRemoteDisplayInfo *pThis, int *active); unsigned int (*GetPort)(struct IRemoteDisplayInfo *pThis, int *port); unsigned int (*GetNumberOfClients)(struct IRemoteDisplayInfo *pThis, unsigned int *numberOfClients); unsigned int (*GetBeginTime)(struct IRemoteDisplayInfo *pThis, long *beginTime); unsigned int (*GetEndTime)(struct IRemoteDisplayInfo *pThis, long *endTime); unsigned int (*GetBytesSent)(struct IRemoteDisplayInfo *pThis, unsigned long *bytesSent); unsigned int (*GetBytesSentTotal)(struct IRemoteDisplayInfo *pThis, unsigned long *bytesSentTotal); unsigned int (*GetBytesReceived)(struct IRemoteDisplayInfo *pThis, unsigned long *bytesReceived); unsigned int (*GetBytesReceivedTotal)(struct IRemoteDisplayInfo *pThis, unsigned long *bytesReceivedTotal); unsigned int (*GetUser)(struct IRemoteDisplayInfo *pThis, unsigned short **user); unsigned int (*GetDomain)(struct IRemoteDisplayInfo *pThis, unsigned short **domain); unsigned int (*GetClientName)(struct IRemoteDisplayInfo *pThis, unsigned short **clientName); unsigned int (*GetClientIP)(struct IRemoteDisplayInfo *pThis, unsigned short **clientIP); unsigned int (*GetClientVersion)(struct IRemoteDisplayInfo *pThis, unsigned int *clientVersion); unsigned int (*GetEncryptionStyle)(struct IRemoteDisplayInfo *pThis, unsigned int *encryptionStyle); } *vtbl; } **remoteDisplayInfo); unsigned int (*PowerUp)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*PowerUpPaused)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*PowerDown)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*Reset)(struct IConsole *pThis); unsigned int (*Pause)(struct IConsole *pThis); unsigned int (*Resume)(struct IConsole *pThis); unsigned int (*PowerButton)(struct IConsole *pThis); unsigned int (*SleepButton)(struct IConsole *pThis); unsigned int (*GetPowerButtonHandled)(struct IConsole *pThis, int *handled); unsigned int (*GetGuestEnteredACPIMode)(struct IConsole *pThis, int *entered); unsigned int (*SaveState)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*AdoptSavedState)(struct IConsole *pThis, unsigned short *savedStateFile); unsigned int (*ForgetSavedState)(struct IConsole *pThis, int remove); unsigned int (*GetDeviceActivity)(struct IConsole *pThis, unsigned int type, unsigned int *activity); unsigned int (*AttachUSBDevice)(struct IConsole *pThis, unsigned short *id); unsigned int (*DetachUSBDevice)(struct IConsole *pThis, unsigned short *id, struct IUSBDevice **device); unsigned int (*FindUSBDeviceByAddress)(struct IConsole *pThis, unsigned short *name, struct IUSBDevice **device); unsigned int (*FindUSBDeviceById)(struct IConsole *pThis, unsigned short *id, struct IUSBDevice **device); unsigned int (*CreateSharedFolder)(struct IConsole *pThis, unsigned short *name, unsigned short *hostPath, int writable); unsigned int (*RemoveSharedFolder)(struct IConsole *pThis, unsigned short *name); unsigned int (*TakeSnapshot)(struct IConsole *pThis, unsigned short *name, unsigned short *description, struct IProgress **progress); unsigned int (*DeleteSnapshot)(struct IConsole *pThis, unsigned short *id, struct IProgress **progress); unsigned int (*RestoreSnapshot)(struct IConsole *pThis, struct ISnapshot { struct ISnapshot_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct ISnapshot *pThis, unsigned short **id); unsigned int (*GetName)(struct ISnapshot *pThis, unsigned short **name); unsigned int (*SetName)(struct ISnapshot *pThis, unsigned short *name); unsigned int (*GetDescription)(struct ISnapshot *pThis, unsigned short **description); unsigned int (*SetDescription)(struct ISnapshot *pThis, unsigned short *description); unsigned int (*GetTimeStamp)(struct ISnapshot *pThis, long *timeStamp); unsigned int (*GetOnline)(struct ISnapshot *pThis, int *online); unsigned int (*GetMachine)(struct ISnapshot *pThis, struct IMachine **machine); unsigned int (*GetParent)(struct ISnapshot *pThis, struct ISnapshot **parent); unsigned int (*GetChildren)(struct ISnapshot *pThis, unsigned int *childrenSize, struct ISnapshot ***children); } *vtbl; } *snapshot, struct IProgress **progress); unsigned int (*Teleport)(struct IConsole *pThis, unsigned short *hostname, unsigned int tcpport, unsigned short *password, unsigned int maxDowntime, struct IProgress **progress); unsigned int (*RegisterCallback)(struct IConsole *pThis, struct IConsoleCallback { struct IConsoleCallback_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*OnMousePointerShapeChange)(struct IConsoleCallback *pThis, int visible, int alpha, unsigned int xHot, unsigned int yHot, unsigned int width, unsigned int height, unsigned int shapeSize, unsigned char *shape); unsigned int (*OnMouseCapabilityChange)(struct IConsoleCallback *pThis, int supportsAbsolute, int supportsRelative, int needsHostCursor); unsigned int (*OnKeyboardLedsChange)(struct IConsoleCallback *pThis, int numLock, int capsLock, int scrollLock); unsigned int (*OnStateChange)(struct IConsoleCallback *pThis, unsigned int state); unsigned int (*OnAdditionsStateChange)(struct IConsoleCallback *pThis); unsigned int (*OnNetworkAdapterChange)(struct IConsoleCallback *pThis, struct INetworkAdapter { struct INetworkAdapter_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetAdapterType)(struct INetworkAdapter *pThis, unsigned int *adapterType); unsigned int (*SetAdapterType)(struct INetworkAdapter *pThis, unsigned int adapterType); unsigned int (*GetSlot)(struct INetworkAdapter *pThis, unsigned int *slot); unsigned int (*GetEnabled)(struct INetworkAdapter *pThis, int *enabled); unsigned int (*SetEnabled)(struct INetworkAdapter *pThis, int enabled); unsigned int (*GetMACAddress)(struct INetworkAdapter *pThis, unsigned short **MACAddress); unsigned int (*SetMACAddress)(struct INetworkAdapter *pThis, unsigned short *MACAddress); unsigned int (*GetAttachmentType)(struct INetworkAdapter *pThis, unsigned int *attachmentType); unsigned int (*GetHostInterface)(struct INetworkAdapter *pThis, unsigned short **hostInterface); unsigned int (*SetHostInterface)(struct INetworkAdapter *pThis, unsigned short *hostInterface); unsigned int (*GetInternalNetwork)(struct INetworkAdapter *pThis, unsigned short **internalNetwork); unsigned int (*SetInternalNetwork)(struct INetworkAdapter *pThis, unsigned short *internalNetwork); unsigned int (*GetNATNetwork)(struct INetworkAdapter *pThis, unsigned short **NATNetwork); unsigned int (*SetNATNetwork)(struct INetworkAdapter *pThis, unsigned short *NATNetwork); unsigned int (*GetVDENetwork)(struct INetworkAdapter *pThis, unsigned short **VDENetwork); unsigned int (*SetVDENetwork)(struct INetworkAdapter *pThis, unsigned short *VDENetwork); unsigned int (*GetCableConnected)(struct INetworkAdapter *pThis, int *cableConnected); unsigned int (*SetCableConnected)(struct INetworkAdapter *pThis, int cableConnected); unsigned int (*GetLineSpeed)(struct INetworkAdapter *pThis, unsigned int *lineSpeed); unsigned int (*SetLineSpeed)(struct INetworkAdapter *pThis, unsigned int lineSpeed); unsigned int (*GetTraceEnabled)(struct INetworkAdapter *pThis, int *traceEnabled); unsigned int (*SetTraceEnabled)(struct INetworkAdapter *pThis, int traceEnabled); unsigned int (*GetTraceFile)(struct INetworkAdapter *pThis, unsigned short **traceFile); unsigned int (*SetTraceFile)(struct INetworkAdapter *pThis, unsigned short *traceFile); unsigned int (*GetNatDriver)(struct INetworkAdapter *pThis, struct INATEngine { struct INATEngine_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetNetwork)(struct INATEngine *pThis, unsigned short **network); unsigned int (*SetNetwork)(struct INATEngine *pThis, unsigned short *network); unsigned int (*GetHostIP)(struct INATEngine *pThis, unsigned short **hostIP); unsigned int (*SetHostIP)(struct INATEngine *pThis, unsigned short *hostIP); unsigned int (*GetTftpPrefix)(struct INATEngine *pThis, unsigned short **tftpPrefix); unsigned int (*SetTftpPrefix)(struct INATEngine *pThis, unsigned short *tftpPrefix); unsigned int (*GetTftpBootFile)(struct INATEngine *pThis, unsigned short **tftpBootFile); unsigned int (*SetTftpBootFile)(struct INATEngine *pThis, unsigned short *tftpBootFile); unsigned int (*GetTftpNextServer)(struct INATEngine *pThis, unsigned short **tftpNextServer); unsigned int (*SetTftpNextServer)(struct INATEngine *pThis, unsigned short *tftpNextServer); unsigned int (*GetAliasMode)(struct INATEngine *pThis, unsigned int *aliasMode); unsigned int (*SetAliasMode)(struct INATEngine *pThis, unsigned int aliasMode); unsigned int (*GetDnsPassDomain)(struct INATEngine *pThis, int *dnsPassDomain); unsigned int (*SetDnsPassDomain)(struct INATEngine *pThis, int dnsPassDomain); unsigned int (*GetDnsProxy)(struct INATEngine *pThis, int *dnsProxy); unsigned int (*SetDnsProxy)(struct INATEngine *pThis, int dnsProxy); unsigned int (*GetDnsUseHostResolver)(struct INATEngine *pThis, int *dnsUseHostResolver); unsigned int (*SetDnsUseHostResolver)(struct INATEngine *pThis, int dnsUseHostResolver); unsigned int (*GetRedirects)(struct INATEngine *pThis, unsigned int *redirectsSize, unsigned short ***redirects); unsigned int (*SetNetworkSettings)(struct INATEngine *pThis, unsigned int mtu, unsigned int sockSnd, unsigned int sockRcv, unsigned int TcpWndSnd, unsigned int TcpWndRcv); unsigned int (*GetNetworkSettings)(struct INATEngine *pThis, unsigned int *mtu, unsigned int *sockSnd, unsigned int *sockRcv, unsigned int *TcpWndSnd, unsigned int *TcpWndRcv); unsigned int (*AddRedirect)(struct INATEngine *pThis, unsigned short *name, unsigned int proto, unsigned short *hostIp, unsigned short hostPort, unsigned short *guestIp, unsigned short guestPort); unsigned int (*RemoveRedirect)(struct INATEngine *pThis, unsigned short *name); } *vtbl; } **natDriver); unsigned int (*GetBootPriority)(struct INetworkAdapter *pThis, unsigned int *bootPriority); unsigned int (*SetBootPriority)(struct INetworkAdapter *pThis, unsigned int bootPriority); unsigned int (*AttachToNAT)(struct INetworkAdapter *pThis); unsigned int (*AttachToBridgedInterface)(struct INetworkAdapter *pThis); unsigned int (*AttachToInternalNetwork)(struct INetworkAdapter *pThis); unsigned int (*AttachToHostOnlyInterface)(struct INetworkAdapter *pThis); unsigned int (*AttachToVDE)(struct INetworkAdapter *pThis); unsigned int (*Detach)(struct INetworkAdapter *pThis); } *vtbl; } *networkAdapter); unsigned int (*OnSerialPortChange)(struct IConsoleCallback *pThis, struct ISerialPort { struct ISerialPort_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetSlot)(struct ISerialPort *pThis, unsigned int *slot); unsigned int (*GetEnabled)(struct ISerialPort *pThis, int *enabled); unsigned int (*SetEnabled)(struct ISerialPort *pThis, int enabled); unsigned int (*GetIOBase)(struct ISerialPort *pThis, unsigned int *IOBase); unsigned int (*SetIOBase)(struct ISerialPort *pThis, unsigned int IOBase); unsigned int (*GetIRQ)(struct ISerialPort *pThis, unsigned int *IRQ); unsigned int (*SetIRQ)(struct ISerialPort *pThis, unsigned int IRQ); unsigned int (*GetHostMode)(struct ISerialPort *pThis, unsigned int *hostMode); unsigned int (*SetHostMode)(struct ISerialPort *pThis, unsigned int hostMode); unsigned int (*GetServer)(struct ISerialPort *pThis, int *server); unsigned int (*SetServer)(struct ISerialPort *pThis, int server); unsigned int (*GetPath)(struct ISerialPort *pThis, unsigned short **path); unsigned int (*SetPath)(struct ISerialPort *pThis, unsigned short *path); } *vtbl; } *serialPort); unsigned int (*OnParallelPortChange)(struct IConsoleCallback *pThis, struct IParallelPort { struct IParallelPort_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetSlot)(struct IParallelPort *pThis, unsigned int *slot); unsigned int (*GetEnabled)(struct IParallelPort *pThis, int *enabled); unsigned int (*SetEnabled)(struct IParallelPort *pThis, int enabled); unsigned int (*GetIOBase)(struct IParallelPort *pThis, unsigned int *IOBase); unsigned int (*SetIOBase)(struct IParallelPort *pThis, unsigned int IOBase); unsigned int (*GetIRQ)(struct IParallelPort *pThis, unsigned int *IRQ); unsigned int (*SetIRQ)(struct IParallelPort *pThis, unsigned int IRQ); unsigned int (*GetPath)(struct IParallelPort *pThis, unsigned short **path); unsigned int (*SetPath)(struct IParallelPort *pThis, unsigned short *path); } *vtbl; } *parallelPort); unsigned int (*OnStorageControllerChange)(struct IConsoleCallback *pThis); unsigned int (*OnMediumChange)(struct IConsoleCallback *pThis, struct IMediumAttachment { struct IMediumAttachment_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMedium)(struct IMediumAttachment *pThis, struct IMedium **medium); unsigned int (*GetController)(struct IMediumAttachment *pThis, unsigned short **controller); unsigned int (*GetPort)(struct IMediumAttachment *pThis, int *port); unsigned int (*GetDevice)(struct IMediumAttachment *pThis, int *device); unsigned int (*GetType)(struct IMediumAttachment *pThis, unsigned int *type); unsigned int (*GetPassthrough)(struct IMediumAttachment *pThis, int *passthrough); } *vtbl; } *mediumAttachment); unsigned int (*OnCPUChange)(struct IConsoleCallback *pThis, unsigned int cpu, int add); unsigned int (*OnVRDPServerChange)(struct IConsoleCallback *pThis); unsigned int (*OnRemoteDisplayInfoChange)(struct IConsoleCallback *pThis); unsigned int (*OnUSBControllerChange)(struct IConsoleCallback *pThis); unsigned int (*OnUSBDeviceStateChange)(struct IConsoleCallback *pThis, struct IUSBDevice *device, int attached, struct IVirtualBoxErrorInfo *error); unsigned int (*OnSharedFolderChange)(struct IConsoleCallback *pThis, unsigned int scope); unsigned int (*OnRuntimeError)(struct IConsoleCallback *pThis, int fatal, unsigned short *id, unsigned short *message); unsigned int (*OnCanShowWindow)(struct IConsoleCallback *pThis, int *canShow); unsigned int (*OnShowWindow)(struct IConsoleCallback *pThis, unsigned long *winId); } *vtbl; } *callback); unsigned int (*UnregisterCallback)(struct IConsole *pThis, struct IConsoleCallback *callback); } *vtbl; } **console); unsigned int (*Close)(struct ISession *pThis); } *vtbl; } *session, unsigned short *machineId); unsigned int (*OpenRemoteSession)(struct IVirtualBox *pThis, struct ISession *session, unsigned short *machineId, unsigned short *type, unsigned short *environment, struct IProgress **progress); unsigned int (*OpenExistingSession)(struct IVirtualBox *pThis, struct ISession *session, unsigned short *machineId); unsigned int (*RegisterCallback)(struct IVirtualBox *pThis, struct IVirtualBoxCallback { struct IVirtualBoxCallback_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*OnMachineStateChange)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned int state); unsigned int (*OnMachineDataChange)(struct IVirtualBoxCallback *pThis, unsigned short *machineId); unsigned int (*OnExtraDataCanChange)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned short *key, unsigned short *value, unsigned short **error, int *allowChange); unsigned int (*OnExtraDataChange)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned short *key, unsigned short *value); unsigned int (*OnMediumRegistered)(struct IVirtualBoxCallback *pThis, unsigned short *mediumId, unsigned int mediumType, int registered); unsigned int (*OnMachineRegistered)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, int registered); unsigned int (*OnSessionStateChange)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned int state); unsigned int (*OnSnapshotTaken)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned short *snapshotId); unsigned int (*OnSnapshotDeleted)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned short *snapshotId); unsigned int (*OnSnapshotChange)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned short *snapshotId); unsigned int (*OnGuestPropertyChange)(struct IVirtualBoxCallback *pThis, unsigned short *machineId, unsigned short *name, unsigned short *value, unsigned short *flags); } *vtbl; } *callback); unsigned int (*UnregisterCallback)(struct IVirtualBox *pThis, struct IVirtualBoxCallback *callback); unsigned int (*WaitForPropertyChange)(struct IVirtualBox *pThis, unsigned short *what, unsigned int timeout, unsigned short **changed, unsigned short **values); unsigned int (*CreateDHCPServer)(struct IVirtualBox *pThis, unsigned short *name, struct IDHCPServer **server); unsigned int (*FindDHCPServerByNetworkName)(struct IVirtualBox *pThis, unsigned short *name, struct IDHCPServer **server); unsigned int (*RemoveDHCPServer)(struct IVirtualBox *pThis, struct IDHCPServer *server); unsigned int (*CheckFirmwarePresent)(struct IVirtualBox *pThis, unsigned int firmwareType, unsigned short *version, unsigned short **url, unsigned short **file, int *result); } *vtbl; } **parent); unsigned int (*GetAccessible)(struct IMachine *pThis, int *accessible); unsigned int (*GetAccessError)(struct IMachine *pThis, struct IVirtualBoxErrorInfo **accessError); unsigned int (*GetName)(struct IMachine *pThis, unsigned short **name); unsigned int (*SetName)(struct IMachine *pThis, unsigned short *name); unsigned int (*GetDescription)(struct IMachine *pThis, unsigned short **description); unsigned int (*SetDescription)(struct IMachine *pThis, unsigned short *description); unsigned int (*GetId)(struct IMachine *pThis, unsigned short **id); unsigned int (*GetOSTypeId)(struct IMachine *pThis, unsigned short **OSTypeId); unsigned int (*SetOSTypeId)(struct IMachine *pThis, unsigned short *OSTypeId); unsigned int (*GetHardwareVersion)(struct IMachine *pThis, unsigned short **HardwareVersion); unsigned int (*SetHardwareVersion)(struct IMachine *pThis, unsigned short *HardwareVersion); unsigned int (*GetHardwareUUID)(struct IMachine *pThis, unsigned short **hardwareUUID); unsigned int (*SetHardwareUUID)(struct IMachine *pThis, unsigned short *hardwareUUID); unsigned int (*GetCPUCount)(struct IMachine *pThis, unsigned int *CPUCount); unsigned int (*SetCPUCount)(struct IMachine *pThis, unsigned int CPUCount); unsigned int (*GetCPUHotPlugEnabled)(struct IMachine *pThis, int *CPUHotPlugEnabled); unsigned int (*SetCPUHotPlugEnabled)(struct IMachine *pThis, int CPUHotPlugEnabled); unsigned int (*GetMemorySize)(struct IMachine *pThis, unsigned int *memorySize); unsigned int (*SetMemorySize)(struct IMachine *pThis, unsigned int memorySize); unsigned int (*GetMemoryBalloonSize)(struct IMachine *pThis, unsigned int *memoryBalloonSize); unsigned int (*SetMemoryBalloonSize)(struct IMachine *pThis, unsigned int memoryBalloonSize); unsigned int (*GetPageFusionEnabled)(struct IMachine *pThis, int *PageFusionEnabled); unsigned int (*SetPageFusionEnabled)(struct IMachine *pThis, int PageFusionEnabled); unsigned int (*GetVRAMSize)(struct IMachine *pThis, unsigned int *VRAMSize); unsigned int (*SetVRAMSize)(struct IMachine *pThis, unsigned int VRAMSize); unsigned int (*GetAccelerate3DEnabled)(struct IMachine *pThis, int *accelerate3DEnabled); unsigned int (*SetAccelerate3DEnabled)(struct IMachine *pThis, int accelerate3DEnabled); unsigned int (*GetAccelerate2DVideoEnabled)(struct IMachine *pThis, int *accelerate2DVideoEnabled); unsigned int (*SetAccelerate2DVideoEnabled)(struct IMachine *pThis, int accelerate2DVideoEnabled); unsigned int (*GetMonitorCount)(struct IMachine *pThis, unsigned int *monitorCount); unsigned int (*SetMonitorCount)(struct IMachine *pThis, unsigned int monitorCount); unsigned int (*GetBIOSSettings)(struct IMachine *pThis, struct IBIOSSettings { struct IBIOSSettings_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetLogoFadeIn)(struct IBIOSSettings *pThis, int *logoFadeIn); unsigned int (*SetLogoFadeIn)(struct IBIOSSettings *pThis, int logoFadeIn); unsigned int (*GetLogoFadeOut)(struct IBIOSSettings *pThis, int *logoFadeOut); unsigned int (*SetLogoFadeOut)(struct IBIOSSettings *pThis, int logoFadeOut); unsigned int (*GetLogoDisplayTime)(struct IBIOSSettings *pThis, unsigned int *logoDisplayTime); unsigned int (*SetLogoDisplayTime)(struct IBIOSSettings *pThis, unsigned int logoDisplayTime); unsigned int (*GetLogoImagePath)(struct IBIOSSettings *pThis, unsigned short **logoImagePath); unsigned int (*SetLogoImagePath)(struct IBIOSSettings *pThis, unsigned short *logoImagePath); unsigned int (*GetBootMenuMode)(struct IBIOSSettings *pThis, unsigned int *bootMenuMode); unsigned int (*SetBootMenuMode)(struct IBIOSSettings *pThis, unsigned int bootMenuMode); unsigned int (*GetACPIEnabled)(struct IBIOSSettings *pThis, int *ACPIEnabled); unsigned int (*SetACPIEnabled)(struct IBIOSSettings *pThis, int ACPIEnabled); unsigned int (*GetIOAPICEnabled)(struct IBIOSSettings *pThis, int *IOAPICEnabled); unsigned int (*SetIOAPICEnabled)(struct IBIOSSettings *pThis, int IOAPICEnabled); unsigned int (*GetTimeOffset)(struct IBIOSSettings *pThis, long *timeOffset); unsigned int (*SetTimeOffset)(struct IBIOSSettings *pThis, long timeOffset); unsigned int (*GetPXEDebugEnabled)(struct IBIOSSettings *pThis, int *PXEDebugEnabled); unsigned int (*SetPXEDebugEnabled)(struct IBIOSSettings *pThis, int PXEDebugEnabled); } *vtbl; } **BIOSSettings); unsigned int (*GetFirmwareType)(struct IMachine *pThis, unsigned int *firmwareType); unsigned int (*SetFirmwareType)(struct IMachine *pThis, unsigned int firmwareType); unsigned int (*GetPointingHidType)(struct IMachine *pThis, unsigned int *pointingHidType); unsigned int (*SetPointingHidType)(struct IMachine *pThis, unsigned int pointingHidType); unsigned int (*GetKeyboardHidType)(struct IMachine *pThis, unsigned int *keyboardHidType); unsigned int (*SetKeyboardHidType)(struct IMachine *pThis, unsigned int keyboardHidType); unsigned int (*GetHpetEnabled)(struct IMachine *pThis, int *hpetEnabled); unsigned int (*SetHpetEnabled)(struct IMachine *pThis, int hpetEnabled); unsigned int (*GetSnapshotFolder)(struct IMachine *pThis, unsigned short **snapshotFolder); unsigned int (*SetSnapshotFolder)(struct IMachine *pThis, unsigned short *snapshotFolder); unsigned int (*GetVRDPServer)(struct IMachine *pThis, struct IVRDPServer { struct IVRDPServer_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetEnabled)(struct IVRDPServer *pThis, int *enabled); unsigned int (*SetEnabled)(struct IVRDPServer *pThis, int enabled); unsigned int (*GetPorts)(struct IVRDPServer *pThis, unsigned short **ports); unsigned int (*SetPorts)(struct IVRDPServer *pThis, unsigned short *ports); unsigned int (*GetNetAddress)(struct IVRDPServer *pThis, unsigned short **netAddress); unsigned int (*SetNetAddress)(struct IVRDPServer *pThis, unsigned short *netAddress); unsigned int (*GetAuthType)(struct IVRDPServer *pThis, unsigned int *authType); unsigned int (*SetAuthType)(struct IVRDPServer *pThis, unsigned int authType); unsigned int (*GetAuthTimeout)(struct IVRDPServer *pThis, unsigned int *authTimeout); unsigned int (*SetAuthTimeout)(struct IVRDPServer *pThis, unsigned int authTimeout); unsigned int (*GetAllowMultiConnection)(struct IVRDPServer *pThis, int *allowMultiConnection); unsigned int (*SetAllowMultiConnection)(struct IVRDPServer *pThis, int allowMultiConnection); unsigned int (*GetReuseSingleConnection)(struct IVRDPServer *pThis, int *reuseSingleConnection); unsigned int (*SetReuseSingleConnection)(struct IVRDPServer *pThis, int reuseSingleConnection); unsigned int (*GetVideoChannel)(struct IVRDPServer *pThis, int *videoChannel); unsigned int (*SetVideoChannel)(struct IVRDPServer *pThis, int videoChannel); unsigned int (*GetVideoChannelQuality)(struct IVRDPServer *pThis, unsigned int *videoChannelQuality); unsigned int (*SetVideoChannelQuality)(struct IVRDPServer *pThis, unsigned int videoChannelQuality); } *vtbl; } **VRDPServer); unsigned int (*GetMediumAttachments)(struct IMachine *pThis, unsigned int *mediumAttachmentsSize, struct IMediumAttachment ***mediumAttachments); unsigned int (*GetUSBController)(struct IMachine *pThis, struct IUSBController { struct IUSBController_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetEnabled)(struct IUSBController *pThis, int *enabled); unsigned int (*SetEnabled)(struct IUSBController *pThis, int enabled); unsigned int (*GetEnabledEhci)(struct IUSBController *pThis, int *enabledEhci); unsigned int (*SetEnabledEhci)(struct IUSBController *pThis, int enabledEhci); unsigned int (*GetProxyAvailable)(struct IUSBController *pThis, int *proxyAvailable); unsigned int (*GetUSBStandard)(struct IUSBController *pThis, unsigned short *USBStandard); unsigned int (*GetDeviceFilters)(struct IUSBController *pThis, unsigned int *deviceFiltersSize, struct IUSBDeviceFilter ***deviceFilters); unsigned int (*CreateDeviceFilter)(struct IUSBController *pThis, unsigned short *name, struct IUSBDeviceFilter **filter); unsigned int (*InsertDeviceFilter)(struct IUSBController *pThis, unsigned int position, struct IUSBDeviceFilter *filter); unsigned int (*RemoveDeviceFilter)(struct IUSBController *pThis, unsigned int position, struct IUSBDeviceFilter **filter); } *vtbl; } **USBController); unsigned int (*GetAudioAdapter)(struct IMachine *pThis, struct IAudioAdapter { struct IAudioAdapter_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetEnabled)(struct IAudioAdapter *pThis, int *enabled); unsigned int (*SetEnabled)(struct IAudioAdapter *pThis, int enabled); unsigned int (*GetAudioController)(struct IAudioAdapter *pThis, unsigned int *audioController); unsigned int (*SetAudioController)(struct IAudioAdapter *pThis, unsigned int audioController); unsigned int (*GetAudioDriver)(struct IAudioAdapter *pThis, unsigned int *audioDriver); unsigned int (*SetAudioDriver)(struct IAudioAdapter *pThis, unsigned int audioDriver); } *vtbl; } **audioAdapter); unsigned int (*GetStorageControllers)(struct IMachine *pThis, unsigned int *storageControllersSize, struct IStorageController { struct IStorageController_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetName)(struct IStorageController *pThis, unsigned short **name); unsigned int (*GetMaxDevicesPerPortCount)(struct IStorageController *pThis, unsigned int *maxDevicesPerPortCount); unsigned int (*GetMinPortCount)(struct IStorageController *pThis, unsigned int *minPortCount); unsigned int (*GetMaxPortCount)(struct IStorageController *pThis, unsigned int *maxPortCount); unsigned int (*GetInstance)(struct IStorageController *pThis, unsigned int *instance); unsigned int (*SetInstance)(struct IStorageController *pThis, unsigned int instance); unsigned int (*GetPortCount)(struct IStorageController *pThis, unsigned int *portCount); unsigned int (*SetPortCount)(struct IStorageController *pThis, unsigned int portCount); unsigned int (*GetBus)(struct IStorageController *pThis, unsigned int *bus); unsigned int (*GetControllerType)(struct IStorageController *pThis, unsigned int *controllerType); unsigned int (*SetControllerType)(struct IStorageController *pThis, unsigned int controllerType); unsigned int (*GetUseHostIOCache)(struct IStorageController *pThis, int *useHostIOCache); unsigned int (*SetUseHostIOCache)(struct IStorageController *pThis, int useHostIOCache); unsigned int (*GetIDEEmulationPort)(struct IStorageController *pThis, int devicePosition, int *portNumber); unsigned int (*SetIDEEmulationPort)(struct IStorageController *pThis, int devicePosition, int portNumber); } *vtbl; } ***storageControllers); unsigned int (*GetSettingsFilePath)(struct IMachine *pThis, unsigned short **settingsFilePath); unsigned int (*GetSettingsModified)(struct IMachine *pThis, int *settingsModified); unsigned int (*GetSessionState)(struct IMachine *pThis, unsigned int *sessionState); unsigned int (*GetSessionType)(struct IMachine *pThis, unsigned short **sessionType); unsigned int (*GetSessionPid)(struct IMachine *pThis, unsigned int *sessionPid); unsigned int (*GetState)(struct IMachine *pThis, unsigned int *state); unsigned int (*GetLastStateChange)(struct IMachine *pThis, long *lastStateChange); unsigned int (*GetStateFilePath)(struct IMachine *pThis, unsigned short **stateFilePath); unsigned int (*GetLogFolder)(struct IMachine *pThis, unsigned short **logFolder); unsigned int (*GetCurrentSnapshot)(struct IMachine *pThis, struct ISnapshot **currentSnapshot); unsigned int (*GetSnapshotCount)(struct IMachine *pThis, unsigned int *snapshotCount); unsigned int (*GetCurrentStateModified)(struct IMachine *pThis, int *currentStateModified); unsigned int (*GetSharedFolders)(struct IMachine *pThis, unsigned int *sharedFoldersSize, struct ISharedFolder ***sharedFolders); unsigned int (*GetClipboardMode)(struct IMachine *pThis, unsigned int *clipboardMode); unsigned int (*SetClipboardMode)(struct IMachine *pThis, unsigned int clipboardMode); unsigned int (*GetGuestPropertyNotificationPatterns)(struct IMachine *pThis, unsigned short **guestPropertyNotificationPatterns); unsigned int (*SetGuestPropertyNotificationPatterns)(struct IMachine *pThis, unsigned short *guestPropertyNotificationPatterns); unsigned int (*GetTeleporterEnabled)(struct IMachine *pThis, int *teleporterEnabled); unsigned int (*SetTeleporterEnabled)(struct IMachine *pThis, int teleporterEnabled); unsigned int (*GetTeleporterPort)(struct IMachine *pThis, unsigned int *teleporterPort); unsigned int (*SetTeleporterPort)(struct IMachine *pThis, unsigned int teleporterPort); unsigned int (*GetTeleporterAddress)(struct IMachine *pThis, unsigned short **teleporterAddress); unsigned int (*SetTeleporterAddress)(struct IMachine *pThis, unsigned short *teleporterAddress); unsigned int (*GetTeleporterPassword)(struct IMachine *pThis, unsigned short **teleporterPassword); unsigned int (*SetTeleporterPassword)(struct IMachine *pThis, unsigned short *teleporterPassword); unsigned int (*GetRTCUseUTC)(struct IMachine *pThis, int *RTCUseUTC); unsigned int (*SetRTCUseUTC)(struct IMachine *pThis, int RTCUseUTC); unsigned int (*GetIoCacheEnabled)(struct IMachine *pThis, int *ioCacheEnabled); unsigned int (*SetIoCacheEnabled)(struct IMachine *pThis, int ioCacheEnabled); unsigned int (*GetIoCacheSize)(struct IMachine *pThis, unsigned int *ioCacheSize); unsigned int (*SetIoCacheSize)(struct IMachine *pThis, unsigned int ioCacheSize); unsigned int (*GetIoBandwidthMax)(struct IMachine *pThis, unsigned int *ioBandwidthMax); unsigned int (*SetIoBandwidthMax)(struct IMachine *pThis, unsigned int ioBandwidthMax); unsigned int (*SetBootOrder)(struct IMachine *pThis, unsigned int position, unsigned int device); unsigned int (*GetBootOrder)(struct IMachine *pThis, unsigned int position, unsigned int *device); unsigned int (*AttachDevice)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, unsigned int type, unsigned short *id); unsigned int (*DetachDevice)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device); unsigned int (*PassthroughDevice)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, int passthrough); unsigned int (*MountMedium)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, unsigned short *medium, int force); unsigned int (*GetMedium)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, struct IMedium **medium); unsigned int (*GetMediumAttachmentsOfController)(struct IMachine *pThis, unsigned short *name, unsigned int *mediumAttachmentsSize, struct IMediumAttachment ***mediumAttachments); unsigned int (*GetMediumAttachment)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, struct IMediumAttachment **attachment); unsigned int (*GetNetworkAdapter)(struct IMachine *pThis, unsigned int slot, struct INetworkAdapter **adapter); unsigned int (*AddStorageController)(struct IMachine *pThis, unsigned short *name, unsigned int connectionType, struct IStorageController **controller); unsigned int (*GetStorageControllerByName)(struct IMachine *pThis, unsigned short *name, struct IStorageController **storageController); unsigned int (*GetStorageControllerByInstance)(struct IMachine *pThis, unsigned int instance, struct IStorageController **storageController); unsigned int (*RemoveStorageController)(struct IMachine *pThis, unsigned short *name); unsigned int (*GetSerialPort)(struct IMachine *pThis, unsigned int slot, struct ISerialPort **port); unsigned int (*GetParallelPort)(struct IMachine *pThis, unsigned int slot, struct IParallelPort **port); unsigned int (*GetExtraDataKeys)(struct IMachine *pThis, unsigned int *valueSize, unsigned short ***value); unsigned int (*GetExtraData)(struct IMachine *pThis, unsigned short *key, unsigned short **value); unsigned int (*SetExtraData)(struct IMachine *pThis, unsigned short *key, unsigned short *value); unsigned int (*GetCPUProperty)(struct IMachine *pThis, unsigned int property, int *value); unsigned int (*SetCPUProperty)(struct IMachine *pThis, unsigned int property, int value); unsigned int (*GetCPUIDLeaf)(struct IMachine *pThis, unsigned int id, unsigned int *valEax, unsigned int *valEbx, unsigned int *valEcx, unsigned int *valEdx); unsigned int (*SetCPUIDLeaf)(struct IMachine *pThis, unsigned int id, unsigned int valEax, unsigned int valEbx, unsigned int valEcx, unsigned int valEdx); unsigned int (*RemoveCPUIDLeaf)(struct IMachine *pThis, unsigned int id); unsigned int (*RemoveAllCPUIDLeaves)(struct IMachine *pThis); unsigned int (*GetHWVirtExProperty)(struct IMachine *pThis, unsigned int property, int *value); unsigned int (*SetHWVirtExProperty)(struct IMachine *pThis, unsigned int property, int value); unsigned int (*SaveSettings)(struct IMachine *pThis); unsigned int (*DiscardSettings)(struct IMachine *pThis); unsigned int (*DeleteSettings)(struct IMachine *pThis); unsigned int (*Export)(struct IMachine *pThis, struct IAppliance *aAppliance, struct IVirtualSystemDescription **aDescription); unsigned int (*GetSnapshot)(struct IMachine *pThis, unsigned short *id, struct ISnapshot **snapshot); unsigned int (*FindSnapshot)(struct IMachine *pThis, unsigned short *name, struct ISnapshot **snapshot); unsigned int (*SetCurrentSnapshot)(struct IMachine *pThis, unsigned short *id); unsigned int (*CreateSharedFolder)(struct IMachine *pThis, unsigned short *name, unsigned short *hostPath, int writable); unsigned int (*RemoveSharedFolder)(struct IMachine *pThis, unsigned short *name); unsigned int (*CanShowConsoleWindow)(struct IMachine *pThis, int *canShow); unsigned int (*ShowConsoleWindow)(struct IMachine *pThis, unsigned long *winId); unsigned int (*GetGuestProperty)(struct IMachine *pThis, unsigned short *name, unsigned short **value, unsigned long *timestamp, unsigned short **flags); unsigned int (*GetGuestPropertyValue)(struct IMachine *pThis, unsigned short *property, unsigned short **value); unsigned int (*GetGuestPropertyTimestamp)(struct IMachine *pThis, unsigned short *property, unsigned long *value); unsigned int (*SetGuestProperty)(struct IMachine *pThis, unsigned short *property, unsigned short *value, unsigned short *flags); unsigned int (*SetGuestPropertyValue)(struct IMachine *pThis, unsigned short *property, unsigned short *value); unsigned int (*EnumerateGuestProperties)(struct IMachine *pThis, unsigned short *patterns, unsigned int *nameSize, unsigned short ***name, unsigned int *valueSize, unsigned short ***value, unsigned int *timestampSize, unsigned long *timestamp, unsigned int *flagsSize, unsigned short ***flags); unsigned int (*QuerySavedThumbnailSize)(struct IMachine *pThis, unsigned int screenId, unsigned int *size, unsigned int *width, unsigned int *height); unsigned int (*ReadSavedThumbnailToArray)(struct IMachine *pThis, unsigned int screenId, int BGR, unsigned int *width, unsigned int *height, unsigned int *dataSize, unsigned char **data); unsigned int (*QuerySavedScreenshotPNGSize)(struct IMachine *pThis, unsigned int screenId, unsigned int *size, unsigned int *width, unsigned int *height); unsigned int (*ReadSavedScreenshotPNGToArray)(struct IMachine *pThis, unsigned int screenId, unsigned int *width, unsigned int *height, unsigned int *dataSize, unsigned char **data); unsigned int (*HotPlugCPU)(struct IMachine *pThis, unsigned int cpu); unsigned int (*HotUnplugCPU)(struct IMachine *pThis, unsigned int cpu); unsigned int (*GetCPUStatus)(struct IMachine *pThis, unsigned int cpu, int *attached); unsigned int (*QueryLogFilename)(struct IMachine *pThis, unsigned int idx, unsigned short **filename); unsigned int (*ReadLog)(struct IMachine *pThis, unsigned int idx, unsigned long offset, unsigned long size, unsigned int *dataSize, unsigned char **data); } *vtbl; } **

variable_types:
machineCnt
unsigned int

variable_types:
i
unsigned int

variable_types: isAccessible int

variable_types:
machineName
char *

variable_types:
configFile
unsigned short *

variable_types:
memorySize
unsigned int

variable_types:
typeId
unsigned short *

variable_types:
osName
char *

variable_types: struct IGuestOSType { struct IGuestOSType_vtbl { struct nsISupports_vtbl { unsigned int (*QueryInterface)(struct nsISupports { struct nsISupports_vtbl *vtbl; } *pThis, struct nsID { unsigned int m0; unsigned short m1; unsigned short m2; unsigned char m3[8]; } *iid, void **resultp); unsigned int (*AddRef)(struct nsISupports *pThis); unsigned int (*Release)(struct nsISupports *pThis); } nsisupports; unsigned int (*GetFamilyId)(struct IGuestOSType *pThis, unsigned short **familyId); unsigned int (*GetFamilyDescription)(struct IGuestOSType *pThis, unsigned short **familyDescription); unsigned int (*GetId)(struct IGuestOSType *pThis, unsigned short **id); unsigned int (*GetDescription)(struct IGuestOSType *pThis, unsigned short **description); unsigned int (*GetIs64Bit)(struct IGuestOSType *pThis, int *is64Bit); unsigned int (*GetRecommendedIOAPIC)(struct IGuestOSType *pThis, int *recommendedIOAPIC); unsigned int (*GetRecommendedVirtEx)(struct IGuestOSType *pThis, int *recommendedVirtEx); unsigned int (*GetRecommendedRAM)(struct IGuestOSType *pThis, unsigned int *recommendedRAM); unsigned int (*GetRecommendedVRAM)(struct IGuestOSType *pThis, unsigned int *recommendedVRAM); unsigned int (*GetRecommendedHDD)(struct IGuestOSType *pThis, unsigned int *recommendedHDD); unsigned int (*GetAdapterType)(struct IGuestOSType *pThis, unsigned int *adapterType); unsigned int (*GetRecommendedPae)(struct IGuestOSType *pThis, int *recommendedPae); unsigned int (*GetRecommendedDvdStorageController)(struct IGuestOSType *pThis, unsigned int *recommendedDvdStorageController); unsigned int (*GetRecommendedDvdStorageBus)(struct IGuestOSType *pThis, unsigned int *recommendedDvdStorageBus); unsigned int (*GetRecommendedHdStorageController)(struct IGuestOSType *pThis, unsigned int *recommendedHdStorageController); unsigned int (*GetRecommendedHdStorageBus)(struct IGuestOSType *pThis, unsigned int *recommendedHdStorageBus); unsigned int (*GetRecommendedFirmware)(struct IGuestOSType *pThis, unsigned int *recommendedFirmware); unsigned int (*GetRecommendedUsbHid)(struct IGuestOSType *pThis, int *recommendedUsbHid); unsigned int (*GetRecommendedHpet)(struct IGuestOSType *pThis, int *recommendedHpet); unsigned int (*GetRecommendedUsbTablet)(struct IGuestOSType *pThis, int *recommendedUsbTablet); unsigned int (*GetRecommendedRtcUseUtc)(struct IGuestOSType *pThis, int *recommendedRtcUseUtc); } *vtbl; } *

return_type: void

user_defined_types: struct IVirtualBox { struct IVirtualBox_vtbl *vtbl; }

user_defined_types: struct IMachine { struct IMachine_vtbl *vtbl; }

user_defined_types: struct IGuestOSType { struct IGuestOSType_vtbl *vtbl; }

user_defined_types: struct IVirtualBox_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetVersion)(struct IVirtualBox *pThis, unsigned short **version); unsigned int (*GetRevision)(struct IVirtualBox *pThis, unsigned int *revision); unsigned int (*GetPackageType)(struct IVirtualBox *pThis, unsigned short **packageType); unsigned int (*GetHomeFolder)(struct IVirtualBox *pThis, unsigned short **homeFolder); unsigned int (*GetSettingsFilePath)(struct IVirtualBox *pThis, unsigned short **settingsFilePath); unsigned int (*GetHost)(struct IVirtualBox *pThis, struct IHost **host); unsigned int (*GetSystemProperties)(struct IVirtualBox *pThis, struct ISystemProperties **systemProperties); unsigned int (*GetMachines)(struct IVirtualBox *pThis, unsigned int *machinesSize, struct IMachine ***machines); unsigned int (*GetHardDisks)(struct IVirtualBox *pThis, unsigned int *hardDisksSize, struct IMedium ***hardDisks); unsigned int (*GetDVDImages)(struct IVirtualBox *pThis, unsigned int *DVDImagesSize, struct IMedium ***DVDImages); unsigned int (*GetFloppyImages)(struct IVirtualBox *pThis, unsigned int *floppyImagesSize, struct IMedium ***floppyImages); unsigned int (*GetProgressOperations)(struct IVirtualBox *pThis, unsigned int *progressOperationsSize, struct IProgress ***progressOperations); unsigned int (*GetGuestOSTypes)(struct IVirtualBox *pThis, unsigned int *guestOSTypesSize, struct IGuestOSType ***guestOSTypes); unsigned int (*GetSharedFolders)(struct IVirtualBox *pThis, unsigned int *sharedFoldersSize, struct ISharedFolder ***sharedFolders); unsigned int (*GetPerformanceCollector)(struct IVirtualBox *pThis, struct IPerformanceCollector **performanceCollector); unsigned int (*GetDHCPServers)(struct IVirtualBox *pThis, unsigned int *DHCPServersSize, struct IDHCPServer ***DHCPServers); unsigned int (*CreateMachine)(struct IVirtualBox *pThis, unsigned short *name, unsigned short *osTypeId, unsigned short *baseFolder, unsigned short *id, int override, struct IMachine **machine); unsigned int (*CreateLegacyMachine)(struct IVirtualBox *pThis, unsigned short *name, unsigned short *osTypeId, unsigned short *settingsFile, unsigned short *id, struct IMachine **machine); unsigned int (*OpenMachine)(struct IVirtualBox *pThis, unsigned short *settingsFile, struct IMachine **machine); unsigned int (*RegisterMachine)(struct IVirtualBox *pThis, struct IMachine *machine); unsigned int (*GetMachine)(struct IVirtualBox *pThis, unsigned short *id, struct IMachine **machine); unsigned int (*FindMachine)(struct IVirtualBox *pThis, unsigned short *name, struct IMachine **machine); unsigned int (*UnregisterMachine)(struct IVirtualBox *pThis, unsigned short *id, struct IMachine **machine); unsigned int (*CreateAppliance)(struct IVirtualBox *pThis, struct IAppliance **appliance); unsigned int (*CreateHardDisk)(struct IVirtualBox *pThis, unsigned short *format, unsigned short *location, struct IMedium **medium); unsigned int (*OpenHardDisk)(struct IVirtualBox *pThis, unsigned short *location, unsigned int accessMode, int setImageId, unsigned short *imageId, int setParentId, unsigned short *parentId, struct IMedium **medium); unsigned int (*GetHardDisk)(struct IVirtualBox *pThis, unsigned short *id, struct IMedium **medium); unsigned int (*FindHardDisk)(struct IVirtualBox *pThis, unsigned short *location, struct IMedium **medium); unsigned int (*OpenDVDImage)(struct IVirtualBox *pThis, unsigned short *location, unsigned short *id, struct IMedium **image); unsigned int (*GetDVDImage)(struct IVirtualBox *pThis, unsigned short *id, struct IMedium **image); unsigned int (*FindDVDImage)(struct IVirtualBox *pThis, unsigned short *location, struct IMedium **image); unsigned int (*OpenFloppyImage)(struct IVirtualBox *pThis, unsigned short *location, unsigned short *id, struct IMedium **image); unsigned int (*GetFloppyImage)(struct IVirtualBox *pThis, unsigned short *id, struct IMedium **image); unsigned int (*FindFloppyImage)(struct IVirtualBox *pThis, unsigned short *location, struct IMedium **image); unsigned int (*GetGuestOSType)(struct IVirtualBox *pThis, unsigned short *id, struct IGuestOSType **type); unsigned int (*CreateSharedFolder)(struct IVirtualBox *pThis, unsigned short *name, unsigned short *hostPath, int writable); unsigned int (*RemoveSharedFolder)(struct IVirtualBox *pThis, unsigned short *name); unsigned int (*GetExtraDataKeys)(struct IVirtualBox *pThis, unsigned int *valueSize, unsigned short ***value); unsigned int (*GetExtraData)(struct IVirtualBox *pThis, unsigned short *key, unsigned short **value); unsigned int (*SetExtraData)(struct IVirtualBox *pThis, unsigned short *key, unsigned short *value); unsigned int (*OpenSession)(struct IVirtualBox *pThis, struct ISession *session, unsigned short *machineId); unsigned int (*OpenRemoteSession)(struct IVirtualBox *pThis, struct ISession *session, unsigned short *machineId, unsigned short *type, unsigned short *environment, struct IProgress **progress); unsigned int (*OpenExistingSession)(struct IVirtualBox *pThis, struct ISession *session, unsigned short *machineId); unsigned int (*RegisterCallback)(struct IVirtualBox *pThis, struct IVirtualBoxCallback *callback); unsigned int (*UnregisterCallback)(struct IVirtualBox *pThis, struct IVirtualBoxCallback *callback); unsigned int (*WaitForPropertyChange)(struct IVirtualBox *pThis, unsigned short *what, unsigned int timeout, unsigned short **changed, unsigned short **values); unsigned int (*CreateDHCPServer)(struct IVirtualBox *pThis, unsigned short *name, struct IDHCPServer **server); unsigned int (*FindDHCPServerByNetworkName)(struct IVirtualBox *pThis, unsigned short *name, struct IDHCPServer **server); unsigned int (*RemoveDHCPServer)(struct IVirtualBox *pThis, struct IDHCPServer *server); unsigned int (*CheckFirmwarePresent)(struct IVirtualBox *pThis, unsigned int firmwareType, unsigned short *version, unsigned short **url, unsigned short **file, int *result); }

user_defined_types: struct IMachine_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetParent)(struct IMachine *pThis, struct IVirtualBox **parent); unsigned int (*GetAccessible)(struct IMachine *pThis, int *accessible); unsigned int (*GetAccessError)(struct IMachine *pThis, struct IVirtualBoxErrorInfo **accessError); unsigned int (*GetName)(struct IMachine *pThis, unsigned short **name); unsigned int (*SetName)(struct IMachine *pThis, unsigned short *name); unsigned int (*GetDescription)(struct IMachine *pThis, unsigned short **description); unsigned int (*SetDescription)(struct IMachine *pThis, unsigned short *description); unsigned int (*GetId)(struct IMachine *pThis, unsigned short **id); unsigned int (*GetOSTypeId)(struct IMachine *pThis, unsigned short **OSTypeId); unsigned int (*SetOSTypeId)(struct IMachine *pThis, unsigned short *OSTypeId); unsigned int (*GetHardwareVersion)(struct IMachine *pThis, unsigned short **HardwareVersion); unsigned int (*SetHardwareVersion)(struct IMachine *pThis, unsigned short *HardwareVersion); unsigned int (*GetHardwareUUID)(struct IMachine *pThis, unsigned short **hardwareUUID); unsigned int (*SetHardwareUUID)(struct IMachine *pThis, unsigned short *hardwareUUID); unsigned int (*GetCPUCount)(struct IMachine *pThis, unsigned int *CPUCount); unsigned int (*SetCPUCount)(struct IMachine *pThis, unsigned int CPUCount); unsigned int (*GetCPUHotPlugEnabled)(struct IMachine *pThis, int *CPUHotPlugEnabled); unsigned int (*SetCPUHotPlugEnabled)(struct IMachine *pThis, int CPUHotPlugEnabled); unsigned int (*GetMemorySize)(struct IMachine *pThis, unsigned int *memorySize); unsigned int (*SetMemorySize)(struct IMachine *pThis, unsigned int memorySize); unsigned int (*GetMemoryBalloonSize)(struct IMachine *pThis, unsigned int *memoryBalloonSize); unsigned int (*SetMemoryBalloonSize)(struct IMachine *pThis, unsigned int memoryBalloonSize); unsigned int (*GetPageFusionEnabled)(struct IMachine *pThis, int *PageFusionEnabled); unsigned int (*SetPageFusionEnabled)(struct IMachine *pThis, int PageFusionEnabled); unsigned int (*GetVRAMSize)(struct IMachine *pThis, unsigned int *VRAMSize); unsigned int (*SetVRAMSize)(struct IMachine *pThis, unsigned int VRAMSize); unsigned int (*GetAccelerate3DEnabled)(struct IMachine *pThis, int *accelerate3DEnabled); unsigned int (*SetAccelerate3DEnabled)(struct IMachine *pThis, int accelerate3DEnabled); unsigned int (*GetAccelerate2DVideoEnabled)(struct IMachine *pThis, int *accelerate2DVideoEnabled); unsigned int (*SetAccelerate2DVideoEnabled)(struct IMachine *pThis, int accelerate2DVideoEnabled); unsigned int (*GetMonitorCount)(struct IMachine *pThis, unsigned int *monitorCount); unsigned int (*SetMonitorCount)(struct IMachine *pThis, unsigned int monitorCount); unsigned int (*GetBIOSSettings)(struct IMachine *pThis, struct IBIOSSettings **BIOSSettings); unsigned int (*GetFirmwareType)(struct IMachine *pThis, unsigned int *firmwareType); unsigned int (*SetFirmwareType)(struct IMachine *pThis, unsigned int firmwareType); unsigned int (*GetPointingHidType)(struct IMachine *pThis, unsigned int *pointingHidType); unsigned int (*SetPointingHidType)(struct IMachine *pThis, unsigned int pointingHidType); unsigned int (*GetKeyboardHidType)(struct IMachine *pThis, unsigned int *keyboardHidType); unsigned int (*SetKeyboardHidType)(struct IMachine *pThis, unsigned int keyboardHidType); unsigned int (*GetHpetEnabled)(struct IMachine *pThis, int *hpetEnabled); unsigned int (*SetHpetEnabled)(struct IMachine *pThis, int hpetEnabled); unsigned int (*GetSnapshotFolder)(struct IMachine *pThis, unsigned short **snapshotFolder); unsigned int (*SetSnapshotFolder)(struct IMachine *pThis, unsigned short *snapshotFolder); unsigned int (*GetVRDPServer)(struct IMachine *pThis, struct IVRDPServer **VRDPServer); unsigned int (*GetMediumAttachments)(struct IMachine *pThis, unsigned int *mediumAttachmentsSize, struct IMediumAttachment ***mediumAttachments); unsigned int (*GetUSBController)(struct IMachine *pThis, struct IUSBController **USBController); unsigned int (*GetAudioAdapter)(struct IMachine *pThis, struct IAudioAdapter **audioAdapter); unsigned int (*GetStorageControllers)(struct IMachine *pThis, unsigned int *storageControllersSize, struct IStorageController ***storageControllers); unsigned int (*GetSettingsFilePath)(struct IMachine *pThis, unsigned short **settingsFilePath); unsigned int (*GetSettingsModified)(struct IMachine *pThis, int *settingsModified); unsigned int (*GetSessionState)(struct IMachine *pThis, unsigned int *sessionState); unsigned int (*GetSessionType)(struct IMachine *pThis, unsigned short **sessionType); unsigned int (*GetSessionPid)(struct IMachine *pThis, unsigned int *sessionPid); unsigned int (*GetState)(struct IMachine *pThis, unsigned int *state); unsigned int (*GetLastStateChange)(struct IMachine *pThis, long *lastStateChange); unsigned int (*GetStateFilePath)(struct IMachine *pThis, unsigned short **stateFilePath); unsigned int (*GetLogFolder)(struct IMachine *pThis, unsigned short **logFolder); unsigned int (*GetCurrentSnapshot)(struct IMachine *pThis, struct ISnapshot **currentSnapshot); unsigned int (*GetSnapshotCount)(struct IMachine *pThis, unsigned int *snapshotCount); unsigned int (*GetCurrentStateModified)(struct IMachine *pThis, int *currentStateModified); unsigned int (*GetSharedFolders)(struct IMachine *pThis, unsigned int *sharedFoldersSize, struct ISharedFolder ***sharedFolders); unsigned int (*GetClipboardMode)(struct IMachine *pThis, unsigned int *clipboardMode); unsigned int (*SetClipboardMode)(struct IMachine *pThis, unsigned int clipboardMode); unsigned int (*GetGuestPropertyNotificationPatterns)(struct IMachine *pThis, unsigned short **guestPropertyNotificationPatterns); unsigned int (*SetGuestPropertyNotificationPatterns)(struct IMachine *pThis, unsigned short *guestPropertyNotificationPatterns); unsigned int (*GetTeleporterEnabled)(struct IMachine *pThis, int *teleporterEnabled); unsigned int (*SetTeleporterEnabled)(struct IMachine *pThis, int teleporterEnabled); unsigned int (*GetTeleporterPort)(struct IMachine *pThis, unsigned int *teleporterPort); unsigned int (*SetTeleporterPort)(struct IMachine *pThis, unsigned int teleporterPort); unsigned int (*GetTeleporterAddress)(struct IMachine *pThis, unsigned short **teleporterAddress); unsigned int (*SetTeleporterAddress)(struct IMachine *pThis, unsigned short *teleporterAddress); unsigned int (*GetTeleporterPassword)(struct IMachine *pThis, unsigned short **teleporterPassword); unsigned int (*SetTeleporterPassword)(struct IMachine *pThis, unsigned short *teleporterPassword); unsigned int (*GetRTCUseUTC)(struct IMachine *pThis, int *RTCUseUTC); unsigned int (*SetRTCUseUTC)(struct IMachine *pThis, int RTCUseUTC); unsigned int (*GetIoCacheEnabled)(struct IMachine *pThis, int *ioCacheEnabled); unsigned int (*SetIoCacheEnabled)(struct IMachine *pThis, int ioCacheEnabled); unsigned int (*GetIoCacheSize)(struct IMachine *pThis, unsigned int *ioCacheSize); unsigned int (*SetIoCacheSize)(struct IMachine *pThis, unsigned int ioCacheSize); unsigned int (*GetIoBandwidthMax)(struct IMachine *pThis, unsigned int *ioBandwidthMax); unsigned int (*SetIoBandwidthMax)(struct IMachine *pThis, unsigned int ioBandwidthMax); unsigned int (*SetBootOrder)(struct IMachine *pThis, unsigned int position, unsigned int device); unsigned int (*GetBootOrder)(struct IMachine *pThis, unsigned int position, unsigned int *device); unsigned int (*AttachDevice)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, unsigned int type, unsigned short *id); unsigned int (*DetachDevice)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device); unsigned int (*PassthroughDevice)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, int passthrough); unsigned int (*MountMedium)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, unsigned short *medium, int force); unsigned int (*GetMedium)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, struct IMedium **medium); unsigned int (*GetMediumAttachmentsOfController)(struct IMachine *pThis, unsigned short *name, unsigned int *mediumAttachmentsSize, struct IMediumAttachment ***mediumAttachments); unsigned int (*GetMediumAttachment)(struct IMachine *pThis, unsigned short *name, int controllerPort, int device, struct IMediumAttachment **attachment); unsigned int (*GetNetworkAdapter)(struct IMachine *pThis, unsigned int slot, struct INetworkAdapter **adapter); unsigned int (*AddStorageController)(struct IMachine *pThis, unsigned short *name, unsigned int connectionType, struct IStorageController **controller); unsigned int (*GetStorageControllerByName)(struct IMachine *pThis, unsigned short *name, struct IStorageController **storageController); unsigned int (*GetStorageControllerByInstance)(struct IMachine *pThis, unsigned int instance, struct IStorageController **storageController); unsigned int (*RemoveStorageController)(struct IMachine *pThis, unsigned short *name); unsigned int (*GetSerialPort)(struct IMachine *pThis, unsigned int slot, struct ISerialPort **port); unsigned int (*GetParallelPort)(struct IMachine *pThis, unsigned int slot, struct IParallelPort **port); unsigned int (*GetExtraDataKeys)(struct IMachine *pThis, unsigned int *valueSize, unsigned short ***value); unsigned int (*GetExtraData)(struct IMachine *pThis, unsigned short *key, unsigned short **value); unsigned int (*SetExtraData)(struct IMachine *pThis, unsigned short *key, unsigned short *value); unsigned int (*GetCPUProperty)(struct IMachine *pThis, unsigned int property, int *value); unsigned int (*SetCPUProperty)(struct IMachine *pThis, unsigned int property, int value); unsigned int (*GetCPUIDLeaf)(struct IMachine *pThis, unsigned int id, unsigned int *valEax, unsigned int *valEbx, unsigned int *valEcx, unsigned int *valEdx); unsigned int (*SetCPUIDLeaf)(struct IMachine *pThis, unsigned int id, unsigned int valEax, unsigned int valEbx, unsigned int valEcx, unsigned int valEdx); unsigned int (*RemoveCPUIDLeaf)(struct IMachine *pThis, unsigned int id); unsigned int (*RemoveAllCPUIDLeaves)(struct IMachine *pThis); unsigned int (*GetHWVirtExProperty)(struct IMachine *pThis, unsigned int property, int *value); unsigned int (*SetHWVirtExProperty)(struct IMachine *pThis, unsigned int property, int value); unsigned int (*SaveSettings)(struct IMachine *pThis); unsigned int (*DiscardSettings)(struct IMachine *pThis); unsigned int (*DeleteSettings)(struct IMachine *pThis); unsigned int (*Export)(struct IMachine *pThis, struct IAppliance *aAppliance, struct IVirtualSystemDescription **aDescription); unsigned int (*GetSnapshot)(struct IMachine *pThis, unsigned short *id, struct ISnapshot **snapshot); unsigned int (*FindSnapshot)(struct IMachine *pThis, unsigned short *name, struct ISnapshot **snapshot); unsigned int (*SetCurrentSnapshot)(struct IMachine *pThis, unsigned short *id); unsigned int (*CreateSharedFolder)(struct IMachine *pThis, unsigned short *name, unsigned short *hostPath, int writable); unsigned int (*RemoveSharedFolder)(struct IMachine *pThis, unsigned short *name); unsigned int (*CanShowConsoleWindow)(struct IMachine *pThis, int *canShow); unsigned int (*ShowConsoleWindow)(struct IMachine *pThis, unsigned long *winId); unsigned int (*GetGuestProperty)(struct IMachine *pThis, unsigned short *name, unsigned short **value, unsigned long *timestamp, unsigned short **flags); unsigned int (*GetGuestPropertyValue)(struct IMachine *pThis, unsigned short *property, unsigned short **value); unsigned int (*GetGuestPropertyTimestamp)(struct IMachine *pThis, unsigned short *property, unsigned long *value); unsigned int (*SetGuestProperty)(struct IMachine *pThis, unsigned short *property, unsigned short *value, unsigned short *flags); unsigned int (*SetGuestPropertyValue)(struct IMachine *pThis, unsigned short *property, unsigned short *value); unsigned int (*EnumerateGuestProperties)(struct IMachine *pThis, unsigned short *patterns, unsigned int *nameSize, unsigned short ***name, unsigned int *valueSize, unsigned short ***value, unsigned int *timestampSize, unsigned long *timestamp, unsigned int *flagsSize, unsigned short ***flags); unsigned int (*QuerySavedThumbnailSize)(struct IMachine *pThis, unsigned int screenId, unsigned int *size, unsigned int *width, unsigned int *height); unsigned int (*ReadSavedThumbnailToArray)(struct IMachine *pThis, unsigned int screenId, int BGR, unsigned int *width, unsigned int *height, unsigned int *dataSize, unsigned char **data); unsigned int (*QuerySavedScreenshotPNGSize)(struct IMachine *pThis, unsigned int screenId, unsigned int *size, unsigned int *width, unsigned int *height); unsigned int (*ReadSavedScreenshotPNGToArray)(struct IMachine *pThis, unsigned int screenId, unsigned int *width, unsigned int *height, unsigned int *dataSize, unsigned char **data); unsigned int (*HotPlugCPU)(struct IMachine *pThis, unsigned int cpu); unsigned int (*HotUnplugCPU)(struct IMachine *pThis, unsigned int cpu); unsigned int (*GetCPUStatus)(struct IMachine *pThis, unsigned int cpu, int *attached); unsigned int (*QueryLogFilename)(struct IMachine *pThis, unsigned int idx, unsigned short **filename); unsigned int (*ReadLog)(struct IMachine *pThis, unsigned int idx, unsigned long offset, unsigned long size, unsigned int *dataSize, unsigned char **data); }

user_defined_types: struct nsISupports_vtbl { unsigned int (*QueryInterface)(struct nsISupports *pThis, struct nsID *iid, void **resultp); unsigned int (*AddRef)(struct nsISupports *pThis); unsigned int (*Release)(struct nsISupports *pThis); }

user_defined_types: struct ISession { struct ISession_vtbl *vtbl; }

user_defined_types: struct IVirtualBoxCallback { struct IVirtualBoxCallback_vtbl *vtbl; }

user_defined_types: struct nsISupports { struct nsISupports_vtbl *vtbl; }

user_defined_types: struct IHost { struct IHost_vtbl *vtbl; }

user_defined_types: struct ISystemProperties { struct ISystemProperties_vtbl *vtbl; }

user_defined_types: struct IPerformanceCollector { struct IPerformanceCollector_vtbl *vtbl; }

user_defined_types: struct IBIOSSettings { struct IBIOSSettings_vtbl *vtbl; }

user_defined_types: struct IVRDPServer { struct IVRDPServer_vtbl *vtbl; }

user_defined_types: struct IUSBController { struct IUSBController_vtbl *vtbl; }

user_defined_types: struct IAudioAdapter { struct IAudioAdapter_vtbl *vtbl; }

user_defined_types: struct IDHCPServer { struct IDHCPServer_vtbl *vtbl; }

user_defined_types: struct ISession_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetState)(struct ISession *pThis, unsigned int *state); unsigned int (*GetType)(struct ISession *pThis, unsigned int *type); unsigned int (*GetMachine)(struct ISession *pThis, struct IMachine **machine); unsigned int (*GetConsole)(struct ISession *pThis, struct IConsole **console); unsigned int (*Close)(struct ISession *pThis); }

user_defined_types: struct IStorageController { struct IStorageController_vtbl *vtbl; }

user_defined_types: struct IHost_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetDVDDrives)(struct IHost *pThis, unsigned int *DVDDrivesSize, struct IMedium ***DVDDrives); unsigned int (*GetFloppyDrives)(struct IHost *pThis, unsigned int *floppyDrivesSize, struct IMedium ***floppyDrives); unsigned int (*GetUSBDevices)(struct IHost *pThis, unsigned int *USBDevicesSize, struct IHostUSBDevice ***USBDevices); unsigned int (*GetUSBDeviceFilters)(struct IHost *pThis, unsigned int *USBDeviceFiltersSize, struct IHostUSBDeviceFilter ***USBDeviceFilters); unsigned int (*GetNetworkInterfaces)(struct IHost *pThis, unsigned int *networkInterfacesSize, struct IHostNetworkInterface ***networkInterfaces); unsigned int (*GetProcessorCount)(struct IHost *pThis, unsigned int *processorCount); unsigned int (*GetProcessorOnlineCount)(struct IHost *pThis, unsigned int *processorOnlineCount); unsigned int (*GetProcessorCoreCount)(struct IHost *pThis, unsigned int *processorCoreCount); unsigned int (*GetMemorySize)(struct IHost *pThis, unsigned int *memorySize); unsigned int (*GetMemoryAvailable)(struct IHost *pThis, unsigned int *memoryAvailable); unsigned int (*GetOperatingSystem)(struct IHost *pThis, unsigned short **operatingSystem); unsigned int (*GetOSVersion)(struct IHost *pThis, unsigned short **OSVersion); unsigned int (*GetUTCTime)(struct IHost *pThis, long *UTCTime); unsigned int (*GetAcceleration3DAvailable)(struct IHost *pThis, int *Acceleration3DAvailable); unsigned int (*GetProcessorSpeed)(struct IHost *pThis, unsigned int cpuId, unsigned int *speed); unsigned int (*GetProcessorFeature)(struct IHost *pThis, unsigned int feature, int *supported); unsigned int (*GetProcessorDescription)(struct IHost *pThis, unsigned int cpuId, unsigned short **description); unsigned int (*GetProcessorCPUIDLeaf)(struct IHost *pThis, unsigned int cpuId, unsigned int leaf, unsigned int subLeaf, unsigned int *valEax, unsigned int *valEbx, unsigned int *valEcx, unsigned int *valEdx); unsigned int (*CreateHostOnlyNetworkInterface)(struct IHost *pThis, struct IHostNetworkInterface **hostInterface, struct IProgress **progress); unsigned int (*RemoveHostOnlyNetworkInterface)(struct IHost *pThis, unsigned short *id, struct IProgress **progress); unsigned int (*CreateUSBDeviceFilter)(struct IHost *pThis, unsigned short *name, struct IHostUSBDeviceFilter **filter); unsigned int (*InsertUSBDeviceFilter)(struct IHost *pThis, unsigned int position, struct IHostUSBDeviceFilter *filter); unsigned int (*RemoveUSBDeviceFilter)(struct IHost *pThis, unsigned int position); unsigned int (*FindHostDVDDrive)(struct IHost *pThis, unsigned short *name, struct IMedium **drive); unsigned int (*FindHostFloppyDrive)(struct IHost *pThis, unsigned short *name, struct IMedium **drive); unsigned int (*FindHostNetworkInterfaceByName)(struct IHost *pThis, unsigned short *name, struct IHostNetworkInterface **networkInterface); unsigned int (*FindHostNetworkInterfaceById)(struct IHost *pThis, unsigned short *id, struct IHostNetworkInterface **networkInterface); unsigned int (*FindHostNetworkInterfacesOfType)(struct IHost *pThis, unsigned int type, unsigned int *networkInterfacesSize, struct IHostNetworkInterface ***networkInterfaces); unsigned int (*FindUSBDeviceById)(struct IHost *pThis, unsigned short *id, struct IHostUSBDevice **device); unsigned int (*FindUSBDeviceByAddress)(struct IHost *pThis, unsigned short *name, struct IHostUSBDevice **device); }

user_defined_types: struct IPerformanceCollector_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMetricNames)(struct IPerformanceCollector *pThis, unsigned int *metricNamesSize, unsigned short ***metricNames); unsigned int (*GetMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *metricsSize, struct IPerformanceMetric ***metrics); unsigned int (*SetupMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int period, unsigned int count, unsigned int *affectedMetricsSize, struct IPerformanceMetric ***affectedMetrics); unsigned int (*EnableMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *affectedMetricsSize, struct IPerformanceMetric ***affectedMetrics); unsigned int (*DisableMetrics)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *affectedMetricsSize, struct IPerformanceMetric ***affectedMetrics); unsigned int (*QueryMetricsData)(struct IPerformanceCollector *pThis, unsigned int metricNamesSize, unsigned short **metricNames, unsigned int objectsSize, struct nsISupports **objects, unsigned int *returnMetricNamesSize, unsigned short ***returnMetricNames, unsigned int *returnObjectsSize, struct nsISupports **returnObjects, unsigned int *returnUnitsSize, unsigned short ***returnUnits, unsigned int *returnScalesSize, unsigned int *returnScales, unsigned int *returnSequenceNumbersSize, unsigned int *returnSequenceNumbers, unsigned int *returnDataIndicesSize, unsigned int *returnDataIndices, unsigned int *returnDataLengthsSize, unsigned int *returnDataLengths, unsigned int *returnDataSize, int **returnData); }

user_defined_types: struct IConsole { struct IConsole_vtbl *vtbl; }

user_defined_types: struct IAppliance { struct IAppliance_vtbl *vtbl; }

user_defined_types: struct IMedium { struct IMedium_vtbl *vtbl; }

user_defined_types: struct IHostUSBDevice { struct IHostUSBDevice_vtbl *vtbl; }

user_defined_types: struct IHostUSBDeviceFilter { struct IHostUSBDeviceFilter_vtbl *vtbl; }

user_defined_types: struct IHostNetworkInterface { struct IHostNetworkInterface_vtbl *vtbl; }

user_defined_types: struct ISnapshot { struct ISnapshot_vtbl *vtbl; }

user_defined_types: struct INetworkAdapter { struct INetworkAdapter_vtbl *vtbl; }

user_defined_types: struct ISerialPort { struct ISerialPort_vtbl *vtbl; }

user_defined_types: struct IParallelPort { struct IParallelPort_vtbl *vtbl; }

user_defined_types: struct IPerformanceMetric { struct IPerformanceMetric_vtbl *vtbl; }

user_defined_types: struct IConsole_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMachine)(struct IConsole *pThis, struct IMachine **machine); unsigned int (*GetState)(struct IConsole *pThis, unsigned int *state); unsigned int (*GetGuest)(struct IConsole *pThis, struct IGuest **guest); unsigned int (*GetKeyboard)(struct IConsole *pThis, struct IKeyboard **keyboard); unsigned int (*GetMouse)(struct IConsole *pThis, struct IMouse **mouse); unsigned int (*GetDisplay)(struct IConsole *pThis, struct IDisplay **display); unsigned int (*GetDebugger)(struct IConsole *pThis, struct IMachineDebugger **debugger); unsigned int (*GetUSBDevices)(struct IConsole *pThis, unsigned int *USBDevicesSize, struct IUSBDevice ***USBDevices); unsigned int (*GetRemoteUSBDevices)(struct IConsole *pThis, unsigned int *remoteUSBDevicesSize, struct IHostUSBDevice ***remoteUSBDevices); unsigned int (*GetSharedFolders)(struct IConsole *pThis, unsigned int *sharedFoldersSize, struct ISharedFolder ***sharedFolders); unsigned int (*GetRemoteDisplayInfo)(struct IConsole *pThis, struct IRemoteDisplayInfo **remoteDisplayInfo); unsigned int (*PowerUp)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*PowerUpPaused)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*PowerDown)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*Reset)(struct IConsole *pThis); unsigned int (*Pause)(struct IConsole *pThis); unsigned int (*Resume)(struct IConsole *pThis); unsigned int (*PowerButton)(struct IConsole *pThis); unsigned int (*SleepButton)(struct IConsole *pThis); unsigned int (*GetPowerButtonHandled)(struct IConsole *pThis, int *handled); unsigned int (*GetGuestEnteredACPIMode)(struct IConsole *pThis, int *entered); unsigned int (*SaveState)(struct IConsole *pThis, struct IProgress **progress); unsigned int (*AdoptSavedState)(struct IConsole *pThis, unsigned short *savedStateFile); unsigned int (*ForgetSavedState)(struct IConsole *pThis, int remove); unsigned int (*GetDeviceActivity)(struct IConsole *pThis, unsigned int type, unsigned int *activity); unsigned int (*AttachUSBDevice)(struct IConsole *pThis, unsigned short *id); unsigned int (*DetachUSBDevice)(struct IConsole *pThis, unsigned short *id, struct IUSBDevice **device); unsigned int (*FindUSBDeviceByAddress)(struct IConsole *pThis, unsigned short *name, struct IUSBDevice **device); unsigned int (*FindUSBDeviceById)(struct IConsole *pThis, unsigned short *id, struct IUSBDevice **device); unsigned int (*CreateSharedFolder)(struct IConsole *pThis, unsigned short *name, unsigned short *hostPath, int writable); unsigned int (*RemoveSharedFolder)(struct IConsole *pThis, unsigned short *name); unsigned int (*TakeSnapshot)(struct IConsole *pThis, unsigned short *name, unsigned short *description, struct IProgress **progress); unsigned int (*DeleteSnapshot)(struct IConsole *pThis, unsigned short *id, struct IProgress **progress); unsigned int (*RestoreSnapshot)(struct IConsole *pThis, struct ISnapshot *snapshot, struct IProgress **progress); unsigned int (*Teleport)(struct IConsole *pThis, unsigned short *hostname, unsigned int tcpport, unsigned short *password, unsigned int maxDowntime, struct IProgress **progress); unsigned int (*RegisterCallback)(struct IConsole *pThis, struct IConsoleCallback *callback); unsigned int (*UnregisterCallback)(struct IConsole *pThis, struct IConsoleCallback *callback); }

user_defined_types: struct ISharedFolder { struct ISharedFolder_vtbl *vtbl; }

user_defined_types: struct IMediumAttachment { struct IMediumAttachment_vtbl *vtbl; }

user_defined_types: struct IAppliance_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetPath)(struct IAppliance *pThis, unsigned short **path); unsigned int (*GetDisks)(struct IAppliance *pThis, unsigned int *disksSize, unsigned short ***disks); unsigned int (*GetVirtualSystemDescriptions)(struct IAppliance *pThis, unsigned int *virtualSystemDescriptionsSize, struct IVirtualSystemDescription ***virtualSystemDescriptions); unsigned int (*Read)(struct IAppliance *pThis, unsigned short *file, struct IProgress **aProgress); unsigned int (*Interpret)(struct IAppliance *pThis); unsigned int (*ImportMachines)(struct IAppliance *pThis, struct IProgress **aProgress); unsigned int (*CreateVFSExplorer)(struct IAppliance *pThis, unsigned short *aUri, struct IVFSExplorer **aExplorer); unsigned int (*Write)(struct IAppliance *pThis, unsigned short *format, unsigned short *path, struct IProgress **aProgress); unsigned int (*GetWarnings)(struct IAppliance *pThis, unsigned int *aWarningsSize, unsigned short ***aWarnings); }

user_defined_types: struct IMedium_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct IMedium *pThis, unsigned short **id); unsigned int (*GetDescription)(struct IMedium *pThis, unsigned short **description); unsigned int (*SetDescription)(struct IMedium *pThis, unsigned short *description); unsigned int (*GetState)(struct IMedium *pThis, unsigned int *state); unsigned int (*GetLocation)(struct IMedium *pThis, unsigned short **location); unsigned int (*SetLocation)(struct IMedium *pThis, unsigned short *location); unsigned int (*GetName)(struct IMedium *pThis, unsigned short **name); unsigned int (*GetDeviceType)(struct IMedium *pThis, unsigned int *deviceType); unsigned int (*GetHostDrive)(struct IMedium *pThis, int *hostDrive); unsigned int (*GetSize)(struct IMedium *pThis, unsigned long *size); unsigned int (*GetFormat)(struct IMedium *pThis, unsigned short **format); unsigned int (*GetMediumFormat)(struct IMedium *pThis, struct IMediumFormat **mediumFormat); unsigned int (*GetType)(struct IMedium *pThis, unsigned int *type); unsigned int (*SetType)(struct IMedium *pThis, unsigned int type); unsigned int (*GetParent)(struct IMedium *pThis, struct IMedium **parent); unsigned int (*GetChildren)(struct IMedium *pThis, unsigned int *childrenSize, struct IMedium ***children); unsigned int (*GetBase)(struct IMedium *pThis, struct IMedium **base); unsigned int (*GetReadOnly)(struct IMedium *pThis, int *readOnly); unsigned int (*GetLogicalSize)(struct IMedium *pThis, unsigned long *logicalSize); unsigned int (*GetAutoReset)(struct IMedium *pThis, int *autoReset); unsigned int (*SetAutoReset)(struct IMedium *pThis, int autoReset); unsigned int (*GetLastAccessError)(struct IMedium *pThis, unsigned short **lastAccessError); unsigned int (*GetMachineIds)(struct IMedium *pThis, unsigned int *machineIdsSize, unsigned short ***machineIds); unsigned int (*RefreshState)(struct IMedium *pThis, unsigned int *state); unsigned int (*GetSnapshotIds)(struct IMedium *pThis, unsigned short *machineId, unsigned int *snapshotIdsSize, unsigned short ***snapshotIds); unsigned int (*LockRead)(struct IMedium *pThis, unsigned int *state); unsigned int (*UnlockRead)(struct IMedium *pThis, unsigned int *state); unsigned int (*LockWrite)(struct IMedium *pThis, unsigned int *state); unsigned int (*UnlockWrite)(struct IMedium *pThis, unsigned int *state); unsigned int (*Close)(struct IMedium *pThis); unsigned int (*GetProperty)(struct IMedium *pThis, unsigned short *name, unsigned short **value); unsigned int (*SetProperty)(struct IMedium *pThis, unsigned short *name, unsigned short *value); unsigned int (*GetProperties)(struct IMedium *pThis, unsigned short *names, unsigned int *returnNamesSize, unsigned short ***returnNames, unsigned int *returnValuesSize, unsigned short ***returnValues); unsigned int (*SetProperties)(struct IMedium *pThis, unsigned int namesSize, unsigned short **names, unsigned int valuesSize, unsigned short **values); unsigned int (*CreateBaseStorage)(struct IMedium *pThis, unsigned long logicalSize, unsigned int variant, struct IProgress **progress); unsigned int (*DeleteStorage)(struct IMedium *pThis, struct IProgress **progress); unsigned int (*CreateDiffStorage)(struct IMedium *pThis, struct IMedium *target, unsigned int variant, struct IProgress **progress); unsigned int (*MergeTo)(struct IMedium *pThis, struct IMedium *target, struct IProgress **progress); unsigned int (*CloneTo)(struct IMedium *pThis, struct IMedium *target, unsigned int variant, struct IMedium *parent, struct IProgress **progress); unsigned int (*Compact)(struct IMedium *pThis, struct IProgress **progress); unsigned int (*Resize)(struct IMedium *pThis, unsigned long logicalSize, struct IProgress **progress); unsigned int (*Reset)(struct IMedium *pThis, struct IProgress **progress); }

user_defined_types: struct IHostUSBDevice_vtbl { struct IUSBDevice_vtbl iusbdevice; unsigned int (*GetState)(struct IHostUSBDevice *pThis, unsigned int *state); }

user_defined_types: struct IHostUSBDeviceFilter_vtbl { struct IUSBDeviceFilter_vtbl iusbdevicefilter; unsigned int (*GetAction)(struct IHostUSBDeviceFilter *pThis, unsigned int *action); unsigned int (*SetAction)(struct IHostUSBDeviceFilter *pThis, unsigned int action); }

user_defined_types: struct INetworkAdapter_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetAdapterType)(struct INetworkAdapter *pThis, unsigned int *adapterType); unsigned int (*SetAdapterType)(struct INetworkAdapter *pThis, unsigned int adapterType); unsigned int (*GetSlot)(struct INetworkAdapter *pThis, unsigned int *slot); unsigned int (*GetEnabled)(struct INetworkAdapter *pThis, int *enabled); unsigned int (*SetEnabled)(struct INetworkAdapter *pThis, int enabled); unsigned int (*GetMACAddress)(struct INetworkAdapter *pThis, unsigned short **MACAddress); unsigned int (*SetMACAddress)(struct INetworkAdapter *pThis, unsigned short *MACAddress); unsigned int (*GetAttachmentType)(struct INetworkAdapter *pThis, unsigned int *attachmentType); unsigned int (*GetHostInterface)(struct INetworkAdapter *pThis, unsigned short **hostInterface); unsigned int (*SetHostInterface)(struct INetworkAdapter *pThis, unsigned short *hostInterface); unsigned int (*GetInternalNetwork)(struct INetworkAdapter *pThis, unsigned short **internalNetwork); unsigned int (*SetInternalNetwork)(struct INetworkAdapter *pThis, unsigned short *internalNetwork); unsigned int (*GetNATNetwork)(struct INetworkAdapter *pThis, unsigned short **NATNetwork); unsigned int (*SetNATNetwork)(struct INetworkAdapter *pThis, unsigned short *NATNetwork); unsigned int (*GetVDENetwork)(struct INetworkAdapter *pThis, unsigned short **VDENetwork); unsigned int (*SetVDENetwork)(struct INetworkAdapter *pThis, unsigned short *VDENetwork); unsigned int (*GetCableConnected)(struct INetworkAdapter *pThis, int *cableConnected); unsigned int (*SetCableConnected)(struct INetworkAdapter *pThis, int cableConnected); unsigned int (*GetLineSpeed)(struct INetworkAdapter *pThis, unsigned int *lineSpeed); unsigned int (*SetLineSpeed)(struct INetworkAdapter *pThis, unsigned int lineSpeed); unsigned int (*GetTraceEnabled)(struct INetworkAdapter *pThis, int *traceEnabled); unsigned int (*SetTraceEnabled)(struct INetworkAdapter *pThis, int traceEnabled); unsigned int (*GetTraceFile)(struct INetworkAdapter *pThis, unsigned short **traceFile); unsigned int (*SetTraceFile)(struct INetworkAdapter *pThis, unsigned short *traceFile); unsigned int (*GetNatDriver)(struct INetworkAdapter *pThis, struct INATEngine **natDriver); unsigned int (*GetBootPriority)(struct INetworkAdapter *pThis, unsigned int *bootPriority); unsigned int (*SetBootPriority)(struct INetworkAdapter *pThis, unsigned int bootPriority); unsigned int (*AttachToNAT)(struct INetworkAdapter *pThis); unsigned int (*AttachToBridgedInterface)(struct INetworkAdapter *pThis); unsigned int (*AttachToInternalNetwork)(struct INetworkAdapter *pThis); unsigned int (*AttachToHostOnlyInterface)(struct INetworkAdapter *pThis); unsigned int (*AttachToVDE)(struct INetworkAdapter *pThis); unsigned int (*Detach)(struct INetworkAdapter *pThis); }

user_defined_types: struct IUSBDevice_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct IUSBDevice *pThis, unsigned short **id); unsigned int (*GetVendorId)(struct IUSBDevice *pThis, unsigned short *vendorId); unsigned int (*GetProductId)(struct IUSBDevice *pThis, unsigned short *productId); unsigned int (*GetRevision)(struct IUSBDevice *pThis, unsigned short *revision); unsigned int (*GetManufacturer)(struct IUSBDevice *pThis, unsigned short **manufacturer); unsigned int (*GetProduct)(struct IUSBDevice *pThis, unsigned short **product); unsigned int (*GetSerialNumber)(struct IUSBDevice *pThis, unsigned short **serialNumber); unsigned int (*GetAddress)(struct IUSBDevice *pThis, unsigned short **address); unsigned int (*GetPort)(struct IUSBDevice *pThis, unsigned short *port); unsigned int (*GetVersion)(struct IUSBDevice *pThis, unsigned short *version); unsigned int (*GetPortVersion)(struct IUSBDevice *pThis, unsigned short *portVersion); unsigned int (*GetRemote)(struct IUSBDevice *pThis, int *remote); }

user_defined_types: struct IUSBDeviceFilter_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetName)(struct IUSBDeviceFilter *pThis, unsigned short **name); unsigned int (*SetName)(struct IUSBDeviceFilter *pThis, unsigned short *name); unsigned int (*GetActive)(struct IUSBDeviceFilter *pThis, int *active); unsigned int (*SetActive)(struct IUSBDeviceFilter *pThis, int active); unsigned int (*GetVendorId)(struct IUSBDeviceFilter *pThis, unsigned short **vendorId); unsigned int (*SetVendorId)(struct IUSBDeviceFilter *pThis, unsigned short *vendorId); unsigned int (*GetProductId)(struct IUSBDeviceFilter *pThis, unsigned short **productId); unsigned int (*SetProductId)(struct IUSBDeviceFilter *pThis, unsigned short *productId); unsigned int (*GetRevision)(struct IUSBDeviceFilter *pThis, unsigned short **revision); unsigned int (*SetRevision)(struct IUSBDeviceFilter *pThis, unsigned short *revision); unsigned int (*GetManufacturer)(struct IUSBDeviceFilter *pThis, unsigned short **manufacturer); unsigned int (*SetManufacturer)(struct IUSBDeviceFilter *pThis, unsigned short *manufacturer); unsigned int (*GetProduct)(struct IUSBDeviceFilter *pThis, unsigned short **product); unsigned int (*SetProduct)(struct IUSBDeviceFilter *pThis, unsigned short *product); unsigned int (*GetSerialNumber)(struct IUSBDeviceFilter *pThis, unsigned short **serialNumber); unsigned int (*SetSerialNumber)(struct IUSBDeviceFilter *pThis, unsigned short *serialNumber); unsigned int (*GetPort)(struct IUSBDeviceFilter *pThis, unsigned short **port); unsigned int (*SetPort)(struct IUSBDeviceFilter *pThis, unsigned short *port); unsigned int (*GetRemote)(struct IUSBDeviceFilter *pThis, unsigned short **remote); unsigned int (*SetRemote)(struct IUSBDeviceFilter *pThis, unsigned short *remote); unsigned int (*GetMaskedInterfaces)(struct IUSBDeviceFilter *pThis, unsigned int *maskedInterfaces); unsigned int (*SetMaskedInterfaces)(struct IUSBDeviceFilter *pThis, unsigned int maskedInterfaces); }

user_defined_types: struct IConsoleCallback { struct IConsoleCallback_vtbl *vtbl; }

user_defined_types: struct IConsoleCallback_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*OnMousePointerShapeChange)(struct IConsoleCallback *pThis, int visible, int alpha, unsigned int xHot, unsigned int yHot, unsigned int width, unsigned int height, unsigned int shapeSize, unsigned char *shape); unsigned int (*OnMouseCapabilityChange)(struct IConsoleCallback *pThis, int supportsAbsolute, int supportsRelative, int needsHostCursor); unsigned int (*OnKeyboardLedsChange)(struct IConsoleCallback *pThis, int numLock, int capsLock, int scrollLock); unsigned int (*OnStateChange)(struct IConsoleCallback *pThis, unsigned int state); unsigned int (*OnAdditionsStateChange)(struct IConsoleCallback *pThis); unsigned int (*OnNetworkAdapterChange)(struct IConsoleCallback *pThis, struct INetworkAdapter *networkAdapter); unsigned int (*OnSerialPortChange)(struct IConsoleCallback *pThis, struct ISerialPort *serialPort); unsigned int (*OnParallelPortChange)(struct IConsoleCallback *pThis, struct IParallelPort *parallelPort); unsigned int (*OnStorageControllerChange)(struct IConsoleCallback *pThis); unsigned int (*OnMediumChange)(struct IConsoleCallback *pThis, struct IMediumAttachment *mediumAttachment); unsigned int (*OnCPUChange)(struct IConsoleCallback *pThis, unsigned int cpu, int add); unsigned int (*OnVRDPServerChange)(struct IConsoleCallback *pThis); unsigned int (*OnRemoteDisplayInfoChange)(struct IConsoleCallback *pThis); unsigned int (*OnUSBControllerChange)(struct IConsoleCallback *pThis); unsigned int (*OnUSBDeviceStateChange)(struct IConsoleCallback *pThis, struct IUSBDevice *device, int attached, struct IVirtualBoxErrorInfo *error); unsigned int (*OnSharedFolderChange)(struct IConsoleCallback *pThis, unsigned int scope); unsigned int (*OnRuntimeError)(struct IConsoleCallback *pThis, int fatal, unsigned short *id, unsigned short *message); unsigned int (*OnCanShowWindow)(struct IConsoleCallback *pThis, int *canShow); unsigned int (*OnShowWindow)(struct IConsoleCallback *pThis, unsigned long *winId); }

user_defined_types: struct IProgress { struct IProgress_vtbl *vtbl; }

user_defined_types: struct IProgress_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetId)(struct IProgress *pThis, unsigned short **id); unsigned int (*GetDescription)(struct IProgress *pThis, unsigned short **description); unsigned int (*GetInitiator)(struct IProgress *pThis, struct nsISupports **initiator); unsigned int (*GetCancelable)(struct IProgress *pThis, int *cancelable); unsigned int (*GetPercent)(struct IProgress *pThis, unsigned int *percent); unsigned int (*GetTimeRemaining)(struct IProgress *pThis, int *timeRemaining); unsigned int (*GetCompleted)(struct IProgress *pThis, int *completed); unsigned int (*GetCanceled)(struct IProgress *pThis, int *canceled); unsigned int (*GetResultCode)(struct IProgress *pThis, int *resultCode); unsigned int (*GetErrorInfo)(struct IProgress *pThis, struct IVirtualBoxErrorInfo **errorInfo); unsigned int (*GetOperationCount)(struct IProgress *pThis, unsigned int *operationCount); unsigned int (*GetOperation)(struct IProgress *pThis, unsigned int *operation); unsigned int (*GetOperationDescription)(struct IProgress *pThis, unsigned short **operationDescription); unsigned int (*GetOperationPercent)(struct IProgress *pThis, unsigned int *operationPercent); unsigned int (*GetTimeout)(struct IProgress *pThis, unsigned int *timeout); unsigned int (*SetTimeout)(struct IProgress *pThis, unsigned int timeout); unsigned int (*SetCurrentOperationProgress)(struct IProgress *pThis, unsigned int percent); unsigned int (*SetNextOperation)(struct IProgress *pThis, unsigned short *nextOperationDescription, unsigned int nextOperationsWeight); unsigned int (*WaitForCompletion)(struct IProgress *pThis, int timeout); unsigned int (*WaitForOperationCompletion)(struct IProgress *pThis, unsigned int operation, int timeout); unsigned int (*Cancel)(struct IProgress *pThis); }

user_defined_types: struct IVirtualBoxErrorInfo { struct IVirtualBoxErrorInfo_vtbl *vtbl; }

user_defined_types: struct IVirtualBoxErrorInfo_vtbl { struct nsIException_vtbl nsiexception; unsigned int (*GetResultCode)(struct IVirtualBoxErrorInfo *pThis, int *resultCode); unsigned int (*GetInterfaceID)(struct IVirtualBoxErrorInfo *pThis, unsigned short **interfaceID); unsigned int (*GetComponent)(struct IVirtualBoxErrorInfo *pThis, unsigned short **component); unsigned int (*GetText)(struct IVirtualBoxErrorInfo *pThis, unsigned short **text); unsigned int (*GetNext)(struct IVirtualBoxErrorInfo *pThis, struct IVirtualBoxErrorInfo **next); }

user_defined_types: struct nsIException_vtbl { struct nsISupports_vtbl nsisupports; unsigned int (*GetMessage)(struct nsIException *pThis, unsigned short **aMessage); unsigned int (*GetResult)(struct nsIException *pThis, unsigned int *aResult); unsigned int (*GetName)(struct nsIException *pThis, unsigned short **aName); unsigned int (*GetFilename)(struct nsIException *pThis, unsigned short **aFilename); unsigned int (*GetLineNumber)(struct nsIException *pThis, unsigned int *aLineNumber); unsigned int (*GetColumnNumber)(struct nsIException *pThis, unsigned int *aColumnNumber); unsigned int (*GetLocation)(struct nsIException *pThis, struct nsIStackFrame **aLocation); unsigned int (*GetInner)(struct nsIException *pThis, struct nsIException **aInner); unsigned int (*GetData)(struct nsIException *pThis, struct nsISupports **aData); unsigned int (*ToString)(struct nsIException *pThis, unsigned short **_retval); }

user_defined_types: struct nsIException { struct nsIException_vtbl *vtbl; }

user_defined_types: struct nsIStackFrame { struct nsIStackFrame_vtbl *vtbl; }