/******************************************************************************* * Copyright (c) 2007, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: *     IBM Corporation - initial API and implementation ****************************************************************************** * **//**  * Object clipboardData()  * @type clipboardData  * @super Object  * @memberOf clipboardData  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms535220.aspx*/function clipboardData(){};clipboardData.prototype= new Object();/**  * function clearData(sDataFormat)  * @param {String} sDataFormat  * @memberOf clipboardData  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms536352.aspx*/clipboardData.prototype.clearData=function(sDataFormat){};/**  * Property dataTransfer  * @type dataTransfer  * @returns {dataTransfer}
  * @memberOf clipboardData  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms535861.aspx*/clipboardData.prototype.dataTransfer= new dataTransfer();/**  * function getData(sDataFormat)  * @param {String} sDataFormat  * @type String  * @returns {String}
  * @memberOf clipboardData  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms536436.aspx*/clipboardData.prototype.getData=function(sDataFormat){};/**  * function setData(sDataFormat,sData)  * @param {String} sDataFormat  * @param {String} sData  * @type Boolean  * @returns {Boolean}
  * @memberOf clipboardData  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms536744.aspx*/clipboardData.prototype.setData=function(sDataFormat,sData){};