Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2ICategorizePropertiesHandler.cs / 1 / 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
- CheckoutException.cs
- ScriptResourceInfo.cs
- CodeAssignStatement.cs
- Expressions.cs
- WebPartZone.cs
- FilterException.cs
- CodeAccessSecurityEngine.cs
- SizeConverter.cs
- HttpRequestWrapper.cs
- DateTimeAutomationPeer.cs
- TabletDevice.cs
- DynamicField.cs
- UriPrefixTable.cs
- latinshape.cs
- SeparatorAutomationPeer.cs
- HeaderUtility.cs
- ObjectDataSource.cs
- WebPartsPersonalizationAuthorization.cs
- AdRotator.cs
- XmlSchemaComplexContent.cs
- Size.cs
- XslAstAnalyzer.cs
- UInt16.cs
- UInt16.cs
- LogExtent.cs
- AppDomainProtocolHandler.cs
- PackWebRequestFactory.cs
- RowBinding.cs
- FontDriver.cs
- PageVisual.cs
- _HTTPDateParse.cs
- ToolStripDropDownItemDesigner.cs
- ColorIndependentAnimationStorage.cs
- WebPartDisplayModeCollection.cs
- ReverseInheritProperty.cs
- Site.cs
- SizeAnimationClockResource.cs
- RegistryConfigurationProvider.cs
- TextTreeRootNode.cs
- DecimalStorage.cs
- Inline.cs
- SqlInfoMessageEvent.cs
- CompleteWizardStep.cs
- MessageDecoder.cs
- ColumnTypeConverter.cs
- GenericXmlSecurityTokenAuthenticator.cs
- LassoHelper.cs
- NodeInfo.cs
- ResourceSet.cs
- XmlWriter.cs
- NavigationFailedEventArgs.cs
- RestHandler.cs
- BitmapEffectGroup.cs
- OpenTypeLayout.cs
- SqlFunctionAttribute.cs
- EntityDataReader.cs
- StateMachine.cs
- WeakKeyDictionary.cs
- EndPoint.cs
- QilPatternVisitor.cs
- LocatorPartList.cs
- InvalidDocumentContentsException.cs
- PeerEndPoint.cs
- RowBinding.cs
- CodeCommentStatement.cs
- DirectoryInfo.cs
- isolationinterop.cs
- List.cs
- SqlNamer.cs
- PostBackOptions.cs
- TypeToken.cs
- ConsoleEntryPoint.cs
- TimeSpanValidator.cs
- hresults.cs
- WebPartVerbsEventArgs.cs
- HttpCacheParams.cs
- HwndSubclass.cs
- UnsafeMethods.cs
- Simplifier.cs
- HierarchicalDataTemplate.cs
- XsltCompileContext.cs
- FormViewCommandEventArgs.cs
- SignatureConfirmations.cs
- GridViewHeaderRowPresenter.cs
- CoreSwitches.cs
- BooleanAnimationUsingKeyFrames.cs
- SystemDiagnosticsSection.cs
- SortAction.cs
- ListDictionary.cs
- TableColumn.cs
- DataGridViewBindingCompleteEventArgs.cs
- DelegateSerializationHolder.cs
- TaiwanCalendar.cs
- ParameterToken.cs
- StorageRoot.cs
- WpfKnownTypeInvoker.cs
- Rotation3DKeyFrameCollection.cs
- DesignerCommandSet.cs
- DependencyPropertyConverter.cs
- NetNamedPipeBindingElement.cs