Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2ICategorizePropertiesHandler.cs / 1305376 / COM2ICategorizePropertiesHandler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using Microsoft.Win32; [System.Security.SuppressUnmanagedCodeSecurityAttribute()] internal class Com2ICategorizePropertiesHandler : Com2ExtendedBrowsingHandler { public override Type Interface { get { return typeof(NativeMethods.ICategorizeProperties); } } private string GetCategoryFromObject(object obj, int dispid) { if (obj == null) { return null; } if (obj is NativeMethods.ICategorizeProperties) { NativeMethods.ICategorizeProperties catObj = (NativeMethods.ICategorizeProperties)obj; try { int categoryID = 0; if (NativeMethods.S_OK == catObj.MapPropertyToCategory(dispid, ref categoryID)) { string categoryName = null; switch (categoryID) { case NativeMethods.ActiveX.PROPCAT_Nil: return ""; case NativeMethods.ActiveX.PROPCAT_Misc: return SR.GetString(SR.PropertyCategoryMisc); case NativeMethods.ActiveX.PROPCAT_Font: return SR.GetString(SR.PropertyCategoryFont); case NativeMethods.ActiveX.PROPCAT_Position: return SR.GetString(SR.PropertyCategoryPosition); case NativeMethods.ActiveX.PROPCAT_Appearance: return SR.GetString(SR.PropertyCategoryAppearance); case NativeMethods.ActiveX.PROPCAT_Behavior: return SR.GetString(SR.PropertyCategoryBehavior); case NativeMethods.ActiveX.PROPCAT_Data: return SR.GetString(SR.PropertyCategoryData); case NativeMethods.ActiveX.PROPCAT_List: return SR.GetString(SR.PropertyCategoryList); case NativeMethods.ActiveX.PROPCAT_Text: return SR.GetString(SR.PropertyCategoryText); case NativeMethods.ActiveX.PROPCAT_Scale: return SR.GetString(SR.PropertyCategoryScale); case NativeMethods.ActiveX.PROPCAT_DDE: return SR.GetString(SR.PropertyCategoryDDE); } if (NativeMethods.S_OK == catObj.GetCategoryName(categoryID, CultureInfo.CurrentCulture.LCID, out categoryName)) { return categoryName; } } } catch { } } return null; } public override void SetupPropertyHandlers(Com2PropertyDescriptor[] propDesc) { if (propDesc == null) { return; } for (int i = 0; i < propDesc.Length; i++) { propDesc[i].QueryGetBaseAttributes += new GetAttributesEventHandler(this.OnGetAttributes); } } private void OnGetAttributes(Com2PropertyDescriptor sender, GetAttributesEvent attrEvent) { string cat = GetCategoryFromObject(sender.TargetObject, sender.DISPID); if (cat != null && cat.Length > 0) { attrEvent.Add(new CategoryAttribute(cat)); } } } } // 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
- ListSortDescriptionCollection.cs
- SafeWaitHandle.cs
- ApplicationId.cs
- TimeSpanOrInfiniteValidator.cs
- StringValidator.cs
- InputReportEventArgs.cs
- StyleCollectionEditor.cs
- UserControlAutomationPeer.cs
- IndexExpression.cs
- Type.cs
- RewritingProcessor.cs
- InfoCardSymmetricAlgorithm.cs
- LocalizableAttribute.cs
- BitmapSizeOptions.cs
- XmlConverter.cs
- MembershipAdapter.cs
- FormsAuthenticationTicket.cs
- OrderingInfo.cs
- BindingExpression.cs
- XmlValueConverter.cs
- RangeValidator.cs
- VariableDesigner.xaml.cs
- DataGridPagerStyle.cs
- DesignSurfaceManager.cs
- SqlEnums.cs
- RuntimeConfigLKG.cs
- SQLInt32Storage.cs
- ConfigurationCollectionAttribute.cs
- TraceContextRecord.cs
- TypeDescriptorFilterService.cs
- ControlEvent.cs
- DebuggerAttributes.cs
- MemberInitExpression.cs
- MembershipUser.cs
- ProviderSettings.cs
- ScrollChrome.cs
- Form.cs
- OdbcEnvironment.cs
- AttachedPropertyBrowsableAttribute.cs
- ArraySegment.cs
- MultipartIdentifier.cs
- ByeOperationCD1AsyncResult.cs
- ThreadSafeList.cs
- ApplyImportsAction.cs
- CheckBox.cs
- RawTextInputReport.cs
- EntityDescriptor.cs
- EmbossBitmapEffect.cs
- RijndaelCryptoServiceProvider.cs
- RegisteredExpandoAttribute.cs
- FigureParaClient.cs
- _NetworkingPerfCounters.cs
- Queue.cs
- MethodImplAttribute.cs
- Table.cs
- ControllableStoryboardAction.cs
- SourceItem.cs
- Style.cs
- SqlCacheDependency.cs
- BinaryReader.cs
- ComplexBindingPropertiesAttribute.cs
- Classification.cs
- SecurityUniqueId.cs
- SpecialNameAttribute.cs
- ScriptingProfileServiceSection.cs
- EtwProvider.cs
- NetworkInterface.cs
- SqlCachedBuffer.cs
- TraceListeners.cs
- HeaderedContentControl.cs
- PolicyChain.cs
- ProbeMatches11.cs
- SoapFault.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- OdbcReferenceCollection.cs
- ContentWrapperAttribute.cs
- PropertyKey.cs
- NegotiateStream.cs
- NetWebProxyFinder.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- FormatterConverter.cs
- PDBReader.cs
- XmlSchemaSequence.cs
- SendKeys.cs
- ImageProxy.cs
- QuaternionKeyFrameCollection.cs
- NotifyIcon.cs
- ServiceElement.cs
- DataGridViewUtilities.cs
- UnsafeNativeMethods.cs
- ConnectionStringSettings.cs
- InputMethod.cs
- ObjectTag.cs
- XmlQueryTypeFactory.cs
- CodeIdentifier.cs
- SpecialFolderEnumConverter.cs
- BoundColumn.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- BasicViewGenerator.cs
- OleDbTransaction.cs