Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / Imaging / InplaceBitmapMetadataWriter.cs / 1 / 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
- AuthenticationModeHelper.cs
- CoreChannel.cs
- Hash.cs
- ValidationSummary.cs
- DataServiceConfiguration.cs
- UnsafeNativeMethods.cs
- InvalidDocumentContentsException.cs
- SaveFileDialog.cs
- TabControlAutomationPeer.cs
- BamlLocalizer.cs
- RowsCopiedEventArgs.cs
- CTreeGenerator.cs
- LookupBindingPropertiesAttribute.cs
- PeerService.cs
- DefaultValueConverter.cs
- DateTimeValueSerializerContext.cs
- CaseStatementSlot.cs
- BackgroundFormatInfo.cs
- MenuItemAutomationPeer.cs
- LockedAssemblyCache.cs
- Geometry3D.cs
- QueryRewriter.cs
- Timeline.cs
- HatchBrush.cs
- PropertyPath.cs
- PathParser.cs
- CqlParser.cs
- XmlComment.cs
- SqlDataReaderSmi.cs
- InstanceCollisionException.cs
- Double.cs
- RemotingAttributes.cs
- MailWebEventProvider.cs
- CodeGen.cs
- Typography.cs
- XmlSchemaGroupRef.cs
- TypeContext.cs
- DesignerLabelAdapter.cs
- SmuggledIUnknown.cs
- httpstaticobjectscollection.cs
- DataGridViewHeaderCell.cs
- DataGridSortCommandEventArgs.cs
- _ListenerRequestStream.cs
- Operand.cs
- Bitmap.cs
- ArgumentOutOfRangeException.cs
- DispatcherProcessingDisabled.cs
- ActivityDesignerHelper.cs
- HtmlInputPassword.cs
- WebConfigurationHost.cs
- SynchronizationLockException.cs
- MyContact.cs
- QueryCursorEventArgs.cs
- IndentTextWriter.cs
- TerminatorSinks.cs
- VarRemapper.cs
- SevenBitStream.cs
- ModelUIElement3D.cs
- TemplatePropertyEntry.cs
- RoleGroupCollection.cs
- MenuItemStyleCollection.cs
- LostFocusEventManager.cs
- Range.cs
- PrintDocument.cs
- NonBatchDirectoryCompiler.cs
- ServiceAuthorizationElement.cs
- DocumentsTrace.cs
- FrameworkContentElement.cs
- PackagePart.cs
- DataGridPageChangedEventArgs.cs
- CompilerParameters.cs
- PaperSource.cs
- Variable.cs
- ParseElement.cs
- path.cs
- CounterCreationDataCollection.cs
- WorkflowServiceInstance.cs
- EventsTab.cs
- CacheManager.cs
- CatalogZoneBase.cs
- XMLSchema.cs
- WmlPhoneCallAdapter.cs
- DESCryptoServiceProvider.cs
- HtmlWindow.cs
- ReadOnlyDataSource.cs
- XmlDataFileEditor.cs
- ViewUtilities.cs
- OleAutBinder.cs
- OracleFactory.cs
- XmlILOptimizerVisitor.cs
- WebServiceClientProxyGenerator.cs
- RegexWorker.cs
- Slider.cs
- Token.cs
- ButtonField.cs
- StateFinalizationActivity.cs
- JsonFormatGeneratorStatics.cs
- DataGridViewColumnConverter.cs
- ViewRendering.cs
- CompositeActivityDesigner.cs