VirtualBox

忽略:
時間撮記:
2009-2-17 下午12:49:35 (16 年 以前)
作者:
vboxsync
訊息:

tstXPCOMCGlue.c: transformed tstLinux.c to use the glue code.

檔案:
複製 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Main/cbinding/tstXPCOMCGlue.c

    r16829 r16835  
    11/* $Revsion: $ */
    2 /** @file tstLinuxC.c
     2/** @file tstXPCOMCGlue.c
    33 * Demonstrator program to illustrate use of C bindings of Main API.
    44 *
     
    2222 */
    2323
     24/*******************************************************************************
     25*   Header Files                                                               *
     26*******************************************************************************/
     27#include "VBoxXPCOMCGlue.h"
    2428#include <stdio.h>
    2529#include <string.h>
    2630#include <stdlib.h>
    2731#include <sys/stat.h>
    28 #include "cbinding.h"
    2932
    3033static char *nsIDToString(nsID *guid);
     
    114117
    115118            machine->vtbl->GetName(machine, &machineNameUtf16);
    116             VBoxUtf16ToUtf8(machineNameUtf16,&machineName);
     119            g_pVBoxFuncs->pfnUtf16ToUtf8(machineNameUtf16,&machineName);
    117120            printf("\tName:        %s\n", machineName);
    118121
    119             VBoxUtf8Free(machineName);
    120             VBoxComUnallocMem(machineNameUtf16);
     122            g_pVBoxFuncs->pfnUtf8Free(machineName);
     123            g_pVBoxFuncs->pfnComUnallocMem(machineNameUtf16);
    121124        }
    122125        else
     
    135138
    136139            free(uuidString);
    137             VBoxComUnallocMem(iid);
     140            g_pVBoxFuncs->pfnComUnallocMem(iid);
    138141        }
    139142
     
    145148
    146149                machine->vtbl->GetSettingsFilePath(machine, &configFile);
    147                 VBoxUtf16ToUtf8(configFile, &configFile1);
     150                g_pVBoxFuncs->pfnUtf16ToUtf8(configFile, &configFile1);
    148151                printf("\tConfig file: %s\n", configFile1);
    149152
    150153                free(configFile1);
    151                 VBoxComUnallocMem(configFile);
     154                g_pVBoxFuncs->pfnComUnallocMem(configFile);
    152155            }
    153156
     
    168171                virtualBox->vtbl->GetGuestOSType(virtualBox, typeId, &osType);
    169172                osType->vtbl->GetDescription(osType, &osNameUtf16);
    170                 VBoxUtf16ToUtf8(osNameUtf16,&osName);
     173                g_pVBoxFuncs->pfnUtf16ToUtf8(osNameUtf16,&osName);
    171174                printf("\tGuest OS:    %s\n\n", osName);
    172175
    173176                osType->vtbl->nsisupports.Release((void *)osType);
    174                 VBoxUtf8Free(osName);
    175                 VBoxComUnallocMem(osNameUtf16);
    176                 VBoxComUnallocMem(typeId);
     177                g_pVBoxFuncs->pfnUtf8Free(osName);
     178                g_pVBoxFuncs->pfnComUnallocMem(osNameUtf16);
     179                g_pVBoxFuncs->pfnComUnallocMem(typeId);
    177180            }
    178181        }
     
    198201            startVM(virtualBox, session, iid);
    199202
    200             VBoxComUnallocMem(iid);
     203            g_pVBoxFuncs->pfnComUnallocMem(iid);
    201204        }
    202205    }
     
    240243    }
    241244
    242     VBoxUtf8ToUtf16("gui", &sessionType);
     245    g_pVBoxFuncs->pfnUtf8ToUtf16("gui", &sessionType);
    243246
    244247    rc = virtualBox->vtbl->OpenRemoteSession(
     
    251254    );
    252255
    253     VBoxUtf16Free(sessionType);
     256    g_pVBoxFuncs->pfnUtf16Free(sessionType);
    254257
    255258    if (NS_FAILED(rc))
     
    280283            progress->vtbl->GetErrorInfo(progress, &errorInfo);
    281284            errorInfo->vtbl->GetText(errorInfo, &textUtf16);
    282             VBoxUtf16ToUtf8(textUtf16, &text);
     285            g_pVBoxFuncs->pfnUtf16ToUtf8(textUtf16, &text);
    283286            printf("Error: %s\n", text);
    284287
    285             VBoxComUnallocMem(textUtf16);
    286             VBoxUtf8Free(text);
     288            g_pVBoxFuncs->pfnComUnallocMem(textUtf16);
     289            g_pVBoxFuncs->pfnUtf8Free(text);
    287290        }
    288291        else
     
    309312    nsresult    rc;     /* Result code of various function (method) calls. */
    310313
    311     /*
    312      * Guess where VirtualBox is installed not mentioned in the environment.
    313      * (This will be moved to VBoxComInitialize later.)
    314      */
    315 
    316     if (!VBoxGetEnv("VBOX_APP_HOME"))
    317     {
    318         if (stat("/opt/VirtualBox/VBoxXPCOMC.so", &stIgnored) == 0)
    319         {
    320             VBoxSetEnv("VBOX_APP_HOME","/opt/VirtualBox/");
    321         }
    322         if (stat("/usr/lib/virtualbox/VBoxXPCOMC.so", &stIgnored) == 0)
    323         {
    324             VBoxSetEnv("VBOX_APP_HOME","/usr/lib/virtualbox/");
    325         }
    326     }
    327 
    328314    printf("Starting Main\n");
    329315
     
    335321     */
    336322
    337     VBoxComInitialize(&vbox, &session);
    338 
     323    if (VBoxCGlueInit(NULL) != 0)
     324    {
     325        fprintf(stderr, "%s: FATAL: VBoxCGlueInit failed: %s\n",
     326                argv[0], g_szVBoxErrMsg);
     327        return EXIT_FAILURE;
     328    }
     329
     330    g_pVBoxFuncs->pfnComInitialize(&vbox, &session);
    339331    if (vbox == NULL)
    340332    {
     
    375367    {
    376368        char *version = NULL;
    377         VBoxUtf16ToUtf8(versionUtf16, &version);
     369        g_pVBoxFuncs->pfnUtf16ToUtf8(versionUtf16, &version);
    378370        printf("\tVersion: %s\n", version);
    379         VBoxUtf8Free(version);
    380         VBoxComUnallocMem(versionUtf16);
     371        g_pVBoxFuncs->pfnUtf8Free(version);
     372        g_pVBoxFuncs->pfnComUnallocMem(versionUtf16);
    381373    }
    382374    else
     
    392384    {
    393385        char *homefolder = NULL;
    394         VBoxUtf16ToUtf8(homefolderUtf16, &homefolder);
     386        g_pVBoxFuncs->pfnUtf16ToUtf8(homefolderUtf16, &homefolder);
    395387        printf("\tHomeFolder: %s\n", homefolder);
    396         VBoxUtf8Free(homefolder);
    397         VBoxComUnallocMem(homefolderUtf16);
     388        g_pVBoxFuncs->pfnUtf8Free(homefolder);
     389        g_pVBoxFuncs->pfnComUnallocMem(homefolderUtf16);
    398390    }
    399391    else
     
    412404     */
    413405
    414     VBoxComUninitialize();
     406    g_pVBoxFuncs->pfnComUninitialize();
     407    VBoxCGlueTerm();
    415408    printf("Finished Main\n");
    416409
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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