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
- XmlWriter.cs
- BuildProviderCollection.cs
- BooleanProjectedSlot.cs
- XmlArrayItemAttribute.cs
- DataServiceQueryProvider.cs
- PermissionSetTriple.cs
- WebResourceAttribute.cs
- SharedPersonalizationStateInfo.cs
- ThreadAbortException.cs
- SoapElementAttribute.cs
- fixedPageContentExtractor.cs
- WindowsFormsHelpers.cs
- Rfc2898DeriveBytes.cs
- NamespaceEmitter.cs
- SqlInternalConnectionSmi.cs
- TreeView.cs
- TextModifier.cs
- HostingEnvironmentException.cs
- ListViewInsertionMark.cs
- ReadContentAsBinaryHelper.cs
- RuleConditionDialog.Designer.cs
- EntityContainer.cs
- BaseParagraph.cs
- IPAddress.cs
- TableLayoutSettings.cs
- RbTree.cs
- UnsafeNativeMethods.cs
- SimpleType.cs
- VerificationAttribute.cs
- Queue.cs
- SetterTriggerConditionValueConverter.cs
- SubMenuStyle.cs
- DbMetaDataColumnNames.cs
- ObjectDataSourceMethodEventArgs.cs
- WorkflowQueueInfo.cs
- mda.cs
- XPathException.cs
- SerializerProvider.cs
- Formatter.cs
- CryptoStream.cs
- EventLogStatus.cs
- Rectangle.cs
- TailPinnedEventArgs.cs
- WindowsEditBox.cs
- ClientConfigurationHost.cs
- RangeBaseAutomationPeer.cs
- ObjectAnimationBase.cs
- DynamicArgumentDialog.cs
- MetadataCollection.cs
- DataTemplate.cs
- Point4DConverter.cs
- HighlightVisual.cs
- ProfessionalColors.cs
- Image.cs
- ControlType.cs
- FilterableData.cs
- Comparer.cs
- FormClosingEvent.cs
- ModuleConfigurationInfo.cs
- TextSelectionHighlightLayer.cs
- HttpHeaderCollection.cs
- PrePrepareMethodAttribute.cs
- User.cs
- ProgressBarAutomationPeer.cs
- SqlMethodAttribute.cs
- smtpconnection.cs
- SelectedGridItemChangedEvent.cs
- BroadcastEventHelper.cs
- CodeDesigner.cs
- StylusCaptureWithinProperty.cs
- WebProxyScriptElement.cs
- NamespaceInfo.cs
- KnownBoxes.cs
- FileReader.cs
- MailWriter.cs
- XPathSelfQuery.cs
- StyleCollection.cs
- Utils.cs
- WebPartVerbsEventArgs.cs
- TextBoxRenderer.cs
- XPathItem.cs
- externdll.cs
- SqlException.cs
- MDIControlStrip.cs
- NamespaceDisplay.xaml.cs
- SamlAssertionKeyIdentifierClause.cs
- TemplateBindingExtension.cs
- InstanceNormalEvent.cs
- OrderedDictionary.cs
- ChannelTerminatedException.cs
- GACMembershipCondition.cs
- XmlDictionary.cs
- PropertyKey.cs
- ResourceIDHelper.cs
- TextWriterTraceListener.cs
- SchemaName.cs
- HTTPAPI_VERSION.cs
- XmlSchemaComplexContent.cs
- SystemIPAddressInformation.cs
- BitmapEffectGeneralTransform.cs