Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / COM2ComponentEditor.cs / 1 / COM2ComponentEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.ComponentModel.Com2Interop { using System.Runtime.Remoting; using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System; using System.Collections; using Microsoft.Win32; using System.Windows.Forms.Design; internal class Com2ComponentEditor : WindowsFormsComponentEditor { public static bool NeedsComponentEditor(object obj) { if (obj is NativeMethods.IPerPropertyBrowsing) { // check for a property page Guid guid = Guid.Empty; int hr = ((NativeMethods.IPerPropertyBrowsing)obj).MapPropertyToPage(NativeMethods.MEMBERID_NIL, out guid); if ((hr == NativeMethods.S_OK) && !guid.Equals(Guid.Empty)) { return true; } } if (obj is NativeMethods.ISpecifyPropertyPages) { try { NativeMethods.tagCAUUID uuids = new NativeMethods.tagCAUUID(); try { ((NativeMethods.ISpecifyPropertyPages)obj).GetPages(uuids); if (uuids.cElems > 0) { return true; } } finally { if (uuids.pElems != IntPtr.Zero) { Marshal.FreeCoTaskMem(uuids.pElems); } } } catch { } return false; } return false; } [ SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters") // This was shipped in Everett. ] public override bool EditComponent(ITypeDescriptorContext context, object obj, IWin32Window parent) { IntPtr handle = (parent == null ? IntPtr.Zero : parent.Handle); // try to get the page guid if (obj is NativeMethods.IPerPropertyBrowsing) { // check for a property page Guid guid = Guid.Empty; int hr = ((NativeMethods.IPerPropertyBrowsing)obj).MapPropertyToPage(NativeMethods.MEMBERID_NIL, out guid); if (hr == NativeMethods.S_OK) { if (!guid.Equals(Guid.Empty)) { object o = obj; SafeNativeMethods.OleCreatePropertyFrame(new HandleRef(parent, handle), 0, 0, "PropertyPages", 1, ref o, 1, new Guid[]{guid}, Application.CurrentCulture.LCID, 0, IntPtr.Zero); return true; } } } if (obj is NativeMethods.ISpecifyPropertyPages) { bool failed = false; Exception failureException; try { NativeMethods.tagCAUUID uuids = new NativeMethods.tagCAUUID(); try { ((NativeMethods.ISpecifyPropertyPages)obj).GetPages(uuids); if (uuids.cElems <= 0) { return false; } } catch { return false; } try { object o = obj; SafeNativeMethods.OleCreatePropertyFrame(new HandleRef(parent, handle), 0, 0, "PropertyPages", 1, ref o, uuids.cElems, new HandleRef(uuids, uuids.pElems), Application.CurrentCulture.LCID, 0, IntPtr.Zero); return true; } finally { if (uuids.pElems != IntPtr.Zero) { Marshal.FreeCoTaskMem(uuids.pElems); } } } catch (Exception ex1) { failed = true; failureException = ex1; } if (failed) { String errString = SR.GetString(SR.ErrorPropertyPageFailed); IUIService uiSvc = (context != null) ? ((IUIService) context.GetService(typeof(IUIService))) : null; if (uiSvc == null) { RTLAwareMessageBox.Show(null, errString, SR.GetString(SR.PropertyGridTitle), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0); } else if (failureException != null) { uiSvc.ShowError(failureException, errString); } else { uiSvc.ShowError(errString); } } } return false; } } } // 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.Runtime.Remoting; using System.Runtime.InteropServices; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System; using System.Collections; using Microsoft.Win32; using System.Windows.Forms.Design; internal class Com2ComponentEditor : WindowsFormsComponentEditor { public static bool NeedsComponentEditor(object obj) { if (obj is NativeMethods.IPerPropertyBrowsing) { // check for a property page Guid guid = Guid.Empty; int hr = ((NativeMethods.IPerPropertyBrowsing)obj).MapPropertyToPage(NativeMethods.MEMBERID_NIL, out guid); if ((hr == NativeMethods.S_OK) && !guid.Equals(Guid.Empty)) { return true; } } if (obj is NativeMethods.ISpecifyPropertyPages) { try { NativeMethods.tagCAUUID uuids = new NativeMethods.tagCAUUID(); try { ((NativeMethods.ISpecifyPropertyPages)obj).GetPages(uuids); if (uuids.cElems > 0) { return true; } } finally { if (uuids.pElems != IntPtr.Zero) { Marshal.FreeCoTaskMem(uuids.pElems); } } } catch { } return false; } return false; } [ SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters") // This was shipped in Everett. ] public override bool EditComponent(ITypeDescriptorContext context, object obj, IWin32Window parent) { IntPtr handle = (parent == null ? IntPtr.Zero : parent.Handle); // try to get the page guid if (obj is NativeMethods.IPerPropertyBrowsing) { // check for a property page Guid guid = Guid.Empty; int hr = ((NativeMethods.IPerPropertyBrowsing)obj).MapPropertyToPage(NativeMethods.MEMBERID_NIL, out guid); if (hr == NativeMethods.S_OK) { if (!guid.Equals(Guid.Empty)) { object o = obj; SafeNativeMethods.OleCreatePropertyFrame(new HandleRef(parent, handle), 0, 0, "PropertyPages", 1, ref o, 1, new Guid[]{guid}, Application.CurrentCulture.LCID, 0, IntPtr.Zero); return true; } } } if (obj is NativeMethods.ISpecifyPropertyPages) { bool failed = false; Exception failureException; try { NativeMethods.tagCAUUID uuids = new NativeMethods.tagCAUUID(); try { ((NativeMethods.ISpecifyPropertyPages)obj).GetPages(uuids); if (uuids.cElems <= 0) { return false; } } catch { return false; } try { object o = obj; SafeNativeMethods.OleCreatePropertyFrame(new HandleRef(parent, handle), 0, 0, "PropertyPages", 1, ref o, uuids.cElems, new HandleRef(uuids, uuids.pElems), Application.CurrentCulture.LCID, 0, IntPtr.Zero); return true; } finally { if (uuids.pElems != IntPtr.Zero) { Marshal.FreeCoTaskMem(uuids.pElems); } } } catch (Exception ex1) { failed = true; failureException = ex1; } if (failed) { String errString = SR.GetString(SR.ErrorPropertyPageFailed); IUIService uiSvc = (context != null) ? ((IUIService) context.GetService(typeof(IUIService))) : null; if (uiSvc == null) { RTLAwareMessageBox.Show(null, errString, SR.GetString(SR.PropertyGridTitle), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0); } else if (failureException != null) { uiSvc.ShowError(failureException, errString); } else { uiSvc.ShowError(errString); } } } return false; } } } // 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
- Item.cs
- ViewValidator.cs
- CommandDevice.cs
- WebBrowsableAttribute.cs
- FrameworkRichTextComposition.cs
- ReadOnlyNameValueCollection.cs
- CodeArgumentReferenceExpression.cs
- WebScriptServiceHost.cs
- Odbc32.cs
- MetadataArtifactLoaderComposite.cs
- BoolExpression.cs
- AliasExpr.cs
- XpsManager.cs
- _AuthenticationState.cs
- RawStylusActions.cs
- ProfessionalColors.cs
- Thread.cs
- PolicyStatement.cs
- ObjectDataSourceMethodEventArgs.cs
- StringAnimationUsingKeyFrames.cs
- TimeIntervalCollection.cs
- XPathPatternBuilder.cs
- RootAction.cs
- PeerObject.cs
- LinearGradientBrush.cs
- BufferedWebEventProvider.cs
- ListMarkerSourceInfo.cs
- DropSource.cs
- RectAnimationUsingKeyFrames.cs
- ForeignKeyConstraint.cs
- GridView.cs
- X509Extension.cs
- EntitySqlException.cs
- ColumnHeader.cs
- Version.cs
- TypedDatasetGenerator.cs
- ExtendedProtectionPolicyElement.cs
- DrawingGroup.cs
- DbConnectionStringCommon.cs
- GridPatternIdentifiers.cs
- X509LogoTypeExtension.cs
- ConfigXmlAttribute.cs
- ResolvedKeyFrameEntry.cs
- ControlBuilderAttribute.cs
- ContextBase.cs
- HtmlElementEventArgs.cs
- LineGeometry.cs
- SmiContext.cs
- TreeView.cs
- DesignerHierarchicalDataSourceView.cs
- PropertyGridEditorPart.cs
- CodeGeneratorOptions.cs
- BufferBuilder.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- AvTraceFormat.cs
- xmlglyphRunInfo.cs
- Point4D.cs
- DbProviderSpecificTypePropertyAttribute.cs
- WebServiceAttribute.cs
- EntityClientCacheKey.cs
- RuleRef.cs
- RowBinding.cs
- Tablet.cs
- MetadataException.cs
- Panel.cs
- DataControlImageButton.cs
- PersonalizationStateQuery.cs
- RawStylusInput.cs
- SctClaimDictionary.cs
- AsyncStreamReader.cs
- ConnectionAcceptor.cs
- StrongNamePublicKeyBlob.cs
- AssemblyResourceLoader.cs
- TopClause.cs
- WeakEventManager.cs
- ReliabilityContractAttribute.cs
- DebugInfoGenerator.cs
- TargetConverter.cs
- SendSecurityHeaderElement.cs
- StatusStrip.cs
- ProfileService.cs
- HttpContextServiceHost.cs
- TraceListener.cs
- MdImport.cs
- PasswordDeriveBytes.cs
- CounterCreationDataConverter.cs
- XmlElementAttributes.cs
- OLEDB_Util.cs
- EventHandlerList.cs
- XmlWrappingReader.cs
- versioninfo.cs
- FillErrorEventArgs.cs
- ValueExpressions.cs
- WriteFileContext.cs
- UpDownBase.cs
- WebConfigurationHostFileChange.cs
- LayoutInformation.cs
- FileCodeGroup.cs
- ApplicationServiceHelper.cs
- GroupDescription.cs