Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2PropertyBuilderUITypeEditor.cs / 1305376 / COM2PropertyBuilderUITypeEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using Microsoft.Win32; using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Diagnostics; using System.Drawing; using System.Drawing.Design; using System.Runtime.InteropServices; using System.Windows.Forms.Design; using System.Globalization; ////// /// internal class Com2PropertyBuilderUITypeEditor : Com2ExtendedUITypeEditor { private Com2PropertyDescriptor propDesc; string guidString; int bldrType; public Com2PropertyBuilderUITypeEditor(Com2PropertyDescriptor pd, string guidString, int type, UITypeEditor baseEditor) : base(baseEditor) { propDesc = pd; this.guidString = guidString; this.bldrType = type; } ////// /// Takes the value returned from valueAccess.getValue() and modifies or replaces /// the value, passing the result into valueAccess.setValue(). This is where /// an editor can launch a modal dialog or create a drop down editor to allow /// the user to modify the value. Host assistance in presenting UI to the user /// can be found through the valueAccess.getService function. /// public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { IntPtr parentHandle = (IntPtr)UnsafeNativeMethods.GetFocus(); IUIService uiSvc = (IUIService)provider.GetService(typeof(IUIService)); if (uiSvc != null) { IWin32Window parent = uiSvc.GetDialogOwnerWindow(); if (parent != null) { parentHandle = parent.Handle; } } bool useValue = false; //VARIANT pValue = null; object pValue = value; try{ object obj = propDesc.TargetObject; if (obj is ICustomTypeDescriptor) { obj = ((ICustomTypeDescriptor)obj).GetPropertyOwner(propDesc); } Debug.Assert(obj is NativeMethods.IProvidePropertyBuilder, "object is not IProvidePropertyBuilder"); NativeMethods.IProvidePropertyBuilder propBuilder = (NativeMethods.IProvidePropertyBuilder)obj; if (NativeMethods.Failed(propBuilder.ExecuteBuilder(propDesc.DISPID, guidString, null, new HandleRef(null, parentHandle), ref pValue, ref useValue))){ useValue = false; } }catch(ExternalException ex) { Debug.Fail("Failed to show property frame: " + ex.ErrorCode.ToString(CultureInfo.InvariantCulture)); } if (useValue && (bldrType & _CTLBLDTYPE.CTLBLDTYPE_FEDITSOBJDIRECTLY) == 0){ return pValue;//pValue.ToVariant(); } return value; } ////// /// Retrieves the editing style of the Edit method. If the method /// is not supported, this will return None. /// public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; } } } // 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
- ValidationEventArgs.cs
- DataPagerFieldCollection.cs
- UrlAuthorizationModule.cs
- DispatcherProcessingDisabled.cs
- ErrorTableItemStyle.cs
- InputScopeConverter.cs
- ADRoleFactoryConfiguration.cs
- DateTimeConverter2.cs
- OrderingQueryOperator.cs
- SmiSettersStream.cs
- LinearKeyFrames.cs
- FamilyTypeface.cs
- BinaryCommonClasses.cs
- ProgressBar.cs
- TrackingProfileDeserializationException.cs
- MobileTextWriter.cs
- XhtmlConformanceSection.cs
- XmlCompatibilityReader.cs
- RuleSetDialog.Designer.cs
- Exception.cs
- SelectedGridItemChangedEvent.cs
- CompositionTarget.cs
- LineBreak.cs
- BamlResourceDeserializer.cs
- EntityProviderServices.cs
- EnlistmentTraceIdentifier.cs
- NopReturnReader.cs
- DecimalAnimationBase.cs
- Transform3D.cs
- TextEmbeddedObject.cs
- ReflectTypeDescriptionProvider.cs
- Drawing.cs
- TemplateInstanceAttribute.cs
- ProtocolViolationException.cs
- ToolStripContentPanelDesigner.cs
- FontClient.cs
- assertwrapper.cs
- RequiredFieldValidator.cs
- ServiceHostingEnvironment.cs
- UrlUtility.cs
- KeyConverter.cs
- FontSourceCollection.cs
- NonClientArea.cs
- TableLayoutPanelDesigner.cs
- XsltContext.cs
- Freezable.cs
- MenuAdapter.cs
- SqlDataSource.cs
- DesignerMetadata.cs
- TrustLevel.cs
- BaseDataListComponentEditor.cs
- HttpContextBase.cs
- Speller.cs
- TreeNodeCollection.cs
- SettingsPropertyValueCollection.cs
- HttpModuleCollection.cs
- DataRecord.cs
- EditableTreeList.cs
- WebPartUserCapability.cs
- Coordinator.cs
- SetState.cs
- NotImplementedException.cs
- RequestDescription.cs
- ByteAnimationBase.cs
- ExtractedStateEntry.cs
- AssemblyBuilderData.cs
- ResourcePart.cs
- XmlWriterSettings.cs
- UpdateProgress.cs
- SqlXmlStorage.cs
- EntityModelSchemaGenerator.cs
- FileUtil.cs
- FrameworkElementFactoryMarkupObject.cs
- SequenceNumber.cs
- CompressionTransform.cs
- SqlStatistics.cs
- SkipQueryOptionExpression.cs
- SqlProcedureAttribute.cs
- EntityChangedParams.cs
- ProcessingInstructionAction.cs
- PeerApplicationLaunchInfo.cs
- TextEditor.cs
- OdbcConnection.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- SHA512Managed.cs
- Shape.cs
- CheckBoxBaseAdapter.cs
- ApplicationContext.cs
- EastAsianLunisolarCalendar.cs
- ChangeProcessor.cs
- ClassicBorderDecorator.cs
- RegexGroupCollection.cs
- SessionPageStateSection.cs
- MenuItemCollection.cs
- DataBoundLiteralControl.cs
- WmlValidationSummaryAdapter.cs
- PermissionSetTriple.cs
- TextCompositionEventArgs.cs
- MaterialGroup.cs
- WebServiceMethodData.cs