2005-02-26 Kazuki Oikawa <kazuki@panicode.com>
authorKazuki Oikawa <k@oikw.org>
Sat, 26 Feb 2005 11:29:31 +0000 (11:29 -0000)
committerKazuki Oikawa <k@oikw.org>
Sat, 26 Feb 2005 11:29:31 +0000 (11:29 -0000)
* corlib.dll.sources: Removed DoubleFormatter and SingleFormatter.
Added System.Runtime.InteropServices.ComTypes
        * Added System.Runtime.InteropServices.ComTypes

svn path=/trunk/mcs/; revision=41237

49 files changed:
mcs/class/corlib/ChangeLog
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/BINDPTR.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/BIND_OPTS.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/CALLCONV.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/CONNECTDATA.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ChangeLog [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/DESCKIND.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/DISPPARAMS.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ELEMDESC.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/EXCEPINFO.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FILETIME.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCDESC.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCFLAGS.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCKIND.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IBindCtx.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IConnectionPoint.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IConnectionPointContainer.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IDLDESC.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IDLFLAG.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumConnectionPoints.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumConnections.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumMoniker.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumString.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumVARIANT.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IMPLTYPEFLAGS.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IMoniker.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/INVOKEKIND.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IPersistFile.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IRunningObjectTable.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IStream.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeComp.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeInfo.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeInfo2.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeLib.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeLib2.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/LIBFLAGS.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/PARAMDESC.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/PARAMFLAG.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/STATSTG.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/SYSKIND.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEATTR.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEDESC.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEFLAGS.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEKIND.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPELIBATTR.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARDESC.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARFLAGS.cs [new file with mode: 0644]
mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARKIND.cs [new file with mode: 0644]
mcs/class/corlib/corlib.dll.sources

index cd77d8492ef860ed843d7beba658a55e41f1f6ba..f9e876d4f815d89f8df872aee3b47b74007350e4 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-26  Kazuki Oikawa  <kazuki@panicode.com>
+
+       * corlib.dll.sources: Removed DoubleFormatter and SingleFormatter.
+       Added System.Runtime.InteropServices.ComTypes
+
 2005-02-24  Sebastien Pouliot  <sebastien@ximian.com>
 
        * corlib_test.dll.sources : Added new 2.0 unit tests for X.509 
        * corlib_test.dll.sources: Added unit tests PaddingMode and X509 
        using CryptoAPI.
 
-2003-12-14  Pedro Martínez Juliá  <yoros@wanadoo.es>
+2003-12-14  Pedro Martú\8bez Juli\81E <yoros@wanadoo.es>
 
        * DateTime.cs: Be sure that the array access is not out of range
        when looking for ArgumentOutOfRangeException in the year value.
        * corlib.dll.sources: Added classes for Authenticode support.
        * corlib_test.dll.sources: Added unit test for SPC certificates.
 
-2003-09-26  Pedro Martínez Julá  <yoros@wanadoo.es>
+2003-09-26  Pedro Martú\8bez Jul\81E <yoros@wanadoo.es>
 
        * corlib_test.dll.sources: Remove tests that generate compile
        errors. The tests are still there but its name is rmoved here.
 
        * unix.args: Added System.Runtime.Remoting.Activation/AppDomainLevelActivator.cs
 
-2003-03-16  Pedro Martínez Juliá  <yoros@wanadoo.es>
+2003-03-16  Pedro Martú\8bez Juli\81E <yoros@wanadoo.es>
 
        * unix.args: Added "System.FloatingPointFormatter.cs".
 
        * unix.args: Added
                System.Runtime.InteropServices/HandleRef.cs
 
-2003-03-04  Pedro Martínez Juliá  <yoros@wanadoo.es>
+2003-03-04  Pedro Martú\8bez Juli\81E <yoros@wanadoo.es>
 
        * unix.args: Added "DoubleFormatter.cs" and "SingleFormatter.cs"
 
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/BINDPTR.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/BINDPTR.cs
new file mode 100644 (file)
index 0000000..0928f61
--- /dev/null
@@ -0,0 +1,47 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.BINDPTR.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible(false)]
+       [StructLayout (LayoutKind.Explicit, CharSet = CharSet.Unicode)]
+       public struct BINDPTR {
+               [FieldOffset (0)] 
+               public IntPtr lpfuncdesc;
+               [FieldOffset (0)]
+               public IntPtr lptcomp;
+               [FieldOffset (0)]
+               public IntPtr lpvardesc;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/BIND_OPTS.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/BIND_OPTS.cs
new file mode 100644 (file)
index 0000000..66fd165
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// System.Runtime.InteropServices.ComTypes.BIND_OPTS.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential)]
+       public struct BIND_OPTS
+       {
+               public int cbStruct;
+               public int grfFlags;
+               public int grfMode;
+               public int dwTickCountDeadline;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/CALLCONV.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/CALLCONV.cs
new file mode 100644 (file)
index 0000000..e1682a4
--- /dev/null
@@ -0,0 +1,50 @@
+//
+// System.Runtime.InteropServices.ComTypes.CALLCONV.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Serializable]
+       [ComVisible (false)]
+       public enum CALLCONV
+       {
+               CC_CDECL = 1,
+               CC_PASCAL = 2,
+               CC_MSCPASCAL = 2,
+               CC_MACPASCAL = 3,
+               CC_STDCALL = 4,
+               CC_RESERVED = 5,
+               CC_SYSCALL = 6,
+               CC_MPWCDECL = 7,
+               CC_MPWPASCAL = 8,
+               CC_MAX = 9
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/CONNECTDATA.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/CONNECTDATA.cs
new file mode 100644 (file)
index 0000000..2198f8e
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// System.Runtime.InteropServices.ComTypes.CONNECTDATA.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct CONNECTDATA
+       {
+               [MarshalAs (UnmanagedType.Interface)]
+               public object pUnk;
+               public int dwCookie;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ChangeLog b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ChangeLog
new file mode 100644 (file)
index 0000000..ace44db
--- /dev/null
@@ -0,0 +1,48 @@
+2005-02-26  Kazuki Oikawa  <kazuki@panicode.com>
+
+       * BINDPTR.cs
+       * BIND_OPTS.cs
+       * CALLCONV.cs
+       * CONNECTDATA.cs
+       * DESCKIND.cs
+       * DISPPARAMS.cs
+       * ELEMDESC.cs
+       * EXCEPINFO.cs
+       * FILETIME.cs
+       * FUNCDESC.cs
+       * FUNCFLAGS.cs
+       * FUNCKIND.cs
+       * IBindCtx.cs
+       * IConnectionPoint.cs
+       * IConnectionPointContainer.cs
+       * IDLDESC.cs
+       * IDLFLAG.cs
+       * IEnumConnectionPoints.cs
+       * IEnumConnections.cs
+       * IEnumMoniker.cs
+       * IEnumString.cs
+       * IEnumVARIANT.cs
+       * IMoniker.cs
+       * IMPLTYPEFLAGS.cs
+       * INVOKEKIND.cs
+       * IPersistFile.cs
+       * IRunningObjectTable.cs
+       * IStream.cs
+       * ITypeComp.cs
+       * ITypeInfo.cs
+       * ITypeInfo2.cs
+       * ITypeLib.cs
+       * ITypeLib2.cs
+       * LIBFLAGS.cs
+       * PARAMDESC.cs
+       * PARAMFLAG.cs
+       * STATSTG.cs
+       * SYSKIND.cs
+       * TYPEATTR.cs
+       * TYPEDESC.cs
+       * TYPEFLAGS.cs
+       * TYPEKIND.cs
+       * TYPELIBATTR.cs
+       * VARDESC.cs
+       * VARFLAGS.cs
+       * VARKIND.cs: Added
\ No newline at end of file
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/DESCKIND.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/DESCKIND.cs
new file mode 100644 (file)
index 0000000..f86b946
--- /dev/null
@@ -0,0 +1,48 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.DESCKIND.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+
+       [Serializable]
+       [ComVisible(false)]
+       public enum DESCKIND {
+               DESCKIND_NONE = 0,
+               DESCKIND_FUNCDESC = 1,
+               DESCKIND_VARDESC = 2,
+               DESCKIND_TYPECOMP = 3,
+               DESCKIND_IMPLICITAPPOBJ = 4,
+               DESCKIND_MAX = 5
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/DISPPARAMS.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/DISPPARAMS.cs
new file mode 100644 (file)
index 0000000..6faae6d
--- /dev/null
@@ -0,0 +1,45 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.DISPPARAMS.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible(false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct DISPPARAMS {
+               public IntPtr rgvarg;
+               public IntPtr rgdispidNamedArgs;
+               public int cArgs;
+               public int cNamedArgs;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ELEMDESC.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ELEMDESC.cs
new file mode 100644 (file)
index 0000000..3a71d16
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// System.Runtime.InteropServices.ComTypes.ELEMDESC.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct ELEMDESC
+       {
+               public TYPEDESC tdesc;
+               public DESCUNION desc;
+
+               [ComVisible (false)]
+               [StructLayout (LayoutKind.Explicit, CharSet = CharSet.Unicode)]
+               public struct DESCUNION
+               {
+                       [FieldOffset (0)]
+                       public IDLDESC idldesc;
+                       [FieldOffset (0)]
+                       public PARAMDESC paramdesc;
+               }
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/EXCEPINFO.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/EXCEPINFO.cs
new file mode 100644 (file)
index 0000000..f4db236
--- /dev/null
@@ -0,0 +1,52 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.EXCEPINFO.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible(false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct EXCEPINFO {
+               public short wCode;
+               public short wReserved;
+               [MarshalAs (UnmanagedType.BStr)]
+               public string bstrSource;
+               [MarshalAs (UnmanagedType.BStr)]
+               public string bstrDescription;
+               [MarshalAs (UnmanagedType.BStr)]
+               public string bstrHelpFile;
+               public int dwHelpContext;
+               public IntPtr pvReserved;
+               public IntPtr pfnDeferredFillIn;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FILETIME.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FILETIME.cs
new file mode 100644 (file)
index 0000000..1f3a763
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// System.Runtime.InteropServices.ComTypes.FILETIME.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential)]
+       public struct FILETIME
+       {
+               public int dwLowDateTime;
+               public int dwHighDateTime;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCDESC.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCDESC.cs
new file mode 100644 (file)
index 0000000..4f6d8bc
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// System.Runtime.InteropServices.ComTypes.FUNCDESC.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential)]
+       public struct FUNCDESC
+       {
+               public int memid;
+               public IntPtr lprgscode;
+               public IntPtr lprgelemdescParam;
+               public FUNCKIND funckind;
+               public INVOKEKIND invkind;
+               public CALLCONV callconv;
+               public short cParams;
+               public short cParamsOpt;
+               public short oVft;
+               public short cScodes;
+               public ELEMDESC elemdescFunc;
+               public short wFuncFlags;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCFLAGS.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCFLAGS.cs
new file mode 100644 (file)
index 0000000..d1c2339
--- /dev/null
@@ -0,0 +1,54 @@
+//
+// System.Runtime.InteropServices.ComTypes.FUNCFLAGS.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Flags, Serializable, ComVisible (false)]
+       public enum FUNCFLAGS
+       {
+               FUNCFLAG_FRESTRICTED = 1,
+               FUNCFLAG_FSOURCE = 2,
+               FUNCFLAG_FBINDABLE = 4,
+               FUNCFLAG_FREQUESTEDIT = 8,
+               FUNCFLAG_FDISPLAYBIND = 16,
+               FUNCFLAG_FDEFAULTBIND = 32,
+               FUNCFLAG_FHIDDEN = 64,
+               FUNCFLAG_FUSESGETLASTERROR = 128,
+               FUNCFLAG_FDEFAULTCOLLELEM = 256,
+               FUNCFLAG_FUIDEFAULT = 512,
+               FUNCFLAG_FNONBROWSABLE = 1024,
+               FUNCFLAG_FREPLACEABLE = 2048,
+               FUNCFLAG_FIMMEDIATEBIND = 4096
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCKIND.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/FUNCKIND.cs
new file mode 100644 (file)
index 0000000..518bb8d
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// System.Runtime.InteropServices.ComTypes.FUNCKIND.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Serializable]
+       [ComVisible (false)]
+       public enum FUNCKIND
+       {
+               FUNC_VIRTUAL = 0,
+               FUNC_PUREVIRTUAL = 1,
+               FUNC_NONVIRTUAL = 2,
+               FUNC_STATIC = 3,
+               FUNC_DISPATCH = 4
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IBindCtx.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IBindCtx.cs
new file mode 100644 (file)
index 0000000..8249f07
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// System.Runtime.InteropServices.ComTypes.IBindCtx.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("0000000e-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IBindCtx
+       {
+               void RegisterObjectBound ([MarshalAs(UnmanagedType.Interface)] object punk);
+               void RevokeObjectBound ([MarshalAs(UnmanagedType.Interface)] object punk);
+               void ReleaseBoundObjects ();
+               void SetBindOptions ([In] ref BIND_OPTS pbindopts);
+               void GetBindOptions (ref BIND_OPTS pbindopts);
+               void GetRunningObjectTable (out IRunningObjectTable pprot);
+               void RegisterObjectParam ([MarshalAs (UnmanagedType.LPWStr)] string pszKey, [MarshalAs (UnmanagedType.Interface)] object punk);
+               void GetObjectParam ([MarshalAs (UnmanagedType.LPWStr)] string pszKey, [MarshalAs (UnmanagedType.Interface)] out object ppunk);
+               void EnumObjectParam (out IEnumString ppenum);
+               void RevokeObjectParam ([MarshalAs(UnmanagedType.LPWStr)] string pszKey);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IConnectionPoint.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IConnectionPoint.cs
new file mode 100644 (file)
index 0000000..35b0763
--- /dev/null
@@ -0,0 +1,47 @@
+//
+// System.Runtime.InteropServices.ComTypes.IConnectionPoint.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("b196b286-bab4-101a-b69c-00aa00341d07")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IConnectionPoint
+       {
+               void GetConnectionInterface (out Guid pIID);
+               void GetConnectionPointContainer (out IConnectionPointContainer ppCPC);
+               void Advise ([MarshalAs(UnmanagedType.Interface)] object pUnkSink, out int pdwCookie);
+               void Unadvise (int dwCookie);
+               void EnumConnections (out IEnumConnections ppEnum);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IConnectionPointContainer.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IConnectionPointContainer.cs
new file mode 100644 (file)
index 0000000..308e6a4
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("b196b284-bab4-101a-b69c-00aa00341d07")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IConnectionPointContainer
+       {
+               void EnumConnectionPoints (out IEnumConnectionPoints ppEnum);
+               void FindConnectionPoint (ref Guid riid, out IConnectionPoint ppCP);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IDLDESC.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IDLDESC.cs
new file mode 100644 (file)
index 0000000..843664d
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// System.Runtime.InteropServices.ComTypes.IDLDESC.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct IDLDESC
+       {
+               public int dwReserved;
+               public IDLFLAG wIDLFlags;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IDLFLAG.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IDLFLAG.cs
new file mode 100644 (file)
index 0000000..536fb82
--- /dev/null
@@ -0,0 +1,46 @@
+//
+// System.Runtime.InteropServices.ComTypes.IDLFLAG.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Flags, Serializable, ComVisible (false)]
+       public enum IDLFLAG
+       {
+               IDLFLAG_NONE = 0,
+               IDLFLAG_FIN = 1,
+               IDLFLAG_FOUT = 2,
+               IDLFLAG_FLCID = 4,
+               IDLFLAG_FRETVAL = 8
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumConnectionPoints.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumConnectionPoints.cs
new file mode 100644 (file)
index 0000000..c43a501
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("b196b285-bab4-101a-b69c-00aa00341d07")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IEnumConnectionPoints
+       {
+               [PreserveSigAttribute]
+               int Next (int celt, [Out, MarshalAs (UnmanagedType.LPArray, SizeParamIndex = 0)] IConnectionPoint[] rgelt, out int pceltFetched);
+               [PreserveSigAttribute]
+               int Skip (int celt);
+               [PreserveSigAttribute]
+               int Reset ();
+               void Clone (out IEnumConnectionPoints ppenum);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumConnections.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumConnections.cs
new file mode 100644 (file)
index 0000000..9504bc7
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.IEnumConnections.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("b196b287-bab4-101a-b69c-00aa00341d07")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IEnumConnections
+       {
+               [PreserveSigAttribute]
+               int Next (int celt, [Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=Consts.UnmanagedType_80, SizeParamIndex=0)] CONNECTDATA[] rgelt, out int pceltFetched);
+               [PreserveSigAttribute]
+               int Skip (int celt);
+               [PreserveSigAttribute]
+               void Reset ();
+               void Clone (out IEnumConnections ppenum);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumMoniker.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumMoniker.cs
new file mode 100644 (file)
index 0000000..7759c5c
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.IEnumMoniker.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("00000102-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IEnumMoniker
+       {
+               [PreserveSigAttribute]
+               int Next (int celt, [Out, MarshalAs(UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80, SizeParamIndex = 0)] IMoniker[] rgelt, out int pceltFetched);
+               [PreserveSigAttribute]
+               int Skip (int celt);
+               [PreserveSigAttribute]
+               int Reset ();
+               void Clone (out IEnumMoniker ppenum);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumString.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumString.cs
new file mode 100644 (file)
index 0000000..67be78f
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.IEnumString.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("00000101-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IEnumString
+       {
+               [PreserveSigAttribute]
+               int Next (int celt, [Out, MarshalAs (UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80, SizeParamIndex = 0)] string[] rgelt, out int pceltFetched);
+               [PreserveSigAttribute]
+               int Skip (int celt);
+               [PreserveSigAttribute]
+               int Reset ();
+               void Clone (out IEnumString ppenum);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumVARIANT.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IEnumVARIANT.cs
new file mode 100644 (file)
index 0000000..9e437d4
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.IEnumVARIANT.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("00020404-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IEnumVARIANT
+       {
+               [PreserveSigAttribute]
+               int Next (int celt, int rgvar, int pceltFetched);
+               [PreserveSigAttribute]
+               int Skip (int celt);
+               [PreserveSigAttribute]
+               int Reset ();
+               void Clone (int ppenum);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IMPLTYPEFLAGS.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IMPLTYPEFLAGS.cs
new file mode 100644 (file)
index 0000000..7d8307c
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Flags, Serializable, ComVisible (false)]
+       public enum IMPLTYPEFLAGS
+       {
+               IMPLTYPEFLAG_FDEFAULT = 1,
+               IMPLTYPEFLAG_FSOURCE = 2,
+               IMPLTYPEFLAG_FRESTRICTED = 4,
+               IMPLTYPEFLAG_FDEFAULTVTABLE = 8
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IMoniker.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IMoniker.cs
new file mode 100644 (file)
index 0000000..49037fa
--- /dev/null
@@ -0,0 +1,63 @@
+//
+// System.Runtime.InteropServices.ComTypes.IMoniker.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("0000000f-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IMoniker
+       {
+               void GetClassID (out Guid pClassID);
+               [PreserveSig]
+               int IsDirty ();
+               void Load (IStream pStm);
+               void Save (IStream pStm, [MarshalAs (UnmanagedType.Bool)] bool fClearDirty);
+               void GetSizeMax (out long pcbSize);
+               void BindToObject (IBindCtx pbc, IMoniker pmkToLeft, [In] ref Guid riidResult, [MarshalAs (UnmanagedType.Interface)] out object ppvResult);
+               void BindToStorage (IBindCtx pbc, IMoniker pmkToLeft, [In] ref Guid riid, [MarshalAs (UnmanagedType.Interface)] out object ppvObj);
+               void Reduce (IBindCtx pbc, int dwReduceHowFar, ref IMoniker ppmkToLeft, out IMoniker ppmkReduced);
+               void ComposeWith (IMoniker pmkRight, [MarshalAs (UnmanagedType.LPWStr)] bool fOnlyIfNotGeneric, out IMoniker ppmkComposite);
+               void Enum ([MarshalAs(UnmanagedType.Bool)] bool fForward, out IEnumMoniker ppenumMoniker);
+               void IsEqual (IMoniker pmkOtherMoniker);
+               void Hash (out int pdwHash);
+               void IsRunning (IBindCtx pbc, IMoniker pmkToLeft, IMoniker pmkNewlyRunning);
+               void GetTimeOfLastChange (IBindCtx pbc, IMoniker pmkToLeft, out FILETIME pFileTime);
+               void Inverse (out IMoniker ppmk);
+               void CommonPrefixWith (IMoniker pmkOther, out IMoniker ppmkPrefix);
+               void RelativePathTo (IMoniker pmkOther, out IMoniker ppmkRelPath);
+               void GetDisplayName (IBindCtx pbc, IMoniker pmkToLeft, [MarshalAs (UnmanagedType.LPWStr)] out string ppszDisplayName);
+               void ParseDisplayName (IBindCtx pbc, IMoniker pmkToLeft, [MarshalAs (UnmanagedType.LPWStr)] string pszDisplayName, out int pchEaten, out IMoniker ppmkOut);
+               void IsSystemMoniker (out int pdwMksys);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/INVOKEKIND.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/INVOKEKIND.cs
new file mode 100644 (file)
index 0000000..46c7b4f
--- /dev/null
@@ -0,0 +1,46 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.INVOKEKIND.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+
+       [Serializable]
+       [ComVisible(false)]
+       public enum INVOKEKIND {
+               INVOKE_FUNC = 1,
+               INVOKE_PROPERTYGET = 2,
+               INVOKE_PROPERTYPUT = 4,
+               INVOKE_PROPERTYPUTREF = 8
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IPersistFile.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IPersistFile.cs
new file mode 100644 (file)
index 0000000..7fb0e9b
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.IPersistFile.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("0000010b-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IPersistFile
+       {
+               void GetClassID (out Guid pClassID);
+               [PreserveSig]
+               int IsDirty ();
+               void Load ([MarshalAs(UnmanagedType.LPWStr)] string pszFileName, int dwMode);
+               void Save ([MarshalAs (UnmanagedType.LPWStr)] string pszFileName, [MarshalAs (UnmanagedType.Bool)] bool fRemember);
+               void SaveCompleted ([MarshalAs (UnmanagedType.LPWStr)]string pszFileName);
+               void GetCurFile ([MarshalAs(UnmanagedType.LPWStr)] out string ppszFileName);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IRunningObjectTable.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IRunningObjectTable.cs
new file mode 100644 (file)
index 0000000..4511cab
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.IRunningObjectTable.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("00000010-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IRunningObjectTable
+       {
+               void Register (int grfFlags, [MarshalAs (UnmanagedType.Interface)] object punkObject, IMoniker pmkObjectName, out int pdwRegister);
+               void Revoke (int dwRegister);
+               void IsRunning (IMoniker pmkObjectName);
+               void GetObject (IMoniker pmkObjectName, [MarshalAs (UnmanagedType.Interface)] out object ppunkObject);
+               void NoteChangeTime (int dwRegister, ref FILETIME pfiletime);
+               void GetTimeOfLastChange (IMoniker pmkObjectName, out FILETIME pfiletime);
+               void EnumRunning (out IEnumMoniker ppenumMoniker);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IStream.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/IStream.cs
new file mode 100644 (file)
index 0000000..6169628
--- /dev/null
@@ -0,0 +1,54 @@
+//
+// System.Runtime.InteropServices.ComTypes.IStream.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Runtime.InteropServices.ComTypes;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid ("0000000c-0000-0000-c000-000000000046")]
+       [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
+       public interface IStream
+       {
+               void Read ([Out, MarshalAs(UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80, SizeParamIndex = 1)] byte[] pv, int cb, IntPtr pcbRead);
+               void Write ([MarshalAs(UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80, SizeParamIndex = 1)] byte[] pv, int cb, IntPtr pcbWritten);
+               void Seek (long dlibMove, int dwOrigin, IntPtr plibNewPosition);
+               void SetSize (long libNewSize);
+               void CopyTo (IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten);
+               void Commit (int grfCommitFlags);
+               void Revert ();
+               void LockRegion (long libOffset, long cb, int dwLockType);
+               void UnlockRegion (long libOffset, long cb, int dwLockType);
+               void Stat (out STATSTG pstatstg, int grfStatFlag);
+               void Clone (out IStream ppstm);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeComp.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeComp.cs
new file mode 100644 (file)
index 0000000..db78557
--- /dev/null
@@ -0,0 +1,43 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.ITypeComp.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Guid("00020403-0000-0000-c000-000000000046")]
+       [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+       public interface ITypeComp {
+               void Bind([MarshalAs(UnmanagedType.LPWStr)] string szName, int lHashVal, short wFlags, out ITypeInfo ppTInfo, out DESCKIND pDescKind, out BINDPTR pBindPtr);
+               void BindType([MarshalAs(UnmanagedType.LPWStr)] string szName, int lHashVal, out ITypeInfo ppTInfo, out ITypeComp ppTComp);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeInfo.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeInfo.cs
new file mode 100644 (file)
index 0000000..6b8ffbc
--- /dev/null
@@ -0,0 +1,61 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.ITypeInfo.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+
+       [Guid("00020401-0000-0000-c000-000000000046")]
+       [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+       public interface ITypeInfo {
+               void GetTypeAttr (out IntPtr ppTypeAttr);
+               void GetTypeComp (out ITypeComp ppTComp);
+               void GetFuncDesc (int index, out IntPtr ppFuncDesc);
+               void GetVarDesc (int index, out IntPtr ppVarDesc);
+               void GetNames (int memid, [Out, MarshalAs (UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80, SizeParamIndex=2)] string[] rgBstrNames, int cMaxNames, out int pcNames);
+               void GetRefTypeOfImplType (int index, out int href);
+               void GetImplTypeFlags (int index, out int pImplTypeFlags);
+               void GetIDsOfNames ([In, MarshalAs(UnmanagedType.LPArray, ArraySubType = (UnmanagedType.LPWStr), SizeParamIndex=1)] string[] rgszNames, int cNames, [Out, MarshalAs (UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80, SizeParamIndex=1)] int[] pMemId);
+               void Invoke ([MarshalAs (UnmanagedType.IUnknown)] object pvInstance, int memid, short wFlags, ref DISPPARAMS pDispParams, out object pVarResult, out EXCEPINFO pExcepInfo, out int puArgErr);
+               void GetDocumentation (int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile);
+               void GetDllEntry (int memid, INVOKEKIND invKind, out string pBstrDllName, out string pBstrName, out short pwOrdinal);
+               void GetRefTypeInfo (int hRef, out ITypeInfo ppTI);             
+               void AddressOfMember (int memid, INVOKEKIND invKind, out IntPtr ppv); 
+               void CreateInstance ([MarshalAs (UnmanagedType.IUnknown)] object pUnkOuter, ref Guid riid, [MarshalAs (UnmanagedType.IUnknown)] out object ppvObj);
+               void GetMops (int memid, out string pBstrMops);
+               void GetContainingTypeLib (out ITypeLib ppTLB, out int pIndex);
+               void ReleaseTypeAttr (IntPtr pTypeAttr);
+               void ReleaseFuncDesc (IntPtr pFuncDesc);
+               void ReleaseVarDesc (IntPtr pVarDesc);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeInfo2.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeInfo2.cs
new file mode 100644 (file)
index 0000000..820511d
--- /dev/null
@@ -0,0 +1,35 @@
+//\r
+// System.Runtime.InteropServices.ComTypes.ITypeInfo2.cs\r
+//\r
+// Author:\r
+//   Kazuki Oikawa (kazuki@panicode.com)\r
+//\r
+\r
+#if NET_2_0\r
+using System;\r
+\r
+namespace System.Runtime.InteropServices.ComTypes\r
+{\r
+       [Guid("00020412-0000-0000-C000-000000000046")]\r
+       [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r
+       public interface ITypeInfo2 : ITypeInfo\r
+       {\r
+               void GetTypeKind (out TYPEKIND pTypeKind);\r
+               void GetTypeFlags (out int pTypeFlags);\r
+               void GetFuncIndexOfMemId (int memid, INVOKEKIND invKind, out int pFuncIndex);\r
+               void GetVarIndexOfMemId (int memid, out int pVarIndex);\r
+               void GetCustData (ref Guid guid, out object pVarVal);\r
+               void GetFuncCustData(int index, ref Guid guid, out object pVarVal);\r
+               void GetParamCustData(int indexFunc, int indexParam, ref Guid guid, out object pVarVal);\r
+               void GetVarCustData(int index, ref Guid guid, out object pVarVal);\r
+               void GetImplTypeCustData(int index, ref Guid guid, out object pVarVal);\r
+               [LCIDConversion (1)]\r
+               void GetDocumentation2(int memid, out string pbstrHelpString, out int pdwHelpStringContext, out string pbstrHelpStringDll);\r
+               void GetAllCustData(IntPtr pCustData);\r
+               void GetAllFuncCustData(int index, IntPtr pCustData);\r
+               void GetAllParamCustData(int indexFunc, int indexParam, IntPtr pCustData);\r
+               void GetAllVarCustData(int index, IntPtr pCustData);\r
+               void GetAllImplTypeCustData(int index, IntPtr pCustData);\r
+       }\r
+}\r
+#endif
\ No newline at end of file
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeLib.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeLib.cs
new file mode 100644 (file)
index 0000000..1ad9399
--- /dev/null
@@ -0,0 +1,56 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes.ITypeLib.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+using System.Runtime.InteropServices.ComTypes;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+
+       [Guid("00020402-0000-0000-c000-000000000046")]
+       [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+       public interface ITypeLib { 
+               [PreserveSig]
+               int GetTypeInfoCount ();
+               void GetTypeInfo (int index, out ITypeInfo ppTI);
+               void GetTypeInfoType (int index, out TYPEKIND pTKind);
+               void GetTypeInfoOfGuid (ref Guid guid, out ITypeInfo ppTInfo);
+               void GetLibAttr (out IntPtr ppTLibAttr);
+               void GetTypeComp (out ITypeComp ppTComp); 
+               void GetDocumentation (int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile);
+               [return: MarshalAs (UnmanagedType.Bool)]
+               bool IsName ([MarshalAs(UnmanagedType.LPWStr)] string szNameBuf, int lHashVal);
+               void FindName ([MarshalAs(UnmanagedType.LPWStr)] string szNameBuf, int lHashVal, [Out, MarshalAs (UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80)] ITypeInfo[] ppTInfo, [Out, MarshalAs (UnmanagedType.LPArray, ArraySubType = Consts.UnmanagedType_80)] int[] rgMemId, ref short pcFound);
+               [PreserveSig]
+               void ReleaseTLibAttr (IntPtr pTLibAttr);
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeLib2.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/ITypeLib2.cs
new file mode 100644 (file)
index 0000000..3a1a0f8
--- /dev/null
@@ -0,0 +1,24 @@
+//\r
+// System.Runtime.InteropServices.ComTypes.ITypeLib2.cs\r
+//\r
+// Author:\r
+//   Kazuki Oikawa (kazuki@panicode.com)\r
+//\r
+\r
+#if NET_2_0\r
+using System;\r
+\r
+namespace System.Runtime.InteropServices.ComTypes\r
+{\r
+       [Guid ("00020412-0000-0000-C000-000000000046")]\r
+       [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r
+       public interface ITypeLib2 : ITypeLib\r
+       {\r
+               void GetCustData(ref Guid guid, out object pVarVal);\r
+               void GetLibStatistics(IntPtr pcUniqueNames, out int pcchUniqueNames);\r
+               [LCIDConversion(1)]\r
+               void GetDocumentation2(int index, out string pbstrHelpString, out int pdwHelpStringContext, out string pbstrHelpStringDll);\r
+               void GetAllCustData(IntPtr pCustData);\r
+       }\r
+}\r
+#endif
\ No newline at end of file
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/LIBFLAGS.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/LIBFLAGS.cs
new file mode 100644 (file)
index 0000000..70bd4e2
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// System.Runtime.InteropServices.ComTypes.LIBFLAGS.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Flags, Serializable, ComVisible (false)]
+       public enum LIBFLAGS
+       {
+               LIBFLAG_FRESTRICTED = 1,
+               LIBFLAG_FCONTROL = 2,
+               LIBFLAG_FHIDDEN = 4,
+               LIBFLAG_FHASDISKIMAGE = 8
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/PARAMDESC.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/PARAMDESC.cs
new file mode 100644 (file)
index 0000000..d8a1f7d
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// System.Runtime.InteropServices.ComTypes.PARAMDESC.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct PARAMDESC
+       {
+               public IntPtr lpVarValue;
+               public PARAMFLAG wParamFlags;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/PARAMFLAG.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/PARAMFLAG.cs
new file mode 100644 (file)
index 0000000..97c8290
--- /dev/null
@@ -0,0 +1,49 @@
+//
+// System.Runtime.InteropServices.ComTypes.PARAMFLAG.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Flags, Serializable, ComVisible (false)]
+       public enum PARAMFLAG
+       {
+               PARAMFLAG_NONE = 0,
+               PARAMFLAG_FIN = 1,
+               PARAMFLAG_FOUT = 2,
+               PARAMFLAG_FLCID = 4,
+               PARAMFLAG_FRETVAL = 8,
+               PARAMFLAG_FOPT = 16,
+               PARAMFLAG_FHASDEFAULT = 32,
+               PARAMFLAG_FHASCUSTDATA = 64
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/STATSTG.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/STATSTG.cs
new file mode 100644 (file)
index 0000000..e5af523
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// System.Runtime.InteropServices.ComTypes.STATSTG.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible(false)]
+       [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct STATSTG
+       {
+               public string pwcsName;
+               public int type;
+               public long cbSize;
+               public FILETIME mtime;
+               public FILETIME ctime;
+               public FILETIME atime;
+               public int grfMode;
+               public int grfLocksSupported;
+               public Guid clsid;
+               public int grfStateBits;
+               public int reserved;
+       }
+
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/SYSKIND.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/SYSKIND.cs
new file mode 100644 (file)
index 0000000..a4991d0
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// System.Runtime.InteropServices.ComTypes.SYSKIND.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Serializable, ComVisible (false)]
+       public enum SYSKIND
+       {
+               SYS_WIN16 = 0,
+               SYS_WIN32 = 1,
+               SYS_MAC = 2
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEATTR.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEATTR.cs
new file mode 100644 (file)
index 0000000..ee03eb2
--- /dev/null
@@ -0,0 +1,60 @@
+//
+// System.Runtime.InteropServices.ComTypes.TYPEATTR.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct TYPEATTR
+       {
+               public const int MEMBER_ID_NIL = -1;
+
+               public Guid guid;
+               public int lcid;
+               public int dwReserved;
+               public int memidConstructor;
+               public int memidDestructor;
+               public IntPtr lpstrSchema;
+               public int cbSizeInstance;
+               public TYPEKIND typekind;
+               public short cFuncs;
+               public short cVars;
+               public short cImplTypes;
+               public short cbSizeVft;
+               public short cbAlignment;
+               public TYPEFLAGS wTypeFlags;
+               public short wMajorVerNum;
+               public short wMinorVerNum;
+               public TYPEDESC tdescAlias;
+               public IDLDESC idldescType;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEDESC.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEDESC.cs
new file mode 100644 (file)
index 0000000..1cb76cb
--- /dev/null
@@ -0,0 +1,42 @@
+//
+// System.Runtime.InteropServices.ComTypes.TYPEDESC.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct TYPEDESC
+       {
+               public IntPtr lpValue;
+               public short vt;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEFLAGS.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEFLAGS.cs
new file mode 100644 (file)
index 0000000..c00fc16
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// System.Runtime.InteropServices.ComTypes.TYPEFLAGS.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Serializable, ComVisible (false), Flags]
+       public enum TYPEFLAGS
+       {
+               TYPEFLAG_FAPPOBJECT = 1,
+               TYPEFLAG_FCANCREATE = 2,
+               TYPEFLAG_FLICENSED = 4,
+               TYPEFLAG_FPREDECLID = 8,
+               TYPEFLAG_FHIDDEN = 16,
+               TYPEFLAG_FCONTROL = 32,
+               TYPEFLAG_FDUAL = 64,
+               TYPEFLAG_FNONEXTENSIBLE = 128,
+               TYPEFLAG_FOLEAUTOMATION = 256,
+               TYPEFLAG_FRESTRICTED = 512,
+               TYPEFLAG_FAGGREGATABLE = 1024,
+               TYPEFLAG_FREPLACEABLE = 2048,
+               TYPEFLAG_FDISPATCHABLE = 4096,
+               TYPEFLAG_FREVERSEBIND = 8192,
+               TYPEFLAG_FPROXY = 16384
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEKIND.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPEKIND.cs
new file mode 100644 (file)
index 0000000..9320016
--- /dev/null
@@ -0,0 +1,51 @@
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+// System.Runtime.InteropServices.ComTypes/TYPEKIND.cs
+//
+// Paolo Molaro (lupus@ximian.com)
+// Kazuki Oikawa (kazuki@panicode.com)
+//
+// (C) 2002 Ximian, Inc.
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+
+       [Serializable]
+       [ComVisible(false)]
+       public enum TYPEKIND { 
+               TKIND_ENUM = 0,
+               TKIND_RECORD = 1,
+               TKIND_MODULE = 2,
+               TKIND_INTERFACE = 3,
+               TKIND_DISPATCH = 4,
+               TKIND_COCLASS = 5,
+               TKIND_ALIAS = 6,
+               TKIND_UNION = 7,
+               TKIND_MAX = 8
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPELIBATTR.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/TYPELIBATTR.cs
new file mode 100644 (file)
index 0000000..2829b53
--- /dev/null
@@ -0,0 +1,46 @@
+//
+// System.Runtime.InteropServices.ComTypes.TYPELIBATTR.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct TYPELIBATTR
+       {
+               public Guid guid;
+               public int lcid;
+               public SYSKIND syskind;
+               public short wMajorVerNum;
+               public short wMinorVerNum;
+               public LIBFLAGS wLibFlags;
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARDESC.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARDESC.cs
new file mode 100644 (file)
index 0000000..f035490
--- /dev/null
@@ -0,0 +1,55 @@
+//
+// System.Runtime.InteropServices.ComTypes.VARDESC.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+       public struct VARDESC
+       {
+               public int memid;
+               public string lpstrSchema;
+               public ELEMDESC elemdescVar;
+               public short wVarFlags;
+               public VarEnum varkind;
+
+               [ComVisible (false)]
+               [StructLayout (LayoutKind.Explicit, CharSet = CharSet.Unicode)]
+               public struct DESCUNION
+               {
+                       [FieldOffset (0)]
+                       public IntPtr lpvarValue;
+                       [FieldOffset (0)]
+                       public int oInst;
+               }
+       } 
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARFLAGS.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARFLAGS.cs
new file mode 100644 (file)
index 0000000..c9a611e
--- /dev/null
@@ -0,0 +1,54 @@
+//
+// System.Runtime.InteropServices.ComTypes.VARFLAGS.cs
+//
+// Author:
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [Serializable, ComVisible (false), Flags]
+       public enum VARFLAGS
+       {
+               VARFLAG_FREADONLY = 1,
+               VARFLAG_FSOURCE = 2,
+               VARFLAG_FBINDABLE = 4,
+               VARFLAG_FREQUESTEDIT = 8,
+               VARFLAG_FDISPLAYBIND = 16,
+               VARFLAG_FDEFAULTBIND = 32,
+               VARFLAG_FHIDDEN = 64,
+               VARFLAG_FRESTRICTED = 128,
+               VARFLAG_FDEFAULTCOLLELEM = 256,
+               VARFLAG_FUIDEFAULT = 512,
+               VARFLAG_FNONBROWSABLE = 1024,
+               VARFLAG_FREPLACEABLE = 2048,
+               VARFLAG_FIMMEDIATEBIND = 4096
+       }
+}
+#endif
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARKIND.cs b/mcs/class/corlib/System.Runtime.InteropServices.ComTypes/VARKIND.cs
new file mode 100644 (file)
index 0000000..bd1c62a
--- /dev/null
@@ -0,0 +1,20 @@
+//
+// System.Runtime.InteropServices.ComTypes.VARKIND.cs
+//
+// Author:
+//   Kazuki Oikawa (kazuki@panicode.com)
+//
+
+#if NET_2_0
+namespace System.Runtime.InteropServices.ComTypes
+{
+       [ComVisible (false)]
+       public enum VARKIND
+       {
+               VAR_PERINSTANCE = 0,
+               VAR_STATIC = 1,
+               VAR_CONST = 2,
+               VAR_DISPATCH = 3
+       }
+}
+#endif
index 1f540038bee42a5a1f9e444afa477887df08cbb1..7d937efeb32fb1a77e74bd8902d15ce3269a5172 100755 (executable)
@@ -659,6 +659,52 @@ System.Runtime.InteropServices/VARDESC.cs
 System.Runtime.InteropServices/VarEnum.cs
 System.Runtime.InteropServices/VARFLAGS.cs
 System.Runtime.InteropServices/VariantWrapper.cs
+System.Runtime.InteropServices.ComTypes/BINDPTR.cs
+System.Runtime.InteropServices.ComTypes/BIND_OPTS.cs
+System.Runtime.InteropServices.ComTypes/CALLCONV.cs
+System.Runtime.InteropServices.ComTypes/CONNECTDATA.cs
+System.Runtime.InteropServices.ComTypes/DESCKIND.cs
+System.Runtime.InteropServices.ComTypes/DISPPARAMS.cs
+System.Runtime.InteropServices.ComTypes/ELEMDESC.cs
+System.Runtime.InteropServices.ComTypes/EXCEPINFO.cs
+System.Runtime.InteropServices.ComTypes/FILETIME.cs
+System.Runtime.InteropServices.ComTypes/FUNCDESC.cs
+System.Runtime.InteropServices.ComTypes/FUNCFLAGS.cs
+System.Runtime.InteropServices.ComTypes/FUNCKIND.cs
+System.Runtime.InteropServices.ComTypes/IBindCtx.cs
+System.Runtime.InteropServices.ComTypes/IConnectionPoint.cs
+System.Runtime.InteropServices.ComTypes/IConnectionPointContainer.cs
+System.Runtime.InteropServices.ComTypes/IDLDESC.cs
+System.Runtime.InteropServices.ComTypes/IDLFLAG.cs
+System.Runtime.InteropServices.ComTypes/IEnumConnectionPoints.cs
+System.Runtime.InteropServices.ComTypes/IEnumConnections.cs
+System.Runtime.InteropServices.ComTypes/IEnumMoniker.cs
+System.Runtime.InteropServices.ComTypes/IEnumString.cs
+System.Runtime.InteropServices.ComTypes/IEnumVARIANT.cs
+System.Runtime.InteropServices.ComTypes/IMoniker.cs
+System.Runtime.InteropServices.ComTypes/IMPLTYPEFLAGS.cs
+System.Runtime.InteropServices.ComTypes/INVOKEKIND.cs
+System.Runtime.InteropServices.ComTypes/IPersistFile.cs
+System.Runtime.InteropServices.ComTypes/IRunningObjectTable.cs
+System.Runtime.InteropServices.ComTypes/IStream.cs
+System.Runtime.InteropServices.ComTypes/ITypeComp.cs
+System.Runtime.InteropServices.ComTypes/ITypeInfo.cs
+System.Runtime.InteropServices.ComTypes/ITypeInfo2.cs
+System.Runtime.InteropServices.ComTypes/ITypeLib.cs
+System.Runtime.InteropServices.ComTypes/ITypeLib2.cs
+System.Runtime.InteropServices.ComTypes/LIBFLAGS.cs
+System.Runtime.InteropServices.ComTypes/PARAMDESC.cs
+System.Runtime.InteropServices.ComTypes/PARAMFLAG.cs
+System.Runtime.InteropServices.ComTypes/STATSTG.cs
+System.Runtime.InteropServices.ComTypes/SYSKIND.cs
+System.Runtime.InteropServices.ComTypes/TYPEATTR.cs
+System.Runtime.InteropServices.ComTypes/TYPEDESC.cs
+System.Runtime.InteropServices.ComTypes/TYPEFLAGS.cs
+System.Runtime.InteropServices.ComTypes/TYPEKIND.cs
+System.Runtime.InteropServices.ComTypes/TYPELIBATTR.cs
+System.Runtime.InteropServices.ComTypes/VARDESC.cs
+System.Runtime.InteropServices.ComTypes/VARFLAGS.cs
+System.Runtime.InteropServices.ComTypes/VARKIND.cs
 System.Runtime.InteropServices.Expando/IExpando.cs
 System.Runtime.Remoting/ActivatedClientTypeEntry.cs
 System.Runtime.Remoting/ActivatedServiceTypeEntry.cs