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
- HtmlTable.cs
- GrammarBuilderWildcard.cs
- MessagePropertyDescriptionCollection.cs
- GridViewDeleteEventArgs.cs
- StaticResourceExtension.cs
- EncryptedData.cs
- HitTestParameters3D.cs
- AttachedAnnotation.cs
- WindowsAuthenticationEventArgs.cs
- ColumnHeader.cs
- EntityDataSourceUtil.cs
- DeflateStreamAsyncResult.cs
- StringResourceManager.cs
- KernelTypeValidation.cs
- DocobjHost.cs
- Monitor.cs
- Control.cs
- MatrixUtil.cs
- ArrayWithOffset.cs
- DispatcherHookEventArgs.cs
- SecurityHelper.cs
- TriggerAction.cs
- BamlTreeUpdater.cs
- DbProviderFactoriesConfigurationHandler.cs
- ToolTip.cs
- BoolExpression.cs
- EntityDataSourceReferenceGroup.cs
- RecordBuilder.cs
- CustomValidator.cs
- SqlDataSourceCommandEventArgs.cs
- PageVisual.cs
- CookielessHelper.cs
- AddInControllerImpl.cs
- WindowsPrincipal.cs
- shaperfactoryquerycachekey.cs
- SplineKeyFrames.cs
- SmiConnection.cs
- TemplatePartAttribute.cs
- Wizard.cs
- HttpServerVarsCollection.cs
- TogglePattern.cs
- ReliableMessagingVersion.cs
- MenuAutomationPeer.cs
- RoutedEvent.cs
- WsdlBuildProvider.cs
- CalendarDay.cs
- _AcceptOverlappedAsyncResult.cs
- WorkflowMarkupSerializationProvider.cs
- DetailsViewCommandEventArgs.cs
- ToolStripContainerDesigner.cs
- HtmlForm.cs
- GeneralTransform3DGroup.cs
- DataGridViewHitTestInfo.cs
- AsymmetricSignatureFormatter.cs
- RecommendedAsConfigurableAttribute.cs
- ItemsPresenter.cs
- BuildDependencySet.cs
- CompilerGeneratedAttribute.cs
- DependencyPropertyAttribute.cs
- FixedTextContainer.cs
- StringDictionaryEditor.cs
- PeerToPeerException.cs
- OutputCacheSection.cs
- CreateUserErrorEventArgs.cs
- IWorkflowDebuggerService.cs
- ServiceConfigurationTraceRecord.cs
- TimerEventSubscription.cs
- AuthenticationService.cs
- QueryCacheKey.cs
- assemblycache.cs
- SessionStateModule.cs
- InvalidPrinterException.cs
- DataObjectFieldAttribute.cs
- QilTernary.cs
- SystemIPGlobalProperties.cs
- StylusPointPropertyUnit.cs
- RangeBaseAutomationPeer.cs
- CqlErrorHelper.cs
- SymbolTable.cs
- QilName.cs
- RepeaterCommandEventArgs.cs
- OdbcConnectionHandle.cs
- RewritingPass.cs
- GradientSpreadMethodValidation.cs
- TextParagraphCache.cs
- CodeStatement.cs
- HistoryEventArgs.cs
- RadioButton.cs
- SchemaObjectWriter.cs
- DefaultBinder.cs
- Win32PrintDialog.cs
- ScriptResourceHandler.cs
- BamlReader.cs
- CodeSnippetExpression.cs
- XmlValueConverter.cs
- IntersectQueryOperator.cs
- GridProviderWrapper.cs
- Exceptions.cs
- FormsAuthenticationCredentials.cs
- NetworkInterface.cs