Index: trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 33307)
+++ trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 33386)
@@ -77,6 +77,6 @@
   implementation, is used.
 
-  All the parts that a typical VirtualBox user interacts with (the Qt GUI,
-  the VBoxManage command-line interface and the VBoxVRDP server) are technically
+  All the parts that a typical VirtualBox user interacts with (the Qt GUI
+  and the VBoxManage command-line interface) are technically
   front-ends to the Main API and only use the interfaces that are documented
   in this Main API documentation. This ensures that, with any given release
@@ -1374,5 +1374,5 @@
   <interface
     name="IVirtualBox" extends="$unknown"
-    uuid="5e887b09-e3f3-4787-b9f3-8ade5d04d675"
+    uuid="2ecb8c49-ce8a-41fc-96da-9a438b44e4b1"
     wsmap="managed"
   >
@@ -2163,4 +2163,37 @@
       <param name="result" type="boolean" dir="return">
         <desc>If firmware of this type and version is available.</desc>
+      </param>
+    </method>
+
+    <method name="VRDERegisterLibrary">
+      <desc>
+        Appends a VRDE library to this VirtualBox installation.
+
+        The library implements a VirtualBox Remote Desktop Extension (VRDE),
+        which is used to remotely connect to the virtual machines.
+
+        The system library extension (".DLL" or ".so") must be omitted.
+        The library must reside in the VirtualBox installation directory.
+      </desc>
+      <param name="name" type="wstring" dir="in">
+        <desc>The library name.</desc>
+      </param>
+    </method>
+
+    <method name="VRDEUnregisterLibrary">
+      <desc>
+        Removes a VRDE library from this VirtualBox installation.
+      </desc>
+      <param name="name" type="wstring" dir="in">
+        <desc>The library name.</desc>
+      </param>
+    </method>
+
+    <method name="VRDEListLibraries">
+      <desc>
+        List registered libraries.
+      </desc>
+      <param name="names" type="wstring" dir="return" safearray="yes">
+        <desc>Array of names of the libraries.</desc>
       </param>
     </method>
@@ -3346,5 +3379,5 @@
   <interface
      name="IMachine" extends="$unknown"
-     uuid="14136b33-438a-45de-884c-550e9eb34f23"
+     uuid="8934e426-1c09-459f-bbc4-58dba016fbbe"
      wsmap="managed"
      >
@@ -3649,6 +3682,6 @@
     </attribute>
 
-    <attribute name="VRDPServer" type="IVRDPServer" readonly="yes">
-      <desc>VRDP server object.</desc>
+    <attribute name="VRDEServer" type="IVRDEServer" readonly="yes">
+      <desc>VirtualBox Remote Desktop Extension (VRDE) server object.</desc>
     </attribute>
 
@@ -4124,5 +4157,5 @@
           <ul>
             <li><tt>"gui"</tt>: VirtualBox Qt GUI front-end</li>
-            <li><tt>"vrdp"</tt>: VBoxHeadless (VRDP Server) front-end</li>
+            <li><tt>"headless"</tt>: VBoxHeadless (VRDE Server) front-end</li>
             <li><tt>"sdl"</tt>: VirtualBox SDL front-end</li>
           </ul>
@@ -5627,16 +5660,16 @@
 
   <interface
-     name="IRemoteDisplayInfo" extends="$unknown"
-     uuid="b3741084-806f-4c3b-8c42-ebad1a81e45a"
+     name="IVRDEServerInfo" extends="$unknown"
+     uuid="6890123c-5218-42ba-9afd-c71699475115"
      wsmap="struct"
      >
      <desc>
-        Contains information about the remote display (VRDP) capabilities and status.
-        This is used in the <link to="IConsole::remoteDisplayInfo" /> attribute.
+        Contains information about the remote desktop (VRDE) server capabilities and status.
+        This is used in the <link to="IConsole::VRDEServerInfo" /> attribute.
      </desc>
 
     <attribute name="active" type="boolean" readonly="yes">
       <desc>
-        Whether the remote display connection is active.
+        Whether the remote desktop connection is active.
       </desc>
     </attribute>
@@ -5644,7 +5677,7 @@
     <attribute name="port" type="long" readonly="yes">
       <desc>
-        VRDP server port number. If this property is equal to <tt>0</tt>, then
-        the VRDP server failed to start, usually because there are no free TCP
-        ports to bind to. If this property is equal to <tt>-1</tt>, then the VRDP
+        VRDE server port number. If this property is equal to <tt>0</tt>, then
+        the VRDE server failed to start, usually because there are no free IP
+        ports to bind to. If this property is equal to <tt>-1</tt>, then the VRDE
         server has not yet been started.
       </desc>
@@ -5736,5 +5769,5 @@
   <interface
      name="IConsole" extends="$unknown"
-     uuid="03cb7897-ea17-4e6c-81ae-4bd90be2fde2"
+     uuid="3c4a453e-d27b-44a2-b59d-dda6e1835e57"
      wsmap="managed"
      >
@@ -5829,5 +5862,5 @@
     <attribute name="remoteUSBDevices" type="IHostUSBDevice" readonly="yes" safearray="yes">
       <desc>
-        List of USB devices currently attached to the remote VRDP client.
+        List of USB devices currently attached to the remote VRDE client.
         Once a new device is physically attached to the remote host computer,
         it appears in this list and remains there until detached.
@@ -5851,7 +5884,7 @@
     </attribute>
 
-    <attribute name="remoteDisplayInfo" type="IRemoteDisplayInfo" readonly="yes">
-      <desc>
-        Interface that provides information on Remote Display (VRDP) connection.
+    <attribute name="VRDEServerInfo" type="IVRDEServerInfo" readonly="yes">
+      <desc>
+        Interface that provides information on Remote Desktop Extension (VRDE) connection.
       </desc>
     </attribute>
@@ -7086,5 +7119,5 @@
      name="ISystemProperties"
      extends="$unknown"
-     uuid="f8fff1f1-eeb4-4483-a2a4-b4186fab5a1e"
+     uuid="2af0100b-fda2-4c6a-8e8f-31e4ba871886"
      wsmap="managed"
      >
@@ -7278,7 +7311,7 @@
     </attribute>
 
-    <attribute name="remoteDisplayAuthLibrary" type="wstring">
-      <desc>
-        Library that provides authentication for VRDP clients. The library
+    <attribute name="VRDEAuthLibrary" type="wstring">
+      <desc>
+        Library that provides authentication for Remote Desktop clients. The library
         is used if a virtual machine's authentication type is set to "external"
         in the VM RemoteDisplay configuration.
@@ -7308,5 +7341,5 @@
         within the <link to="IWebsessionManager::logon" /> implementation.
 
-        As opposed to <link to="ISystemProperties::remoteDisplayAuthLibrary" />,
+        As opposed to <link to="ISystemProperties::VRDEAuthLibrary" />,
         there is no per-VM setting for this, as the webservice is a global
         resource (if it is running). Only for this setting (for the webservice),
@@ -7317,8 +7350,8 @@
         The initial value of this property is <tt>"VRDPAuth"</tt>,
         meaning that the webservice will use the same authentication
-        library that is used by default for VBoxVRDP (again, see
-        <link to="ISystemProperties::remoteDisplayAuthLibrary" />).
+        library that is used by default for VRDE (again, see
+        <link to="ISystemProperties::VRDEAuthLibrary" />).
         The format and calling convention of authentication libraries
-        is the same for the webservice as it is for VBoxVRDP.
+        is the same for the webservice as it is for VRDE.
 
         <note>
@@ -7326,4 +7359,16 @@
           initial value.
         </note>
+      </desc>
+    </attribute>
+
+    <attribute name="defaultVRDELibrary" type="wstring">
+      <desc>
+        Default VRDE library.
+
+        The default value of this property is an empty string, which means that the
+        VRDE is not available.
+
+        For details about VirtualBox Remote Desktop Extension and how to implement
+        it, please refer to the VirtualBox SDK.
       </desc>
     </attribute>
@@ -11821,5 +11866,5 @@
     <attribute name="remote" type="boolean" readonly="yes">
       <desc>
-        Whether the device is physically connected to a remote VRDP
+        Whether the device is physically connected to a remote VRDE
         client or to a local host machine.
       </desc>
@@ -12248,15 +12293,10 @@
   </interface>
 
-  <!--
-  // IVRDPServer
-  /////////////////////////////////////////////////////////////////////////
-  -->
-
   <enum
-    name="VRDPAuthType"
-    uuid="3d91887a-b67f-4b33-85bf-2da7ab1ea83a"
+    name="AuthType"
+    uuid="7eef6ef6-98c2-4dc2-ab35-10d2b292028d"
   >
     <desc>
-      VRDP authentication type.
+      VirtualBox authentication type.
     </desc>
 
@@ -12268,29 +12308,20 @@
   </enum>
 
+  <!--
+  // IVRDEServer
+  /////////////////////////////////////////////////////////////////////////
+  -->
+
   <interface
-     name="IVRDPServer" extends="$unknown"
-     uuid="7aeeb530-0b08-41fe-835d-9be9ec1dbe5c"
+     name="IVRDEServer" extends="$unknown"
+     uuid="f68a6b34-6f09-4040-8de1-e8d746c4a9ea"
      wsmap="managed"
      >
     <attribute name="enabled" type="boolean">
-      <desc>VRDP server status.</desc>
-    </attribute>
-
-    <attribute name="ports" type="wstring">
-      <desc>
-        VRDP server port numbers. The server will try to bind to one of free ports from the list.
-        <note>
-          This is a string of comma separated TCP port numbers or port number ranges.
-          Example <tt>5000,5010-5012,5015</tt>
-        </note>
-      </desc>
-    </attribute>
-
-    <attribute name="netAddress" type="wstring">
-      <desc>VRDP server address.</desc>
-    </attribute>
-
-    <attribute name="authType" type="VRDPAuthType">
-      <desc>VRDP authentication method.</desc>
+      <desc>VRDE server status.</desc>
+    </attribute>
+
+    <attribute name="authType" type="AuthType">
+      <desc>VRDE authentication method.</desc>
     </attribute>
 
@@ -12309,5 +12340,5 @@
       <desc>
         Flag whether the existing connection must be dropped and a new connection
-        must be established by the VRDP server, when a new client connects in single
+        must be established by the VRDE server, when a new client connects in single
         connection mode.
       </desc>
@@ -12316,5 +12347,5 @@
     <attribute name="videoChannel" type="boolean">
       <desc>
-        Flag whether RDP video channel is supported.
+        Flag whether video redirectiron channel is enabled.
       </desc>
     </attribute>
@@ -12325,4 +12356,36 @@
       </desc>
     </attribute>
+
+    <method name="setVRDEProperty">
+      <desc>
+        Sets a VRDE specific property string.
+
+        If you pass @c null or empty string as a key @a value, the given @a key
+        will be deleted.
+
+      </desc>
+      <param name="key" type="wstring" dir="in">
+        <desc>Name of the key to set.</desc>
+      </param>
+      <param name="value" type="wstring" dir="in">
+        <desc>Value to assign to the key.</desc>
+      </param>
+    </method>
+
+    <method name="getVRDEProperty">
+      <desc>
+        Returns a VRDE specific property string.
+
+        If the requested data @a key does not exist, this function will
+        succeed and return an empty string in the @a value argument.
+
+      </desc>
+      <param name="key" type="wstring" dir="in">
+        <desc>Name of the key to get.</desc>
+      </param>
+      <param name="value" type="wstring" dir="return">
+        <desc>Value of the requested key.</desc>
+      </param>
+    </method>
 
   </interface>
@@ -12442,5 +12505,5 @@
   <interface
      name="IInternalSessionControl" extends="$unknown"
-     uuid="0431ef9e-2c2e-42af-87d7-c8f52455f28a"
+     uuid="06ef98a7-f7c0-45ba-bf99-9aca7a4d5530"
      internal="yes"
      wsmap="suppress"
@@ -12631,7 +12694,7 @@
     </method>
 
-    <method name="onVRDPServerChange">
-      <desc>
-        Triggered when settings of the VRDP server object of the
+    <method name="onVRDEServerChange">
+      <desc>
+        Triggered when settings of the VRDE server object of the
         associated virtual machine have changed.
 
@@ -13851,5 +13914,5 @@
   <enum
      name="VBoxEventType"
-     uuid="1728bb3b-4843-4f12-af67-f7a1f69f3a52">
+     uuid="e085d0b1-05e6-4f40-a709-b7266fbdb236">
 
     <desc>
@@ -14013,7 +14076,7 @@
       </desc>
     </const>
-    <const name="OnVRDPServerChanged" value="53">
-      <desc>
-        See <link to="IVRDPServerChangedEvent">IVRDPServerChangedEvent</link>.
+    <const name="OnVRDEServerChanged" value="53">
+      <desc>
+        See <link to="IVRDEServerChangedEvent">IVRDEServerChangedEvent</link>.
       </desc>
     </const>
@@ -14053,7 +14116,7 @@
       </desc>
     </const>
-    <const name="OnRemoteDisplayInfoChanged" value="61">
-      <desc>
-        See <link to="IRemoteDisplayInfoChangedEvent">IRemoteDisplayInfoChangedEvent</link>.
+    <const name="OnVRDEServerInfoChanged" value="61">
+      <desc>
+        See <link to="IVRDEServerInfoChangedEvent">IVRDEServerInfoChangedEvent</link>.
       </desc>
     </const>
@@ -14908,12 +14971,12 @@
 
    <interface
-     name="IVRDPServerChangedEvent" extends="IEvent"
-     uuid="726038B6-6279-4A7A-8037-D041693D1915"
-     wsmap="managed" autogen="VBoxEvent" id="OnVRDPServerChanged"
+     name="IVRDEServerChangedEvent" extends="IEvent"
+     uuid="a06fd66a-3188-4c8c-8756-1395e8cb691c"
+     wsmap="managed" autogen="VBoxEvent" id="OnVRDEServerChanged"
      >
     <desc>
       Notification when a property of the
-      <link to="IMachine::VRDPServer">VRDP server</link> changes.
-      Interested callees should use IVRDPServer methods and attributes to
+      <link to="IMachine::VRDEServer">VRDE server</link> changes.
+      Interested callees should use IVRDEServer methods and attributes to
       find out what has changed.
     </desc>
@@ -14921,11 +14984,11 @@
 
    <interface
-     name="IRemoteDisplayInfoChangedEvent" extends="IEvent"
-     uuid="65B556C5-2A99-47D8-B311-FC177F0914CD"
-     wsmap="managed" autogen="VBoxEvent" id="OnRemoteDisplayInfoChanged"
+     name="IVRDEServerInfoChangedEvent" extends="IEvent"
+     uuid="dd6a1080-e1b7-4339-a549-f0878115596e"
+     wsmap="managed" autogen="VBoxEvent" id="OnVRDEServerInfoChanged"
      >
     <desc>
-      Notification when the status of the VRDP server changes. Interested callees
-      should use <link to="IConsole::remoteDisplayInfo">IRemoteDisplayInfo</link>
+      Notification when the status of the VRDE server changes. Interested callees
+      should use <link to="IConsole::VRDEServerInfo">IVRDEServerInfo</link>
       attributes to find out what is the current status.
     </desc>
