Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CommonUI / System / Drawing / Advanced / ImageCodecInfo.cs / 1 / ImageCodecInfo.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*************************************************************************\
*
* Copyright (c) 1998-1999, Microsoft Corp. All Rights Reserved.
*
* Module Name:
*
* ImageCodecInfo.cs
*
* Abstract:
*
* Native GDI+ ImageCodecInfo structure.
*
* Revision History:
*
* 9/22/1999 [....]
* Created it.
*
\**************************************************************************/
namespace System.Drawing.Imaging {
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System;
using System.Drawing;
using System.Drawing.Internal;
// sdkinc\imaging.h
///
///
/// [To be supplied.]
///
public sealed class ImageCodecInfo {
Guid clsid;
Guid formatID;
string codecName;
string dllName;
string formatDescription;
string filenameExtension;
string mimeType;
ImageCodecFlags flags;
int version;
byte[][] signaturePatterns;
byte[][] signatureMasks;
internal ImageCodecInfo() {
}
///
///
/// [To be supplied.]
///
public Guid Clsid {
get { return clsid; }
set { clsid = value; }
}
///
///
/// [To be supplied.]
///
public Guid FormatID {
get { return formatID; }
set { formatID = value; }
}
///
///
/// [To be supplied.]
///
public string CodecName {
get { return codecName; }
set { codecName = value; }
}
///
///
/// [To be supplied.]
///
public string DllName {
[SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity")]
get {
if (dllName != null) {
//a valid path is a security concern, demand
//path discovery permission....
new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.PathDiscovery, dllName).Demand();
}
return dllName;
}
[SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity")]
set {
if (value != null) {
//a valid path is a security concern, demand
//path discovery permission....
new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.PathDiscovery, value).Demand();
}
dllName = value;
}
}
///
///
/// [To be supplied.]
///
public string FormatDescription {
get { return formatDescription; }
set { formatDescription = value; }
}
///
///
/// [To be supplied.]
///
public string FilenameExtension {
get { return filenameExtension; }
set { filenameExtension = value; }
}
///
///
/// [To be supplied.]
///
public string MimeType {
get { return mimeType; }
set { mimeType = value; }
}
///
///
/// [To be supplied.]
///
public ImageCodecFlags Flags {
get { return flags; }
set { flags = value; }
}
///
///
/// [To be supplied.]
///
public int Version {
get { return version; }
set { version = value; }
}
///
///
/// [To be supplied.]
///
[CLSCompliant(false)]
public byte[][] SignaturePatterns {
get { return signaturePatterns; }
set { signaturePatterns = value; }
}
///
///
/// [To be supplied.]
///
[CLSCompliant(false)]
public byte[][] SignatureMasks {
get { return signatureMasks; }
set { signatureMasks = value; }
}
// Encoder/Decoder selection APIs
///
///
/// [To be supplied.]
///
public static ImageCodecInfo[] GetImageDecoders() {
ImageCodecInfo[] imageCodecs;
int numDecoders;
int size;
int status = SafeNativeMethods.Gdip.GdipGetImageDecodersSize(out numDecoders, out size);
if (status != SafeNativeMethods.Gdip.Ok) {
throw SafeNativeMethods.Gdip.StatusException(status);
}
IntPtr memory = Marshal.AllocHGlobal(size);
try {
status = SafeNativeMethods.Gdip.GdipGetImageDecoders(numDecoders, size, memory);
if (status != SafeNativeMethods.Gdip.Ok) {
throw SafeNativeMethods.Gdip.StatusException(status);
}
imageCodecs = ImageCodecInfo.ConvertFromMemory(memory, numDecoders);
}
finally {
Marshal.FreeHGlobal(memory);
}
return imageCodecs;
}
///
///
/// [To be supplied.]
///
public static ImageCodecInfo[] GetImageEncoders() {
ImageCodecInfo[] imageCodecs;
int numEncoders;
int size;
int status = SafeNativeMethods.Gdip.GdipGetImageEncodersSize(out numEncoders, out size);
if (status != SafeNativeMethods.Gdip.Ok) {
throw SafeNativeMethods.Gdip.StatusException(status);
}
IntPtr memory = Marshal.AllocHGlobal(size);
try {
status = SafeNativeMethods.Gdip.GdipGetImageEncoders(numEncoders, size, memory);
if (status != SafeNativeMethods.Gdip.Ok) {
throw SafeNativeMethods.Gdip.StatusException(status);
}
imageCodecs = ImageCodecInfo.ConvertFromMemory(memory, numEncoders);
}
finally {
Marshal.FreeHGlobal(memory);
}
return imageCodecs;
}
/* FxCop rule 'AvoidBuildingNonCallableCode' - Left here in case it is needed in the future.
internal static ImageCodecInfoPrivate ConvertToMemory(ImageCodecInfo imagecs)
{
ImageCodecInfoPrivate imagecsp = new ImageCodecInfoPrivate();
imagecsp.Clsid = imagecs.Clsid;
imagecsp.FormatID = imagecs.FormatID;
imagecsp.CodecName = Marshal.StringToHGlobalUni(imagecs.CodecName);
imagecsp.DllName = Marshal.StringToHGlobalUni(imagecs.DllName);
imagecsp.FormatDescription = Marshal.StringToHGlobalUni(imagecs.FormatDescription);
imagecsp.FilenameExtension = Marshal.StringToHGlobalUni(imagecs.FilenameExtension);
imagecsp.MimeType = Marshal.StringToHGlobalUni(imagecs.MimeType);
imagecsp.Flags = (int)imagecs.Flags;
imagecsp.Version = (int)imagecs.Version;
imagecsp.SigCount = imagecs.SignaturePatterns.Length;
imagecsp.SigSize = imagecs.SignaturePatterns[0].Length;
imagecsp.SigPattern = Marshal.AllocHGlobal(imagecsp.SigCount*imagecsp.SigSize);
imagecsp.SigMask = Marshal.AllocHGlobal(imagecsp.SigCount*imagecsp.SigSize);
for (int i=0; i
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbSetClause.cs
- SymbolMethod.cs
- Function.cs
- ActivityBindForm.cs
- ControlIdConverter.cs
- ProfileEventArgs.cs
- PathGradientBrush.cs
- ReaderWriterLockWrapper.cs
- TransactionScope.cs
- ListChunk.cs
- WmlPageAdapter.cs
- UrlMappingsModule.cs
- TableHeaderCell.cs
- MobileUserControlDesigner.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ValidationErrorEventArgs.cs
- SqlUDTStorage.cs
- GridEntryCollection.cs
- CodeDOMUtility.cs
- SystemNetworkInterface.cs
- CompressEmulationStream.cs
- HtmlTableCellCollection.cs
- SqlCommandSet.cs
- DrawListViewItemEventArgs.cs
- Empty.cs
- Restrictions.cs
- dtdvalidator.cs
- Rules.cs
- FixedStringLookup.cs
- XmlReader.cs
- HtmlAnchor.cs
- ConnectionProviderAttribute.cs
- FixedTextPointer.cs
- ConnectionStringEditor.cs
- ObjectContextServiceProvider.cs
- baseshape.cs
- QilFunction.cs
- EntityConnectionStringBuilder.cs
- BuildProviderAppliesToAttribute.cs
- RowUpdatingEventArgs.cs
- KoreanCalendar.cs
- Pens.cs
- ColumnCollection.cs
- ToolStripItemGlyph.cs
- __Filters.cs
- WebServiceErrorEvent.cs
- DrawingAttributesDefaultValueFactory.cs
- MulticastIPAddressInformationCollection.cs
- DataTableReader.cs
- tibetanshape.cs
- PolicyException.cs
- ValidationPropertyAttribute.cs
- AssemblyHelper.cs
- ListView.cs
- Region.cs
- WarningException.cs
- Base64Encoder.cs
- SecurityIdentifierConverter.cs
- FilteredDataSetHelper.cs
- ParserOptions.cs
- XmlUrlResolver.cs
- EdmFunctionAttribute.cs
- AssemblyBuilder.cs
- TemplateLookupAction.cs
- TimeZone.cs
- StrokeNode.cs
- ParameterDataSourceExpression.cs
- Permission.cs
- Stroke.cs
- WebPartManagerInternals.cs
- MenuItemCollectionEditor.cs
- Section.cs
- ExtensionQuery.cs
- RequestContext.cs
- AttachedPropertiesService.cs
- GeneratedCodeAttribute.cs
- WebPartActionVerb.cs
- DataKey.cs
- ApplyTemplatesAction.cs
- IteratorFilter.cs
- WebPartAddingEventArgs.cs
- PagePropertiesChangingEventArgs.cs
- NTAccount.cs
- DynamicDiscoveryDocument.cs
- Page.cs
- WebPartConnectionsEventArgs.cs
- _CookieModule.cs
- TraceInternal.cs
- PeerInputChannelListener.cs
- IProducerConsumerCollection.cs
- CaseKeyBox.ViewModel.cs
- LayoutEvent.cs
- ReflectionUtil.cs
- StreamWriter.cs
- recordstatescratchpad.cs
- BitmapCodecInfoInternal.cs
- ContentDisposition.cs
- XmlDocumentType.cs
- InvalidComObjectException.cs
- MsdtcWrapper.cs