VirtualBox

Changeset 19081 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Apr 21, 2009 2:17:41 PM (16 years ago)
Author:
vboxsync
Message:

Main/cbindings: VBOXXPCOMC::pfnComInitialize needs to know which interface versions to return, outlined the change.

Location:
trunk/src/VBox/Main/cbinding
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/cbinding/VBoxXPCOMC.cpp

    r19078 r19081  
    7777
    7878static void
    79 VBoxComInitialize(IVirtualBox **virtualBox, ISession **session)
     79VBoxComInitialize(const char *pszVirtualBoxIID, IVirtualBox **ppVirtualBox,
     80                  const char *pszSessionIID, ISession **ppSession)
    8081{
    8182    nsresult rc;
    8283
    83     *session    = NULL;
    84     *virtualBox = NULL;
    85 
    86     Session     = *session;
    87     Ivirtualbox = *virtualBox;
     84    *ppSession    = NULL;
     85    *ppVirtualBox = NULL;
     86
     87    /** @todo r=bird: what exactly is this supposed to acomplish? */
     88    Session     = *ppSession;
     89    Ivirtualbox = *ppVirtualBox;
    8890
    8991    rc = com::Initialize();
    9092    if (NS_FAILED(rc))
    9193    {
    92         Log(("Cbinding: XPCOM could not be initialized! rc=%Rhrc\n",rc));
     94        Log(("Cbinding: XPCOM could not be initialized! rc=%Rhrc\n", rc));
    9395        VBoxComUninitialize();
    9496        return;
     
    98100    if (NS_FAILED(rc))
    99101    {
    100         Log(("Cbinding: Could not get component manager! rc=%Rhrc\n",rc));
     102        Log(("Cbinding: Could not get component manager! rc=%Rhrc\n", rc));
    101103        VBoxComUninitialize();
    102104        return;
     
    106108    if (NS_FAILED(rc))
    107109    {
    108         Log(("Cbinding: Could not get xpcom event queue! rc=%Rhrc\n",rc));
     110        Log(("Cbinding: Could not get xpcom event queue! rc=%Rhrc\n", rc));
    109111        VBoxComUninitialize();
    110112        return;
     
    113115    rc = manager->CreateInstanceByContractID(NS_VIRTUALBOX_CONTRACTID,
    114116                                             nsnull,
    115                                              NS_GET_IID(IVirtualBox),
    116                                              (void **)virtualBox);
     117                                             NS_GET_IID(IVirtualBox), /** @todo Use pszVirtualBoxIID here! */
     118                                             (void **)ppVirtualBox);
    117119    if (NS_FAILED(rc))
    118120    {
     
    126128    rc = manager->CreateInstanceByContractID (NS_SESSION_CONTRACTID,
    127129                                              nsnull,
    128                                               NS_GET_IID(ISession),
    129                                               (void **)session);
     130                                              NS_GET_IID(ISession), /** @todo Use */
     131                                              (void **)ppSession);
    130132    if (NS_FAILED(rc))
    131133    {
     
    136138
    137139    Log(("Cbinding: ISession object created.\n"));
     140}
     141
     142static void
     143VBoxComInitializeV1(IVirtualBox **ppVirtualBox, ISession **ppSession)
     144{
     145    /* stub that always fails. */
     146    *ppVirtualBox = NULL;
     147    *ppSession = NULL;
    138148}
    139149
     
    233243        VBoxVersion,
    234244
    235         VBoxComInitialize,
     245        VBoxComInitializeV1,
    236246        VBoxComUninitialize,
    237247
  • trunk/src/VBox/Main/cbinding/tstXPCOMCGlue.c

    r19028 r19081  
    326326    }
    327327
    328     g_pVBoxFuncs->pfnComInitialize(&vbox, &session);
     328    g_pVBoxFuncs->pfnComInitialize(IVIRTUALBOX_IID_STR, &vbox,
     329                                   ISESSION_IID_STR, &session);
    329330    if (vbox == NULL)
    330331    {
  • trunk/src/VBox/Main/cbinding/xpcidl.xsl

    r19063 r19081  
    960960    unsigned int (*pfnGetVersion)(void);
    961961
    962     void  (*pfnComInitialize)(IVirtualBox **virtualBox, ISession **session);
    963     void  (*pfnComUninitialize)(void);
     962    void  (*pfnComInitialize)(const char *pszVirtualBoxIID,
     963                              IVirtualBox **ppVirtualBox,
     964                              const char *pszSessionIID,
     965                              ISession **ppSession);
     966    void (*pfnComUninitialize)(void);
    964967
    965968    void  (*pfnComUnallocMem)(void *pv);
Note: See TracChangeset for help on using the changeset viewer.

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