Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- BamlVersionHeader.cs
- TypeExtensions.cs
- SystemInformation.cs
- ExpressionsCollectionEditor.cs
- GiveFeedbackEventArgs.cs
- MethodToken.cs
- CultureInfoConverter.cs
- XmlNavigatorStack.cs
- JoinQueryOperator.cs
- SqlCachedBuffer.cs
- ScriptRegistrationManager.cs
- IEnumerable.cs
- SBCSCodePageEncoding.cs
- SvcMapFile.cs
- DataSetMappper.cs
- BamlRecords.cs
- XmlTypeAttribute.cs
- AsymmetricKeyExchangeFormatter.cs
- ToolCreatedEventArgs.cs
- DateTimeValueSerializer.cs
- ContentPresenter.cs
- FloaterParaClient.cs
- DotAtomReader.cs
- MemberRelationshipService.cs
- DefaultAsyncDataDispatcher.cs
- HttpSocketManager.cs
- Vector3DCollectionConverter.cs
- ObjectConverter.cs
- ObjectStorage.cs
- BackStopAuthenticationModule.cs
- PersonalizationProvider.cs
- ProfileBuildProvider.cs
- DiagnosticsConfigurationHandler.cs
- Speller.cs
- ContainerParagraph.cs
- ColorIndependentAnimationStorage.cs
- UriSectionData.cs
- KeyboardNavigation.cs
- XPathItem.cs
- WindowsRegion.cs
- XmlNamedNodeMap.cs
- EmissiveMaterial.cs
- ValueTypeFixupInfo.cs
- AssemblyInfo.cs
- SqlGenerator.cs
- DependencyStoreSurrogate.cs
- LayoutSettings.cs
- XmlQualifiedName.cs
- NonBatchDirectoryCompiler.cs
- ToolStripItem.cs
- BitmapEffectInput.cs
- DeliveryRequirementsAttribute.cs
- entityreference_tresulttype.cs
- BlockingCollection.cs
- UpdateProgress.cs
- DataMember.cs
- BindingNavigator.cs
- FontStyle.cs
- ParseElementCollection.cs
- SecurityTokenProvider.cs
- HttpProxyCredentialType.cs
- SecureStringHasher.cs
- ScrollItemProviderWrapper.cs
- SiteOfOriginPart.cs
- CompiledQuery.cs
- FormsAuthenticationEventArgs.cs
- XmlDigitalSignatureProcessor.cs
- Single.cs
- AutoResizedEvent.cs
- UIServiceHelper.cs
- AggregateNode.cs
- TextModifierScope.cs
- PrinterSettings.cs
- ValidationSummary.cs
- Char.cs
- LogFlushAsyncResult.cs
- XmlBindingWorker.cs
- DictionaryContent.cs
- IntPtr.cs
- TokenizerHelper.cs
- httpapplicationstate.cs
- EmptyEnumerator.cs
- SqlInternalConnectionTds.cs
- ObjectListField.cs
- OdbcFactory.cs
- TableLayoutColumnStyleCollection.cs
- ExceptionHandlerDesigner.cs
- DrawingDrawingContext.cs
- FactoryMaker.cs
- LinearGradientBrush.cs
- ServiceDescriptionContext.cs
- SendingRequestEventArgs.cs
- Site.cs
- SecurityUtils.cs
- DoubleMinMaxAggregationOperator.cs
- FixedSOMPageElement.cs
- ListViewUpdatedEventArgs.cs
- DataGridViewCellValidatingEventArgs.cs
- HMACRIPEMD160.cs
- SecurityRuntime.cs