private static bool LookupInternal(Kind declaring_kind, string name, Type property_type, bool create, out DependencyProperty property) { IntPtr handle; if (name == null) { throw new ArgumentNullException("name"); } if (create && property_type == null) { throw new ArgumentNullException("property_type"); } if (declaring_kind == Kind.INVALID) { throw new ArgumentOutOfRangeException("declaring_kind"); } if (property_type != null) { Deployment.Current.Types.Find(property_type); } handle = NativeMethods.dependency_property_get_dependency_property_full(declaring_kind, name, true); if (handle == IntPtr.Zero) { property = null; return(false); } if (properties.TryGetValue(handle, out property)) { return(true); } if (create) { property = new CoreDependencyProperty(handle, name, property_type, Deployment.Current.Types.KindToType(declaring_kind)); } return(property != null); }
private static bool LookupInternal(Kind declaring_kind, string name, Type property_type, bool create, out DependencyProperty property) { IntPtr handle; if (name == null) throw new ArgumentNullException ("name"); if (create && property_type == null) throw new ArgumentNullException ("property_type"); if (declaring_kind == Kind.INVALID) throw new ArgumentOutOfRangeException ("declaring_kind"); if (property_type != null) Deployment.Current.Types.Find (property_type); handle = NativeMethods.dependency_property_get_dependency_property_full (declaring_kind, name, true); if (handle == IntPtr.Zero) { property = null; return false; } if (properties.TryGetValue (handle, out property)) return true; if (create) { property = new CoreDependencyProperty (handle, name, property_type, Deployment.Current.Types.KindToType (declaring_kind)); } return property != null; }