Index: /trunk/include/VBox/com/array.h
===================================================================
--- /trunk/include/VBox/com/array.h	(revision 35912)
+++ /trunk/include/VBox/com/array.h	(revision 35913)
@@ -619,5 +619,5 @@
 
         AssertReturnVoid (aArg != NULL);
-        SAFEARRAY *arg = *aArg;
+        SAFEARRAY *arg = aArg;
 
         if (arg)
@@ -1025,5 +1025,5 @@
 
     /** Internal function Never call it directly. */
-    SAFEARRAY ** __asInParam() { return &m.arr; }
+    SAFEARRAY * __asInParam() { return m.arr; }
 
     /** Internal function Never call it directly. */
@@ -1519,5 +1519,5 @@
 
         AssertReturnVoid (aArg != NULL);
-        SAFEARRAY *arg = *aArg;
+        SAFEARRAY *arg = aArg;
 
         if (arg)
Index: /trunk/include/VBox/com/defs.h
===================================================================
--- /trunk/include/VBox/com/defs.h	(revision 35912)
+++ /trunk/include/VBox/com/defs.h	(revision 35913)
@@ -137,5 +137,5 @@
  * @param aArg  Parameter/attribute name.
  */
-#define ComSafeArrayIn(aType, aArg)     SAFEARRAY **aArg
+#define ComSafeArrayIn(aType, aArg)     SAFEARRAY *aArg
 
 /**
@@ -143,5 +143,5 @@
  * which makes it impossible to use it for reading safearray data.
  */
-#define ComSafeArrayInIsNull(aArg)      ((aArg) == NULL || *(aArg) == NULL)
+#define ComSafeArrayInIsNull(aArg)      ((aArg) == NULL)
 
 /**
@@ -194,5 +194,5 @@
  * @param aArg Parameter name to wrap.
  */
-#define ComSafeGUIDArrayIn(aArg)        SAFEARRAY **aArg
+#define ComSafeGUIDArrayIn(aArg)        SAFEARRAY *aArg
 
 /**
Index: /trunk/src/VBox/Main/idl/comimpl.xsl
===================================================================
--- /trunk/src/VBox/Main/idl/comimpl.xsl	(revision 35912)
+++ /trunk/src/VBox/Main/idl/comimpl.xsl	(revision 35913)
@@ -294,5 +294,5 @@
          </xsl:variable>
          <xsl:value-of select="       '#ifdef RT_OS_WINDOWS&#10;'"/>
-         <xsl:value-of select="       '              SAFEARRAY **    aPtr = va_arg(args, SAFEARRAY **);&#10;'"/>
+         <xsl:value-of select="       '              SAFEARRAY *    aPtr = va_arg(args, SAFEARRAY *);&#10;'"/>
          <xsl:value-of select="concat('              com::SafeArray&lt;', $elemtype,'&gt;   aArr(aPtr);&#10;')"/>
          <xsl:value-of select="       '#else&#10;'"/>
Index: /trunk/src/VBox/Main/idl/midl.xsl
===================================================================
--- /trunk/src/VBox/Main/idl/midl.xsl	(revision 35912)
+++ /trunk/src/VBox/Main/idl/midl.xsl	(revision 35913)
@@ -687,8 +687,4 @@
     <xsl:otherwise>in</xsl:otherwise>
   </xsl:choose>
-  <xsl:if test="@safearray='yes'">
-    <!-- VB supports only [in, out], [out] and [out, retval] arrays -->
-    <xsl:if test="@dir='in'">, out</xsl:if>
-  </xsl:if>
   <xsl:text>] </xsl:text>
   <xsl:if test="@safearray='yes'">
@@ -699,5 +695,5 @@
     <xsl:text>)</xsl:text>
   </xsl:if>
-  <xsl:if test="@dir='out' or @dir='return' or @safearray='yes'">
+  <xsl:if test="@dir='out' or @dir='return'">
     <xsl:text> *</xsl:text>
   </xsl:if>
