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
- RevocationPoint.cs
- Track.cs
- DnsEndPoint.cs
- DocobjHost.cs
- XomlSerializationHelpers.cs
- IncrementalHitTester.cs
- TraceRecord.cs
- IteratorFilter.cs
- ProcessThread.cs
- XmlLanguageConverter.cs
- PageThemeBuildProvider.cs
- EditorPartCollection.cs
- Dynamic.cs
- NotificationContext.cs
- ThumbAutomationPeer.cs
- SiteMapSection.cs
- ButtonField.cs
- PropertyInfoSet.cs
- ObjectQuery.cs
- TimelineClockCollection.cs
- FreezableCollection.cs
- SafeNativeMethods.cs
- DivideByZeroException.cs
- ReferenceEqualityComparer.cs
- SmiMetaDataProperty.cs
- EmptyImpersonationContext.cs
- GPStream.cs
- BridgeDataReader.cs
- ElementInit.cs
- XmlDataSource.cs
- BitConverter.cs
- WindowsFormsHelpers.cs
- DbModificationClause.cs
- ProcessRequestArgs.cs
- Label.cs
- AnonymousIdentificationSection.cs
- NTAccount.cs
- ImageField.cs
- DisableDpiAwarenessAttribute.cs
- CookielessHelper.cs
- CellConstant.cs
- SQLBytesStorage.cs
- OSEnvironmentHelper.cs
- Query.cs
- TextBox.cs
- DefaultIfEmptyQueryOperator.cs
- ProcessMessagesAsyncResult.cs
- ProjectionRewriter.cs
- ResolveMatchesMessageCD1.cs
- SoapInteropTypes.cs
- TypeElementCollection.cs
- PageAsyncTask.cs
- SecurityPermission.cs
- MenuRendererStandards.cs
- TypeProvider.cs
- SingleAnimationUsingKeyFrames.cs
- CqlLexer.cs
- ExpandCollapseProviderWrapper.cs
- TdsParserSafeHandles.cs
- StringArrayConverter.cs
- Operators.cs
- DesignerActionUI.cs
- Clock.cs
- MemoryFailPoint.cs
- SoapExtensionImporter.cs
- Application.cs
- GridViewUpdatedEventArgs.cs
- OrderingExpression.cs
- UiaCoreTypesApi.cs
- SqlDataSourceStatusEventArgs.cs
- RetriableClipboard.cs
- DocumentViewerConstants.cs
- MetadataItemEmitter.cs
- Calendar.cs
- DesignerActionVerbList.cs
- Assert.cs
- OleDbInfoMessageEvent.cs
- StreamUpdate.cs
- ServiceProviders.cs
- DataPagerFieldCommandEventArgs.cs
- ProfileSection.cs
- ActiveXContainer.cs
- TextClipboardData.cs
- WebServiceResponse.cs
- ProfileSettings.cs
- SliderAutomationPeer.cs
- UnicodeEncoding.cs
- _RequestCacheProtocol.cs
- SafeViewOfFileHandle.cs
- CorrelationManager.cs
- Form.cs
- StructureChangedEventArgs.cs
- ContravarianceAdapter.cs
- UnmanagedHandle.cs
- DigestComparer.cs
- UiaCoreProviderApi.cs
- AnnotationHighlightLayer.cs
- MbpInfo.cs
- IntSecurity.cs
- QueryCacheKey.cs