/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the IDispatch implementation for XPConnect. * * The Initial Developer of the Original Code is * David Bradley. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" #include "nsIVariant.idl" %{ C++ // Pull in jsval definition #include "jspubtd.h" // {40c4883d-079f-43db-82a9-df0a59d37998} #define NS_IDISPATCH_SUPPORT_CID \ { 0x40c4883d, 0x079f, 0x43db, \ { 0x82, 0xa9, 0xdf, 0x0a, 0x59, 0xd3, 0x79, 0x98 } } #ifdef XPC_IDISPATCH_SUPPORT #define NS_IDISPATCH_SUPPORT_CONTRACTID "@mozilla.org/nsdispatchsupport;1" // Disable the warning concerning IDispatch being a struct but now defined // as a class #pragma warning(push) #pragma warning(disable : 4099) #endif %} native COMVARIANT(VARIANT); [ptr] native COMVARIANTPtr(VARIANT); native JSVal(jsval); [ptr] native JSContextPtr(JSContext); interface IDispatch; [uuid(38df70e9-12f8-4732-af91-df36c38dc6f6)] interface nsIDispatchSupport : nsISupports { /** * Converts a COM Variant to a jsval. * @param comvar The COM Variant to be converted. * @param val The jsval to receive the converted value. */ void COMVariant2JSVal(in COMVARIANTPtr comvar, out JSVal val); /** * Converts a jsval to a COM Variant * @param var The jsval to be converted. * @param comvar The COM Variant to receive the converted value */ void JSVal2COMVariant(in JSVal var, out COMVARIANT comvar); /** * Test if the class is safe to host. * @param clsid The nsID representation of the CLSID to test. * @param classExists Returns containing PR_FALSE if the class is * not registered. */ boolean isClassSafeToHost(in JSContextPtr cx, in nsCIDRef cid, in boolean capsCheck, out boolean classExists); /** * Test if the specified class is marked safe for scripting. * @param cid The nsID representation of the CLSID to test. * @param classExists Returns containing PR_FALSE if the class is not * registered. */ boolean isClassMarkedSafeForScripting(in nsCIDRef cid, out boolean classExists); /** * Test if the instantiated object is safe for scripting on the specified * interface. * @param theObject The object to test (an IUnknown cast into a void *). * @param iid The interface to test if it is safe for scripting on. */ boolean isObjectSafeForScripting(in voidPtr theObject, in nsIIDRef id); /** * Return the ActiveX security and hosting flags. See nsIActiveXSecurityPolicy * for list of flags. * @param context The context for which flags are requested. At present the * only valid value is nsnull. */ unsigned long getHostingFlags(in string aContext); }; %{ C++ #pragma warning(pop) %}