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
- TypeDependencyAttribute.cs
- PageWrapper.cs
- ServiceProviders.cs
- SrgsToken.cs
- SqlDataSourceFilteringEventArgs.cs
- Message.cs
- Win32KeyboardDevice.cs
- CompensatableSequenceActivity.cs
- HttpModuleActionCollection.cs
- IsolatedStorageFilePermission.cs
- ProviderBase.cs
- WizardStepBase.cs
- ConstraintStruct.cs
- OdbcFactory.cs
- XmlReaderSettings.cs
- ActivityValidator.cs
- VisualStyleElement.cs
- IndexedEnumerable.cs
- SizeConverter.cs
- ParentQuery.cs
- BuildDependencySet.cs
- _SSPIWrapper.cs
- BorderSidesEditor.cs
- NumericPagerField.cs
- Attribute.cs
- PasswordTextNavigator.cs
- PrinterSettings.cs
- EntityClassGenerator.cs
- WorkflowView.cs
- Polyline.cs
- PrincipalPermission.cs
- EntityCommand.cs
- TimeManager.cs
- RuntimeIdentifierPropertyAttribute.cs
- PropertyValueUIItem.cs
- DebugView.cs
- HttpChannelBindingToken.cs
- RuntimeResourceSet.cs
- Label.cs
- DesignerListAdapter.cs
- GradientStopCollection.cs
- ServiceDescriptionImporter.cs
- Selection.cs
- CounterCreationDataCollection.cs
- UIElement3D.cs
- _SSPIWrapper.cs
- RsaSecurityTokenParameters.cs
- AnonymousIdentificationSection.cs
- CorrelationManager.cs
- SectionRecord.cs
- Color.cs
- TimeoutException.cs
- DocumentScope.cs
- Semaphore.cs
- FirstMatchCodeGroup.cs
- EventSourceCreationData.cs
- XmlBinaryReaderSession.cs
- Propagator.ExtentPlaceholderCreator.cs
- WindowsIdentity.cs
- dbenumerator.cs
- Compiler.cs
- HtmlButton.cs
- ObjectDataSourceDisposingEventArgs.cs
- Version.cs
- UInt64.cs
- TextBoxBase.cs
- RtfControlWordInfo.cs
- CompilerScopeManager.cs
- SqlHelper.cs
- DecoratedNameAttribute.cs
- QueryTaskGroupState.cs
- XmlSchemaObjectCollection.cs
- XPathNodeIterator.cs
- DoubleCollectionConverter.cs
- WebServiceData.cs
- RSAPKCS1SignatureDeformatter.cs
- Wizard.cs
- PersonalizationProviderCollection.cs
- HelpInfo.cs
- HintTextConverter.cs
- NativeStructs.cs
- WindowsFont.cs
- EventProviderWriter.cs
- ObjectStateEntry.cs
- XmlProcessingInstruction.cs
- DataGridViewColumnConverter.cs
- AssemblyFilter.cs
- TypeValidationEventArgs.cs
- SelectedGridItemChangedEvent.cs
- XmlAttributeAttribute.cs
- HtmlImage.cs
- SvcMapFile.cs
- LayoutTable.cs
- LogPolicy.cs
- TypedReference.cs
- FreezableDefaultValueFactory.cs
- BindingManagerDataErrorEventArgs.cs
- WebScriptMetadataMessageEncoderFactory.cs
- TreeView.cs
- WsdlParser.cs