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
- PointConverter.cs
- HttpProfileGroupBase.cs
- ApplicationBuildProvider.cs
- XmlILIndex.cs
- MarkupWriter.cs
- Exceptions.cs
- COM2Enum.cs
- ConsumerConnectionPointCollection.cs
- FontStretchConverter.cs
- BrowserDefinitionCollection.cs
- AmbientValueAttribute.cs
- basemetadatamappingvisitor.cs
- DbSource.cs
- CodeAttributeDeclaration.cs
- HtmlDocument.cs
- XmlArrayItemAttribute.cs
- ObsoleteAttribute.cs
- SectionUpdates.cs
- AsymmetricSignatureFormatter.cs
- SrgsSemanticInterpretationTag.cs
- AggregateNode.cs
- PanelDesigner.cs
- HtmlWindow.cs
- BidOverLoads.cs
- ThreadPoolTaskScheduler.cs
- ExtenderHelpers.cs
- ShapingEngine.cs
- CriticalFinalizerObject.cs
- XsdValidatingReader.cs
- TypeInitializationException.cs
- TypeConverter.cs
- SecurityHeaderLayout.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- ResourceContainer.cs
- TargetParameterCountException.cs
- BindingObserver.cs
- SubclassTypeValidator.cs
- ParamArrayAttribute.cs
- DbConvert.cs
- BitmapFrameEncode.cs
- _BaseOverlappedAsyncResult.cs
- FormsAuthenticationConfiguration.cs
- PageTrueTypeFont.cs
- securitycriticaldata.cs
- TypeConverters.cs
- XmlArrayItemAttributes.cs
- UrlPath.cs
- InputLangChangeRequestEvent.cs
- RectAnimationClockResource.cs
- SqlUserDefinedTypeAttribute.cs
- ValidationRuleCollection.cs
- DocumentEventArgs.cs
- MruCache.cs
- WriteTimeStream.cs
- HttpWrapper.cs
- PageStatePersister.cs
- ResetableIterator.cs
- securitymgrsite.cs
- Win32PrintDialog.cs
- NamespaceMapping.cs
- Vector3D.cs
- AutomationPropertyInfo.cs
- CaretElement.cs
- WindowsGraphicsWrapper.cs
- SvcMapFile.cs
- KeyedCollection.cs
- EntityCommand.cs
- HistoryEventArgs.cs
- RadioButton.cs
- ArrayItemReference.cs
- MenuCommandsChangedEventArgs.cs
- AnnotationService.cs
- PrintPreviewControl.cs
- XmlCDATASection.cs
- SqlComparer.cs
- DrawItemEvent.cs
- TableCell.cs
- TypefaceMetricsCache.cs
- CqlParser.cs
- UrlMappingsModule.cs
- TextRangeProviderWrapper.cs
- SystemColors.cs
- MenuItemStyleCollection.cs
- UnknownWrapper.cs
- Enum.cs
- TextRenderer.cs
- IncomingWebResponseContext.cs
- LinearGradientBrush.cs
- QilInvokeEarlyBound.cs
- CustomAttribute.cs
- BamlRecords.cs
- DataGridBoolColumn.cs
- Transaction.cs
- DataSetSchema.cs
- ToolstripProfessionalRenderer.cs
- SafeNativeMethodsCLR.cs
- SaveFileDialogDesigner.cs
- DataFormat.cs
- ToolBarButtonClickEvent.cs
- MenuItemAutomationPeer.cs