Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Imaging / InplaceBitmapMetadataWriter.cs / 1305600 / InplaceBitmapMetadataWriter.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All Rights Reserved // // File: InPlaceBitmapMetadataWriter.cs // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using MS.Win32.PresentationCore; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; using System.Xml; using System.IO; using System.Security; using System.Security.Permissions; using System.Windows.Media.Imaging; using System.Windows.Threading; using System.Text; using MS.Internal.PresentationCore; // SecurityHelper namespace System.Windows.Media.Imaging { #region InPlaceBitmapMetadataWriter ////// Metadata Class for BitmapImage. /// sealed public partial class InPlaceBitmapMetadataWriter : BitmapMetadata { #region Constructors ////// /// private InPlaceBitmapMetadataWriter() { } ////// /// ////// Critical - Accesses critical resources /// [SecurityCritical] internal InPlaceBitmapMetadataWriter( SafeMILHandle /* IWICFastMetadataEncoder */ fmeHandle, SafeMILHandle /* IWICMetadataQueryWriter */ metadataHandle, object syncObject ) : base(metadataHandle, false, false, syncObject) { _fmeHandle = fmeHandle; } ////// /// ////// Critical - Accesses unmanaged code /// TreatAsSafe - inputs are verified or safe /// [SecurityCritical, SecurityTreatAsSafe] static internal InPlaceBitmapMetadataWriter CreateFromFrameDecode(BitmapSourceSafeMILHandle frameHandle, object syncObject) { Invariant.Assert(frameHandle != null); SafeMILHandle /* IWICFastMetadataEncoder */ fmeHandle = null; SafeMILHandle /* IWICMetadataQueryWriter */ metadataHandle = null; using (FactoryMaker factoryMaker = new FactoryMaker()) { lock (syncObject) { HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateFastMetadataEncoderFromFrameDecode( factoryMaker.ImagingFactoryPtr, frameHandle, out fmeHandle)); } } HRESULT.Check(UnsafeNativeMethods.WICFastMetadataEncoder.GetMetadataQueryWriter( fmeHandle, out metadataHandle)); return new InPlaceBitmapMetadataWriter(fmeHandle, metadataHandle, syncObject); } ////// /// ////// Critical - Accesses unmanaged code /// TreatAsSafe - inputs are verified or safe /// [SecurityCritical, SecurityTreatAsSafe] static internal InPlaceBitmapMetadataWriter CreateFromDecoder(SafeMILHandle decoderHandle, object syncObject) { Invariant.Assert(decoderHandle != null); SafeMILHandle /* IWICFastMetadataEncoder */ fmeHandle = null; SafeMILHandle /* IWICMetadataQueryWriter */ metadataHandle = null; using (FactoryMaker factoryMaker = new FactoryMaker()) { lock (syncObject) { HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateFastMetadataEncoderFromDecoder( factoryMaker.ImagingFactoryPtr, decoderHandle, out fmeHandle)); } } HRESULT.Check(UnsafeNativeMethods.WICFastMetadataEncoder.GetMetadataQueryWriter( fmeHandle, out metadataHandle)); return new InPlaceBitmapMetadataWriter(fmeHandle, metadataHandle, syncObject); } ////// /// ////// Critical - Accesses unmanaged code /// PublicOK - inputs are verified or safe /// [SecurityCritical ] public bool TrySave() { int hr; Invariant.Assert(_fmeHandle != null); lock (SyncObject) { hr = UnsafeNativeMethods.WICFastMetadataEncoder.Commit(_fmeHandle); } return HRESULT.Succeeded(hr); } #endregion #region Freezable ////// Shadows inherited Copy() with a strongly typed /// version for convenience. /// public new InPlaceBitmapMetadataWriter Clone() { return (InPlaceBitmapMetadataWriter)base.Clone(); } ////// Implementation of ///Freezable.CreateInstanceCore . ///The new Freezable. protected override Freezable CreateInstanceCore() { throw new InvalidOperationException(SR.Get(SRID.Image_InplaceMetadataNoCopy)); } ////// Implementation of protected override void CloneCore(Freezable sourceFreezable) { throw new InvalidOperationException(SR.Get(SRID.Image_InplaceMetadataNoCopy)); } ///Freezable.CloneCore . ////// Implementation of protected override void CloneCurrentValueCore(Freezable sourceFreezable) { throw new InvalidOperationException(SR.Get(SRID.Image_InplaceMetadataNoCopy)); } ///Freezable.CloneCurrentValueCore . ////// Implementation of protected override void GetAsFrozenCore(Freezable sourceFreezable) { throw new InvalidOperationException(SR.Get(SRID.Image_InplaceMetadataNoCopy)); } ///Freezable.GetAsFrozenCore . ////// Implementation of protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { throw new InvalidOperationException(SR.Get(SRID.Image_InplaceMetadataNoCopy)); } #endregion ///Freezable.GetCurrentValueAsFrozenCore . ////// Critical - pointer to an unmanaged object that methods are called on. /// [SecurityCritical] private SafeMILHandle _fmeHandle; } #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
- DbDataRecord.cs
- SmtpNtlmAuthenticationModule.cs
- SoapCodeExporter.cs
- BitmapEncoder.cs
- Attributes.cs
- Stream.cs
- AssemblyHash.cs
- QueryHandler.cs
- FormViewDeleteEventArgs.cs
- InvalidateEvent.cs
- CharacterBufferReference.cs
- ContextMenuStrip.cs
- XmlSerializerNamespaces.cs
- odbcmetadatafactory.cs
- XmlSignatureProperties.cs
- DescendantBaseQuery.cs
- Exception.cs
- SlotInfo.cs
- StringConverter.cs
- IItemProperties.cs
- ProcessManager.cs
- DisableDpiAwarenessAttribute.cs
- BaseAsyncResult.cs
- ExpressionBindings.cs
- ReliableSessionBindingElement.cs
- InternalsVisibleToAttribute.cs
- HealthMonitoringSection.cs
- PtsHost.cs
- RuntimeArgumentHandle.cs
- SQLDoubleStorage.cs
- FormsAuthenticationConfiguration.cs
- SingleSelectRootGridEntry.cs
- TextEvent.cs
- ByteConverter.cs
- RenderingBiasValidation.cs
- CollectionViewGroup.cs
- PenContext.cs
- GlyphRunDrawing.cs
- ActiveXHost.cs
- _KerberosClient.cs
- VisualTransition.cs
- FrameworkElement.cs
- ResourcePool.cs
- TemplateComponentConnector.cs
- FilteredDataSetHelper.cs
- XmlAnyElementAttributes.cs
- HtmlControlPersistable.cs
- BufferedWebEventProvider.cs
- CommonServiceBehaviorElement.cs
- PeerNameResolver.cs
- SqlUserDefinedTypeAttribute.cs
- ConditionCollection.cs
- MexBindingBindingCollectionElement.cs
- Add.cs
- Blend.cs
- TextTreeExtractElementUndoUnit.cs
- SerializerProvider.cs
- QueryCursorEventArgs.cs
- ZipFileInfoCollection.cs
- ResXResourceReader.cs
- UserPreferenceChangedEventArgs.cs
- JpegBitmapEncoder.cs
- PreloadedPackages.cs
- ConstraintStruct.cs
- EntityStoreSchemaGenerator.cs
- LabelLiteral.cs
- PreservationFileWriter.cs
- UxThemeWrapper.cs
- TypeUtils.cs
- ItemCheckEvent.cs
- BitmapMetadataBlob.cs
- BitStack.cs
- SerializationHelper.cs
- SystemIcmpV4Statistics.cs
- UpdatePanelTrigger.cs
- RangeValueProviderWrapper.cs
- SystemUdpStatistics.cs
- Axis.cs
- SqlFunctionAttribute.cs
- PageCatalogPart.cs
- X509ServiceCertificateAuthentication.cs
- SecurityContext.cs
- PackWebResponse.cs
- DeflateInput.cs
- NameTable.cs
- LineUtil.cs
- FontInfo.cs
- NullableConverter.cs
- DifferencingCollection.cs
- TimeSpanValidator.cs
- WebBrowser.cs
- Cursor.cs
- MsmqDecodeHelper.cs
- InheritanceContextHelper.cs
- TrustSection.cs
- Animatable.cs
- FloaterBaseParagraph.cs
- ExpressionList.cs
- DiscoveryInnerClientAdhoc11.cs
- BooleanSwitch.cs