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
- SqlTrackingWorkflowInstance.cs
- EventListenerClientSide.cs
- ISCIIEncoding.cs
- ServiceDesigner.cs
- ShaderRenderModeValidation.cs
- AssemblyAttributesGoHere.cs
- DispatcherSynchronizationContext.cs
- wgx_sdk_version.cs
- HttpInputStream.cs
- ConfigurationStrings.cs
- ArrayMergeHelper.cs
- DataGridItemEventArgs.cs
- KoreanCalendar.cs
- TemplateEditingVerb.cs
- XmlSchemaSubstitutionGroup.cs
- ChangePassword.cs
- MemoryMappedViewAccessor.cs
- LayoutInformation.cs
- XamlClipboardData.cs
- WebServiceParameterData.cs
- HTTPNotFoundHandler.cs
- _SslStream.cs
- ProfileService.cs
- EntityCollection.cs
- ImplicitInputBrush.cs
- ToolStripTemplateNode.cs
- KeyManager.cs
- AddingNewEventArgs.cs
- LogManagementAsyncResult.cs
- PolyBezierSegment.cs
- SmtpDigestAuthenticationModule.cs
- DataGridViewImageColumn.cs
- DataGridViewBand.cs
- XmlAttribute.cs
- DataGridViewCellCollection.cs
- ObjectDataSourceStatusEventArgs.cs
- CalendarDesigner.cs
- SignatureHelper.cs
- CompiledQueryCacheKey.cs
- TaskFactory.cs
- Soap12ServerProtocol.cs
- AffineTransform3D.cs
- OletxVolatileEnlistment.cs
- TokenBasedSet.cs
- Span.cs
- RuntimeResourceSet.cs
- LocalizableAttribute.cs
- TextContainerHelper.cs
- ModuleConfigurationInfo.cs
- DataTableReader.cs
- KeyboardEventArgs.cs
- RenderCapability.cs
- AmbiguousMatchException.cs
- SafeSerializationManager.cs
- AsnEncodedData.cs
- RevocationPoint.cs
- SchemaRegistration.cs
- TypeSystem.cs
- LayoutEditorPart.cs
- SqlProcedureAttribute.cs
- FileDialogCustomPlacesCollection.cs
- WorkflowServiceBehavior.cs
- NavigationPropertyEmitter.cs
- UIElementParagraph.cs
- ReadOnlyCollection.cs
- Transform3DGroup.cs
- TextEffect.cs
- SeverityFilter.cs
- TabControlAutomationPeer.cs
- WMIInterop.cs
- ServiceDurableInstanceContextProvider.cs
- AQNBuilder.cs
- XPathNavigator.cs
- LockedBorderGlyph.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- FlowPanelDesigner.cs
- InputMethod.cs
- TextRangeEdit.cs
- XmlSerializationGeneratedCode.cs
- FigureParaClient.cs
- SmtpTransport.cs
- SystemTcpStatistics.cs
- DataServiceClientException.cs
- OleDbDataReader.cs
- XmlAttributeCollection.cs
- EntityDesignerDataSourceView.cs
- RangeValidator.cs
- AnonymousIdentificationSection.cs
- CompositeScriptReference.cs
- SoapReflectionImporter.cs
- PropertyRef.cs
- TextDecorationCollection.cs
- ScriptReference.cs
- CanonicalizationDriver.cs
- SymbolType.cs
- BaseTreeIterator.cs
- ThreadAbortException.cs
- BaseDataBoundControl.cs
- DeclaredTypeElement.cs
- OutputCacheSection.cs