Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartAuthorizationEventArgs.cs
- InvokeWebService.cs
- Camera.cs
- AssociationEndMember.cs
- DragDropHelper.cs
- DataGridViewCellValidatingEventArgs.cs
- TypeReference.cs
- UpdateExpressionVisitor.cs
- DataRowChangeEvent.cs
- RoleGroupCollectionEditor.cs
- SafeProcessHandle.cs
- ColumnReorderedEventArgs.cs
- TextDecoration.cs
- IsolatedStorage.cs
- FileIOPermission.cs
- cookie.cs
- UpDownEvent.cs
- AvTrace.cs
- ConvertersCollection.cs
- CachedFontFamily.cs
- RuleSetDialog.Designer.cs
- PeerNameRecordCollection.cs
- TreeBuilderBamlTranslator.cs
- TextEffectCollection.cs
- ActivityBuilderHelper.cs
- PropertyItem.cs
- SQLBytesStorage.cs
- ResourceAssociationTypeEnd.cs
- NetMsmqSecurityMode.cs
- WorkflowInstanceRecord.cs
- ToolTipAutomationPeer.cs
- XmlCharType.cs
- SqlUserDefinedAggregateAttribute.cs
- ResourceKey.cs
- EventWaitHandleSecurity.cs
- LocalizedNameDescriptionPair.cs
- MLangCodePageEncoding.cs
- StorageEndPropertyMapping.cs
- OutputScopeManager.cs
- HitTestFilterBehavior.cs
- ResourceReferenceExpressionConverter.cs
- ThrowHelper.cs
- HttpResponseHeader.cs
- SecurityContext.cs
- SelectedDatesCollection.cs
- EastAsianLunisolarCalendar.cs
- WebPartConnectionsConfigureVerb.cs
- HttpWebRequest.cs
- QueryProcessor.cs
- GroupItemAutomationPeer.cs
- PreservationFileReader.cs
- PositiveTimeSpanValidator.cs
- DocumentViewerBase.cs
- TableParagraph.cs
- FtpWebRequest.cs
- WebPageTraceListener.cs
- StyleXamlParser.cs
- SamlAssertion.cs
- MobileComponentEditorPage.cs
- FieldMetadata.cs
- Utils.cs
- ResourceExpressionEditor.cs
- Viewport2DVisual3D.cs
- Parameter.cs
- ObjectDataSourceChooseMethodsPanel.cs
- SurrogateEncoder.cs
- LinqDataView.cs
- PersistenceMetadataNamespace.cs
- ObjectDataSourceFilteringEventArgs.cs
- ToolBarOverflowPanel.cs
- userdatakeys.cs
- DataGridViewToolTip.cs
- LateBoundBitmapDecoder.cs
- TableLayoutPanelBehavior.cs
- Select.cs
- RegexMatchCollection.cs
- ExtractedStateEntry.cs
- PageCodeDomTreeGenerator.cs
- RsaElement.cs
- ZipIOExtraFieldZip64Element.cs
- WpfPayload.cs
- Command.cs
- LambdaCompiler.Address.cs
- PointAnimationUsingPath.cs
- ListViewInsertionMark.cs
- PictureBoxDesigner.cs
- SoapBinding.cs
- SimpleTextLine.cs
- ConnectionStringsSection.cs
- RC2.cs
- CreateUserWizardStep.cs
- DirectoryObjectSecurity.cs
- SystemNetworkInterface.cs
- CollectionChangedEventManager.cs
- MessageOperationFormatter.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ListenerElementsCollection.cs
- ProvidersHelper.cs
- StrokeNodeOperations2.cs
- ButtonAutomationPeer.cs