Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2IProvidePropertyBuilderHandler.cs / 1305376 / COM2IProvidePropertyBuilderHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System.ComponentModel; using System.Diagnostics; using System; using System.Collections; using Microsoft.Win32; using System.Drawing.Design; [System.Security.SuppressUnmanagedCodeSecurityAttribute()] internal class Com2IProvidePropertyBuilderHandler : Com2ExtendedBrowsingHandler { public override Type Interface { get { return typeof(NativeMethods.IProvidePropertyBuilder); } } private bool GetBuilderGuidString(NativeMethods.IProvidePropertyBuilder target, int dispid, ref string strGuidBldr, int[] bldrType) { bool valid = false; string[] pGuidBldr = new string[1]; if (NativeMethods.Failed(target.MapPropertyToBuilder(dispid, bldrType, pGuidBldr, ref valid))) { valid = false; } if (valid && (bldrType[0] & _CTLBLDTYPE.CTLBLDTYPE_FINTERNALBUILDER) == 0) { valid = false; Debug.Fail("Property Browser doesn't support standard builders -- NYI"); } if (!valid) { return false; } if (pGuidBldr[0] == null) { strGuidBldr = Guid.Empty.ToString(); } else { strGuidBldr = pGuidBldr[0]; } return true; } public override void SetupPropertyHandlers(Com2PropertyDescriptor[] propDesc) { if (propDesc == null) { return; } for (int i = 0; i < propDesc.Length; i++) { propDesc[i].QueryGetBaseAttributes += new GetAttributesEventHandler(this.OnGetBaseAttributes); propDesc[i].QueryGetTypeConverterAndTypeEditor += new GetTypeConverterAndTypeEditorEventHandler(this.OnGetTypeConverterAndTypeEditor); } } ////// /// Here is where we handle IVsPerPropertyBrowsing.GetLocalizedPropertyInfo and IVsPerPropertyBrowsing. HideProperty /// such as IPerPropertyBrowsing, IProvidePropertyBuilder, etc. /// private void OnGetBaseAttributes(Com2PropertyDescriptor sender, GetAttributesEvent attrEvent) { NativeMethods.IProvidePropertyBuilder target = sender.TargetObject as NativeMethods.IProvidePropertyBuilder; if (target != null ) { string s = null; bool builderValid = GetBuilderGuidString(target, sender.DISPID, ref s, new int[1]); // we hide IDispatch props by default, we we need to force showing them here if (sender.CanShow && builderValid) { if (typeof(UnsafeNativeMethods.IDispatch).IsAssignableFrom(sender.PropertyType)) { attrEvent.Add(BrowsableAttribute.Yes); } } } } private void OnGetTypeConverterAndTypeEditor(Com2PropertyDescriptor sender, GetTypeConverterAndTypeEditorEvent gveevent) { object target = sender.TargetObject; if (target is NativeMethods.IProvidePropertyBuilder) { NativeMethods.IProvidePropertyBuilder propBuilder = (NativeMethods.IProvidePropertyBuilder)target; int[] pctlBldType = new int[1]; string guidString = null; if (GetBuilderGuidString(propBuilder, sender.DISPID, ref guidString, pctlBldType)) { gveevent.TypeEditor = new Com2PropertyBuilderUITypeEditor(sender, guidString, pctlBldType[0], (UITypeEditor)gveevent.TypeEditor); } } } } } // 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
- OneOfTypeConst.cs
- ModelProperty.cs
- ObjectStorage.cs
- IApplicationTrustManager.cs
- OleDbPermission.cs
- UrlMappingCollection.cs
- RuntimeEnvironment.cs
- AudioFileOut.cs
- SubqueryRules.cs
- BitmapDecoder.cs
- ModelItemCollectionImpl.cs
- ViewManager.cs
- ProcessModelSection.cs
- Unit.cs
- ProcessModule.cs
- ConfigurationSectionCollection.cs
- ProcessRequestArgs.cs
- AutomationPatternInfo.cs
- RequestCachePolicy.cs
- ParameterCollection.cs
- Permission.cs
- TypeGeneratedEventArgs.cs
- TextTreeUndo.cs
- SapiRecoContext.cs
- ClientScriptItemCollection.cs
- Visual3DCollection.cs
- SafePEFileHandle.cs
- TemplateControlCodeDomTreeGenerator.cs
- ThemeableAttribute.cs
- TreeNode.cs
- ObjectHandle.cs
- CollectionDataContractAttribute.cs
- Material.cs
- XamlRtfConverter.cs
- FtpRequestCacheValidator.cs
- SearchForVirtualItemEventArgs.cs
- DrawingBrush.cs
- ValidationResult.cs
- EmptyTextWriter.cs
- CaseCqlBlock.cs
- ControlCollection.cs
- InfiniteIntConverter.cs
- XMLSyntaxException.cs
- SqlDataSourceSelectingEventArgs.cs
- NonVisualControlAttribute.cs
- RemoteWebConfigurationHost.cs
- Membership.cs
- ImageListUtils.cs
- Serializer.cs
- IOThreadTimer.cs
- IdentityNotMappedException.cs
- HttpHandlerAction.cs
- WebContext.cs
- AsyncCompletedEventArgs.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- Point3DAnimation.cs
- EditingCoordinator.cs
- PrincipalPermissionMode.cs
- StorageInfo.cs
- TextServicesCompartmentContext.cs
- ExternalException.cs
- ConsoleTraceListener.cs
- ContentPresenter.cs
- CodeGenerator.cs
- LocalizeDesigner.cs
- CompensableActivity.cs
- UnconditionalPolicy.cs
- IntSecurity.cs
- SafeNativeMethods.cs
- QuaternionRotation3D.cs
- TextComposition.cs
- AsnEncodedData.cs
- MethodImplAttribute.cs
- TextRunProperties.cs
- CodeExporter.cs
- WebColorConverter.cs
- PointAnimationUsingPath.cs
- DataGridSortCommandEventArgs.cs
- EntityDataSourceSelectingEventArgs.cs
- X509Certificate2Collection.cs
- FlowLayoutSettings.cs
- DateTimeValueSerializerContext.cs
- DbConnectionPoolGroup.cs
- LoginUtil.cs
- CodeGeneratorOptions.cs
- HttpFileCollection.cs
- MessageBox.cs
- HistoryEventArgs.cs
- Inflater.cs
- UpdateDelegates.Generated.cs
- BaseHashHelper.cs
- Utils.cs
- InternalSendMessage.cs
- StreamReader.cs
- ValidationSummary.cs
- XmlDataSourceView.cs
- ValidatedControlConverter.cs
- MailMessageEventArgs.cs
- CollectionContainer.cs
- Color.cs