Complete C# Code for Flash Control
Code below is a complete C# code for FlashControl, a custom ASP.NET web server control.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Sotirovic.Web.UI.UIControls.Banners { [DefaultProperty(“ID”)] [ToolboxData(“<{0}:FlashControl runat=server></{0}:FlashControl>”)] public class FlashControl : WebControl { #region Constants private const string classidDefault = “clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″; private const string codebaseDefault = “http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0″; private const string qualityDefault = “high”; private const bool renderXhtmlValidDefault = false; private const string mimeTypeDefault = “application/x-shockwave-flash”; private const string pluginspageDefault = “http://www.macromedia.com/go/getflashplayer”; private const string wmodeDefault = “window”; #endregion #region Fields private string classid = classidDefault; private string codebase = codebaseDefault; private string flashUrl; private string quality = qualityDefault; private bool renderXhtmlValid = renderXhtmlValidDefault; private string mimeType = mimeTypeDefault; private string pluginspage = pluginspageDefault; private string wmode = wmodeDefault; #endregion #region Properties [Browsable(true), Category(“Behavior”), DefaultValue(classidDefault)] public string Classid { get { return classid; } set { classid = value; } } [Browsable(true), Category(“Behavior”), DefaultValue(codebaseDefault)] public string Codebase { get { return codebase; } set { codebase = value; } } [Browsable(true), Category(“Appearance”), DefaultValue(“”)] public string FlashUrl { get { return flashUrl; } set { flashUrl = value; } } [Browsable(true), Category(“Appearance”), DefaultValue(qualityDefault)] public string Quality { get { return quality; } set { quality = value; } } [Browsable(true), Category(“Appearance”), DefaultValue(renderXhtmlValidDefault)] public bool RenderXhtmlValid { get { return renderXhtmlValid; } set { renderXhtmlValid = value; } } [Browsable(true), Category(“Behavior”), DefaultValue(mimeTypeDefault)] public string MimeType { get { return mimeType; } set { mimeType = value; } } [Browsable(true), Category(“Behavior”), DefaultValue(pluginspageDefault)] public string Pluginspage { get { return pluginspage; } set { pluginspage = value; } } [Browsable(true), Category(“Behavior”), DefaultValue(wmodeDefault)] public string WMode { get { return wmode; } set { wmode = value; } } #endregion #region Overriden Methods public override void RenderBeginTag(HtmlTextWriter writer) { } public override void RenderEndTag(HtmlTextWriter writer) { } protected override ControlCollection CreateControlCollection() { return new EmptyControlCollection(this); } #endregion protected override void RenderContents(HtmlTextWriter output) { if (this.DesignMode) { output.RenderBeginTag(HtmlTextWriterTag.Span); output.Write(this.ClientID); output.RenderEndTag(); return; } if (renderXhtmlValid) { RenderXHtmlValidHtml(output); } else { RenderLegacyHtml(output); } } protected virtual void RenderLegacyHtml(HtmlTextWriter output) { if (String.IsNullOrEmpty(flashUrl)) { return; } int width = ((int)Width.Value); int height = ((int)Height.Value); bool nonZeroSize = width > 0 && height > 0; string flashUrlResolved = this.ResolveUrl(flashUrl); output.AddAttribute(“classid”, classid, true); output.AddAttribute(“codebase”, codebase, true); output.AddAttribute(HtmlTextWriterAttribute.Id, ClientID); if (nonZeroSize) { output.AddAttribute(HtmlTextWriterAttribute.Width, width.ToString()); output.AddAttribute(HtmlTextWriterAttribute.Height, height.ToString()); } output.RenderBeginTag(HtmlTextWriterTag.Object); addParamTag(output, “movie”, flashUrlResolved, true); addParamTag(output, “wmode”, wmode, false); output.Write(“<embed”); if (nonZeroSize) { output.WriteAttribute(“width”, width.ToString()); output.WriteAttribute(“height”, height.ToString()); } output.WriteAttribute(“name”, “movie”); output.WriteAttribute(“wmode”, wmode); output.WriteAttribute(“quality”, Quality); output.WriteAttribute(“type”, MimeType, true); output.WriteAttribute(“pluginspage”, Pluginspage, true); output.WriteAttribute(“src”, flashUrlResolved, true); output.Write(“>”); output.RenderEndTag(); } private void addParamTag(HtmlTextWriter output, string name, string value, bool fEncodeValue) { output.Write(“<param”); output.WriteAttribute(“name”, name); output.WriteAttribute(“value”, value, fEncodeValue); output.Write(“>”); } protected virtual void RenderXHtmlValidHtml(HtmlTextWriter output) { if (String.IsNullOrEmpty(flashUrl)) { return; } } } }