Changeset 66274 in vbox
- Timestamp:
- Mar 28, 2017 12:19:45 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114198
- Location:
- trunk
- Files:
-
- 1 added
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Config.kmk
r66178 r66274 913 913 # the next line. 914 914 VBOX_WITH_STRICT_LOCKS = 1 915 ## VBoxSDS is the bridge windows service that sits between 916 # VirtualBox object client and VBoxSVC that fixes problem 917 # when multiple VBoxSVC starts for the same user 918 # it is enabled for windows build only 919 ifdef VBOX_WITH_SDS 920 ifneq ($(KBUILD_TARGET),win) 921 VBOX_WITH_SDS = 922 endif 923 endif 924 # disabled by default 925 VBOX_WITH_SDS = 915 926 916 927 -
trunk/include/VBox/log.h
r66140 r66274 638 638 /** Main group, IVirtualBoxClient. */ 639 639 LOG_GROUP_MAIN_VIRTUALBOXCLIENT, 640 /** Main group, IVirtualBoxSDS. */ 641 LOG_GROUP_MAIN_VIRTUALBOXSDS, 640 642 /** Main group, IVirtualSystemDescription. */ 641 643 LOG_GROUP_MAIN_VIRTUALSYSTEMDESCRIPTION, … … 1104 1106 "MAIN_VIRTUALBOX", \ 1105 1107 "MAIN_VIRTUALBOXCLIENT", \ 1108 "MAIN_VIRTUALBOXSDS", \ 1106 1109 "MAIN_VIRTUALSYSTEMDESCRIPTION", \ 1107 1110 "MAIN_VRDESERVER", \ -
trunk/include/iprt/log.h
r62896 r66274 1664 1664 #endif 1665 1665 1666 /** @def LogRelFlowThisFunc 1667 * The same as LogRelFlowFunc but for class functions (methods): the resulting 1668 * log line is additionally prepended with a hex value of |this| pointer. 1669 */ 1670 #ifdef LOG_USE_C99 1671 # define LogRelFlowThisFunc(a) \ 1672 _LogRelIt(RTLOGGRPFLAGS_FLOW, LOG_GROUP, "{%p} " LOG_FN_FMT ": %M", this, __PRETTY_FUNCTION__, _LogRemoveParentheseis a ) 1673 #else 1674 # define LogRelFlowThisFunc(a) do { LogRelFlow(("{%p} " LOG_FN_FMT ": ", this, __PRETTY_FUNCTION__)); LogRelFlow(a); } while (0) 1675 #endif 1676 1677 1678 /** Shortcut to |LogRelFlowFunc ("ENTER\n")|, marks the beginnig of the function. */ 1679 #define LogRelFlowFuncEnter() LogRelFlowFunc(("ENTER\n")) 1680 1681 /** Shortcut to |LogRelFlowFunc ("LEAVE\n")|, marks the end of the function. */ 1682 #define LogRelFlowFuncLeave() LogRelFlowFunc(("LEAVE\n")) 1683 1684 /** Shortcut to |LogRelFlowFunc ("LEAVE: %Rrc\n")|, marks the end of the function. */ 1685 #define LogRelFlowFuncLeaveRC(rc) LogRelFlowFunc(("LEAVE: %Rrc\n", (rc))) 1686 1687 /** Shortcut to |LogRelFlowThisFunc ("ENTER\n")|, marks the beginnig of the function. */ 1688 #define LogRelFlowThisFuncEnter() LogRelFlowThisFunc(("ENTER\n")) 1689 1690 /** Shortcut to |LogRelFlowThisFunc ("LEAVE\n")|, marks the end of the function. */ 1691 #define LogRelFlowThisFuncLeave() LogRelFlowThisFunc(("LEAVE\n")) 1692 1666 1693 /** @} */ 1667 1694 -
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r66183 r66274 144 144 $(if $(VBOX_GUI_WITH_KEYS_RESET_HANDLER),VBOX_GUI_WITH_KEYS_RESET_HANDLER) \ 145 145 $(if $(VBOX_GUI_WITH_CUSTOMIZATIONS1),VBOX_GUI_WITH_CUSTOMIZATIONS1) \ 146 $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE) 146 $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE) \ 147 $(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,) 147 148 ifdef VBOX_WITH_DEBUGGER_GUI 148 149 VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI … … 982 983 $(call MSG_GENERATE,VirtualBox,$<,$@) 983 984 $(QUIET)$(RM) -f -- "$@" "$(PATH_TARGET)/VirtualBoxComWrapperFiles.dep" 984 $(QUIET)$(VBOX_XSLTPROC) -o $@ $(VBOX_VIRTUALBOX4_SRC)/src/globals/COMWrappers.xsl $< 985 $(QUIET)$(VBOX_XSLTPROC) -o $@ \ 986 $(VBOX_VIRTUALBOX4_SRC)/src/globals/COMWrappers.xsl $< 985 987 $(QUIET)$(VBOX_FILESPLIT) $@ $(VirtualBox_0_OUTDIR)/include \ 986 988 $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep VirtualBox_VBOX_COMWRAPPERS -
trunk/src/VBox/Frontends/VirtualBox/src/globals/COMWrappers.xsl
r64338 r66274 56 56 <xsl:template match="*"/> 57 57 <xsl:template match="*|/" mode="declare"/> 58 <xsl:template match="*|/" mode="include"/> 58 59 <xsl:template match="*|/" mode="define"/> 59 60 <xsl:template match="*|/" mode="end"/> … … 69 70 </xsl:template> 70 71 72 73 <!-- 74 * Encloses |if| element's contents (unconditionally expanded by 75 * <apply-templates mode="include"/>) with #ifdef / #endif. 76 * 77 * @note this can produce an empty #if/#endif block if |if|'s children 78 * expand to nothing (such as |cpp|). I see no need to handle this situation 79 * specially. 80 --> 81 <xsl:template match="if" mode="include"> 82 <xsl:if test="(@target='xpidl') or (@target='midl')"> 83 <xsl:apply-templates select="." mode="begin"/> 84 <xsl:apply-templates mode="include"/> 85 <xsl:apply-templates select="." mode="end"/> 86 </xsl:if> 87 </xsl:template> 71 88 72 89 <!-- … … 149 166 150 167 <!-- Declare interfaces: --> 151 <xsl:apply-templates select=" if |interface[not(@internal='yes')]" mode="declare"/>168 <xsl:apply-templates select="application/if | application/interface[not(@internal='yes')]" mode="declare"/> 152 169 153 170 <!-- Define interfaces: --> … … 181 198 182 199 <!-- Enumerate all enums: --> 183 <xsl:for-each select=" enum">200 <xsl:for-each select="application/enum"> 184 201 <xsl:text>/* </xsl:text> 185 202 <xsl:value-of select="concat('K',@name)"/> … … 203 220 <!-- Declare enums to QMetaObject: --> 204 221 <xsl:text>/* Let QMetaType know about generated enums: */
</xsl:text> 205 <xsl:for-each select=" enum">222 <xsl:for-each select="application/enum"> 206 223 <xsl:text>Q_DECLARE_METATYPE(</xsl:text> 207 224 <xsl:value-of select="concat('K',@name)"/> … … 249 266 250 267 <!-- Enumerate all interface definitions: --> 251 <xsl:for-each select="interface[not(@internal='yes')]"> 252 <xsl:text>#include "C</xsl:text> 253 <xsl:value-of select="substring(@name,2)"/> 254 <xsl:text>.h"
</xsl:text> 255 </xsl:for-each> 268 <xsl:apply-templates select="application/if | application/interface[not(@internal='yes')]" mode="include"/> 256 269 <xsl:text>
</xsl:text> 257 <xsl:apply-templates select=" if |interface[not(@internal='yes')]" mode="define"/>270 <xsl:apply-templates select="application/if | application/interface[not(@internal='yes')]" mode="define"/> 258 271 259 272 <!-- Finishing COMWrappers.cpp file: --> … … 382 395 <xsl:if test="$iface/@extends and $iface/@extends!='$unknown'"> 383 396 <xsl:choose> 384 <!-- interfaces within library/if -->397 <!-- interfaces within application/if --> 385 398 <xsl:when test="name(..)='if'"> 386 399 <xsl:call-template name="declareAttributes"> … … 397 410 </xsl:call-template> 398 411 </xsl:when> 399 <!-- interfaces within library-->412 <!-- interfaces within application --> 400 413 <xsl:otherwise> 401 414 <xsl:call-template name="declareAttributes"> … … 424 437 <xsl:if test="$iface/@extends and $iface/@extends!='$unknown'"> 425 438 <xsl:choose> 426 <!-- interfaces within library/if -->439 <!-- interfaces within application/if --> 427 440 <xsl:when test="name(..)='if'"> 428 441 <xsl:call-template name="declareMethods"> … … 439 452 </xsl:call-template> 440 453 </xsl:when> 441 <!-- interfaces within library-->454 <!-- interfaces within application --> 442 455 <xsl:otherwise> 443 456 <xsl:call-template name="declareMethods"> … … 599 612 </xsl:for-each> 600 613 </xsl:if> 601 <!-- for definitions outside <if> (i.e. inside < library>) -->614 <!-- for definitions outside <if> (i.e. inside <application>) --> 602 615 <xsl:if test="name(..)!='if'"> 603 616 <xsl:for-each select=" … … 646 659 647 660 <!-- 661 * interface includes 662 --> 663 <xsl:template match="interface" mode="include"> 664 665 <xsl:text>#include "C</xsl:text> 666 <xsl:value-of select="substring(@name,2)"/> 667 <xsl:text>.h"
</xsl:text> 668 </xsl:template> 669 670 671 <!-- 648 672 * interface definitions 649 673 --> … … 740 764 <xsl:if test="$iface/@extends and $iface/@extends!='$unknown'"> 741 765 <xsl:choose> 742 <!-- interfaces within library/if -->766 <!-- interfaces within application/if --> 743 767 <xsl:when test="name(..)='if'"> 744 768 <xsl:call-template name="defineAttributes"> … … 755 779 </xsl:call-template> 756 780 </xsl:when> 757 <!-- interfaces within library-->781 <!-- interfaces within application --> 758 782 <xsl:otherwise> 759 783 <xsl:call-template name="defineAttributes"> … … 782 806 <xsl:if test="$iface/@extends and $iface/@extends!='$unknown'"> 783 807 <xsl:choose> 784 <!-- interfaces within library/if -->808 <!-- interfaces within application/if --> 785 809 <xsl:when test="name(..)='if'"> 786 810 <xsl:call-template name="defineMethods"> … … 797 821 </xsl:call-template> 798 822 </xsl:when> 799 <!-- interfaces within library-->823 <!-- interfaces within application --> 800 824 <xsl:otherwise> 801 825 <xsl:call-template name="defineMethods"> … … 1314 1338 ancestor-or-self::interface[1]/@supportsErrorInfo 1315 1339 "/> 1316 <xsl:variable name=" librarySupportsErrorInfo" select="ancestor::library/@supportsErrorInfo"/>1340 <xsl:variable name="applicationSupportsErrorInfo" select="ancestor::application/@supportsErrorInfo"/> 1317 1341 1318 1342 <xsl:choose> … … 1323 1347 </xsl:call-template> 1324 1348 </xsl:when> 1325 <xsl:when test="$ librarySupportsErrorInfo">1349 <xsl:when test="$applicationSupportsErrorInfo"> 1326 1350 <xsl:call-template name="composeFetchErrorInfo"> 1327 <xsl:with-param name="supports" select="string($ librarySupportsErrorInfo)"/>1351 <xsl:with-param name="supports" select="string($applicationSupportsErrorInfo)"/> 1328 1352 <xsl:with-param name="mode" select="$mode"/> 1329 1353 </xsl:call-template> -
trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
r66152 r66274 4076 4076 return; 4077 4077 } 4078 4079 #ifdef VBOX_WITH_SDS 4080 // setup Client COM Security to enable impersonation that required by VBOX_SDS 4081 HRESULT hrGUICoInitializeSecurity = CoInitializeSecurity(NULL, 4082 -1, 4083 NULL, 4084 NULL, 4085 RPC_C_AUTHN_LEVEL_DEFAULT, 4086 RPC_C_IMP_LEVEL_IMPERSONATE, //RPC_C_IMP_LEVEL_DELEGATE,//RPC_C_IMP_LEVEL_IMPERSONATE, 4087 NULL, 4088 EOAC_NONE,//EOAC_NONE,//EOAC_DYNAMIC_CLOAKING,//EOAC_STATIC_CLOAKING, 4089 NULL); 4090 Assert(RPC_E_TOO_LATE != hrGUICoInitializeSecurity); 4091 Assert(hrGUICoInitializeSecurity == S_OK); 4092 #endif 4078 4093 4079 4094 /* Make sure VirtualBoxClient instance created: */ -
trunk/src/VBox/Installer/win/Makefile.kmk
r66037 r66274 580 580 -E 'VBOX_WITH_VRDP=$(if-expr defined(VBOX_WITH_VRDP) && !defined(VBOX_WITH_EXTPACK_PUEL),yes,no)' \ 581 581 -E 'VBOX_WITH_WEBSERVICES=$(if $(VBOX_WITH_WEBSERVICES),yes,no)' \ 582 -E 'VBOX_WITH_SDS=$(if $(VBOX_WITH_SDS),yes,no)' \ 582 583 -E 'VBOX_WITH_UNATTENDED=$(if $(VBOX_WITH_UNATTENDED),yes,no)' \ 583 584 -E 'BUILD_TYPE=$(KBUILD_TYPE)' \ … … 671 672 -E 'VBOX_WITH_VRDP=$(if-expr defined(VBOX_WITH_VRDP) && !defined(VBOX_WITH_EXTPACK_PUEL),yes,no)' \ 672 673 -E 'VBOX_WITH_WEBSERVICES=$(if $(VBOX_WITH_WEBSERVICES),yes,no)' \ 674 -E 'VBOX_WITH_SDS=$(if $(VBOX_WITH_SDS),yes,no)' \ 673 675 -E 'VBOX_WITH_UNATTENDED=$(if $(VBOX_WITH_UNATTENDED),yes,no)' \ 674 676 -E 'BUILD_TYPE=$(KBUILD_TYPE)' \ … … 700 702 | $$(dir $$@) 701 703 $(VBOX_XSLTPROC) \ 702 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),--stringparam "a_sProxyStubClsid" '$(VBOX_MIDL_PROXY_CLSID)',) \ 704 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),--stringparam "a_sProxyStubClsid" "$(VBOX_MIDL_PROXY_CLSID)",) \ 705 $(if-expr defined(VBOX_WITH_SDS),--stringparam "a_sWithSDS" "yes",) \ 703 706 -o $@ $< $(VBOX_XIDL_FILE) 704 707 … … 708 711 | $$(dir $$@) 709 712 $(VBOX_XSLTPROC) --stringparam "a_sTarget" "VBoxClient-x86" \ 710 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),--stringparam "a_sProxyStubClsid" '$(VBOX_MIDL_PROXY_CLSID)',) \ 711 -o $@ $< $(VBOX_XIDL_FILE) 713 $(if-expr defined(VBOX_WITH_MIDL_PROXY_STUB),--stringparam "a_sProxyStubClsid" "$(VBOX_MIDL_PROXY_CLSID)",) \ 714 $(if-expr defined(VBOX_WITH_SDS),--stringparam "a_sWithSDS" "yes",) \ 715 -o $@ $< $(VBOX_XIDL_FILE) 712 716 713 717 # -
trunk/src/VBox/Installer/win/VBoxMergeApp.wxi
r65996 r66274 82 82 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?> 83 83 <?endif?> 84 85 <?if $(env.VBOX_WITH_SDS) = "yes" ?> 86 <File Id="VBoxSDS" Name="VBoxSDS.exe" 87 Source="$(env.PATH_OUT)\bin\VBoxSDS.exe"> 88 </File> 89 <?endif?> 84 90 </Component> 85 91 -
trunk/src/VBox/Installer/win/VirtualBox_TypeLib.xsl
r64339 r66274 28 28 29 29 <xsl:param name="a_sTarget">all</xsl:param> 30 <xsl:param name="a_sWithSDS">no</xsl:param> 30 31 31 32 … … 66 67 <xsl:attribute name="MinorVersion"><xsl:value-of select="substring(@version,3)"/></xsl:attribute> 67 68 <xsl:attribute name="Language">0</xsl:attribute> 68 <xsl:attribute name="Description"><xsl:value-of select="@ desc"/></xsl:attribute>69 <xsl:attribute name="Description"><xsl:value-of select="@name"/></xsl:attribute> 69 70 <xsl:attribute name="HelpDirectory"><xsl:text>msm_VBoxApplicationFolder</xsl:text></xsl:attribute> 70 <AppId> 71 <xsl:attribute name="Id"><xsl:value-of select="@appUuid"/></xsl:attribute> 72 <xsl:attribute name="Description"><xsl:value-of select="@name"/> Application</xsl:attribute> 73 <xsl:choose> 74 <xsl:when test="$a_sTarget = 'VBoxClient-x86'"> 75 <xsl:apply-templates select="module[@name='VBoxC']/class"/> 76 </xsl:when> 77 <xsl:otherwise> 78 <xsl:apply-templates select="module/class"/> 79 </xsl:otherwise> 80 </xsl:choose> 81 </AppId> 71 <xsl:apply-templates select="application"/> 82 72 </TypeLib> 83 73 </Include> 84 74 </xsl:template> 85 75 76 77 <!-- 78 * filters to skip VBoxSDS class and interfaces if a VBOX_WITH_SDS is not defined in kmk 79 --> 80 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']"> 81 <xsl:if test="a_sWithSDS='yes'" > 82 <xsl:call-template name="application_template" /> 83 </xsl:if> 84 </xsl:template> 85 86 <!-- 87 * applications 88 --> 89 <xsl:template match="idl/library//application" name="application_template"> 90 <AppId> 91 <xsl:attribute name="Id"> 92 <xsl:value-of select="@uuid"/> 93 </xsl:attribute> 94 <xsl:attribute name="Description"> 95 <xsl:value-of select="@name"/> Application 96 </xsl:attribute> 97 <xsl:choose> 98 <xsl:when test="$a_sTarget = 'VBoxClient-x86'"> 99 <xsl:apply-templates select="module[@name='VBoxC']/class"/> 100 </xsl:when> 101 <xsl:otherwise> 102 <xsl:apply-templates select="module/class"/> 103 </xsl:otherwise> 104 </xsl:choose> 105 </AppId> 106 </xsl:template> 107 86 108 87 109 <!-- … … 143 165 </xsl:template> 144 166 145 146 167 <!-- 147 168 * eat everything else not explicitly matched -
trunk/src/VBox/Installer/win/VirtualBox_TypeLibWithInterfaces.xsl
r64339 r66274 63 63 <xsl:key name="G_keyInterfacesByName" match="//interface[@name]" use="@name"/> 64 64 65 <!-- 66 * filters to skip VBoxSDS class and interfaces if a VBOX_WITH_SDS is not defined in kmk 67 --> 68 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']"> 69 <xsl:if test="a_sWithSDS='yes'" > 70 <xsl:call-template name="application_template" /> 71 </xsl:if> 72 </xsl:template> 65 73 66 74 <!-- … … 75 83 <xsl:attribute name="MinorVersion"><xsl:value-of select="substring(@version,3)"/></xsl:attribute> 76 84 <xsl:attribute name="Language">0</xsl:attribute> 77 <xsl:attribute name="Description"><xsl:value-of select="@ desc"/></xsl:attribute>85 <xsl:attribute name="Description"><xsl:value-of select="@name"/></xsl:attribute> 78 86 <xsl:attribute name="HelpDirectory"><xsl:text>msm_VBoxApplicationFolder</xsl:text></xsl:attribute> 79 <AppId> 80 <xsl:attribute name="Id"><xsl:value-of select="@appUuid"/></xsl:attribute> 81 <xsl:attribute name="Description"><xsl:value-of select="@name"/> Application</xsl:attribute> 82 <xsl:choose> 83 <xsl:when test="$a_sTarget = 'VBoxClient-x86'"> 84 <xsl:apply-templates select="module[@name='VBoxC']/class"/> 85 </xsl:when> 86 <xsl:otherwise> 87 <xsl:apply-templates select="module/class"/> 88 </xsl:otherwise> 89 </xsl:choose> 90 </AppId> 91 <xsl:apply-templates select="interface | if/interface"> 92 <xsl:sort select="translate(@uuid,'abcdef','ABCDEF')"/> 93 </xsl:apply-templates> 87 <xsl:apply-templates select="application" /> 94 88 </TypeLib> 95 89 </Include> 96 90 </xsl:template> 97 91 92 <!-- 93 Applications. 94 --> 95 <xsl:template match="application"> 96 <AppId> 97 <xsl:attribute name="Id"> 98 <xsl:value-of select="@uuid"/> 99 </xsl:attribute> 100 <xsl:attribute name="Description"> 101 <xsl:value-of select="@name"/> Application 102 </xsl:attribute> 103 <xsl:choose> 104 <xsl:when test="$a_sTarget = 'VBoxClient-x86'"> 105 <xsl:apply-templates select="module[@name='VBoxC']/class"/> 106 </xsl:when> 107 <xsl:otherwise> 108 <xsl:apply-templates select="module/class"/> 109 </xsl:otherwise> 110 </xsl:choose> 111 </AppId> 112 <xsl:apply-templates select="interface | if/interface"> 113 <xsl:sort select="translate(@uuid,'abcdef','ABCDEF')"/> 114 </xsl:apply-templates> 115 </xsl:template> 98 116 99 117 <!-- … … 114 132 <xsl:when test="../@context='InprocServer'">InprocServer32</xsl:when> 115 133 <xsl:when test="../@context='LocalServer'">LocalServer32</xsl:when> 134 <xsl:when test="../@context='LocalService'">LocalServer32</xsl:when> 116 135 <xsl:otherwise> 117 136 <xsl:message terminate="yes"> … … 160 179 </xsl:template> 161 180 162 181 163 182 <!-- 164 183 Interfaces. 165 184 --> 166 <xsl:template match="library/ interface | library/if[@target='midl']/interface">185 <xsl:template match="library/application/interface | library/application/if[@target='midl']/interface"> 167 186 <Interface> 168 187 <!-- Interface Id="{00C8F974-92C5-44A1-8F3F-702469FDD04B}" Name="IDHCPServer" ProxyStubClassId32="{0BB3B78C-1807-4249-5BA5-EA42D66AF0BF}" NumMethods="33" --> … … 178 197 </xsl:template> 179 198 199 180 200 181 201 <!-- -
trunk/src/VBox/Main/Makefile.kmk
r65381 r66274 75 75 $(if $(VBOX_WITH_HOSTNETIF_API),VBOX_WITH_HOSTNETIF_API,) \ 76 76 $(if $(VBOX_WITH_MIDL_PROXY_STUB),VBOX_WITH_MIDL_PROXY_STUB,) \ 77 $(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,) \ 77 78 78 79 # Unconditionally enable the new semaphore key generation code … … 126 127 $(VBOX_PATH_SDK)/bindings/xpcom/idl \ 127 128 $(VBOX_PATH_SDK)/bindings/xpcom/include 129 # switch off VBoxSDS in XPCOM 130 override VBOX_WITH_SDS = 128 131 endif # xpcom 129 132 … … 265 268 testschemadefs: $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP) 266 269 270 271 # 272 # VBoxSDS executable 273 # 274 if defined(VBOX_WITH_SDS) && "$(KBUILD_TARGET)" == "win" 275 PROGRAMS += VBoxSDS 276 VBoxSDS_TEMPLATE = VBOXMAINEXE 277 VBoxSDS_DEFS = \ 278 VBoxSDS_DEFS.win += VBOX_COM_OUTOFPROC_MODULE 279 VBoxSDS_DEFS.win += _WIN32_WINNT=0x0510 280 VBoxSDS_INCS = \ 281 include \ 282 $(VBoxSDS_0_OUTDIR) \ 283 $(VBOX_MAIN_APIWRAPPER_INCS) 284 VBoxSDS_INCS.win = \ 285 $(VBoxCOM_0_OUTDIR) 286 VBoxSDS_LIBS += \ 287 $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) 288 VBoxSDS_INTERMEDIATES = \ 289 $(VBOX_MAIN_PREREQS) \ 290 $(VBOX_MAIN_APIWRAPPER_GEN_HDRS) 291 VBoxSDS_SOURCES = \ 292 src-all/Global.cpp \ 293 src-all/AutoCaller.cpp \ 294 src-all/VirtualBoxBase.cpp \ 295 src-all/VirtualBoxErrorInfoImpl.cpp \ 296 src-global/VirtualBoxSDSImpl.cpp 297 VBoxSDS_SOURCES.win = \ 298 src-global/win/VBoxSDS.cpp \ 299 src-global/win/VBoxSDS.rc 300 301 src-global/win/VBoxSDS.rc_INCS = $(VBoxSDS_0_OUTDIR) 302 src-global/win/VBoxSDS.rc_DEPS = $(VBoxSDS_0_OUTDIR)/VBoxSDS.rgs $(VBoxSDS_0_OUTDIR)/VBoxSDS-icon.rc 303 src-global/win/VBoxSDS.rc_CLEAN = $(VBoxSDS_0_OUTDIR)/VBoxSDS.rgs $(VBoxSDS_0_OUTDIR)/VBoxSDS-icon.rc 304 305 $$(VBoxSDS_0_OUTDIR)/VBoxSDS-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$(@D)) 306 $(APPEND) -t $@ '1 ICON DISCARDABLE "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"' 307 308 $$(VBoxSDS_0_OUTDIR)/VBoxSDS.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$(@D)) 309 $(VBOX_XSLTPROC) --stringparam Application "VirtualBox System" --stringparam Module VBoxSDS -o $@ $< $(VBOX_XIDL_FILE) 310 311 endif #if defined(VBOX_WITH_SDS) && "$(KBUILD_TARGET)" == "win" 267 312 268 313 # … … 563 608 src-server/win/VBoxSVC.rc_CLEAN += $(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs 564 609 $$(VBoxSVC_0_OUTDIR)/VBoxSVC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$(@D)) 565 $(VBOX_XSLTPROC) --stringparam Module VBoxSVC -o $@ $< $(VBOX_XIDL_FILE)610 $(VBOX_XSLTPROC) --stringparam Application VirtualBox --stringparam Module VBoxSVC -o $@ $< $(VBOX_XIDL_FILE) 566 611 endif 567 612 … … 689 734 $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK,) \ 690 735 $(if $(VBOX_WITH_PCI_PASSTHROUGH),VBOX_WITH_PCI_PASSTHROUGH,) \ 691 $(if $(VBOX_WITH_VRDEAUTH_IN_VBOXSVC),VBOX_WITH_VRDEAUTH_IN_VBOXSVC,) 736 $(if $(VBOX_WITH_VRDEAUTH_IN_VBOXSVC),VBOX_WITH_VRDEAUTH_IN_VBOXSVC,) \ 737 $(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,) 692 738 ifdef VBOX_WITH_CRHGSMI 693 739 VBoxC_DEFS += VBOX_WITH_CRHGSMI … … 895 941 896 942 $$(VBoxC_0_OUTDIR)/VBoxC.rgs: $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl $(VBOX_XIDL_FILE) | $$(dir $$@) 897 $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)943 $(VBOX_XSLTPROC) --stringparam Application VirtualBox --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE) 898 944 899 945 ifdef VBOX_WITH_32_ON_64_MAIN_API … … 953 999 $(VBOX_PATH_MAIN_SRC)/src-all/win/VirtualBox_rgs.xsl \ 954 1000 $(VBOX_XIDL_FILE) | $$(dir $$@) 955 $(VBOX_XSLTPROC) --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE)1001 $(VBOX_XSLTPROC) --stringparam Application VirtualBox --stringparam Module VBoxC -o $@ $< $(VBOX_XIDL_FILE) 956 1002 957 1003 endif … … 1100 1146 DLLS += VBoxProxyStub 1101 1147 VBoxProxyStub_TEMPLATE = VBOXMAINCOMP 1102 VBoxProxyStub_DEFS = REGISTER_PROXY_DLL PROXY_CLSID_IS="$(VBOX_MIDL_PROXY_CLSID_IS)" 1148 VBoxProxyStub_DEFS = REGISTER_PROXY_DLL PROXY_CLSID_IS="$(VBOX_MIDL_PROXY_CLSID_IS)" \ 1149 $(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,) 1103 1150 VBoxProxyStub_DEFS.win.x86 = WIN32 1104 1151 VBoxProxyStub_SDKS = VBOX_NTDLL … … 1173 1220 $(VBOX_IDL_FILE.MSCOM): $(VBOX_PATH_MAIN_SRC)/idl/midl.xsl $(VBOX_XIDL_FILE) | $$(dir $$@) 1174 1221 $(call MSG_TOOL,xsltproc,VBoxSVC,$<,$@) 1175 $(QUIET)$(VBOX_XSLTPROC) -o $@ $(if $(VBOX_WITH_MIDL_PROXY_STUB),-stringparam g_fGenProxy yes,) $< $(VBOX_XIDL_FILE) 1222 $(QUIET)$(VBOX_XSLTPROC) -o $@ \ 1223 $(if $(VBOX_WITH_MIDL_PROXY_STUB),-stringparam g_fGenProxy yes,) \ 1224 $(if $(VBOX_WITH_SDS),-stringparam g_fVBoxWithSDS yes,) \ 1225 $< $(VBOX_XIDL_FILE) 1176 1226 1177 1227 # Aliases for testing purposes. … … 1371 1421 $(QUIET)$(MKDIR) -p $(@D) 1372 1422 $(QUIET)$(VBOX_XSLTPROC) --stringparam KBUILD_HOST $(KBUILD_HOST) \ 1423 $(if $(VBOX_WITH_SDS),-stringparam g_fVBoxWithSDS yes,) \ 1373 1424 -o $@ $(VBOX_PATH_MAIN_SRC)/idl/apiwrap-server-filelist.xsl $< 1374 1425 $(QUIET)$(CP) --changed -fv $@ $(VBoxAPIWrap_VBOX_KMK_FILE) -
trunk/src/VBox/Main/cbinding/capiidl.xsl
r62770 r66274 1607 1607 * libraries 1608 1608 --> 1609 <xsl:template match=" library">1609 <xsl:template match="idl/library"> 1610 1610 <!-- result codes --> 1611 1611 <xsl:call-template name="xsltprocNewlineOutputHack"/> 1612 <xsl:for-each select=" result">1612 <xsl:for-each select="application/result"> 1613 1613 <xsl:apply-templates select="."/> 1614 1614 </xsl:for-each> … … 1616 1616 <xsl:call-template name="xsltprocNewlineOutputHack"/> 1617 1617 <!-- forward declarations --> 1618 <xsl:apply-templates select=" interface |if/interface" mode="forward"/>1618 <xsl:apply-templates select="application/interface | application/if/interface" mode="forward"/> 1619 1619 <xsl:call-template name="xsltprocNewlineOutputHack"/> 1620 1620 <!-- typedef'ing the struct declarations --> 1621 <xsl:apply-templates select=" interface |if/interface" mode="typedef"/>1621 <xsl:apply-templates select="application/interface | application/if/interface" mode="typedef"/> 1622 1622 <xsl:call-template name="xsltprocNewlineOutputHack"/> 1623 1623 <!-- all enums go first --> 1624 <xsl:apply-templates select=" enum |if/enum"/>1625 <!-- everything else but result codes and enums -->1624 <xsl:apply-templates select="application/enum | application/if/enum"/> 1625 <!-- everything else but result codes and enums 1626 1626 <xsl:apply-templates select="*[not(self::result or self::enum) and 1627 not(self::if[result] or self::if[enum])]"/> 1627 not(self::if[result] or self::if[enum])]"/> --> 1628 <!-- the modules (i.e. everything else) --> 1629 <xsl:apply-templates select="application/interface | application/if[interface] 1630 | application/module | application/if[module]"/> 1628 1631 <!-- --> 1629 1632 </xsl:template> … … 2455 2458 2456 2459 <xsl:choose> 2457 <!-- modifiers (ignored for 'enumeration' attributes)-->2460 <!-- modifiers --> 2458 2461 <xsl:when test="name(current())='type' and ../@mod"> 2459 2462 <xsl:choose> … … 2557 2560 <!-- enum types --> 2558 2561 <xsl:when test=" 2559 (ancestor::library/ enum[@name=current()]) or2560 (ancestor::library/ if[@target=$self_target]/enum[@name=current()])2562 (ancestor::library/application/enum[@name=current()]) or 2563 (ancestor::library/application/if[@target=$self_target]/enum[@name=current()]) 2561 2564 "> 2562 2565 <xsl:text>PRUint32</xsl:text> … … 2564 2567 <!-- custom interface types --> 2565 2568 <xsl:when test=" 2566 (name(current())='enumerator' and 2567 ((ancestor::library/enumerator[@name=current()]) or 2568 (ancestor::library/if[@target=$self_target]/enumerator[@name=current()])) 2569 ) or 2570 ((ancestor::library/interface[@name=current()]) or 2571 (ancestor::library/if[@target=$self_target]/interface[@name=current()]) 2572 ) 2569 (ancestor::library/application/interface[@name=current()]) or 2570 (ancestor::library/application/if[@target=$self_target]/interface[@name=current()]) 2573 2571 "> 2574 2572 <xsl:value-of select="."/> … … 2593 2591 2594 2592 <xsl:choose> 2595 <!-- modifiers (ignored for 'enumeration' attributes)-->2593 <!-- modifiers --> 2596 2594 <xsl:when test="name(current())='type' and ../@mod"> 2597 2595 <xsl:choose> … … 2683 2681 <!-- enum types --> 2684 2682 <xsl:when test=" 2685 (ancestor::library/ enum[@name=current()]) or2686 (ancestor::library/ if[@target=$self_target]/enum[@name=current()])2683 (ancestor::library/application/enum[@name=current()]) or 2684 (ancestor::library/application/if[@target=$self_target]/enum[@name=current()]) 2687 2685 "> 2688 2686 <xsl:text>PRUint32</xsl:text> … … 2690 2688 <!-- custom interface types --> 2691 2689 <xsl:when test=" 2692 (name(current())='enumerator' and 2693 ((ancestor::library/enumerator[@name=current()]) or 2694 (ancestor::library/if[@target=$self_target]/enumerator[@name=current()])) 2695 ) or 2696 ((ancestor::library/interface[@name=current()]) or 2697 (ancestor::library/if[@target=$self_target]/interface[@name=current()]) 2698 ) 2690 (ancestor::library/application/interface[@name=current()]) or 2691 (ancestor::library/application/if[@target=$self_target]/interface[@name=current()]) 2699 2692 "> 2700 2693 <xsl:value-of select="."/> … … 2709 2702 </xsl:template> 2710 2703 2704 2705 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//module/class" /> 2706 2707 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']/if//interface 2708 | application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" /> 2709 2710 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" mode="forward" /> 2711 2712 2711 2713 </xsl:stylesheet> 2712 -
trunk/src/VBox/Main/idl/VirtualBox.dtd
r56523 r66274 17 17 --> 18 18 <!ELEMENT idl (desc|if|library)*> <!-- done --> 19 <!ELEMENT if ANY> 20 <!ATTLIST if target (midl|xpidl|wsdl) #REQUIRED> <!-- done -->21 <!ELEMENT cpp ANY> 22 <!ATTLIST cpp line CDATA #IMPLIED> <!-- done -->23 <!ELEMENT library ( descGroup|if|result|enum|interface|module)*>19 <!ELEMENT if ANY> <!-- done --> 20 <!ATTLIST if target (midl|xpidl|wsdl) #REQUIRED> 21 <!ELEMENT cpp ANY> <!-- done --> 22 <!ATTLIST cpp line CDATA #IMPLIED> 23 <!ELEMENT library (application)*> <!-- done --> 24 24 <!ATTLIST library name CDATA #REQUIRED> 25 25 <!ATTLIST library uuid CDATA #REQUIRED> 26 26 <!ATTLIST library version CDATA #REQUIRED> 27 <!ATTLIST library desc CDATA #REQUIRED> 28 <!ATTLIST library appUuid CDATA #REQUIRED> 29 <!ATTLIST library supportsErrorInfo CDATA #REQUIRED> 27 <!ELEMENT application (descGroup|if|result|enum|interface|module)*> <!-- done --> 28 <!ATTLIST application name CDATA #REQUIRED> 29 <!ATTLIST application uuid CDATA #REQUIRED> 30 <!ATTLIST application supportsErrorInfo CDATA #REQUIRED> 30 31 <!ELEMENT result (#PCDATA|desc|link)*> <!-- done --> 31 32 <!ATTLIST result name CDATA #REQUIRED> -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r66067 r66274 280 280 UUID or version!! 281 281 --> 282 <library 283 name="VirtualBox" 284 uuid="d7569351-1750-46f0-936e-bd127d5bc264" 285 version="1.3" 286 desc="VirtualBox Type Library" 287 appUuid="819B4D85-9CEE-493C-B6FC-64FFE759B3C9" 288 supportsErrorInfo="yes" 282 <library 283 name="VirtualBox" 284 uuid="d7569351-1750-46f0-936e-bd127d5bc264" 285 version="1.3" 289 286 > 290 287 291 292 <!-- 288 <application 289 name="VirtualBox" 290 uuid="819B4D85-9CEE-493C-B6FC-64FFE759B3C9" 291 supportsErrorInfo="yes" 292 > 293 294 295 296 <!-- 293 297 // COM result codes for VirtualBox 294 298 ///////////////////////////////////////////////////////////////////////// … … 23880 23884 </module> 23881 23885 23886 </application> 23887 23888 <!-- Pay attention! Application uuid of this application is used in midl.xsl 23889 So if you change it then change filter in "interface" and "class" template in midl.xsl too 23890 --> 23891 <application 23892 name="VirtualBox System Service" 23893 uuid="ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa" 23894 supportsErrorInfo="yes" 23895 > 23896 23897 <if target="midl"> 23898 <!-- 23899 // IVirtualBoxSDS 23900 ////////////////////////////////////////////////////////////////////////// 23901 --> 23902 23903 <interface 23904 name="IVirtualBoxSDS" extends="$unknown" 23905 uuid="28932695-fb72-4708-8904-e1077dac7f9a" 23906 wsmap="suppress" 23907 reservedMethods="4" reservedAttributes="8" 23908 > 23909 <desc> 23910 The IVirtualBoxSDS interface represents the system-wide directory service 23911 helper. 23912 23913 It exists only on Windows host, and its purpose is to work around design 23914 flaws in Microsoft's (D)COM, in particular the local server instantiation 23915 behavior. 23916 </desc> 23917 23918 <attribute name="virtualBox" type="IVirtualBox" readonly="yes"> 23919 <desc> 23920 Reference to the server-side API root object. 23921 </desc> 23922 </attribute> 23923 23924 <method name="releaseVirtualBox"> 23925 <desc> 23926 Client informs that it releases it's VirtualBox reference 23927 </desc> 23928 </method> 23929 23930 </interface> 23931 </if> 23932 23933 <module name="VBoxSDS" context="LocalService"> 23934 <class name="VirtualBoxSDS" uuid="74ab5ffe-8726-4435-aa7e-876d705bcba5" 23935 namespace="virtualbox.org"> 23936 <interface name="IVirtualBoxSDS" default="yes"/> 23937 </class> 23938 </module> 23939 23940 </application> 23941 23882 23942 </library> 23883 23943 -
trunk/src/VBox/Main/idl/apiwrap-server-filelist.xsl
r62486 r66274 28 28 29 29 <xsl:strip-space elements="*"/> 30 31 <!-- - - - - - - - - - - - - - - - - - - - - - - 32 XSLT parameters 33 - - - - - - - - - - - - - - - - - - - - - - --> 34 35 <!-- Whether to generate wrappers for VBoxSDS--> 36 <xsl:param name="g_fVBoxWithSDS" select="'no'"/> 30 37 31 38 <!-- - - - - - - - - - - - - - - - - - - - - - - … … 98 105 99 106 <!-- - - - - - - - - - - - - - - - - - - - - - - 107 application match 108 - - - - - - - - - - - - - - - - - - - - - - --> 109 110 <xsl:template match="application" mode="filelist-even-sources" name="template_app_filelist_even_sources"> 111 <xsl:apply-templates mode="filelist-even-sources"/> 112 </xsl:template> 113 114 <xsl:template match="application" mode="filelist-odd-sources" name="template_app_filelist_odd_sources"> 115 <xsl:apply-templates mode="filelist-odd-sources"/> 116 </xsl:template> 117 118 <xsl:template match="application" mode="filelist-headers" name="template_app_filelist_headers"> 119 <xsl:apply-templates mode="filelist-headers"/> 120 </xsl:template> 121 122 <!-- - - - - - - - - - - - - - - - - - - - - - - 100 123 library match 101 124 - - - - - - - - - - - - - - - - - - - - - - --> … … 134 157 </xsl:template> 135 158 159 160 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']" mode="filelist-even-sources" > 161 <xsl:if test="$g_fVBoxWithSDS='yes'" > 162 <xsl:call-template name="template_app_filelist_even_sources" /> 163 </xsl:if> 164 </xsl:template> 165 166 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']" mode="filelist-headers" > 167 <xsl:if test="$g_fVBoxWithSDS='yes'" > 168 <xsl:call-template name="template_app_filelist_headers" /> 169 </xsl:if> 170 </xsl:template> 171 172 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']" mode="filelist-odd-sources" > 173 <xsl:if test="$g_fVBoxWithSDS='yes'" > 174 <xsl:call-template name="template_app_filelist_odd_sources" /> 175 </xsl:if> 176 </xsl:template> 177 178 136 179 </xsl:stylesheet> 137 180 <!-- vi: set tabstop=4 shiftwidth=4 expandtab: --> -
trunk/src/VBox/Main/idl/apiwrap-server.xsl
r63147 r66274 2490 2490 2491 2491 <!-- - - - - - - - - - - - - - - - - - - - - - - 2492 application match 2493 - - - - - - - - - - - - - - - - - - - - - - --> 2494 2495 <xsl:template match="application"> 2496 <xsl:apply-templates/> 2497 </xsl:template> 2498 2499 <!-- - - - - - - - - - - - - - - - - - - - - - - 2492 2500 library match 2493 2501 - - - - - - - - - - - - - - - - - - - - - - --> -
trunk/src/VBox/Main/idl/midl.xsl
r63387 r66274 25 25 <xsl:param name="g_fGenProxy" select="'no'"/> 26 26 27 <!-- Whether to generate coclass and interfaces for VBoxSDS--> 28 <xsl:param name="g_fVBoxWithSDS" select="'no'"/> 29 27 30 <xsl:include href="typemap-shared.inc.xsl"/> 28 31 … … 42 45 * header 43 46 --> 44 <xsl:template match="/idl">45 <xsl:text>47 <xsl:template match="/idl"> 48 <xsl:text> 46 49 /* 47 50 * DO NOT EDIT! This is a generated file. … … 66 69 <xsl:apply-templates/> 67 70 </xsl:template> 68 71 69 72 70 73 <!-- … … 124 127 <xsl:text>
</xsl:text> 125 128 <!-- forward declarations --> 126 <xsl:apply-templates select=" if |interface" mode="forward"/>129 <xsl:apply-templates select="application/if | application/interface" mode="forward"/> 127 130 <xsl:text>
</xsl:text> 128 131 <!-- all enums go first --> 129 <xsl:apply-templates select=" enum | if/enum"/>132 <xsl:apply-templates select="application/enum | application/if[enum]"/> 130 133 <!-- declare the interfaces --> 131 <xsl:apply-templates select=" if |interface"/>134 <xsl:apply-templates select="application/if | application/interface"/> 132 135 </xsl:if> 133 136 … … 135 138 uuid(<xsl:value-of select="@uuid"/>), 136 139 version(<xsl:value-of select="@version"/>), 137 helpstring("<xsl:value-of select="@ desc"/>")140 helpstring("<xsl:value-of select="@name"/> Type Library") 138 141 ] 139 142 <xsl:text>library </xsl:text> … … 142 145 <xsl:text>
importlib("stdole2.tlb");

</xsl:text> 143 146 <!-- result codes --> 144 <xsl:for-each select=" result">147 <xsl:for-each select="application/result"> 145 148 <xsl:apply-templates select="."/> 146 149 </xsl:for-each> … … 150 153 <xsl:when test="$g_fGenProxy = 'yes'"> 151 154 <!-- reference enums and interfaces --> 152 <xsl:apply-templates select=" if |interface" mode="forward"/>153 <xsl:apply-templates select=" enum | if/enum" mode="forward"/>155 <xsl:apply-templates select="application/if | application/interface" mode="forward"/> 156 <xsl:apply-templates select="application/enum | application/if[enum]" mode="forward"/> 154 157 <!-- the modules (i.e. everything else) --> 155 <xsl:apply-templates select=" module | if/module"/>158 <xsl:apply-templates select="application/module | application/if[module]"/> 156 159 </xsl:when> 157 160 <xsl:otherwise> 158 161 <!-- forward declarations --> 159 <xsl:apply-templates select=" if |interface" mode="forward"/>162 <xsl:apply-templates select="application/if | application/interface" mode="forward"/> 160 163 <!-- all enums go first --> 161 <xsl:apply-templates select=" enum | if/enum"/>164 <xsl:apply-templates select="application/enum | application/if[enum]"/> 162 165 <!-- everything else but result codes and enums --> 163 <xsl:apply-templates select=" *[not(self::result or self::enum) and164 not(self::if[result] or self::if[enum])]"/>166 <xsl:apply-templates select=" application/interface | application/if[interface] 167 | application/module | application/if[module]"/> 165 168 </xsl:otherwise> 166 169 </xsl:choose> … … 173 176 174 177 <!-- 178 * applications 179 --> 180 <xsl:template match="application"> 181 <xsl:apply-templates/> 182 </xsl:template> 183 <xsl:template match="application" mode="forward"> 184 <xsl:apply-templates mode="forward"/> 185 </xsl:template> 186 187 188 <!-- 175 189 * result codes 176 190 --> … … 185 199 * forward declarations 186 200 --> 187 <xsl:template match="interface" mode="forward" >201 <xsl:template match="interface" mode="forward" name="template_interface_forward"> 188 202 <xsl:text>interface </xsl:text> 189 203 <xsl:value-of select="@name"/> … … 202 216 * interfaces 203 217 --> 204 <xsl:template match="interface" >[218 <xsl:template match="interface" name="template_interface">[ 205 219 uuid(<xsl:value-of select="@uuid"/>), 206 220 object, … … 646 660 * co-classes 647 661 --> 648 <xsl:template match="module/class" >[662 <xsl:template match="module/class" name="template_class">[ 649 663 uuid(<xsl:value-of select="@uuid"/>) 650 664 ] … … 842 856 <!-- enum types --> 843 857 <xsl:when test=" 844 (ancestor::library/ enum[@name=current()]) or845 (ancestor::library/ if[@target=$self_target]/enum[@name=current()])858 (ancestor::library/application/enum[@name=current()]) or 859 (ancestor::library/application/if[@target=$self_target]/enum[@name=current()]) 846 860 "> 847 861 <xsl:value-of select="."/> … … 849 863 <!-- custom interface types --> 850 864 <xsl:when test=" 851 ((ancestor::library/ interface[@name=current()]) or852 (ancestor::library/ if[@target=$self_target]/interface[@name=current()])865 ((ancestor::library/application/interface[@name=current()]) or 866 (ancestor::library/application/if[@target=$self_target]/interface[@name=current()]) 853 867 ) 854 868 "> … … 868 882 </xsl:choose> 869 883 </xsl:template> 884 885 886 <!-- Filters for switch on/off VBoxSDS definitions --> 887 888 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//module/class" > 889 <xsl:if test="$g_fVBoxWithSDS='yes'" > 890 <xsl:call-template name="template_class" /> 891 </xsl:if> 892 </xsl:template> 893 894 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']/if//interface 895 | application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" > 896 <xsl:if test="$g_fVBoxWithSDS='yes'" > 897 <xsl:call-template name="template_interface" /> 898 </xsl:if> 899 </xsl:template> 900 901 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" mode="forward" > 902 <xsl:if test="$g_fVBoxWithSDS='yes'" > 903 <xsl:call-template name="template_interface_forward" /> 904 </xsl:if> 905 </xsl:template> 906 870 907 871 908 </xsl:stylesheet> -
trunk/src/VBox/Main/idl/xpidl.xsl
r62486 r66274 148 148 <!-- result codes --> 149 149 <xsl:text>// result codes declared in API spec
</xsl:text> 150 <xsl:for-each select=" result">150 <xsl:for-each select="application/result"> 151 151 <xsl:apply-templates select="."/> 152 152 </xsl:for-each> 153 153 <xsl:text>%}

</xsl:text> 154 154 <!-- forward declarations --> 155 <xsl:apply-templates select=" if |interface" mode="forward"/>155 <xsl:apply-templates select="application/if | application/interface" mode="forward"/> 156 156 <xsl:text>
</xsl:text> 157 157 <!-- all enums go first --> 158 <xsl:apply-templates select="enum | if/enum"/> 159 <!-- everything else but result codes and enums --> 160 <xsl:apply-templates select="*[not(self::result or self::enum) and 161 not(self::if[result] or self::if[enum])]"/> 158 <xsl:apply-templates select="application/enum | application/if/enum"/> 159 <!-- everything else but result codes and enums 160 <xsl:apply-templates select="*[not(self::application/result or self::application/enum) and 161 not(self::application[result] or self::application/if[enum])]"/> --> 162 <!-- the modules (i.e. everything else) --> 163 <xsl:apply-templates select="application/interface | application/if[interface] 164 | application/module | application/if[module]"/> 162 165 <!-- --> 163 166 </xsl:template> 164 167 168 169 <!-- 170 * applications 171 --> 172 <xsl:template match="application"> 173 <xsl:apply-templates/> 174 </xsl:template> 175 <xsl:template match="application" mode="forward"> 176 <xsl:apply-templates mode="forward"/> 177 </xsl:template> 165 178 166 179 <!-- … … 886 899 <!-- enum types --> 887 900 <xsl:when test=" 888 (ancestor::library/ enum[@name=current()]) or889 (ancestor::library/ if[@target=$self_target]/enum[@name=current()])901 (ancestor::library/application/enum[@name=current()]) or 902 (ancestor::library/application/if[@target=$self_target]/enum[@name=current()]) 890 903 "> 891 904 <xsl:text>PRUint32</xsl:text> … … 893 906 <!-- custom interface types --> 894 907 <xsl:when test=" 895 (ancestor::library/ interface[@name=current()]) or896 (ancestor::library/ if[@target=$self_target]/interface[@name=current()])908 (ancestor::library/application/interface[@name=current()]) or 909 (ancestor::library/application/if[@target=$self_target]/interface[@name=current()]) 897 910 "> 898 911 <xsl:value-of select="."/> … … 1008 1021 <!-- enum types --> 1009 1022 <xsl:when test=" 1010 (ancestor::library/ enum[@name=current()]) or1011 (ancestor::library/ if[@target=$self_target]/enum[@name=current()])1023 (ancestor::library/application/enum[@name=current()]) or 1024 (ancestor::library/application/if[@target=$self_target]/enum[@name=current()]) 1012 1025 "> 1013 1026 <xsl:text>PRUint32</xsl:text> … … 1015 1028 <!-- custom interface types --> 1016 1029 <xsl:when test=" 1017 (ancestor::library/ interface[@name=current()]) or1018 (ancestor::library/ if[@target=$self_target]/interface[@name=current()])1030 (ancestor::library/application/interface[@name=current()]) or 1031 (ancestor::library/application/if[@target=$self_target]/interface[@name=current()]) 1019 1032 "> 1020 1033 <xsl:value-of select="."/> … … 1029 1042 </xsl:template> 1030 1043 1044 <!-- Filters for switch off VBoxSDS definitions --> 1045 1046 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//module/class" /> 1047 1048 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']/if//interface 1049 | application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" /> 1050 1051 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" mode="forward" /> 1052 1053 1031 1054 </xsl:stylesheet> 1032 1055 -
trunk/src/VBox/Main/idl/xpidl_iid.xsl
r62486 r66274 93 93 --> 94 94 <xsl:template match="library"> 95 <xsl:apply-templates select=" if |interface"/>96 <xsl:apply-templates select=" module"/>95 <xsl:apply-templates select="application/if | application/interface"/> 96 <xsl:apply-templates select="application/module"/> 97 97 </xsl:template> 98 98 … … 151 151 </xsl:template> 152 152 153 154 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//module/class" /> 155 156 <xsl:template match="application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']/if//interface 157 | application[@uuid='ec0e78e8-fa43-43e8-ac0a-02c784c4a4fa']//interface" /> 158 153 159 </xsl:stylesheet> 154 160 -
trunk/src/VBox/Main/include/Logging.h
r62485 r66274 45 45 # define VBOXSVC_LOG_DEFAULT "all" 46 46 #endif 47 #ifndef VBOXSDS_LOG_DEFAULT 48 # define VBOXSDS_LOG_DEFAULT "all" 49 #endif 47 50 48 51 #include <VBox/log.h> -
trunk/src/VBox/Main/include/win/resource.h
r62485 r66274 24 24 #define IDR_VIRTUALBOX 101 25 25 26 // service name string resource ID 27 #define IDS_SERVICENAME 102 28 26 29 27 30 #endif // __H_RESOURCEVBOXCOM -
trunk/src/VBox/Main/src-all/win/VBoxProxyStub.c
r65088 r66274 1018 1018 * @param pszAppId The application UUID string. 1019 1019 * @param pszDescription The description string. 1020 */ 1021 LSTATUS VbpsRegisterAppId(VBPSREGSTATE *pState, const char *pszAppId, const char *pszDescription) 1020 * @param bIsService The application is windows service 1021 */ 1022 LSTATUS VbpsRegisterAppId( 1023 VBPSREGSTATE *pState, 1024 const char *pszModuleName, 1025 const char *pszAppId, 1026 const char *pszDescription, 1027 bool bIsService) 1022 1028 { 1023 1029 LSTATUS rc; … … 1056 1062 1057 1063 if (pState->fDelete) 1064 { 1058 1065 vbpsDeleteKeyRecursiveA(pState, hkeyAppIds, pszAppId, __LINE__); 1059 1060 /* 1061 * Update. 1062 */ 1063 if (pState->fUpdate) 1064 vbpsCreateRegKeyWithDefaultValueAA(pState, hkeyAppIds, pszAppId, pszDescription, __LINE__); 1066 vbpsDeleteKeyRecursiveA(pState, hkeyAppIds, pszModuleName, __LINE__); 1067 } 1068 1069 if (pState->fUpdate) 1070 { 1071 //HKEY hkeyApp; 1072 HKEY hkeyServiceExe; 1073 1074 vbpsCreateRegKeyWithDefaultValueAA(pState, hkeyAppIds, pszAppId, pszDescription, __LINE__); 1075 1076 if (bIsService) 1077 { 1078 HKEY hkeyApp; 1079 1080 char szModule[MAX_PATH + 2]; 1081 size_t len = RTStrNLen(pszModuleName, MAX_PATH); 1082 Assert(len); 1083 Assert(len < MAX_PATH); 1084 rc = RTStrCopy(szModule, sizeof(szModule), pszModuleName); 1085 AssertRC(rc); 1086 szModule[len - 4] = '\0'; 1087 1088 rc = RegOpenKeyExA(hkeyAppIds, pszAppId, 0 /*fOptions*/, pState->fSamBoth, &hkeyApp); 1089 if (rc == ERROR_FILE_NOT_FOUND) 1090 return ERROR_SUCCESS; 1091 // create the value "Service" with the service name 1092 vbpsSetRegValueAA(pState, hkeyApp, "LocalService", szModule, __LINE__); 1093 vbpsCloseKey(pState, hkeyApp, __LINE__); 1094 } 1095 1096 vbpsCreateRegKeyWithDefaultValueAA(pState, hkeyAppIds, pszModuleName, "", __LINE__); 1097 rc = RegOpenKeyExA(hkeyAppIds, pszModuleName, 0 /*fOptions*/, pState->fSamBoth, &hkeyServiceExe); 1098 if (rc == ERROR_FILE_NOT_FOUND) 1099 return ERROR_SUCCESS; 1100 vbpsSetRegValueAA(pState, hkeyServiceExe, "AppID", pszAppId, __LINE__); 1101 vbpsCloseKey(pState, hkeyServiceExe, __LINE__); 1102 } 1065 1103 1066 1104 vbpsCloseKey(pState, hkeyAppIds, __LINE__); … … 1163 1201 LSTATUS rc; 1164 1202 char szClsId[CURLY_UUID_STR_BUF_SIZE]; 1203 bool fQuoteIt = false; 1165 1204 RT_NOREF(pszAppId); 1166 1205 … … 1204 1243 RTUTF16 wszModule[MAX_PATH * 2]; 1205 1244 PRTUTF16 pwszCur = wszModule; 1206 boolfQuoteIt = strcmp(pszServerType, "LocalServer32") == 0;1245 fQuoteIt = strcmp(pszServerType, "LocalServer32") == 0; 1207 1246 if (fQuoteIt) 1208 1247 *pwszCur++ = '"'; … … 1248 1287 } 1249 1288 1289 /* AppID = pszAppId */ 1290 if(pszAppId && fQuoteIt) 1291 vbpsSetRegValueAA(pState, hkeyClass, "AppID", pszAppId, __LINE__); 1292 1250 1293 vbpsCloseKey(pState, hkeyClass, __LINE__); 1251 1294 } … … 1255 1298 } 1256 1299 1300 1301 #ifdef VBOX_WITH_SDS 1302 /** 1303 * Register VBoxSDS classes from the VirtualBox.xidl file. 1304 * 1305 * @returns COM status code. 1306 * @param pState 1307 * @param pwszVBoxDir The VirtualBox application directory. 1308 * 1309 * @todo convert to XSLT. 1310 */ 1311 void RegisterVBoxSDSXidl(VBPSREGSTATE *pState, PCRTUTF16 pwszVBoxDir) 1312 { 1313 const char *pszServiceAppId = "{EC0E78E8-FA43-43E8-AC0A-02C784C4A4FA}"; 1314 const char *pszWindowsService = "VBoxSDS.exe"; 1315 1316 VbpsRegisterAppId(pState, pszWindowsService, pszServiceAppId, "VirtualBox System Service", true); 1317 1318 /* VBoxSDS */ 1319 VbpsRegisterClassName(pState, "VirtualBox.VirtualBoxSDS.1", "VirtualBoxSDS Class", &CLSID_VirtualBoxSDS, NULL); 1320 VbpsRegisterClassName(pState, "VirtualBox.VirtualBoxSDS", "VirtualBoxSDS Class", &CLSID_VirtualBoxSDS, ".1"); 1321 VbpsRegisterClassId(pState, &CLSID_VirtualBoxSDS, "VirtualBoxSDS Class", pszServiceAppId, "VirtualBox.VirtualBoxSDS", ".1", 1322 &LIBID_VirtualBox, "LocalServer32", pwszVBoxDir, pszWindowsService, NULL /*N/A*/); 1323 } 1324 #endif 1257 1325 1258 1326 /** … … 1268 1336 void RegisterXidlModulesAndClassesGenerated(VBPSREGSTATE *pState, PCRTUTF16 pwszVBoxDir, bool fIs32On64) 1269 1337 { 1270 const char *pszAppId = "{819B4D85-9CEE-493C-B6FC-64FFE759B3C9}";1338 const char *pszAppId = "{819B4D85-9CEE-493C-B6FC-64FFE759B3C9}"; 1271 1339 const char *pszInprocDll = !fIs32On64 ? "VBoxC.dll" : "x86\\VBoxClient-x86.dll"; 1272 1273 VbpsRegisterAppId(pState, pszAppId, "VirtualBox Application"); 1340 const char *pszLocalServer = "VBoxSVC.exe"; 1341 1342 VbpsRegisterAppId(pState, pszLocalServer, pszAppId, "VirtualBox Application", false); 1274 1343 1275 1344 /* VBoxSVC */ … … 1277 1346 VbpsRegisterClassName(pState, "VirtualBox.VirtualBox", "VirtualBox Class", &CLSID_VirtualBox, ".1"); 1278 1347 VbpsRegisterClassId(pState, &CLSID_VirtualBox, "VirtualBox Class", pszAppId, "VirtualBox.VirtualBox", ".1", 1279 &LIBID_VirtualBox, "LocalServer32", pwszVBoxDir, "VBoxSVC.exe", NULL /*N/A*/);1348 &LIBID_VirtualBox, "LocalServer32", pwszVBoxDir, pszLocalServer, NULL /*N/A*/); 1280 1349 /* VBoxC */ 1281 1350 VbpsRegisterClassName(pState, "VirtualBox.Session.1", "Session Class", &CLSID_Session, NULL); … … 1289 1358 "VirtualBox.VirtualBoxClient", ".1", 1290 1359 &LIBID_VirtualBox, "InprocServer32", pwszVBoxDir, pszInprocDll, "Free"); 1360 1361 #ifdef VBOX_WITH_SDS 1362 RegisterVBoxSDSXidl(pState, pwszVBoxDir); 1363 #endif 1291 1364 } 1292 1365 -
trunk/src/VBox/Main/src-all/win/VirtualBox_rgs.xsl
r62486 r66274 29 29 --> 30 30 31 <!-- Name of the application to generate the RGS script for --> 32 <xsl:param name="Application"/> 31 33 <!-- Name of the module to generate the RGS script for --> 32 34 <xsl:param name="Module"/> … … 42 44 --> 43 45 <xsl:template match="/idl"> 44 HKCR 45 { 46 <xsl:apply-templates/> 47 } 46 <xsl:apply-templates/> 48 47 </xsl:template> 49 48 … … 52 51 * libraries 53 52 --> 54 <xsl:template match="idl/library"> 53 <xsl:template match="library"> 54 <xsl:apply-templates/> 55 </xsl:template> 56 57 58 <!-- 59 * applications 60 --> 61 <xsl:template match="application"> 62 <xsl:if test="@name=$Application"> 63 <xsl:variable name="context" select="//module[@name=$Module]/@context"/> 64 <xsl:text>HKCR 65 { 55 66 NoRemove AppID 56 67 { 57 ForceRemove {<xsl:value-of select="@appUuid"/>} = s '<xsl:value-of select="@name"/> Application' 68 ForceRemove {</xsl:text><xsl:value-of select="@uuid"/>} = s '<xsl:value-of select="@name"/><xsl:text> </xsl:text> 69 <xsl:choose> 70 <xsl:when test="$context='LocalService'"> 71 <xsl:text>Service</xsl:text> 72 </xsl:when> 73 <xsl:otherwise> 74 <xsl:text>Application</xsl:text> 75 </xsl:otherwise> 76 </xsl:choose> 77 <xsl:text>' 78 </xsl:text> 79 <xsl:if test="$context='LocalService'"> 80 <xsl:text> { 81 val LocalService = s '</xsl:text><xsl:value-of select="$Module"/><xsl:text>' 82 } 83 </xsl:text> 84 </xsl:if> 85 <xsl:text> '</xsl:text><xsl:value-of select="$Module"/> 86 <xsl:choose> 87 <xsl:when test="$context='InprocServer'"> 88 <xsl:text>.dll</xsl:text> 89 </xsl:when> 90 <xsl:otherwise> 91 <xsl:text>.exe</xsl:text> 92 </xsl:otherwise> 93 </xsl:choose> 94 <xsl:text>' 95 { 96 val AppID = s '{</xsl:text><xsl:value-of select="//library/application[@name=$Application]/@uuid"/><xsl:text>}' 97 } 58 98 } 59 99 60 <xsl:apply-templates select="module[@name=$Module]/class"/> 100 </xsl:text> 101 <xsl:apply-templates select="module[@name=$Module]/class"/> 102 <xsl:text>} 103 </xsl:text> 104 </xsl:if> 61 105 </xsl:template> 62 106 … … 66 110 --> 67 111 <xsl:template match="library//module/class"> 68 <xsl:variable name="cname" select="concat(//library/ @name,'.',@name)"/>112 <xsl:variable name="cname" select="concat(//library/application/@name,'.',@name)"/> 69 113 <xsl:variable name="desc" select="concat(@name,' Class')"/> 70 114 <xsl:text> </xsl:text> … … 82 126 ForceRemove {<xsl:value-of select="@uuid"/>} = s '<xsl:value-of select="$desc"/>' 83 127 { 84 ProgId = s '<xsl:value-of select="concat($cname,'.1')"/>' 85 VersionIndependentProgID = s '<xsl:value-of select="$cname"/>' 86 <xsl:choose> 87 <xsl:when test="../@context='InprocServer'">InprocServer32</xsl:when> 88 <xsl:when test="../@context='LocalServer'">LocalServer32</xsl:when> 89 <xsl:otherwise> 90 <xsl:message terminate="yes"> 91 <xsl:value-of select="concat(../../@name,'::',../@name,': ')"/> 92 <xsl:text>module context </xsl:text> 93 <xsl:value-of select="concat('"',../@context,'"')"/> 94 <xsl:text> is invalid!</xsl:text> 95 </xsl:message> 96 </xsl:otherwise> 97 </xsl:choose> = s '%MODULE%' 98 <xsl:if test="../@context='InprocServer'"> 99 <xsl:variable name="tmodel" select="(./@threadingModel | ../@threadingModel)[last()]"/>{ 100 val ThreadingModel = s '<xsl:choose> 101 <xsl:when test="$tmodel='Apartment'">Apartment</xsl:when> 102 <xsl:when test="$tmodel='Free'">Free</xsl:when> 103 <xsl:when test="$tmodel='Both'">Both</xsl:when> 104 <xsl:when test="$tmodel='Neutral'">Neutral</xsl:when> 105 <xsl:when test="$tmodel='Single'">Single</xsl:when> 106 <xsl:when test="$tmodel='Rental'">Rental</xsl:when> 128 val AppID = s '{<xsl:value-of select="//library/application[@name=$Application]/@uuid"/><xsl:text>}' 129 </xsl:text> 130 <xsl:if test="../@context!='LocalService'"> 131 <xsl:text> ProgID = s '</xsl:text><xsl:value-of select="concat($cname,'.1')"/><xsl:text>' 132 VersionIndependentProgID = s '</xsl:text><xsl:value-of select="$cname"/><xsl:text>' 133 </xsl:text> 134 <xsl:choose> 135 <xsl:when test="../@context='InprocServer'">InprocServer32</xsl:when> 136 <xsl:when test="../@context='LocalServer'">LocalServer32</xsl:when> 107 137 <xsl:otherwise> 108 138 <xsl:message terminate="yes"> 109 <xsl:value-of select="concat(../../@name,'::', @name,': ')"/>110 <xsl:text> class (or module) threading model</xsl:text>111 <xsl:value-of select="concat('"', $tmodel,'"')"/>139 <xsl:value-of select="concat(../../@name,'::',../@name,': ')"/> 140 <xsl:text>module context </xsl:text> 141 <xsl:value-of select="concat('"',../@context,'"')"/> 112 142 <xsl:text> is invalid!</xsl:text> 113 143 </xsl:message> 114 144 </xsl:otherwise> 115 </xsl:choose>' 145 </xsl:choose><xsl:text> = s '%MODULE%' 146 </xsl:text> 147 <xsl:if test="../@context='InprocServer'"> 148 <xsl:variable name="tmodel" select="(./@threadingModel | ../@threadingModel)[last()]"/><xsl:text> { 149 val ThreadingModel = s '</xsl:text> 150 <xsl:choose> 151 <xsl:when test="$tmodel='Apartment'">Apartment</xsl:when> 152 <xsl:when test="$tmodel='Free'">Free</xsl:when> 153 <xsl:when test="$tmodel='Both'">Both</xsl:when> 154 <xsl:when test="$tmodel='Neutral'">Neutral</xsl:when> 155 <xsl:when test="$tmodel='Single'">Single</xsl:when> 156 <xsl:when test="$tmodel='Rental'">Rental</xsl:when> 157 <xsl:otherwise> 158 <xsl:message terminate="yes"> 159 <xsl:value-of select="concat(../../@name,'::',@name,': ')"/> 160 <xsl:text>class (or module) threading model </xsl:text> 161 <xsl:value-of select="concat('"',$tmodel,'"')"/> 162 <xsl:text> is invalid!</xsl:text> 163 </xsl:message> 164 </xsl:otherwise> 165 </xsl:choose><xsl:text>' 116 166 } 167 </xsl:text> 168 </xsl:if> 169 <xsl:text> TypeLib = s '{</xsl:text><xsl:value-of select="//library/@uuid"/><xsl:text>}' 170 </xsl:text> 117 171 </xsl:if> 118 val AppId = s '{<xsl:value-of select="//library/@appUuid"/>}' 119 'TypeLib' = s '{<xsl:value-of select="//library/@uuid"/>}' 120 } 172 <xsl:text> } 121 173 } 122 174 </xsl:text> 123 175 </xsl:template> 124 176 -
trunk/src/VBox/Main/src-all/win/comregister.cmd
r59385 r66274 163 163 @if %fUninstallOnly% == 1 goto end 164 164 "%_VBOX_DIR%VBoxSVC.exe" /RegServer 165 "%_VBOX_DIR%VBoxSDS.exe" /RegService 165 166 regsvr32 /s "%_VBOX_DIR%VBoxC.dll" 166 167 @if %fNoProxy% == 1 goto end … … 183 184 @echo on 184 185 "%_VBOX_DIR%VBoxSVC.exe" /UnregServer 186 "%_VBOX_DIR%VBoxSDS.exe" /UnregService 185 187 %windir%\system32\regsvr32 /s /u "%_VBOX_DIR%VBoxC.dll" 186 188 %windir%\syswow64\regsvr32 /s /u "%_VBOX_DIR%x86\VBoxClient-x86.dll" … … 189 191 if %fUninstallOnly% == 1 goto end 190 192 "%_VBOX_DIR%VBoxSVC.exe" /RegServer 193 "%_VBOX_DIR%VBoxSDS.exe" /RegService 191 194 %windir%\system32\regsvr32 /s "%_VBOX_DIR%VBoxC.dll" 192 195 %windir%\syswow64\regsvr32 /s "%_VBOX_DIR%x86\VBoxClient-x86.dll" -
trunk/src/VBox/Main/src-client/VirtualBoxClientImpl.cpp
r63814 r66274 59 59 } 60 60 61 61 62 // public initializer/uninitializer for internal purposes only 62 63 ///////////////////////////////////////////////////////////////////////////// 64 65 #ifdef VBOX_WITH_SDS 66 67 HRESULT CreateVirtualBoxThroughSDS(ComPtr<IVirtualBox> &aVirtualBox) 68 { 69 ComPtr<IVirtualBoxSDS> aVirtualBoxSDS; 70 71 HRESULT rc = CoCreateInstance(CLSID_VirtualBoxSDS, /* the VirtualBoxSDS object */ 72 NULL, /* no aggregation */ 73 CLSCTX_LOCAL_SERVER, /* the object lives in the current process */ 74 IID_IVirtualBoxSDS, /* IID of the interface */ 75 (void **)aVirtualBoxSDS.asOutParam()); 76 if (FAILED(rc)) 77 { 78 //AssertComRCThrow(rc, setError(rc, 79 // tr("Could not create VirtualBoxSDS bridge object for VirtualBoxClient"))); 80 Assert(SUCCEEDED(rc)); 81 return rc; 82 } 83 84 rc = aVirtualBoxSDS->get_VirtualBox(aVirtualBox.asOutParam()); 85 if (FAILED(rc)) 86 { 87 Assert(SUCCEEDED(rc)); 88 //AssertComRCThrow(rc, setError(rc, 89 // tr("Could not create VirtualBox object for VirtualBoxClient"))); 90 } 91 return rc; 92 } 93 94 HRESULT ReleaseVirtualBoxThroughSDS() 95 { 96 ComPtr<IVirtualBoxSDS> aVirtualBoxSDS; 97 98 HRESULT rc = CoCreateInstance(CLSID_VirtualBoxSDS, /* the VirtualBoxSDS object */ 99 NULL, /* no aggregation */ 100 CLSCTX_LOCAL_SERVER, /* the object lives in the current process */ 101 IID_IVirtualBoxSDS, /* IID of the interface */ 102 (void **)aVirtualBoxSDS.asOutParam()); 103 if (FAILED(rc)) 104 { 105 //AssertComRCThrow(rc, setError(rc, 106 // tr("Could not create VirtualBoxSDS bridge object for VirtualBoxClient"))); 107 LogRel(("ReleaseVirtualBox - instantiation of IVirtualBoxSDS failed, %x\n", rc)); 108 Assert(SUCCEEDED(rc)); 109 return rc; 110 } 111 112 rc = aVirtualBoxSDS->ReleaseVirtualBox(); 113 if (FAILED(rc)) 114 { 115 LogRel(("DeregisterVirtualBox() failed, %x\n", rc)); 116 Assert(SUCCEEDED(rc)); 117 } 118 return rc; 119 } 120 121 #endif 63 122 64 123 /** … … 69 128 HRESULT VirtualBoxClient::init() 70 129 { 130 131 #ifdef VBOX_WITH_SDS 132 // TODO: AM rework for final version 133 // setup COM Security to enable impersonation 134 // This works for console Virtual Box clients, GUI has own security settings 135 // For GUI Virtual Box it will be second call so can return TOO_LATE error 136 HRESULT hrGUICoInitializeSecurity = CoInitializeSecurity(NULL, 137 -1, 138 NULL, 139 NULL, 140 RPC_C_AUTHN_LEVEL_DEFAULT, 141 RPC_C_IMP_LEVEL_IMPERSONATE, //RPC_C_IMP_LEVEL_DELEGATE,//RPC_C_IMP_LEVEL_IMPERSONATE, 142 NULL, 143 EOAC_NONE,//EOAC_NONE,//EOAC_DYNAMIC_CLOAKING,//EOAC_STATIC_CLOAKING, 144 NULL); 145 //Assert(RPC_E_TOO_LATE != hrGUICoInitializeSecurity); 146 Assert(SUCCEEDED(hrGUICoInitializeSecurity) || hrGUICoInitializeSecurity == RPC_E_TOO_LATE); 147 #endif 148 71 149 LogFlowThisFuncEnter(); 72 150 … … 92 170 mData.m_ThreadWatcher = NIL_RTTHREAD; 93 171 mData.m_SemEvWatcher = NIL_RTSEMEVENT; 94 172 173 #ifdef VBOX_WITH_SDS 174 // TODO: AM create virtual box through SDS 175 rc = CreateVirtualBoxThroughSDS(mData.m_pVirtualBox); 176 #else 95 177 rc = mData.m_pVirtualBox.createLocalObject(CLSID_VirtualBox); 178 #endif 96 179 if (FAILED(rc)) 97 180 #ifdef RT_OS_WINDOWS … … 174 257 HRESULT VirtualBoxClient::i_investigateVirtualBoxObjectCreationFailure(HRESULT hrcCaller) 175 258 { 176 /* 259 // TODO: AM place creation of VBox through SDS 260 /* 177 261 * First step is to try get an IUnknown interface of the VirtualBox object. 178 262 * … … 340 424 { 341 425 LogFlowThisFunc(("\n")); 426 427 #ifdef VBOX_WITH_SDS 428 ReleaseVirtualBoxThroughSDS(); 429 #endif 342 430 343 431 /* Enclose the state transition Ready->InUninit->NotReady */ -
trunk/src/VBox/Main/src-client/win/VBoxC.rc
r62535 r66274 58 58 // 59 59 60 IDR_VIRTUALBOX REGISTRY "VBoxC.rgs"60 //IDR_VIRTUALBOX REGISTRY "VBoxC.rgs" 61 61 62 62 1 TYPELIB "VirtualBox.tlb" -
trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp
r66217 r66274 303 303 }; 304 304 305 306 305 // constructor / destructor 307 306 ///////////////////////////////////////////////////////////////////////////// … … 311 310 HRESULT VirtualBox::FinalConstruct() 312 311 { 313 Log FlowThisFunc(("\n"));312 LogRelFlowThisFuncEnter(); 314 313 LogRel(("VirtualBox: object creation starts\n")); 315 314 315 BaseFinalConstruct(); 316 316 317 HRESULT rc = init(); 317 318 318 BaseFinalConstruct(); 319 319 LogRelFlowThisFuncLeave(); 320 320 LogRel(("VirtualBox: object created\n")); 321 321 … … 325 325 void VirtualBox::FinalRelease() 326 326 { 327 Log FlowThisFunc(("\n"));327 LogRelFlowThisFuncEnter(); 328 328 LogRel(("VirtualBox: object deletion starts\n")); 329 329 … … 333 333 334 334 LogRel(("VirtualBox: object deleted\n")); 335 LogRelFlowThisFuncLeave(); 335 336 } 336 337 … … 345 346 HRESULT VirtualBox::init() 346 347 { 348 LogRelFlowThisFuncEnter(); 347 349 /* Enclose the state transition NotReady->InInit->Ready */ 348 350 AutoInitSpan autoInitSpan(this); -
trunk/src/VBox/Runtime/VBox/errmsgvboxcom.xsl
r62898 r66274 51 51 52 52 <xsl:template match="idl"> 53 <xsl:for-each select="library/ result">53 <xsl:for-each select="library/application/result"> 54 54 <xsl:text>{ "</xsl:text> 55 55 <xsl:choose> -
trunk/src/VBox/Runtime/VBox/log-vbox.cpp
r65698 r66274 484 484 ASSERT_LOG_GROUP(MAIN_VIRTUALBOX); 485 485 ASSERT_LOG_GROUP(MAIN_VIRTUALBOXCLIENT); 486 ASSERT_LOG_GROUP(MAIN_VIRTUALBOXSDS); 486 487 ASSERT_LOG_GROUP(MAIN_VIRTUALSYSTEMDESCRIPTION); 487 488 ASSERT_LOG_GROUP(MAIN_VRDESERVER);
Note:
See TracChangeset
for help on using the changeset viewer.