Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Design / Util / TemporaryBitmapFile.cs / 1305376 / TemporaryBitmapFile.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design.MobileControls.Util
{
using System;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
///
/// This class encapsulates a bitmap and a file that represents
/// the bitmap on disk. It would have been cleaner to subclass
/// bitmap, but the bitmap class is sealed.
///
[
System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand,
Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)
]
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
internal class TemporaryBitmapFile : IDisposable
{
private String _path;
private Bitmap _bitmap;
internal TemporaryBitmapFile(Bitmap bitmap)
{
Debug.Assert(bitmap != null,
"You must provide a valid bitmap object."
);
_bitmap = bitmap;
_path = Path.GetTempPath() + Guid.NewGuid().ToString() + ".bmp";
[....]();
}
public void Dispose()
{
if(_bitmap != null)
{
_bitmap.Dispose();
_bitmap = null;
}
if(_path != null)
{
FileAttributes fa = File.GetAttributes(_path);
File.SetAttributes(_path, fa & ~FileAttributes.ReadOnly);
File.Delete(_path);
_path = null;
}
}
private void [....]()
{
FileAttributes fa;
if(File.Exists(_path))
{
fa = File.GetAttributes(_path);
File.SetAttributes(_path, fa & ~FileAttributes.ReadOnly);
}
_bitmap.Save(_path, ImageFormat.Bmp);
// If the file did not exist previously, fa will not be valid.
fa = File.GetAttributes(_path);
File.SetAttributes(_path, fa | FileAttributes.ReadOnly);
}
internal String Url
{
get
{
return "file:///" + _path;
}
}
internal Bitmap UnderlyingBitmap
{
get
{
return _bitmap;
}
set
{
Debug.Assert(value != null,
"Do not set UnderlyingBitmap to null. Instead, "+
"dispose of this object and create a new one later if " +
"neccessary. (A zero sized bmp can not be written to disk)"
);
if(_bitmap != null)
{
_bitmap.Dispose();
}
_bitmap = value;
[....]();
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AttachedPropertiesService.cs
- Native.cs
- TableItemPattern.cs
- ParameterToken.cs
- TrustExchangeException.cs
- IncomingWebResponseContext.cs
- VisualStyleInformation.cs
- FieldNameLookup.cs
- ProjectionPruner.cs
- LayoutTable.cs
- Util.cs
- OrthographicCamera.cs
- StubHelpers.cs
- Script.cs
- InputScope.cs
- OperationInvokerTrace.cs
- Journaling.cs
- QueryActivatableWorkflowsCommand.cs
- SemanticResolver.cs
- SoapReflector.cs
- ProcessModelSection.cs
- ListBindableAttribute.cs
- HttpApplication.cs
- ImageAutomationPeer.cs
- SqlDataSourceQuery.cs
- WebServiceHandlerFactory.cs
- GetIndexBinder.cs
- TextEmbeddedObject.cs
- RuleConditionDialog.Designer.cs
- TextServicesPropertyRanges.cs
- ColorDialog.cs
- StreamGeometry.cs
- UnsafeNativeMethodsMilCoreApi.cs
- DesignBindingPicker.cs
- NaturalLanguageHyphenator.cs
- counter.cs
- shaperfactoryquerycachekey.cs
- NestPullup.cs
- OutgoingWebResponseContext.cs
- WinFormsSecurity.cs
- RSAPKCS1SignatureDeformatter.cs
- TextProperties.cs
- ExpressionBinding.cs
- baseaxisquery.cs
- SystemIcmpV4Statistics.cs
- MediaTimeline.cs
- ListBoxAutomationPeer.cs
- TypeReference.cs
- login.cs
- FormView.cs
- SqlDataSourceView.cs
- BitmapEffectState.cs
- DoubleUtil.cs
- XmlSchemaIdentityConstraint.cs
- ConfigsHelper.cs
- HostDesigntimeLicenseContext.cs
- Publisher.cs
- Path.cs
- ScrollEvent.cs
- DbProviderConfigurationHandler.cs
- TextServicesHost.cs
- CodeRemoveEventStatement.cs
- ParameterElement.cs
- TemplateNodeContextMenu.cs
- KerberosSecurityTokenProvider.cs
- RenderOptions.cs
- EntityModelBuildProvider.cs
- RelationshipType.cs
- ScrollItemPatternIdentifiers.cs
- UnmanagedHandle.cs
- WindowsRichEditRange.cs
- JavascriptCallbackResponseProperty.cs
- UserNameSecurityTokenAuthenticator.cs
- validationstate.cs
- _ChunkParse.cs
- DataListItem.cs
- _RequestCacheProtocol.cs
- PaintEvent.cs
- __ComObject.cs
- TargetInvocationException.cs
- VirtualDirectoryMapping.cs
- CompilerGlobalScopeAttribute.cs
- DecimalConverter.cs
- OledbConnectionStringbuilder.cs
- RightsManagementEncryptedStream.cs
- ConnectionsZone.cs
- OSFeature.cs
- ListBoxItemAutomationPeer.cs
- RenderDataDrawingContext.cs
- DataComponentGenerator.cs
- DbProviderConfigurationHandler.cs
- GestureRecognitionResult.cs
- DataGridViewRowsAddedEventArgs.cs
- TreeChangeInfo.cs
- DataServiceRequestOfT.cs
- LinkedResourceCollection.cs
- FlowDocumentPage.cs
- CodeDomLocalizationProvider.cs
- HtmlTableCell.cs
- SafeEventLogReadHandle.cs