Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2IDispatchConverter.cs / 1 / COM2IDispatchConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System.Diagnostics; using System; using System.ComponentModel; using System.Collections; using Microsoft.Win32; using System.Globalization; internal class Com2IDispatchConverter : Com2ExtendedTypeConverter{ Com2PropertyDescriptor propDesc; ////// /// What we return textually for null. /// protected static readonly string none = SR.GetString(SR.toStringNone); private bool allowExpand; public Com2IDispatchConverter(Com2PropertyDescriptor propDesc, bool allowExpand, TypeConverter baseConverter) : base(baseConverter){ this.propDesc = propDesc; this.allowExpand = allowExpand; } public Com2IDispatchConverter(Com2PropertyDescriptor propDesc, bool allowExpand) : base(propDesc.PropertyType){ this.propDesc = propDesc; this.allowExpand = allowExpand; } ////// /// Determines if this converter can convert an object in the given source /// type to the native type of the converter. /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return false; } ////// /// Determines if this converter can convert an object to the given destination /// type. /// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { return destinationType == typeof(string); } ////// /// Converts the given object to another type. The most common types to convert /// are to and from a string object. The default implementation will make a call /// to ToString on the object if the object is valid and if the destination /// type is string. If this cannot convert to the desitnation type, this will /// throw a NotSupportedException. /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)){ if (value == null){ return none; } string text = ComNativeDescriptor.Instance.GetName(value); if (text == null || text.Length == 0){ text = ComNativeDescriptor.Instance.GetClassName(value); } if (text == null){ return "(Object)"; } return text; } return base.ConvertTo(context, culture, value, destinationType); } public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { return TypeDescriptor.GetProperties(value, attributes); } ////// /// Determines if this object supports properties. By default, this /// is false. /// public override bool GetPropertiesSupported(ITypeDescriptorContext context) { return this.allowExpand; } // no dropdown, please! // public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System.Diagnostics; using System; using System.ComponentModel; using System.Collections; using Microsoft.Win32; using System.Globalization; internal class Com2IDispatchConverter : Com2ExtendedTypeConverter{ Com2PropertyDescriptor propDesc; ////// /// What we return textually for null. /// protected static readonly string none = SR.GetString(SR.toStringNone); private bool allowExpand; public Com2IDispatchConverter(Com2PropertyDescriptor propDesc, bool allowExpand, TypeConverter baseConverter) : base(baseConverter){ this.propDesc = propDesc; this.allowExpand = allowExpand; } public Com2IDispatchConverter(Com2PropertyDescriptor propDesc, bool allowExpand) : base(propDesc.PropertyType){ this.propDesc = propDesc; this.allowExpand = allowExpand; } ////// /// Determines if this converter can convert an object in the given source /// type to the native type of the converter. /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return false; } ////// /// Determines if this converter can convert an object to the given destination /// type. /// public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { return destinationType == typeof(string); } ////// /// Converts the given object to another type. The most common types to convert /// are to and from a string object. The default implementation will make a call /// to ToString on the object if the object is valid and if the destination /// type is string. If this cannot convert to the desitnation type, this will /// throw a NotSupportedException. /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)){ if (value == null){ return none; } string text = ComNativeDescriptor.Instance.GetName(value); if (text == null || text.Length == 0){ text = ComNativeDescriptor.Instance.GetClassName(value); } if (text == null){ return "(Object)"; } return text; } return base.ConvertTo(context, culture, value, destinationType); } public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { return TypeDescriptor.GetProperties(value, attributes); } ////// /// Determines if this object supports properties. By default, this /// is false. /// public override bool GetPropertiesSupported(ITypeDescriptorContext context) { return this.allowExpand; } // no dropdown, please! // public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return false; } } } // 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
- InvalidWMPVersionException.cs
- QueryContinueDragEvent.cs
- ConnectionsZone.cs
- RegexStringValidator.cs
- XpsS0ValidatingLoader.cs
- WebPartCatalogCloseVerb.cs
- XmlMembersMapping.cs
- ThemeableAttribute.cs
- Vector3DCollectionConverter.cs
- CompiledQuery.cs
- TargetFrameworkUtil.cs
- PartitionResolver.cs
- PeerServiceMessageContracts.cs
- CollaborationHelperFunctions.cs
- RewritingValidator.cs
- loginstatus.cs
- FastPropertyAccessor.cs
- HttpListener.cs
- CreateUserWizard.cs
- LinkLabel.cs
- HostProtectionPermission.cs
- SymmetricCryptoHandle.cs
- ContextProperty.cs
- FormatterServices.cs
- PropertyGridEditorPart.cs
- WebPartVerbCollection.cs
- WebPartConnectionsEventArgs.cs
- XmlQueryTypeFactory.cs
- InvalidEnumArgumentException.cs
- FileDataSource.cs
- MenuStrip.cs
- GeometryDrawing.cs
- FormatConvertedBitmap.cs
- PaperSource.cs
- MsmqIntegrationMessagePool.cs
- WebPartDisplayMode.cs
- FamilyTypeface.cs
- MenuBase.cs
- MatrixAnimationUsingKeyFrames.cs
- DependencyObject.cs
- VsPropertyGrid.cs
- RequiredFieldValidator.cs
- DelegateArgument.cs
- ApplicationSecurityManager.cs
- MetaModel.cs
- PropertyNames.cs
- ObjRef.cs
- PropertyItemInternal.cs
- ThaiBuddhistCalendar.cs
- CategoryEditor.cs
- QilInvokeLateBound.cs
- XDeferredAxisSource.cs
- MdiWindowListStrip.cs
- TraversalRequest.cs
- SelectionProviderWrapper.cs
- TimelineGroup.cs
- FileRecordSequenceCompletedAsyncResult.cs
- InputProcessorProfiles.cs
- EdmFunction.cs
- SimpleTypesSurrogate.cs
- VirtualPath.cs
- OutputCacheModule.cs
- XmlName.cs
- OuterGlowBitmapEffect.cs
- DataGridViewCellMouseEventArgs.cs
- TextTreeFixupNode.cs
- CommandField.cs
- InstalledFontCollection.cs
- HttpPostedFile.cs
- PropertyStore.cs
- AppModelKnownContentFactory.cs
- ColumnMapCopier.cs
- FixedHighlight.cs
- EpmContentDeSerializer.cs
- ScriptingSectionGroup.cs
- ToolboxItemCollection.cs
- DataGridViewBand.cs
- View.cs
- ObjectConverter.cs
- IndexedString.cs
- AssemblyFilter.cs
- ContractTypeNameElement.cs
- AgileSafeNativeMemoryHandle.cs
- Condition.cs
- _LocalDataStoreMgr.cs
- TargetException.cs
- Int32KeyFrameCollection.cs
- MouseGestureConverter.cs
- RelatedImageListAttribute.cs
- SelectorItemAutomationPeer.cs
- ForeignKeyConstraint.cs
- SolidBrush.cs
- SequentialUshortCollection.cs
- SRDisplayNameAttribute.cs
- Freezable.cs
- TableLayoutCellPaintEventArgs.cs
- SiteMapProvider.cs
- ListViewItem.cs
- ModifiableIteratorCollection.cs
- ErrorHandlingAcceptor.cs