www.pudn.com > SnapLibrary.rar > UnsafeNativeMethods.cs


using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Security; 
using System.Runtime.InteropServices; 
using System.Runtime.InteropServices.ComTypes; 
 
namespace SnapLibrary 
{ 
    ///  
    /// 从 .Net 2.0 的 System.Windows.Forms.Dll 库提取 
    /// 版权所有:微软公司 
    ///  
    [SuppressUnmanagedCodeSecurity] 
    internal static class UnsafeNativeMethods 
    { 
        public static Guid IID_IViewObject = new Guid("{0000010d-0000-0000-C000-000000000046}"); 
 
        [ComImport, Guid("0000010d-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] 
        public interface IViewObject 
        { 
            [PreserveSig] 
            int Draw([In, MarshalAs(UnmanagedType.U4)] int dwDrawAspect, int lindex, IntPtr pvAspect, [In] NativeMethods.tagDVTARGETDEVICE ptd, IntPtr hdcTargetDev, IntPtr hdcDraw, [In] NativeMethods.COMRECT lprcBounds, [In] NativeMethods.COMRECT lprcWBounds, IntPtr pfnContinue, [In] int dwContinue); 
            [PreserveSig] 
            int GetColorSet([In, MarshalAs(UnmanagedType.U4)] int dwDrawAspect, int lindex, IntPtr pvAspect, [In] NativeMethods.tagDVTARGETDEVICE ptd, IntPtr hicTargetDev, [Out] NativeMethods.tagLOGPALETTE ppColorSet); 
            [PreserveSig] 
            int Freeze([In, MarshalAs(UnmanagedType.U4)] int dwDrawAspect, int lindex, IntPtr pvAspect, [Out] IntPtr pdwFreeze); 
            [PreserveSig] 
            int Unfreeze([In, MarshalAs(UnmanagedType.U4)] int dwFreeze); 
            void SetAdvise([In, MarshalAs(UnmanagedType.U4)] int aspects, [In, MarshalAs(UnmanagedType.U4)] int advf, [In, MarshalAs(UnmanagedType.Interface)] IAdviseSink pAdvSink); 
            void GetAdvise([In, Out, MarshalAs(UnmanagedType.LPArray)] int[] paspects, [In, Out, MarshalAs(UnmanagedType.LPArray)] int[] advf, [In, Out, MarshalAs(UnmanagedType.LPArray)] IAdviseSink[] pAdvSink); 
        } 
    } 
}