File: system\Runtime\InteropServices\NativeMethods.cs
Project: ndp\clr\src\bcl\mscorlib.csproj (mscorlib)
// ==++==
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--==
 
/*============================================================
**
** Class:  ComEventsInfo
**
** Purpose: part of ComEventHelpers APIs which allow binding 
** managed delegates to COM's connection point based events.
**
** Date:  April 2008
**/
 
#if FEATURE_COMINTEROP
 
namespace System.Runtime.InteropServices {
    
    internal static class NativeMethods {
 
        [
        System.Security.SuppressUnmanagedCodeSecurity,
        DllImport("oleaut32.dll", PreserveSig = false),
        System.Security.SecurityCritical
        ]
        internal static extern void VariantClear(IntPtr variant);
 
        [
        System.Security.SuppressUnmanagedCodeSecurity,
        ComImport,
        InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
        Guid("00020400-0000-0000-C000-000000000046")
        ]
        internal interface IDispatch {
 
            [System.Security.SecurityCritical]
            void GetTypeInfoCount(out uint pctinfo);
 
            [System.Security.SecurityCritical]
            void GetTypeInfo(uint iTInfo, int lcid, out IntPtr info);
 
            [System.Security.SecurityCritical]
            void GetIDsOfNames(
                ref Guid iid,
                [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 2)]
                string[] names,
                uint cNames,
                int lcid,
                [Out]
                [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I4, SizeParamIndex = 2)]
                int[] rgDispId);
 
            [System.Security.SecurityCritical]
            void Invoke(
                int dispIdMember,
                ref Guid riid,
                int lcid,
                ComTypes.INVOKEKIND wFlags,
                ref ComTypes.DISPPARAMS pDispParams,
                IntPtr pvarResult,
                IntPtr pExcepInfo,
                IntPtr puArgErr);
        }
    }
}
 
#endif