Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Effects / BitmapEffect.cs / 1407647 / BitmapEffect.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2005 // // File: BitmapEffect.cs //----------------------------------------------------------------------------- using MS.Internal; using System; using System.IO; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Reflection; using System.Windows.Threading; using System.Threading; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media; using System.Windows.Markup; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Media.Imaging; using System.Security; using MS.Internal.PresentationCore; using System.Security.Permissions; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Effects { ////// BitmapEffect /// ////// We have the Inheritance demand, because we don't want /// third parties to be able to subclass BitmapEffect in the partial trust scenario /// [UIPermissionAttribute(SecurityAction.InheritanceDemand, Window = UIPermissionWindow.AllWindows)] public abstract partial class BitmapEffect { #region Constructors ////// Constructor /// protected BitmapEffect() { // Even though BitmapEffects are obsolete, to preserve compat they are // still never allowed in partial trust scenarios. The previous BitmapEffects // would create a native COM object in the constructor, which would demand. // So, demand UIWindow permission immediately in the ctor. SecurityHelper.DemandUIWindowPermission(); // STA Requirement // // Avalon doesn't necessarily require STA, but many components do. Examples // include Cicero, OLE, COM, etc. So we throw an exception here if the // thread is not STA. if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) { throw new InvalidOperationException(SR.Get(SRID.RequiresSTA)); } } #endregion #region Protected Methods ////// This method is called before calling GetOutput on an effect. /// It gives a chance for the managed effect to update the properties /// of the unmanaged object. /// ////// Critical - receives a security critical type SafeHandle. /// [SecurityCritical] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] abstract protected void UpdateUnmanagedPropertyState(SafeHandle unmanagedEffect); ////// Returns a safe handle to an unmanaged effect clone /// ////// Critical - returns a security critical type SafeHandle. /// [SecurityCritical] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe abstract protected SafeHandle CreateUnmanagedEffect(); ////// SetValue /// /// SafeHandle to the unmanaged effect object /// Name of the unmanaged property to be set /// Object value to set unmanaged property to ////// /// Critical - calls native code /// TreatAsSafe - as there is a demand /// [SecurityCritical, SecurityTreatAsSafe] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe static protected void SetValue(SafeHandle effect, string propertyName, object value) { SecurityHelper.DemandUIWindowPermission(); } ////// Creates an IMILBitmapEffect object /// ///IMILBitmapEffect object ////// Critical - calls native code /// TreatAsSafe - as there is a demand /// [SecurityCritical, SecurityTreatAsSafe] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe static protected SafeHandle /* IMILBitmapEffect */ CreateBitmapEffectOuter() { SecurityHelper.DemandUIWindowPermission(); return null; } ////// Initializes the IMILBitmapEffect object with the IMILBitmapEffectPrimitive object /// /// The IMILBitmapEffect object /// The IMILBitmapEffectPrimitive object ////// Critical - calls native code /// TreatAsSafe - as there is a demand /// [SecurityCritical, SecurityTreatAsSafe] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe static protected void InitializeBitmapEffect(SafeHandle /*IMILBitmapEffect */ outerObject, SafeHandle/* IMILBitmapEffectPrimitive */ innerObject) { SecurityHelper.DemandUIWindowPermission(); } #endregion #region Public Methods ////// This returns the output at index 0 /// [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] public BitmapSource GetOutput(BitmapEffectInput input) { if (input == null) { throw new ArgumentNullException("input"); } // if we don't have the input set, we should not be calling the output property if (input.Input == null) { throw new ArgumentException(SR.Get(SRID.Effect_No_InputSource), "input"); } if (input.Input == BitmapEffectInput.ContextInputSource) { throw new InvalidOperationException(SR.Get(SRID.Effect_No_ContextInputSource, null)); } return input.Input.Clone(); } #endregion #region Internal Methods ////// True if the effect can be emulated by the Effect pipeline. Derived classes /// can override this method to indicate that they can be emulated using the ImageEffect /// pipeline. If a derived class returns true it needs to also implement the GetEmulatingImageEffect /// property to provide an emulating ImageEffect. /// internal virtual bool CanBeEmulatedUsingEffectPipeline() { return false; } ////// Derived classes need to return an emulating image effect if they return true from CanBeEmulatedUsingImageEffectPipeline. /// internal virtual Effect GetEmulatingEffect() { throw new NotImplementedException(); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2005 // // File: BitmapEffect.cs //----------------------------------------------------------------------------- using MS.Internal; using System; using System.IO; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Reflection; using System.Windows.Threading; using System.Threading; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media; using System.Windows.Markup; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Media.Imaging; using System.Security; using MS.Internal.PresentationCore; using System.Security.Permissions; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Effects { ////// BitmapEffect /// ////// We have the Inheritance demand, because we don't want /// third parties to be able to subclass BitmapEffect in the partial trust scenario /// [UIPermissionAttribute(SecurityAction.InheritanceDemand, Window = UIPermissionWindow.AllWindows)] public abstract partial class BitmapEffect { #region Constructors ////// Constructor /// protected BitmapEffect() { // Even though BitmapEffects are obsolete, to preserve compat they are // still never allowed in partial trust scenarios. The previous BitmapEffects // would create a native COM object in the constructor, which would demand. // So, demand UIWindow permission immediately in the ctor. SecurityHelper.DemandUIWindowPermission(); // STA Requirement // // Avalon doesn't necessarily require STA, but many components do. Examples // include Cicero, OLE, COM, etc. So we throw an exception here if the // thread is not STA. if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) { throw new InvalidOperationException(SR.Get(SRID.RequiresSTA)); } } #endregion #region Protected Methods ////// This method is called before calling GetOutput on an effect. /// It gives a chance for the managed effect to update the properties /// of the unmanaged object. /// ////// Critical - receives a security critical type SafeHandle. /// [SecurityCritical] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] abstract protected void UpdateUnmanagedPropertyState(SafeHandle unmanagedEffect); ////// Returns a safe handle to an unmanaged effect clone /// ////// Critical - returns a security critical type SafeHandle. /// [SecurityCritical] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe abstract protected SafeHandle CreateUnmanagedEffect(); ////// SetValue /// /// SafeHandle to the unmanaged effect object /// Name of the unmanaged property to be set /// Object value to set unmanaged property to ////// /// Critical - calls native code /// TreatAsSafe - as there is a demand /// [SecurityCritical, SecurityTreatAsSafe] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe static protected void SetValue(SafeHandle effect, string propertyName, object value) { SecurityHelper.DemandUIWindowPermission(); } ////// Creates an IMILBitmapEffect object /// ///IMILBitmapEffect object ////// Critical - calls native code /// TreatAsSafe - as there is a demand /// [SecurityCritical, SecurityTreatAsSafe] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe static protected SafeHandle /* IMILBitmapEffect */ CreateBitmapEffectOuter() { SecurityHelper.DemandUIWindowPermission(); return null; } ////// Initializes the IMILBitmapEffect object with the IMILBitmapEffectPrimitive object /// /// The IMILBitmapEffect object /// The IMILBitmapEffectPrimitive object ////// Critical - calls native code /// TreatAsSafe - as there is a demand /// [SecurityCritical, SecurityTreatAsSafe] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe static protected void InitializeBitmapEffect(SafeHandle /*IMILBitmapEffect */ outerObject, SafeHandle/* IMILBitmapEffectPrimitive */ innerObject) { SecurityHelper.DemandUIWindowPermission(); } #endregion #region Public Methods ////// This returns the output at index 0 /// [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] public BitmapSource GetOutput(BitmapEffectInput input) { if (input == null) { throw new ArgumentNullException("input"); } // if we don't have the input set, we should not be calling the output property if (input.Input == null) { throw new ArgumentException(SR.Get(SRID.Effect_No_InputSource), "input"); } if (input.Input == BitmapEffectInput.ContextInputSource) { throw new InvalidOperationException(SR.Get(SRID.Effect_No_ContextInputSource, null)); } return input.Input.Clone(); } #endregion #region Internal Methods ////// True if the effect can be emulated by the Effect pipeline. Derived classes /// can override this method to indicate that they can be emulated using the ImageEffect /// pipeline. If a derived class returns true it needs to also implement the GetEmulatingImageEffect /// property to provide an emulating ImageEffect. /// internal virtual bool CanBeEmulatedUsingEffectPipeline() { return false; } ////// Derived classes need to return an emulating image effect if they return true from CanBeEmulatedUsingImageEffectPipeline. /// internal virtual Effect GetEmulatingEffect() { throw new NotImplementedException(); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SslStream.cs
- ResourceCategoryAttribute.cs
- baseshape.cs
- SocketInformation.cs
- ValidationErrorCollection.cs
- UInt16.cs
- RMEnrollmentPage3.cs
- InputLanguageEventArgs.cs
- TreeViewImageIndexConverter.cs
- HierarchicalDataSourceDesigner.cs
- ToolStripContainer.cs
- SyndicationDeserializer.cs
- CultureSpecificCharacterBufferRange.cs
- XsdValidatingReader.cs
- PassportAuthenticationEventArgs.cs
- GeometryHitTestResult.cs
- CodeDirectoryCompiler.cs
- IdnMapping.cs
- AuthenticationServiceManager.cs
- DataGridViewUtilities.cs
- JoinCqlBlock.cs
- Triplet.cs
- ValueUtilsSmi.cs
- ADConnectionHelper.cs
- Journaling.cs
- CellIdBoolean.cs
- EntityTemplateUserControl.cs
- UnsafeNativeMethods.cs
- ExtensionFile.cs
- SrgsElementList.cs
- ClipboardData.cs
- UpdatePanelControlTrigger.cs
- ProfilePropertySettingsCollection.cs
- documentsequencetextview.cs
- DynamicValidatorEventArgs.cs
- AesManaged.cs
- QilStrConcatenator.cs
- GraphicsPath.cs
- ControlType.cs
- ByValueEqualityComparer.cs
- CompositeFontInfo.cs
- Animatable.cs
- ProjectionPathBuilder.cs
- GeometryConverter.cs
- AlignmentXValidation.cs
- DesignTableCollection.cs
- Tile.cs
- MdbDataFileEditor.cs
- GiveFeedbackEvent.cs
- AcceleratedTokenProviderState.cs
- XmlTextAttribute.cs
- XmlHierarchyData.cs
- ConfigXmlElement.cs
- DesignTimeVisibleAttribute.cs
- AnnotationAdorner.cs
- DragEvent.cs
- CommandID.cs
- XmlSchemaExternal.cs
- CodePrimitiveExpression.cs
- OdbcConnectionString.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- TreeViewHitTestInfo.cs
- IndicShape.cs
- SignatureResourcePool.cs
- HttpMethodAttribute.cs
- WebPartEventArgs.cs
- GeneralEndpointIdentity.cs
- DocumentPaginator.cs
- Constants.cs
- BamlLocalizationDictionary.cs
- Soap12ProtocolReflector.cs
- SplineKeyFrames.cs
- WorkerRequest.cs
- ActivitySurrogateSelector.cs
- elementinformation.cs
- Main.cs
- SqlMetaData.cs
- BitmapFrameEncode.cs
- ContentHostHelper.cs
- SpecialFolderEnumConverter.cs
- AuthenticationService.cs
- EmbossBitmapEffect.cs
- ZipArchive.cs
- ChtmlTextWriter.cs
- PathGradientBrush.cs
- ConnectionStringsExpressionBuilder.cs
- SiteMembershipCondition.cs
- Matrix3DStack.cs
- NodeInfo.cs
- SendMessageContent.cs
- XmlFormatReaderGenerator.cs
- AccessibilityHelperForVista.cs
- JsonReader.cs
- SqlDataSourceConfigureSortForm.cs
- MsmqInputChannel.cs
- AuthorizationSection.cs
- ListViewInsertEventArgs.cs
- MemberHolder.cs
- NullReferenceException.cs
- EditorZoneBase.cs