MatrixIndependentAnimationStorage.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Animation / Generated / MatrixIndependentAnimationStorage.cs / 1305600 / MatrixIndependentAnimationStorage.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// This file was generated, please do not edit it directly. 
// 
// This file was generated from the codegen template located at:
//     wpf\src\Graphics\codegen\mcg\generators\AnimationResourceTemplate.cs 
//
// Please see http://wiki/default.aspx/Microsoft.Projects.Avalon/MilCodeGen.html for more information.
//
//--------------------------------------------------------------------------- 

using System; 
using MS.Internal; 
using System.Diagnostics;
using System.Runtime.InteropServices; 
using System.Threading;

using System.Windows.Media;
using System.Windows.Media.Composition; 
using System.Windows.Media.Media3D;
using System.Security; 
using System.Security.Permissions; 

namespace System.Windows.Media.Animation 
{
    internal class MatrixIndependentAnimationStorage : IndependentAnimationStorage
    {
        // 
        // Method which returns the DUCE type of this class.
        // The base class needs this type when calling CreateOrAddRefOnChannel. 
        // By providing this via a virtual, we avoid a per-instance storage cost. 
        //
        protected override DUCE.ResourceType ResourceType 
        {
            get
            {
                return DUCE.ResourceType.TYPE_MATRIXRESOURCE; 
            }
        } 
 
        /// 
        ///    Critical: This code is critical because it has unsafe code blocks 
        ///    TreatAsSafe: This call is ok to expose. Channels can handle bad pointers
        ///  
        [SecurityCritical,SecurityTreatAsSafe]
        protected override void UpdateResourceCore(DUCE.Channel channel) 
        {
            Debug.Assert(_duceResource.IsOnChannel(channel)); 
            DependencyObject dobj = ((DependencyObject) _dependencyObject.Target); 

            // The dependency object was GCed, nothing to do here 
            if (dobj == null)
            {
                return;
            } 

            Matrix tempValue = (Matrix)dobj.GetValue(_dependencyProperty); 
 
            DUCE.MILCMD_MATRIXRESOURCE data;
            data.Type = MILCMD.MilCmdMatrixResource; 
            data.Handle = _duceResource.GetHandle(channel);
            data.Value = CompositionResourceManager.MatrixToMilMatrix3x2D(tempValue);

            unsafe 
            {
                channel.SendCommand( 
                    (byte*)&data, 
                    sizeof(DUCE.MILCMD_MATRIXRESOURCE));
            } 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK