- Timestamp:
- Jan 19, 2011 7:10:49 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 100 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/com/com.h
r30681 r35638 35 35 /** 36 36 * Initializes the COM runtime. 37 * Must be called on the main thread, before any COM activity in any thread. 37 * Must be called on the main thread, before any COM activity in any thread, and by any thread 38 * willing to perform COM operations. 38 39 * 40 * @param fMain if call is performed on the GUI thread 39 41 * @return COM result code 40 42 */ 41 HRESULT Initialize( );43 HRESULT Initialize(bool fGui = false); 42 44 43 45 /** -
trunk/include/VBox/com/defs.h
r34655 r35638 76 76 #include <objbase.h> 77 77 #ifndef VBOX_COM_NO_ATL 78 # define _ATL_FREE_THREADED 79 78 80 # include <atlbase.h> 79 81 #include <atlcom.h> … … 527 529 return E_NOINTERFACE; \ 528 530 } 531 532 533 #define VBOX_DEFAULT_INTERFACE_ENTRIES(iface) \ 534 COM_INTERFACE_ENTRY(ISupportErrorInfo) \ 535 COM_INTERFACE_ENTRY(iface) \ 536 COM_INTERFACE_ENTRY2(IDispatch,iface) \ 537 COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p) 529 538 #else 530 539 #define VBOX_SCRIPTABLE_IMPL(iface) \ 531 540 public iface 532 541 #define VBOX_SCRIPTABLE_DISPATCH_IMPL(iface) 542 #define VBOX_DEFAULT_INTERFACE_ENTRIES(iface) 533 543 #endif 534 544 -
trunk/src/VBox/Frontends/VBoxBFE/COMDefs.h
r28800 r35638 47 47 #define COM_INTERFACE_ENTRY2(a,b) 48 48 #define END_COM_MAP() 49 #define VBOX_DEFAULT_INTERFACE_ENTRIES(a) 50 #define BaseFinalConstruct() (S_OK) 51 #define BaseFinalRelease() 49 52 50 53 #ifndef RT_OS_WINDOWS -
trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.cpp
r35524 r35638 22 22 #if !defined (VBOX_WITH_XPCOM) 23 23 24 24 25 #else /* !defined (VBOX_WITH_XPCOM) */ 25 26 … … 87 88 * Initializes COM/XPCOM. 88 89 */ 89 HRESULT COMBase::InitializeCOM( )90 HRESULT COMBase::InitializeCOM(bool fGui) 90 91 { 91 92 LogFlowFuncEnter(); 92 93 93 /* Note: On Win32, Qt somehow calls CoInitialize[Ex]() during creation of 94 * the QApplication instance (didn't explore deeply why it does so) with 95 * different flags which is incompatible with our multithreaded 96 * apartment. com::Initialize() will properly care of this situation. */ 97 98 HRESULT rc = com::Initialize(); 94 HRESULT rc = com::Initialize(fGui); 99 95 100 96 #if defined (VBOX_WITH_XPCOM) -
trunk/src/VBox/Frontends/VirtualBox/src/globals/COMDefs.h
r34740 r35638 203 203 public: 204 204 205 static HRESULT InitializeCOM( );205 static HRESULT InitializeCOM(bool fGui); 206 206 static HRESULT CleanupCOM(); 207 207 … … 355 355 356 356 /* no arbitrary instance creations */ 357 COMBase() : mRC (S_OK) {} ;357 COMBase() : mRC (S_OK) {} 358 358 359 359 #if defined (VBOX_WITH_XPCOM) … … 633 633 // constructors & destructor 634 634 635 CInterface() : mIface (NULL) {} 636 637 CInterface (const CInterface &that) : B (that), mIface (that.mIface) 638 { 639 addref (mIface); 640 } 641 642 CInterface (I *aIface) : mIface (aIface) { addref (mIface); } 643 644 virtual ~CInterface() { release (mIface); } 635 CInterface() 636 { 637 clear(); 638 } 639 640 CInterface (const CInterface &that) : B (that) 641 { 642 clear(); 643 mIface = that.mIface; 644 addref(ptr()); 645 } 646 647 CInterface (I *aIface) 648 { 649 clear(); 650 setPtr (aIface); 651 addref (aIface); 652 } 653 654 virtual ~CInterface() 655 { 656 detach(); 657 #ifdef DEBUG 658 mDead = true; 659 #endif 660 } 645 661 646 662 // utility methods 647 648 663 void createInstance (const CLSID &aClsId) 649 664 { 650 AssertMsg (!mIface, ("Instance is already non-NULL\n")); 651 if (!mIface) 652 { 665 AssertMsg (ptr() == NULL, ("Instance is already non-NULL\n")); 666 if (ptr() == NULL) 667 { 668 I* pObj = NULL; 653 669 #if !defined (VBOX_WITH_XPCOM) 654 655 670 B::mRC = CoCreateInstance (aClsId, NULL, CLSCTX_ALL, 656 _ATL_IIDOF (I), (void **) &mIface); 657 658 #else /* !defined (VBOX_WITH_XPCOM) */ 659 671 _ATL_IIDOF (I), (void **) &pObj); 672 #else 660 673 nsCOMPtr <nsIComponentManager> manager; 661 674 B::mRC = NS_GetComponentManager (getter_AddRefs (manager)); 662 675 if (SUCCEEDED (B::mRC)) 663 676 B::mRC = manager->CreateInstance (aClsId, nsnull, NS_GET_IID (I), 664 (void **) &mIface); 665 666 #endif /* !defined (VBOX_WITH_XPCOM) */ 667 677 (void **) &pObj); 678 #endif 679 680 if (SUCCEEDED (B::mRC)) 681 setPtr(pObj); 682 else 683 setPtr(NULL); 684 668 685 /* fetch error info, but don't assert if it's missing -- many other 669 686 * reasons can lead to an error (w/o providing error info), not only 670 687 * the instance initialization code (that should always provide it) */ 671 688 B::fetchErrorInfo (NULL, NULL); 672 }689 } 673 690 } 674 691 … … 680 697 void attach (OI *aIface) 681 698 { 699 #ifdef DEBUG 700 Assert(!mDead); 701 #endif 682 702 /* be aware of self assignment */ 703 I* amIface = ptr(); 683 704 addref (aIface); 684 release ( mIface);705 release (amIface); 685 706 if (aIface) 686 707 { 687 mIface = NULL;688 B::mRC = aIface->QueryInterface (COM_IIDOF (I), (void **) & mIface);708 amIface = NULL; 709 B::mRC = aIface->QueryInterface (COM_IIDOF (I), (void **) &amIface); 689 710 release (aIface); 711 setPtr(amIface); 690 712 } 691 713 else 692 714 { 693 mIface = NULL;715 setPtr(NULL); 694 716 B::mRC = S_OK; 695 717 } … … 699 721 void attach (I *aIface) 700 722 { 723 #ifdef DEBUG 724 Assert(!mDead); 725 #endif 701 726 /* be aware of self assignment */ 702 727 addref (aIface); 703 release ( mIface);704 mIface = aIface;728 release (ptr()); 729 setPtr(aIface); 705 730 B::mRC = S_OK; 706 731 }; 707 732 708 733 /** Detaches from the underlying interface pointer. */ 709 void detach() { release (mIface); mIface = NULL; } 734 void detach() 735 { 736 #ifdef DEBUG 737 Assert(!mDead); 738 #endif 739 release (ptr()); 740 setPtr(NULL); 741 } 710 742 711 743 /** Returns @c true if not attached to any interface pointer. */ 712 bool isNull() const { return mIface == NULL; } 744 bool isNull() const 745 { 746 #ifdef DEBUG 747 Assert(!mDead); 748 #endif 749 return mIface == NULL; 750 } 713 751 714 752 /** … … 733 771 CInterface &operator= (const CInterface &that) 734 772 { 735 attach (that. mIface);773 attach (that.ptr()); 736 774 B::operator= (that); 737 775 return *this; … … 748 786 * else but in generated wrappers and for debugging. You've been warned. 749 787 */ 750 I *raw() const { return mIface; } 751 752 bool operator== (const CInterface &that) const { return mIface == that.mIface; } 753 bool operator!= (const CInterface &that) const { return mIface != that.mIface; } 754 755 /** 756 * @todo: rethink if we'll ever need 'protected' back, removed to allow mIface access in rather 757 * nontrivial inheritance situations, see 'friend wrappers' code in COMWrappers.xsl 758 */ 759 //protected: 760 761 mutable I *mIface; 788 I *raw() const 789 { 790 return ptr(); 791 } 792 793 bool operator== (const CInterface &that) const { return ptr() == that.ptr(); } 794 bool operator!= (const CInterface &that) const { return ptr() != that.ptr(); } 795 796 I* ptr() const 797 { 798 #ifdef DEBUG 799 Assert(!mDead); 800 #endif 801 802 return mIface; 803 } 804 805 void setPtr(I* aObj) const 806 { 807 #ifdef DEBUG 808 Assert(!mDead); 809 #endif 810 mIface = aObj; 811 } 812 813 private: 814 #ifdef DEBUG 815 bool mDead; 816 #endif 817 mutable I * mIface; 818 819 void clear() 820 { 821 mIface = NULL; 822 #ifdef DEBUG 823 mDead = false; 824 #endif 825 } 762 826 }; 763 827 … … 776 840 explicit CUnknown (const CInterface <OI, OB> &that) 777 841 { 778 attach (that. mIface);842 attach (that.ptr()); 779 843 if (SUCCEEDED (mRC)) 780 844 { … … 802 866 CUnknown &operator= (const CInterface <OI, OB> &that) 803 867 { 804 attach (that. mIface);868 attach (that.ptr()); 805 869 if (SUCCEEDED (mRC)) 806 870 { … … 833 897 return *this; 834 898 } 835 836 /* @internal Used in generated wrappers. Never use directly. */837 IUnknown *&rawRef() { return mIface; };838 899 }; 839 900 -
trunk/src/VBox/Frontends/VirtualBox/src/globals/COMWrappers.xsl
r34783 r35638 951 951 <xsl:text>
{
</xsl:text> 952 952 <!-- iface assertion --> 953 <xsl:text> AssertReturnVoid( mIface);
</xsl:text>953 <xsl:text> AssertReturnVoid(ptr());
</xsl:text> 954 954 <!-- method call --> 955 955 <xsl:call-template name="composeMethodCall"> … … 990 990 <xsl:text>;
</xsl:text> 991 991 <!-- iface assertion --> 992 <xsl:text> AssertReturn( mIface, a</xsl:text>992 <xsl:text> AssertReturn(ptr(), a</xsl:text> 993 993 <xsl:call-template name="capitalize"> 994 994 <xsl:with-param name="str" select="$return/@name"/> … … 1097 1097 </xsl:choose> 1098 1098 <!-- start the call --> 1099 <xsl:text> mRC = mIface-></xsl:text>1099 <xsl:text> mRC = ptr()-></xsl:text> 1100 1100 <xsl:choose> 1101 1101 <!-- attribute method call --> … … 1137 1137 </xsl:choose> 1138 1138 <xsl:text>);
</xsl:text> 1139 1140 <xsl:text>#ifdef RT_OS_WINDOWS
</xsl:text> 1141 <xsl:text> Assert(mRC != RPC_E_WRONG_THREAD);
</xsl:text> 1142 <xsl:text>#endif;
</xsl:text> 1143 1139 1144 <!-- apply 'post-call' hooks --> 1140 1145 <xsl:choose> … … 1201 1206 <xsl:if test="$supports='strict' or $supports='yes'"> 1202 1207 <xsl:text> if (RT_UNLIKELY(mRC != S_OK))
 {
</xsl:text> 1203 <xsl:text> fetchErrorInfo( mIface, &COM_IIDOF(Base::Iface));
</xsl:text>1208 <xsl:text> fetchErrorInfo(ptr(), &COM_IIDOF(Base::Iface));
</xsl:text> 1204 1209 <xsl:if test="$supports='strict'"> 1205 1210 <xsl:text> AssertMsg(errInfo.isFullAvailable(), </xsl:text> … … 1294 1299 <xsl:with-param name="str" select="@name"/> 1295 1300 </xsl:call-template> 1296 <xsl:choose> 1297 <xsl:when test="@type='$unknown'"> 1298 <xsl:text>.raw()</xsl:text> 1299 </xsl:when> 1300 <xsl:otherwise> 1301 <xsl:text>.mIface</xsl:text> 1302 </xsl:otherwise> 1303 </xsl:choose> 1301 <xsl:text>.ptr()</xsl:text> 1304 1302 </xsl:when> 1305 1303 <xsl:when test="$isOut"> 1306 <xsl:text>&a</xsl:text> 1307 <xsl:call-template name="capitalize"> 1308 <xsl:with-param name="str" select="@name"/> 1309 </xsl:call-template> 1310 <xsl:choose> 1311 <xsl:when test="@type='$unknown'"> 1312 <xsl:text>.rawRef()</xsl:text> 1313 </xsl:when> 1314 <xsl:otherwise> 1315 <xsl:text>.mIface</xsl:text> 1316 </xsl:otherwise> 1317 </xsl:choose> 1304 <xsl:value-of select="concat('&', @name, 'Ptr')"/> 1318 1305 </xsl:when> 1319 1306 </xsl:choose> … … 1783 1770 )"/> 1784 1771 1772 <xsl:variable name="is_out" select="( 1773 (name()='attribute' and not($isSetter)) or 1774 (name()='param' and (@dir='out' or @dir='return')) 1775 )"/> 1776 1785 1777 <xsl:choose> 1786 1778 <xsl:when test="$when='pre-call'"> … … 1838 1830 </xsl:if> 1839 1831 </xsl:when> 1832 <xsl:when test="$is_out and ($is_iface or (@type='$unknown'))"> 1833 <xsl:text> </xsl:text> 1834 <xsl:choose> 1835 <xsl:when test="@type='$unknown'"> 1836 <xsl:text>IUnknown</xsl:text> 1837 </xsl:when> 1838 <xsl:otherwise> 1839 <xsl:value-of select="@type"/> 1840 </xsl:otherwise> 1841 </xsl:choose> 1842 <xsl:value-of select="concat('* ',@name,'Ptr = NULL; ')"/> 1843 </xsl:when> 1840 1844 </xsl:choose> 1841 1845 </xsl:when> … … 1843 1847 <xsl:choose> 1844 1848 <xsl:when test="@safearray='yes'"> 1845 <xsl:if test="(name()='attribute' and not($isSetter)) or 1846 (name()='param' and (@dir='out' or @dir='return'))"> 1849 <xsl:if test="$is_out"> 1847 1850 <!-- convert SafeArray to QVector --> 1848 1851 <xsl:choose> … … 1864 1867 </xsl:if> 1865 1868 </xsl:when> 1869 <xsl:when test="$is_out and ($is_iface or (@type='$unknown'))"> 1870 <xsl:text> a</xsl:text> 1871 <xsl:call-template name="capitalize"> 1872 <xsl:with-param name="str" select="@name"/> 1873 </xsl:call-template> 1874 <xsl:value-of select="concat('.setPtr(',@name,'Ptr); ')"/> 1875 </xsl:when> 1866 1876 </xsl:choose> 1867 1877 </xsl:when> -
trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
r35634 r35638 2390 2390 { 2391 2391 LogFlow (("MediaEnumThread started.\n")); 2392 COMBase::InitializeCOM( );2392 COMBase::InitializeCOM(false); 2393 2393 2394 2394 CVirtualBox mVBox = vboxGlobal().virtualBox(); … … 4765 4765 #endif 4766 4766 4767 #ifdef Q_WS_WIN 4768 /* COM for the main thread is initialized in main() */ 4769 #else 4770 HRESULT rc = COMBase::InitializeCOM(); 4767 HRESULT rc = COMBase::InitializeCOM(true); 4771 4768 if (FAILED (rc)) 4772 4769 { … … 4774 4771 return; 4775 4772 } 4776 #endif4777 4773 4778 4774 mVBox.createInstance (CLSID_VirtualBox); -
trunk/src/VBox/Frontends/VirtualBox/src/main.cpp
r35636 r35638 290 290 ShutUpAppKit(); 291 291 # endif 292 293 #ifdef Q_WS_WIN294 /* Initialize COM early, before QApplication calls OleInitialize(), to295 * make sure we enter the multi threaded apartment instead of a single296 * threaded one. Note that this will make some non-threadsafe system297 * services that use OLE and require STA (such as Drag&Drop) not work298 * anymore, however it's still better because otherwise VBox will not work299 * on some Windows XP systems at all since it requires MTA (we cannot300 * leave STA by calling CoUninitialize() and re-enter MTA on those systems301 * for some unknown reason), see also src/VBox/Main/glue/initterm.cpp. */302 /// @todo find a proper solution that satisfies both OLE and VBox303 HRESULT hrc = COMBase::InitializeCOM();304 #endif305 292 306 293 for (int i=0; i<argc; i++) … … 464 451 do 465 452 { 466 #ifdef Q_WS_WIN467 /* Check for the COM error after we've initialized Qt */468 if (FAILED (hrc))469 {470 vboxProblem().cannotInitCOM (hrc);471 break;472 }473 #endif474 475 453 if (!vboxGlobal().isValid()) 476 454 break; … … 555 533 } 556 534 557 #ifdef Q_WS_WIN558 /* See COMBase::initializeCOM() above */559 if (SUCCEEDED (hrc))560 COMBase::CleanupCOM();561 #endif562 563 535 LogFlowFunc (("rc=%d\n", rc)); 564 536 LogFlowFuncLeave(); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQImage.cpp
r35613 r35638 67 67 QImage scaledImage; 68 68 69 69 70 /* If scaled-factor is set and current image is NOT null: */ 70 71 if (m_scaledSize.isValid() && !m_img.isNull()) … … 93 94 QPainter painter(m_pMachineView->viewport()); 94 95 96 95 97 if ((ulong)r.width() < m_width * 2 / 3) 96 98 { -
trunk/src/VBox/Main/glue/initterm.cpp
r33540 r35638 247 247 * @return S_OK on success and a COM result code in case of failure. 248 248 */ 249 HRESULT Initialize( )249 HRESULT Initialize(bool fGui) 250 250 { 251 251 HRESULT rc = E_FAIL; … … 253 253 #if !defined(VBOX_WITH_XPCOM) 254 254 255 DWORD flags = COINIT_MULTITHREADED 255 /** 256 * We initialize COM in GUI thread in STA, to be compliant with QT and 257 * OLE requirments (for example to allow D&D), while other threads 258 * initialized in regular MTA. To allow fast proxyless access from 259 * GUI thread to COM objects, we explicitly provide our COM objects 260 * with free threaded marshaller. 261 * !!!!! Please think twice before touching this code !!!!! 262 */ 263 DWORD flags = fGui ? 264 COINIT_APARTMENTTHREADED 265 | COINIT_SPEED_OVER_MEMORY 266 : 267 COINIT_MULTITHREADED 256 268 | COINIT_DISABLE_OLE1DDE 257 269 | COINIT_SPEED_OVER_MEMORY; 258 270 259 271 rc = CoInitializeEx(NULL, flags); 260 261 /// @todo the below rough method of changing the apartment type doesn't262 /// work on some systems for unknown reason (CoUninitialize() simply does263 /// nothing there, or at least all 10 000 of subsequent CoInitializeEx()264 /// continue to return RPC_E_CHANGED_MODE there). The problem on those265 /// systems is related to the "Extend support for advanced text services266 /// to all programs" checkbox in the advanced language settings dialog,267 /// i.e. the problem appears when this checkbox is checked and disappears268 /// if you clear it. For this reason, we disable the code below and269 /// instead initialize COM in MTA as early as possible, before 3rd party270 /// libraries we use have done so (i.e. Qt).271 # if 0272 /* If we fail to set the necessary apartment model, it may mean that some273 * DLL that was indirectly loaded by the process calling this function has274 * already initialized COM on the given thread in an incompatible way275 * which we can't leave with. Therefore, we try to fix this by using the276 * brute force method: */277 278 if (rc == RPC_E_CHANGED_MODE)279 {280 /* Before we use brute force, we need to check if we are in the281 * neutral threaded apartment -- in this case there is no need to282 * worry at all. */283 284 rc = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);285 if (rc == RPC_E_CHANGED_MODE)286 {287 /* This is a neutral apartment, reset the error */288 rc = S_OK;289 290 LogFlowFunc(("COM is already initialized in neutral threaded "291 "apartment mode,\nwill accept it.\n"));292 }293 else if (rc == S_FALSE)294 {295 /* balance the test CoInitializeEx above */296 CoUninitialize();297 rc = RPC_E_CHANGED_MODE;298 299 LogFlowFunc(("COM is already initialized in single threaded "300 "apartment mode,\nwill reinitialize as "301 "multi threaded.\n"));302 303 enum { MaxTries = 10000 };304 int tries = MaxTries;305 while (rc == RPC_E_CHANGED_MODE && tries --)306 {307 CoUninitialize();308 rc = CoInitializeEx(NULL, flags);309 if (rc == S_OK)310 {311 /* We've successfully reinitialized COM; restore the312 * initialization reference counter */313 314 LogFlowFunc(("Will call CoInitializeEx() %d times.\n",315 MaxTries - tries));316 317 while (tries ++ < MaxTries)318 {319 rc = CoInitializeEx(NULL, flags);320 Assert(rc == S_FALSE);321 }322 }323 }324 }325 else326 AssertMsgFailed(("rc=%08X\n", rc));327 }328 # endif329 272 330 273 /* the overall result must be either S_OK or S_FALSE (S_FALSE means … … 342 285 else 343 286 fRc = false; 287 288 if (fGui) 289 Assert(RTThreadIsMain(hSelf)); 290 344 291 if (!fRc) 345 292 { … … 359 306 360 307 #else /* !defined (VBOX_WITH_XPCOM) */ 308 309 /* Unused here */ 310 (void)fGui; 361 311 362 312 if (ASMAtomicXchgBool(&gIsXPCOMInitialized, true) == true) -
trunk/src/VBox/Main/idl/comimpl.xsl
r34393 r35638 67 67 </xsl:variable> 68 68 69 <xsl:value-of select="concat(' COM_INTERFACE_ENTRY(', $name, ') ')" />69 <xsl:value-of select="concat(' VBOX_DEFAULT_INTERFACE_ENTRIES(', $name, ') ')" /> 70 70 <xsl:choose> 71 71 <xsl:when test="$extends='$unknown'"> 72 < xsl:value-of select=" ' COM_INTERFACE_ENTRY(IDispatch) '" />72 <!-- Reached base --> 73 73 </xsl:when> 74 74 <xsl:when test="//interface[@name=$extends]"> -
trunk/src/VBox/Main/include/ApplianceImpl.h
r34101 r35638 68 68 69 69 BEGIN_COM_MAP(Appliance) 70 COM_INTERFACE_ENTRY(ISupportErrorInfo) 71 COM_INTERFACE_ENTRY(IAppliance) 72 COM_INTERFACE_ENTRY(IDispatch) 70 VBOX_DEFAULT_INTERFACE_ENTRIES(IAppliance) 73 71 END_COM_MAP() 74 72 … … 83 81 84 82 // public initializer/uninitializer for internal purposes only 85 HRESULT FinalConstruct() { return S_OK; }86 void FinalRelease() { uninit(); }83 HRESULT FinalConstruct() { return BaseFinalConstruct(); } 84 void FinalRelease() { uninit(); BaseFinalRelease(); } 87 85 88 86 HRESULT init(VirtualBox *aVirtualBox); … … 252 250 253 251 BEGIN_COM_MAP(VirtualSystemDescription) 254 COM_INTERFACE_ENTRY(ISupportErrorInfo) 255 COM_INTERFACE_ENTRY(IVirtualSystemDescription) 256 COM_INTERFACE_ENTRY(IDispatch) 252 VBOX_DEFAULT_INTERFACE_ENTRIES(IVirtualSystemDescription) 257 253 END_COM_MAP() 258 254 … … 260 256 261 257 // public initializer/uninitializer for internal purposes only 262 HRESULT FinalConstruct() { return S_OK; }263 void FinalRelease() { uninit(); }258 HRESULT FinalConstruct() { return BaseFinalConstruct(); } 259 void FinalRelease() { uninit(); BaseFinalRelease(); } 264 260 265 261 HRESULT init(); -
trunk/src/VBox/Main/include/AudioAdapterImpl.h
r30764 r35638 50 50 51 51 BEGIN_COM_MAP(AudioAdapter) 52 COM_INTERFACE_ENTRY(ISupportErrorInfo) 53 COM_INTERFACE_ENTRY(IAudioAdapter) 54 COM_INTERFACE_ENTRY(IDispatch) 52 VBOX_DEFAULT_INTERFACE_ENTRIES(IAudioAdapter) 55 53 END_COM_MAP() 56 54 -
trunk/src/VBox/Main/include/BIOSSettingsImpl.h
r30764 r35638 42 42 43 43 BEGIN_COM_MAP(BIOSSettings) 44 COM_INTERFACE_ENTRY(ISupportErrorInfo) 45 COM_INTERFACE_ENTRY(IBIOSSettings) 46 COM_INTERFACE_ENTRY(IDispatch) 44 VBOX_DEFAULT_INTERFACE_ENTRIES(IBIOSSettings) 47 45 END_COM_MAP() 48 46 -
trunk/src/VBox/Main/include/BandwidthControlImpl.h
r34589 r35638 40 40 41 41 BEGIN_COM_MAP(BandwidthControl) 42 COM_INTERFACE_ENTRY(ISupportErrorInfo) 43 COM_INTERFACE_ENTRY(IBandwidthControl) 44 COM_INTERFACE_ENTRY(IDispatch) 42 VBOX_DEFAULT_INTERFACE_ENTRIES(IBandwidthControl) 45 43 END_COM_MAP() 46 44 -
trunk/src/VBox/Main/include/BandwidthGroupImpl.h
r34587 r35638 34 34 35 35 BEGIN_COM_MAP(BandwidthGroup) 36 COM_INTERFACE_ENTRY(ISupportErrorInfo) 37 COM_INTERFACE_ENTRY(IBandwidthGroup) 38 COM_INTERFACE_ENTRY(IDispatch) 36 VBOX_DEFAULT_INTERFACE_ENTRIES(IBandwidthGroup) 39 37 END_COM_MAP() 40 38 -
trunk/src/VBox/Main/include/ConsoleImpl.h
r35460 r35638 98 98 99 99 BEGIN_COM_MAP(Console) 100 COM_INTERFACE_ENTRY(ISupportErrorInfo) 101 COM_INTERFACE_ENTRY(IConsole) 102 COM_INTERFACE_ENTRY(IDispatch) 100 VBOX_DEFAULT_INTERFACE_ENTRIES(IConsole) 103 101 END_COM_MAP() 104 102 … … 756 754 } 757 755 mCallbackData; 758 COM_STRUCT_OR_CLASS(IEventListener) *mVmList ner;756 COM_STRUCT_OR_CLASS(IEventListener) *mVmListener; 759 757 760 758 friend struct VMTask; -
trunk/src/VBox/Main/include/ConsoleVRDPServer.h
r35374 r35638 242 242 243 243 BEGIN_COM_MAP(VRDEServerInfo) 244 COM_INTERFACE_ENTRY(ISupportErrorInfo) 245 COM_INTERFACE_ENTRY(IVRDEServerInfo) 246 COM_INTERFACE_ENTRY(IDispatch) 244 VBOX_DEFAULT_INTERFACE_ENTRIES(IVRDEServerInfo) 247 245 END_COM_MAP() 248 246 -
trunk/src/VBox/Main/include/DHCPServerImpl.h
r30764 r35638 45 45 46 46 BEGIN_COM_MAP (DHCPServer) 47 COM_INTERFACE_ENTRY (ISupportErrorInfo) 48 COM_INTERFACE_ENTRY (IDHCPServer) 49 COM_INTERFACE_ENTRY (IDispatch) 47 VBOX_DEFAULT_INTERFACE_ENTRIES(IDHCPServer) 50 48 END_COM_MAP() 51 49 -
trunk/src/VBox/Main/include/DisplayImpl.h
r35346 r35638 109 109 110 110 BEGIN_COM_MAP(Display) 111 COM_INTERFACE_ENTRY(ISupportErrorInfo) 112 COM_INTERFACE_ENTRY(IDisplay) 113 COM_INTERFACE_ENTRY2(IDispatch,IDisplay) 111 VBOX_DEFAULT_INTERFACE_ENTRIES(IDisplay) 114 112 COM_INTERFACE_ENTRY(IEventListener) 115 113 END_COM_MAP() -
trunk/src/VBox/Main/include/EventImpl.h
r34402 r35638 34 34 35 35 BEGIN_COM_MAP(VBoxEvent) 36 COM_INTERFACE_ENTRY(ISupportErrorInfo) 37 COM_INTERFACE_ENTRY(IEvent) 38 COM_INTERFACE_ENTRY(IDispatch) 36 VBOX_DEFAULT_INTERFACE_ENTRIES(IEvent) 39 37 END_COM_MAP() 40 38 … … 76 74 77 75 BEGIN_COM_MAP(VBoxVetoEvent) 78 COM_INTERFACE_ENTRY(ISupportErrorInfo)79 76 COM_INTERFACE_ENTRY2(IEvent, IVetoEvent) 80 COM_INTERFACE_ENTRY(IVetoEvent) 81 COM_INTERFACE_ENTRY2(IDispatch, IVetoEvent) 77 VBOX_DEFAULT_INTERFACE_ENTRIES(IVetoEvent) 82 78 END_COM_MAP() 83 79 … … 140 136 141 137 BEGIN_COM_MAP(EventSource) 142 COM_INTERFACE_ENTRY(ISupportErrorInfo) 143 COM_INTERFACE_ENTRY(IEventSource) 144 COM_INTERFACE_ENTRY(IDispatch) 138 VBOX_DEFAULT_INTERFACE_ENTRIES(IEventSource) 145 139 END_COM_MAP() 146 140 -
trunk/src/VBox/Main/include/ExtPackManagerImpl.h
r35523 r35638 37 37 DECLARE_PROTECT_FINAL_CONSTRUCT() 38 38 BEGIN_COM_MAP(ExtPackFile) 39 COM_INTERFACE_ENTRY(ISupportErrorInfo) 40 COM_INTERFACE_ENTRY(IExtPackFile) 39 VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackFile) 41 40 COM_INTERFACE_ENTRY(IExtPackBase) 42 COM_INTERFACE_ENTRY(IDispatch)43 41 END_COM_MAP() 44 42 DECLARE_EMPTY_CTOR_DTOR(ExtPackFile) … … 102 100 DECLARE_PROTECT_FINAL_CONSTRUCT() 103 101 BEGIN_COM_MAP(ExtPack) 104 COM_INTERFACE_ENTRY(ISupportErrorInfo) 105 COM_INTERFACE_ENTRY(IExtPack) 102 VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPack) 106 103 COM_INTERFACE_ENTRY(IExtPackBase) 107 COM_INTERFACE_ENTRY(IDispatch)108 104 END_COM_MAP() 109 105 DECLARE_EMPTY_CTOR_DTOR(ExtPack) … … 193 189 DECLARE_PROTECT_FINAL_CONSTRUCT() 194 190 BEGIN_COM_MAP(ExtPackManager) 195 COM_INTERFACE_ENTRY(ISupportErrorInfo) 196 COM_INTERFACE_ENTRY(IExtPackManager) 197 COM_INTERFACE_ENTRY(IDispatch) 191 VBOX_DEFAULT_INTERFACE_ENTRIES(IExtPackManager) 198 192 END_COM_MAP() 199 193 DECLARE_EMPTY_CTOR_DTOR(ExtPackManager) -
trunk/src/VBox/Main/include/FramebufferImpl.h
r30714 r35638 39 39 40 40 BEGIN_COM_MAP (Framebuffer) 41 COM_INTERFACE_ENTRY (ISupportErrorInfo) 42 COM_INTERFACE_ENTRY (IFramebuffer) 43 COM_INTERFACE_ENTRY (IDispatch) 41 VBOX_DEFAULT_INTERFACE_ENTRIES (IFramebuffer) 44 42 END_COM_MAP() 45 43 -
trunk/src/VBox/Main/include/GuestImpl.h
r35456 r35638 59 59 60 60 BEGIN_COM_MAP(Guest) 61 COM_INTERFACE_ENTRY(ISupportErrorInfo) 62 COM_INTERFACE_ENTRY(IGuest) 63 COM_INTERFACE_ENTRY(IDispatch) 61 VBOX_DEFAULT_INTERFACE_ENTRIES(IGuest) 64 62 END_COM_MAP() 65 63 -
trunk/src/VBox/Main/include/GuestOSTypeImpl.h
r33447 r35638 36 36 37 37 BEGIN_COM_MAP(GuestOSType) 38 COM_INTERFACE_ENTRY(ISupportErrorInfo) 39 COM_INTERFACE_ENTRY(IGuestOSType) 40 COM_INTERFACE_ENTRY(IDispatch) 38 VBOX_DEFAULT_INTERFACE_ENTRIES(IGuestOSType) 41 39 END_COM_MAP() 42 40 -
trunk/src/VBox/Main/include/HostImpl.h
r35429 r35638 46 46 47 47 BEGIN_COM_MAP(Host) 48 COM_INTERFACE_ENTRY(ISupportErrorInfo) 49 COM_INTERFACE_ENTRY(IHost) 50 COM_INTERFACE_ENTRY(IDispatch) 48 VBOX_DEFAULT_INTERFACE_ENTRIES(IHost) 51 49 END_COM_MAP() 52 50 -
trunk/src/VBox/Main/include/HostNetworkInterfaceImpl.h
r30739 r35638 43 43 44 44 BEGIN_COM_MAP (HostNetworkInterface) 45 COM_INTERFACE_ENTRY (ISupportErrorInfo) 46 COM_INTERFACE_ENTRY (IHostNetworkInterface) 47 COM_INTERFACE_ENTRY (IDispatch) 45 VBOX_DEFAULT_INTERFACE_ENTRIES(IHostNetworkInterface) 48 46 END_COM_MAP() 49 47 -
trunk/src/VBox/Main/include/HostUSBDeviceImpl.h
r33540 r35638 181 181 182 182 BEGIN_COM_MAP(HostUSBDevice) 183 COM_INTERFACE_ENTRY(ISupportErrorInfo) 184 COM_INTERFACE_ENTRY(IHostUSBDevice) 183 VBOX_DEFAULT_INTERFACE_ENTRIES(IHostUSBDevice) 185 184 COM_INTERFACE_ENTRY(IUSBDevice) 186 COM_INTERFACE_ENTRY(IDispatch)187 185 END_COM_MAP() 188 186 -
trunk/src/VBox/Main/include/KeyboardImpl.h
r35346 r35638 58 58 59 59 BEGIN_COM_MAP(Keyboard) 60 COM_INTERFACE_ENTRY(ISupportErrorInfo) 61 COM_INTERFACE_ENTRY(IKeyboard) 62 COM_INTERFACE_ENTRY(IDispatch) 60 VBOX_DEFAULT_INTERFACE_ENTRIES(IKeyboard) 63 61 END_COM_MAP() 64 62 -
trunk/src/VBox/Main/include/MachineDebuggerImpl.h
r35506 r35638 38 38 39 39 BEGIN_COM_MAP(MachineDebugger) 40 COM_INTERFACE_ENTRY (ISupportErrorInfo) 41 COM_INTERFACE_ENTRY (IMachineDebugger) 42 COM_INTERFACE_ENTRY (IDispatch) 40 VBOX_DEFAULT_INTERFACE_ENTRIES (IMachineDebugger) 43 41 END_COM_MAP() 44 42 -
trunk/src/VBox/Main/include/MachineImpl.h
r35460 r35638 318 318 319 319 BEGIN_COM_MAP(Machine) 320 COM_INTERFACE_ENTRY(ISupportErrorInfo) 321 COM_INTERFACE_ENTRY(IMachine) 322 COM_INTERFACE_ENTRY(IDispatch) 320 VBOX_DEFAULT_INTERFACE_ENTRIES(IMachine) 323 321 END_COM_MAP() 324 322 … … 903 901 904 902 BEGIN_COM_MAP(SessionMachine) 905 COM_INTERFACE_ENTRY2(IDispatch, IMachine) 906 COM_INTERFACE_ENTRY(ISupportErrorInfo) 907 COM_INTERFACE_ENTRY(IMachine) 903 VBOX_DEFAULT_INTERFACE_ENTRIES(IMachine) 908 904 COM_INTERFACE_ENTRY(IInternalMachineControl) 909 905 END_COM_MAP() … … 1114 1110 1115 1111 BEGIN_COM_MAP(SnapshotMachine) 1116 COM_INTERFACE_ENTRY2(IDispatch, IMachine) 1117 COM_INTERFACE_ENTRY(ISupportErrorInfo) 1118 COM_INTERFACE_ENTRY(IMachine) 1112 VBOX_DEFAULT_INTERFACE_ENTRIES(IMachine) 1119 1113 END_COM_MAP() 1120 1114 -
trunk/src/VBox/Main/include/MediumAttachmentImpl.h
r34587 r35638 34 34 35 35 BEGIN_COM_MAP(MediumAttachment) 36 COM_INTERFACE_ENTRY(ISupportErrorInfo) 37 COM_INTERFACE_ENTRY(IMediumAttachment) 38 COM_INTERFACE_ENTRY(IDispatch) 36 VBOX_DEFAULT_INTERFACE_ENTRIES(IMediumAttachment) 39 37 END_COM_MAP() 40 38 -
trunk/src/VBox/Main/include/MediumFormatImpl.h
r33524 r35638 76 76 77 77 BEGIN_COM_MAP(MediumFormat) 78 COM_INTERFACE_ENTRY(ISupportErrorInfo) 79 COM_INTERFACE_ENTRY(IMediumFormat) 80 COM_INTERFACE_ENTRY(IDispatch) 78 VBOX_DEFAULT_INTERFACE_ENTRIES(IMediumFormat) 81 79 END_COM_MAP() 82 80 -
trunk/src/VBox/Main/include/MediumImpl.h
r35252 r35638 51 51 52 52 BEGIN_COM_MAP(Medium) 53 COM_INTERFACE_ENTRY(ISupportErrorInfo) 54 COM_INTERFACE_ENTRY(IMedium) 55 COM_INTERFACE_ENTRY(IDispatch) 53 VBOX_DEFAULT_INTERFACE_ENTRIES(IMedium) 56 54 END_COM_MAP() 57 55 -
trunk/src/VBox/Main/include/MouseImpl.h
r35346 r35638 47 47 48 48 BEGIN_COM_MAP(Mouse) 49 COM_INTERFACE_ENTRY (ISupportErrorInfo) 50 COM_INTERFACE_ENTRY (IMouse) 51 COM_INTERFACE_ENTRY2 (IDispatch, IMouse) 49 VBOX_DEFAULT_INTERFACE_ENTRIES(IMouse) 52 50 END_COM_MAP() 53 51 -
trunk/src/VBox/Main/include/NATEngineImpl.h
r33825 r35638 74 74 75 75 BEGIN_COM_MAP(NATEngine) 76 COM_INTERFACE_ENTRY (ISupportErrorInfo) 77 COM_INTERFACE_ENTRY (INATEngine) 78 COM_INTERFACE_ENTRY2 (IDispatch, INATEngine) 76 VBOX_DEFAULT_INTERFACE_ENTRIES (INATEngine) 79 77 END_COM_MAP() 80 78 -
trunk/src/VBox/Main/include/NetworkAdapterImpl.h
r31287 r35638 79 79 80 80 BEGIN_COM_MAP(NetworkAdapter) 81 COM_INTERFACE_ENTRY (ISupportErrorInfo) 82 COM_INTERFACE_ENTRY (INetworkAdapter) 83 COM_INTERFACE_ENTRY2 (IDispatch, INetworkAdapter) 81 VBOX_DEFAULT_INTERFACE_ENTRIES (INetworkAdapter) 84 82 END_COM_MAP() 85 83 -
trunk/src/VBox/Main/include/ParallelPortImpl.h
r30764 r35638 39 39 40 40 BEGIN_COM_MAP(ParallelPort) 41 COM_INTERFACE_ENTRY (ISupportErrorInfo) 42 COM_INTERFACE_ENTRY (IParallelPort) 43 COM_INTERFACE_ENTRY2 (IDispatch, IParallelPort) 41 VBOX_DEFAULT_INTERFACE_ENTRIES (IParallelPort) 44 42 END_COM_MAP() 45 43 -
trunk/src/VBox/Main/include/PciDeviceAttachmentImpl.h
r34331 r35638 35 35 36 36 BEGIN_COM_MAP(PciAddress) 37 COM_INTERFACE_ENTRY(ISupportErrorInfo) 38 COM_INTERFACE_ENTRY(IPciAddress) 39 COM_INTERFACE_ENTRY(IDispatch) 37 VBOX_DEFAULT_INTERFACE_ENTRIES(IPciAddress) 40 38 END_COM_MAP() 41 39 … … 99 97 100 98 BEGIN_COM_MAP(PciDeviceAttachment) 101 COM_INTERFACE_ENTRY(ISupportErrorInfo) 102 COM_INTERFACE_ENTRY(IPciDeviceAttachment) 103 COM_INTERFACE_ENTRY(IDispatch) 99 VBOX_DEFAULT_INTERFACE_ENTRIES(IPciDeviceAttachment) 104 100 END_COM_MAP() 105 101 -
trunk/src/VBox/Main/include/PerformanceImpl.h
r30764 r35638 58 58 59 59 BEGIN_COM_MAP (PerformanceMetric) 60 COM_INTERFACE_ENTRY (IPerformanceMetric) 61 COM_INTERFACE_ENTRY (IDispatch) 60 VBOX_DEFAULT_INTERFACE_ENTRIES (IPerformanceMetric) 62 61 END_COM_MAP() 63 62 … … 126 125 127 126 BEGIN_COM_MAP(PerformanceCollector) 128 COM_INTERFACE_ENTRY(ISupportErrorInfo) 129 COM_INTERFACE_ENTRY(IPerformanceCollector) 130 COM_INTERFACE_ENTRY(IDispatch) 127 VBOX_DEFAULT_INTERFACE_ENTRIES(IPerformanceCollector) 131 128 END_COM_MAP() 132 129 -
trunk/src/VBox/Main/include/ProgressCombinedImpl.h
r33540 r35638 77 77 78 78 BEGIN_COM_MAP (CombinedProgress) 79 COM_INTERFACE_ENTRY (ISupportErrorInfo) 80 COM_INTERFACE_ENTRY (IProgress) 81 COM_INTERFACE_ENTRY2 (IDispatch, IProgress) 79 VBOX_DEFAULT_INTERFACE_ENTRIES (IProgress) 82 80 END_COM_MAP() 83 81 -
trunk/src/VBox/Main/include/ProgressImpl.h
r33540 r35638 143 143 144 144 BEGIN_COM_MAP (Progress) 145 COM_INTERFACE_ENTRY (ISupportErrorInfo) 146 COM_INTERFACE_ENTRY (IProgress) 147 COM_INTERFACE_ENTRY2 (IDispatch, IProgress) 145 VBOX_DEFAULT_INTERFACE_ENTRIES (IProgress) 148 146 END_COM_MAP() 149 147 -
trunk/src/VBox/Main/include/ProgressProxyImpl.h
r30739 r35638 38 38 39 39 BEGIN_COM_MAP(ProgressProxy) 40 COM_INTERFACE_ENTRY (ISupportErrorInfo) 41 COM_INTERFACE_ENTRY (IProgress) 42 COM_INTERFACE_ENTRY2(IDispatch, IProgress) 40 VBOX_DEFAULT_INTERFACE_ENTRIES (IProgress) 43 41 END_COM_MAP() 44 42 -
trunk/src/VBox/Main/include/RemoteUSBDeviceImpl.h
r33004 r35638 40 40 41 41 BEGIN_COM_MAP (RemoteUSBDevice) 42 COM_INTERFACE_ENTRY (ISupportErrorInfo)43 42 COM_INTERFACE_ENTRY (IHostUSBDevice) 44 COM_INTERFACE_ENTRY (IUSBDevice) 45 COM_INTERFACE_ENTRY2 (IDispatch, IUSBDevice) 43 VBOX_DEFAULT_INTERFACE_ENTRIES (IUSBDevice) 46 44 END_COM_MAP() 47 45 -
trunk/src/VBox/Main/include/SerialPortImpl.h
r30764 r35638 42 42 43 43 BEGIN_COM_MAP(SerialPort) 44 COM_INTERFACE_ENTRY (ISupportErrorInfo) 45 COM_INTERFACE_ENTRY (ISerialPort) 46 COM_INTERFACE_ENTRY2 (IDispatch, ISerialPort) 44 VBOX_DEFAULT_INTERFACE_ENTRIES (ISerialPort) 47 45 END_COM_MAP() 48 46 -
trunk/src/VBox/Main/include/SessionImpl.h
r34587 r35638 34 34 #endif 35 35 36 #ifdef RT_OS_WINDOWS 37 [threading(free)] 38 #endif 36 39 class ATL_NO_VTABLE Session : 37 40 public VirtualBoxBase, … … 54 57 55 58 BEGIN_COM_MAP(Session) 56 COM_INTERFACE_ENTRY2(IDispatch,ISession)59 VBOX_DEFAULT_INTERFACE_ENTRIES(ISession) 57 60 COM_INTERFACE_ENTRY2(IDispatch, IInternalSessionControl) 58 61 COM_INTERFACE_ENTRY(IInternalSessionControl) 59 COM_INTERFACE_ENTRY(ISupportErrorInfo)60 COM_INTERFACE_ENTRY(ISession)61 62 END_COM_MAP() 62 63 -
trunk/src/VBox/Main/include/SharedFolderImpl.h
r33708 r35638 48 48 49 49 BEGIN_COM_MAP(SharedFolder) 50 COM_INTERFACE_ENTRY (ISupportErrorInfo) 51 COM_INTERFACE_ENTRY (ISharedFolder) 52 COM_INTERFACE_ENTRY2 (IDispatch, ISharedFolder) 50 VBOX_DEFAULT_INTERFACE_ENTRIES (ISharedFolder) 53 51 END_COM_MAP() 54 52 -
trunk/src/VBox/Main/include/SnapshotImpl.h
r31539 r35638 44 44 45 45 BEGIN_COM_MAP(Snapshot) 46 COM_INTERFACE_ENTRY (ISupportErrorInfo) 47 COM_INTERFACE_ENTRY (ISnapshot) 48 COM_INTERFACE_ENTRY2 (IDispatch, ISnapshot) 46 VBOX_DEFAULT_INTERFACE_ENTRIES (ISnapshot) 49 47 END_COM_MAP() 50 48 -
trunk/src/VBox/Main/include/StorageControllerImpl.h
r34010 r35638 36 36 37 37 BEGIN_COM_MAP(StorageController) 38 COM_INTERFACE_ENTRY (ISupportErrorInfo) 39 COM_INTERFACE_ENTRY (IStorageController) 40 COM_INTERFACE_ENTRY2 (IDispatch, IStorageController) 38 VBOX_DEFAULT_INTERFACE_ENTRIES (IStorageController) 41 39 END_COM_MAP() 42 40 -
trunk/src/VBox/Main/include/SystemPropertiesImpl.h
r34244 r35638 46 46 47 47 BEGIN_COM_MAP(SystemProperties) 48 COM_INTERFACE_ENTRY(ISupportErrorInfo) 49 COM_INTERFACE_ENTRY(ISystemProperties) 50 COM_INTERFACE_ENTRY2(IDispatch, ISystemProperties) 48 VBOX_DEFAULT_INTERFACE_ENTRIES (ISystemProperties) 51 49 END_COM_MAP() 52 50 -
trunk/src/VBox/Main/include/USBControllerImpl.h
r30764 r35638 43 43 44 44 BEGIN_COM_MAP(USBController) 45 COM_INTERFACE_ENTRY (ISupportErrorInfo) 46 COM_INTERFACE_ENTRY (IUSBController) 47 COM_INTERFACE_ENTRY2 (IDispatch, IUSBController) 45 VBOX_DEFAULT_INTERFACE_ENTRIES (IUSBController) 48 46 END_COM_MAP() 49 47 -
trunk/src/VBox/Main/include/USBDeviceFilterImpl.h
r31892 r35638 74 74 75 75 BEGIN_COM_MAP(USBDeviceFilter) 76 COM_INTERFACE_ENTRY (ISupportErrorInfo) 77 COM_INTERFACE_ENTRY (IUSBDeviceFilter) 78 COM_INTERFACE_ENTRY2 (IDispatch, IUSBDeviceFilter) 76 VBOX_DEFAULT_INTERFACE_ENTRIES (IUSBDeviceFilter) 79 77 END_COM_MAP() 80 78 … … 180 178 181 179 BEGIN_COM_MAP(HostUSBDeviceFilter) 182 COM_INTERFACE_ENTRY(IDispatch)183 COM_INTERFACE_ENTRY(ISupportErrorInfo)184 180 COM_INTERFACE_ENTRY(IUSBDeviceFilter) 185 COM_INTERFACE_ENTRY(IHostUSBDeviceFilter)181 VBOX_DEFAULT_INTERFACE_ENTRIES(IHostUSBDeviceFilter) 186 182 END_COM_MAP() 187 183 -
trunk/src/VBox/Main/include/USBDeviceImpl.h
r30739 r35638 39 39 40 40 BEGIN_COM_MAP(OUSBDevice) 41 COM_INTERFACE_ENTRY (ISupportErrorInfo) 42 COM_INTERFACE_ENTRY (IUSBDevice) 43 COM_INTERFACE_ENTRY2 (IDispatch, IUSBDevice) 41 VBOX_DEFAULT_INTERFACE_ENTRIES (IUSBDevice) 44 42 END_COM_MAP() 45 43 -
trunk/src/VBox/Main/include/VFSExplorerImpl.h
r33461 r35638 34 34 35 35 BEGIN_COM_MAP(VFSExplorer) 36 COM_INTERFACE_ENTRY(ISupportErrorInfo) 37 COM_INTERFACE_ENTRY(IVFSExplorer) 38 COM_INTERFACE_ENTRY(IDispatch) 36 VBOX_DEFAULT_INTERFACE_ENTRIES(IVFSExplorer) 39 37 END_COM_MAP() 40 38 … … 42 40 43 41 // public initializer/uninitializer for internal purposes only 44 HRESULT FinalConstruct() { return S_OK; }45 void FinalRelease() { uninit(); }42 HRESULT FinalConstruct() { return BaseFinalConstruct(); } 43 void FinalRelease() { uninit(); BaseFinalRelease(); } 46 44 47 45 HRESULT init(VFSType_T aType, Utf8Str aFilePath, Utf8Str aHostname, Utf8Str aUsername, Utf8Str aPassword, VirtualBox *aVirtualBox); -
trunk/src/VBox/Main/include/VRDEServerImpl.h
r35146 r35638 51 51 52 52 BEGIN_COM_MAP(VRDEServer) 53 COM_INTERFACE_ENTRY (ISupportErrorInfo) 54 COM_INTERFACE_ENTRY (IVRDEServer) 55 COM_INTERFACE_ENTRY2 (IDispatch, IVRDEServer) 53 VBOX_DEFAULT_INTERFACE_ENTRIES(IVRDEServer) 56 54 END_COM_MAP() 57 55 -
trunk/src/VBox/Main/include/VirtualBoxBase.h
r35420 r35638 638 638 #endif 639 639 { 640 protected: 641 #ifdef RT_OS_WINDOWS 642 CComPtr <IUnknown> m_pUnkMarshaler; 643 #endif 644 645 HRESULT BaseFinalConstruct() 646 { 647 #ifdef RT_OS_WINDOWS 648 return CoCreateFreeThreadedMarshaler(this, //GetControllingUnknown(), 649 &m_pUnkMarshaler.p); 650 #else 651 return S_OK; 652 #endif 653 } 654 655 void BaseFinalRelease() 656 { 657 #ifdef RT_OS_WINDOWS 658 m_pUnkMarshaler.Release(); 659 #endif 660 } 661 662 640 663 public: 641 664 enum State { NotReady, Ready, InInit, InUninit, InitFailed, Limited }; -
trunk/src/VBox/Main/include/VirtualBoxClientImpl.h
r35135 r35638 46 46 47 47 BEGIN_COM_MAP(VirtualBoxClient) 48 COM_INTERFACE_ENTRY2(IDispatch, IVirtualBoxClient) 49 COM_INTERFACE_ENTRY(ISupportErrorInfo) 50 COM_INTERFACE_ENTRY(IVirtualBoxClient) 48 VBOX_DEFAULT_INTERFACE_ENTRIES(IVirtualBoxClient) 51 49 END_COM_MAP() 52 50 -
trunk/src/VBox/Main/include/VirtualBoxImpl.h
r35608 r35638 57 57 struct MediaRegistry; 58 58 } 59 60 59 class ATL_NO_VTABLE VirtualBox : 61 60 public VirtualBoxBase, … … 83 82 84 83 BEGIN_COM_MAP(VirtualBox) 85 COM_INTERFACE_ENTRY2(IDispatch, IVirtualBox) 86 COM_INTERFACE_ENTRY(ISupportErrorInfo) 87 COM_INTERFACE_ENTRY(IVirtualBox) 84 VBOX_DEFAULT_INTERFACE_ENTRIES(IVirtualBox) 88 85 END_COM_MAP() 89 86 -
trunk/src/VBox/Main/src-all/EventImpl.cpp
r35368 r35638 86 86 { 87 87 m = new Data; 88 return S_OK;88 return BaseFinalConstruct(); 89 89 } 90 90 … … 96 96 delete m; 97 97 m = 0; 98 BaseFinalRelease(); 98 99 } 99 100 } … … 911 912 { 912 913 m = new Data; 913 return S_OK;914 return BaseFinalConstruct(); 914 915 } 915 916 … … 918 919 uninit(); 919 920 delete m; 921 BaseFinalRelease(); 920 922 } 921 923 … … 1184 1186 1185 1187 BEGIN_COM_MAP(PassiveEventListener) 1186 COM_INTERFACE_ENTRY(ISupportErrorInfo) 1187 COM_INTERFACE_ENTRY(IEventListener) 1188 COM_INTERFACE_ENTRY(IDispatch) 1188 VBOX_DEFAULT_INTERFACE_ENTRIES(IEventListener) 1189 1189 END_COM_MAP() 1190 1190 … … 1196 1196 HRESULT FinalConstruct() 1197 1197 { 1198 return S_OK;1198 return BaseFinalConstruct(); 1199 1199 } 1200 1200 void FinalRelease() 1201 {} 1201 { 1202 BaseFinalRelease(); 1203 } 1202 1204 1203 1205 // IEventListener methods … … 1224 1226 1225 1227 BEGIN_COM_MAP(ProxyEventListener) 1226 COM_INTERFACE_ENTRY(ISupportErrorInfo) 1227 COM_INTERFACE_ENTRY(IEventListener) 1228 COM_INTERFACE_ENTRY(IDispatch) 1228 VBOX_DEFAULT_INTERFACE_ENTRIES(IEventListener) 1229 1229 END_COM_MAP() 1230 1230 … … 1236 1236 HRESULT FinalConstruct() 1237 1237 { 1238 return S_OK;1238 return BaseFinalConstruct(); 1239 1239 } 1240 1240 void FinalRelease() 1241 {} 1241 { 1242 BaseFinalRelease(); 1243 } 1242 1244 1243 1245 HRESULT init(IEventSource* aSource) … … 1279 1281 1280 1282 BEGIN_COM_MAP(EventSourceAggregator) 1281 COM_INTERFACE_ENTRY(ISupportErrorInfo) 1282 COM_INTERFACE_ENTRY(IEventSource) 1283 COM_INTERFACE_ENTRY(IDispatch) 1283 VBOX_DEFAULT_INTERFACE_ENTRIES(IEventSource) 1284 1284 END_COM_MAP() 1285 1285 … … 1291 1291 HRESULT FinalConstruct() 1292 1292 { 1293 return S_OK;1293 return BaseFinalConstruct(); 1294 1294 } 1295 1295 void FinalRelease() … … 1298 1298 mListenerProxies.clear(); 1299 1299 mSource->uninit(); 1300 BaseFinalRelease(); 1300 1301 } 1301 1302 -
trunk/src/VBox/Main/src-all/ExtPackManagerImpl.cpp
r35523 r35638 212 212 { 213 213 m = NULL; 214 return S_OK;214 return BaseFinalConstruct(); 215 215 } 216 216 … … 331 331 { 332 332 uninit(); 333 BaseFinalRelease(); 333 334 } 334 335 -
trunk/src/VBox/Main/src-all/PciDeviceAttachmentImpl.cpp
r35368 r35638 50 50 { 51 51 LogFlowThisFunc(("\n")); 52 return S_OK;52 return BaseFinalConstruct(); 53 53 } 54 54 … … 57 57 LogFlowThisFunc(("\n")); 58 58 uninit(); 59 BaseFinalRelease(); 59 60 } 60 61 -
trunk/src/VBox/Main/src-all/ProgressImpl.cpp
r35368 r35638 82 82 m_pvCancelUserArg = NULL; 83 83 84 return S_OK;84 return BaseFinalConstruct(); 85 85 } 86 86 … … 593 593 { 594 594 uninit(); 595 BaseFinalRelease(); 595 596 } 596 597 … … 1244 1245 mCompletedOperations = 0; 1245 1246 1246 return S_OK;1247 return BaseFinalConstruct(); 1247 1248 } 1248 1249 … … 1250 1251 { 1251 1252 uninit(); 1253 BaseFinalRelease(); 1252 1254 } 1253 1255 -
trunk/src/VBox/Main/src-all/SharedFolderImpl.cpp
r35368 r35638 45 45 HRESULT SharedFolder::FinalConstruct() 46 46 { 47 return S_OK;47 return BaseFinalConstruct(); 48 48 } 49 49 … … 51 51 { 52 52 uninit(); 53 BaseFinalRelease(); 53 54 } 54 55 -
trunk/src/VBox/Main/src-client/ConsoleImpl.cpp
r35563 r35638 379 379 mpVmm2UserMethods = pVmm2UserMethods; 380 380 381 return S_OK;381 return BaseFinalConstruct(); 382 382 } 383 383 … … 387 387 388 388 uninit(); 389 390 BaseFinalRelease(); 389 391 } 390 392 … … 486 488 rc = pVirtualBox->COMGETTER(EventSource)(pES.asOutParam()); 487 489 AssertComRC(rc); 488 mVmList ner = new VmEventListenerImpl(this);490 mVmListener = new VmEventListenerImpl(this); 489 491 com::SafeArray<VBoxEventType_T> eventTypes; 490 492 eventTypes.push_back(VBoxEventType_OnNATRedirect); 491 rc = pES->RegisterListener(mVmList ner, ComSafeArrayAsInParam(eventTypes), true);493 rc = pES->RegisterListener(mVmListener, ComSafeArrayAsInParam(eventTypes), true); 492 494 AssertComRC(rc); 493 495 } … … 525 527 526 528 LogFlowThisFunc(("initFailed()=%d\n", autoUninitSpan.initFailed())); 527 if (mVmList ner)529 if (mVmListener) 528 530 { 529 531 ComPtr<IEventSource> pES; … … 537 539 if (!pES.isNull()) 538 540 { 539 rc = pES->UnregisterListener(mVmListner); 540 AssertComRC(rc); 541 rc = pES->UnregisterListener(mVmListener); 542 // XXX: for some reasons we're getting VBOX_E_OBJECT_NOT_FOUND 543 // here - investigate 544 //AssertComRC(rc); 541 545 } 542 546 } 543 mVmListner->Release(); 547 mVmListener->Release(); 548 mVmListener = 0; 544 549 } 545 550 -
trunk/src/VBox/Main/src-client/ConsoleVRDPServer.cpp
r35368 r35638 2411 2411 HRESULT VRDEServerInfo::FinalConstruct() 2412 2412 { 2413 return S_OK;2413 return BaseFinalConstruct(); 2414 2414 } 2415 2415 … … 2417 2417 { 2418 2418 uninit(); 2419 BaseFinalRelease(); 2419 2420 } 2420 2421 -
trunk/src/VBox/Main/src-client/DisplayImpl.cpp
r35633 r35638 124 124 #endif 125 125 126 return S_OK;126 return BaseFinalConstruct(); 127 127 } 128 128 … … 136 136 memset (&mVBVALock, 0, sizeof (mVBVALock)); 137 137 } 138 BaseFinalRelease(); 138 139 } 139 140 -
trunk/src/VBox/Main/src-client/GuestImpl.cpp
r35368 r35638 44 44 HRESULT Guest::FinalConstruct() 45 45 { 46 return S_OK;46 return BaseFinalConstruct(); 47 47 } 48 48 … … 50 50 { 51 51 uninit (); 52 BaseFinalRelease(); 52 53 } 53 54 -
trunk/src/VBox/Main/src-client/KeyboardImpl.cpp
r35368 r35638 82 82 mpVMMDev = NULL; 83 83 mfVMMDevInited = false; 84 return S_OK;84 return BaseFinalConstruct(); 85 85 } 86 86 … … 88 88 { 89 89 uninit(); 90 BaseFinalRelease(); 90 91 } 91 92 -
trunk/src/VBox/Main/src-client/MachineDebuggerImpl.cpp
r35586 r35638 56 56 { 57 57 unconst(mParent) = NULL; 58 return S_OK;58 return BaseFinalConstruct(); 59 59 } 60 60 … … 62 62 { 63 63 uninit(); 64 BaseFinalRelease(); 64 65 } 65 66 -
trunk/src/VBox/Main/src-client/MouseImpl.cpp
r35368 r35638 79 79 mfLastButtons = 0; 80 80 mfVMMDevGuestCaps = 0; 81 return S_OK;81 return BaseFinalConstruct(); 82 82 } 83 83 … … 85 85 { 86 86 uninit(); 87 BaseFinalRelease(); 87 88 } 88 89 -
trunk/src/VBox/Main/src-client/RemoteUSBDeviceImpl.cpp
r35368 r35638 38 38 HRESULT RemoteUSBDevice::FinalConstruct() 39 39 { 40 return S_OK;40 return BaseFinalConstruct(); 41 41 } 42 42 … … 44 44 { 45 45 uninit(); 46 BaseFinalRelease(); 46 47 } 47 48 -
trunk/src/VBox/Main/src-client/SessionImpl.cpp
r35368 r35638 57 57 LogFlowThisFunc(("\n")); 58 58 59 return init(); 59 HRESULT rc = init(); 60 61 BaseFinalConstruct(); 62 63 return rc; 60 64 } 61 65 … … 65 69 66 70 uninit(); 71 72 BaseFinalRelease(); 67 73 } 68 74 … … 182 188 HRESULT rc; 183 189 if (mConsole) 184 190 rc = mConsole->machine().queryInterfaceTo(aMachine); 185 191 else 186 rc = mRemoteMachine.queryInterfaceTo(aMachine);192 rc = mRemoteMachine.queryInterfaceTo(aMachine); 187 193 if (FAILED(rc)) 188 194 { … … 215 221 else 216 222 rc = mRemoteConsole.queryInterfaceTo(aConsole); 223 217 224 if (FAILED(rc)) 218 225 { -
trunk/src/VBox/Main/src-client/USBDeviceImpl.cpp
r35368 r35638 30 30 HRESULT OUSBDevice::FinalConstruct() 31 31 { 32 return S_OK;32 return BaseFinalConstruct(); 33 33 } 34 34 … … 36 36 { 37 37 uninit (); 38 BaseFinalRelease(); 38 39 } 39 40 -
trunk/src/VBox/Main/src-client/VirtualBoxClientImpl.cpp
r35368 r35638 42 42 HRESULT VirtualBoxClient::FinalConstruct() 43 43 { 44 return init(); 44 HRESULT rc = init(); 45 BaseFinalConstruct(); 46 return rc; 45 47 } 46 48 … … 48 50 { 49 51 uninit(); 52 BaseFinalRelease(); 50 53 } 51 54 -
trunk/src/VBox/Main/src-server/AudioAdapterImpl.cpp
r35368 r35638 41 41 HRESULT AudioAdapter::FinalConstruct() 42 42 { 43 return S_OK;43 return BaseFinalConstruct(); 44 44 } 45 45 … … 47 47 { 48 48 uninit(); 49 BaseFinalRelease(); 49 50 } 50 51 -
trunk/src/VBox/Main/src-server/BIOSSettingsImpl.cpp
r35368 r35638 51 51 HRESULT BIOSSettings::FinalConstruct() 52 52 { 53 return S_OK;53 return BaseFinalConstruct(); 54 54 } 55 55 … … 57 57 { 58 58 uninit (); 59 BaseFinalRelease(); 59 60 } 60 61 -
trunk/src/VBox/Main/src-server/BandwidthControlImpl.cpp
r35368 r35638 56 56 HRESULT BandwidthControl::FinalConstruct() 57 57 { 58 return S_OK;58 return BaseFinalConstruct(); 59 59 } 60 60 … … 62 62 { 63 63 uninit(); 64 BaseFinalRelease(); 64 65 } 65 66 -
trunk/src/VBox/Main/src-server/BandwidthGroupImpl.cpp
r35368 r35638 64 64 HRESULT BandwidthGroup::FinalConstruct() 65 65 { 66 return S_OK;66 return BaseFinalConstruct(); 67 67 } 68 68 … … 70 70 { 71 71 uninit(); 72 BaseFinalRelease(); 72 73 } 73 74 -
trunk/src/VBox/Main/src-server/DHCPServerImpl.cpp
r35368 r35638 43 43 HRESULT DHCPServer::FinalConstruct() 44 44 { 45 return S_OK;45 return BaseFinalConstruct(); 46 46 } 47 47 … … 49 49 { 50 50 uninit (); 51 52 BaseFinalRelease(); 51 53 } 52 54 -
trunk/src/VBox/Main/src-server/GuestOSTypeImpl.cpp
r35368 r35638 46 46 HRESULT GuestOSType::FinalConstruct() 47 47 { 48 return S_OK;48 return BaseFinalConstruct(); 49 49 } 50 50 … … 52 52 { 53 53 uninit(); 54 55 BaseFinalRelease(); 54 56 } 55 57 -
trunk/src/VBox/Main/src-server/HostImpl.cpp
r35429 r35638 221 221 HRESULT Host::FinalConstruct() 222 222 { 223 return S_OK;223 return BaseFinalConstruct(); 224 224 } 225 225 … … 227 227 { 228 228 uninit(); 229 BaseFinalRelease(); 229 230 } 230 231 -
trunk/src/VBox/Main/src-server/HostNetworkInterfaceImpl.cpp
r35368 r35638 43 43 HRESULT HostNetworkInterface::FinalConstruct() 44 44 { 45 return S_OK;45 return BaseFinalConstruct(); 46 46 } 47 47 … … 49 49 { 50 50 uninit (); 51 BaseFinalRelease(); 51 52 } 52 53 -
trunk/src/VBox/Main/src-server/HostUSBDeviceImpl.cpp
r35368 r35638 40 40 mUsb = NULL; 41 41 42 return S_OK;42 return BaseFinalConstruct(); 43 43 } 44 44 … … 46 46 { 47 47 uninit(); 48 BaseFinalRelease(); 48 49 } 49 50 -
trunk/src/VBox/Main/src-server/MachineImpl.cpp
r35610 r35638 235 235 { 236 236 LogFlowThisFunc(("\n")); 237 return S_OK;237 return BaseFinalConstruct(); 238 238 } 239 239 … … 242 242 LogFlowThisFunc(("\n")); 243 243 uninit(); 244 BaseFinalRelease(); 244 245 } 245 246 … … 9944 9945 #endif 9945 9946 9946 return S_OK;9947 return BaseFinalConstruct(); 9947 9948 } 9948 9949 … … 9952 9953 9953 9954 uninit(Uninit::Unexpected); 9955 9956 BaseFinalRelease(); 9954 9957 } 9955 9958 -
trunk/src/VBox/Main/src-server/MediumAttachmentImpl.cpp
r35368 r35638 78 78 { 79 79 LogFlowThisFunc(("\n")); 80 return S_OK;80 return BaseFinalConstruct(); 81 81 } 82 82 … … 85 85 LogFlowThisFuncEnter(); 86 86 uninit(); 87 BaseFinalRelease(); 87 88 LogFlowThisFuncLeave(); 88 89 } -
trunk/src/VBox/Main/src-server/MediumFormatImpl.cpp
r35368 r35638 32 32 HRESULT MediumFormat::FinalConstruct() 33 33 { 34 return S_OK;34 return BaseFinalConstruct(); 35 35 } 36 36 … … 38 38 { 39 39 uninit(); 40 41 BaseFinalRelease(); 40 42 } 41 43 -
trunk/src/VBox/Main/src-server/MediumImpl.cpp
r35553 r35638 897 897 AssertRCReturn(vrc, E_FAIL); 898 898 899 return S_OK;899 return BaseFinalConstruct(); 900 900 } 901 901 … … 905 905 906 906 delete m; 907 908 BaseFinalRelease(); 907 909 } 908 910 -
trunk/src/VBox/Main/src-server/NATEngineImpl.cpp
r35577 r35638 101 101 unconst(mParent) = aParent; 102 102 autoInitSpan.setSucceeded(); 103 return S_OK;103 return BaseFinalConstruct(); 104 104 } 105 105 … … 108 108 { 109 109 uninit(); 110 BaseFinalRelease(); 110 111 } 111 112 -
trunk/src/VBox/Main/src-server/NetworkAdapterImpl.cpp
r35368 r35638 46 46 { 47 47 48 return S_OK;48 return BaseFinalConstruct(); 49 49 } 50 50 … … 52 52 { 53 53 uninit(); 54 BaseFinalRelease(); 54 55 } 55 56 -
trunk/src/VBox/Main/src-server/ParallelPortImpl.cpp
r35368 r35638 55 55 HRESULT ParallelPort::FinalConstruct() 56 56 { 57 return S_OK;57 return BaseFinalConstruct(); 58 58 } 59 59 … … 61 61 { 62 62 uninit(); 63 BaseFinalRelease(); 63 64 } 64 65 -
trunk/src/VBox/Main/src-server/PerformanceImpl.cpp
r35368 r35638 133 133 LogFlowThisFunc(("\n")); 134 134 135 return S_OK;135 return BaseFinalConstruct(); 136 136 } 137 137 … … 139 139 { 140 140 LogFlowThisFunc(("\n")); 141 BaseFinalRelease(); 141 142 } 142 143 … … 647 648 LogFlowThisFunc(("\n")); 648 649 649 return S_OK;650 return BaseFinalConstruct(); 650 651 } 651 652 … … 655 656 656 657 uninit (); 658 659 BaseFinalRelease(); 657 660 } 658 661 -
trunk/src/VBox/Main/src-server/ProgressProxyImpl.cpp
r35518 r35638 135 135 muOtherProgressWeight = 0; 136 136 muOtherProgressStartOperation = 0; 137 138 BaseFinalRelease(); 137 139 } 138 140 -
trunk/src/VBox/Main/src-server/SerialPortImpl.cpp
r35368 r35638 58 58 HRESULT SerialPort::FinalConstruct() 59 59 { 60 return S_OK;60 return BaseFinalConstruct(); 61 61 } 62 62 … … 64 64 { 65 65 uninit(); 66 BaseFinalRelease(); 66 67 } 67 68 -
trunk/src/VBox/Main/src-server/SnapshotImpl.cpp
r35602 r35638 109 109 { 110 110 LogFlowThisFunc(("\n")); 111 return S_OK;111 return BaseFinalConstruct(); 112 112 } 113 113 … … 116 116 LogFlowThisFunc(("\n")); 117 117 uninit(); 118 BaseFinalRelease(); 118 119 } 119 120 … … 889 890 LogFlowThisFunc(("\n")); 890 891 891 return S_OK;892 return BaseFinalConstruct(); 892 893 } 893 894 … … 897 898 898 899 uninit(); 900 901 BaseFinalRelease(); 899 902 } 900 903 -
trunk/src/VBox/Main/src-server/StorageControllerImpl.cpp
r35368 r35638 105 105 HRESULT StorageController::FinalConstruct() 106 106 { 107 return S_OK;107 return BaseFinalConstruct(); 108 108 } 109 109 … … 111 111 { 112 112 uninit(); 113 BaseFinalRelease(); 113 114 } 114 115 -
trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp
r35368 r35638 62 62 HRESULT SystemProperties::FinalConstruct() 63 63 { 64 return S_OK;64 return BaseFinalConstruct(); 65 65 } 66 66 … … 68 68 { 69 69 uninit(); 70 BaseFinalRelease(); 70 71 } 71 72 -
trunk/src/VBox/Main/src-server/USBControllerImpl.cpp
r35368 r35638 90 90 HRESULT USBController::FinalConstruct() 91 91 { 92 return S_OK;92 return BaseFinalConstruct(); 93 93 } 94 94 … … 96 96 { 97 97 uninit(); 98 BaseFinalRelease(); 98 99 } 99 100 -
trunk/src/VBox/Main/src-server/USBDeviceFilterImpl.cpp
r35368 r35638 187 187 HRESULT USBDeviceFilter::FinalConstruct() 188 188 { 189 return S_OK;189 return BaseFinalConstruct(); 190 190 } 191 191 … … 193 193 { 194 194 uninit(); 195 BaseFinalRelease(); 195 196 } 196 197 -
trunk/src/VBox/Main/src-server/VRDEServerImpl.cpp
r35368 r35638 56 56 HRESULT VRDEServer::FinalConstruct() 57 57 { 58 return S_OK;58 return BaseFinalConstruct(); 59 59 } 60 60 … … 62 62 { 63 63 uninit(); 64 BaseFinalRelease(); 64 65 } 65 66 -
trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp
r35608 r35638 344 344 LogFlowThisFunc(("\n")); 345 345 346 return init(); 346 HRESULT rc = init(); 347 348 BaseFinalConstruct(); 349 350 return rc; 347 351 } 348 352 … … 352 356 353 357 uninit(); 358 359 BaseFinalRelease(); 354 360 } 355 361
Note:
See TracChangeset
for help on using the changeset viewer.