|         |      1 /* | 
|         |      2  * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved. | 
|         |      3  * | 
|         |      4  * Redistribution and use in source and binary forms, with or without | 
|         |      5  * modification, are permitted provided that the following conditions | 
|         |      6  * are met: | 
|         |      7  * 1. Redistributions of source code must retain the above copyright | 
|         |      8  *    notice, this list of conditions and the following disclaimer. | 
|         |      9  * 2. Redistributions in binary form must reproduce the above copyright | 
|         |     10  *    notice, this list of conditions and the following disclaimer in the | 
|         |     11  *    documentation and/or other materials provided with the distribution. | 
|         |     12  * | 
|         |     13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY | 
|         |     14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
|         |     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 
|         |     16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR | 
|         |     17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 
|         |     18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 
|         |     19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 
|         |     20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 
|         |     21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|         |     22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
|         |     23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  | 
|         |     24  */ | 
|         |     25  | 
|         |     26 #ifndef WebScriptObject_H | 
|         |     27 #define WebScriptObject_H | 
|         |     28  | 
|         |     29 #include "IWebScriptObject.h" | 
|         |     30  | 
|         |     31 class WebScriptObject : public IWebScriptObject | 
|         |     32 { | 
|         |     33 public: | 
|         |     34     WebScriptObject(); | 
|         |     35     virtual ~WebScriptObject(); | 
|         |     36  | 
|         |     37     // IUnknown | 
|         |     38     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); | 
|         |     39     virtual ULONG STDMETHODCALLTYPE AddRef(void); | 
|         |     40     virtual ULONG STDMETHODCALLTYPE Release(void); | 
|         |     41  | 
|         |     42     // IWebScriptObject | 
|         |     43     virtual HRESULT STDMETHODCALLTYPE throwException(  | 
|         |     44         /* [in] */ BSTR exceptionMessage, | 
|         |     45         /* [retval][out] */ BOOL *result); | 
|         |     46      | 
|         |     47     virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(  | 
|         |     48         /* [in] */ BSTR name, | 
|         |     49         /* [size_is][in] */ const VARIANT args[  ], | 
|         |     50         /* [in] */ int cArgs, | 
|         |     51         /* [retval][out] */ VARIANT *result); | 
|         |     52      | 
|         |     53     virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(  | 
|         |     54         /* [in] */ BSTR script, | 
|         |     55         /* [retval][out] */ VARIANT *result); | 
|         |     56      | 
|         |     57     virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(  | 
|         |     58         /* [in] */ BSTR name); | 
|         |     59      | 
|         |     60     virtual HRESULT STDMETHODCALLTYPE stringRepresentation(  | 
|         |     61         /* [retval][out] */ BSTR* stringRepresentation); | 
|         |     62      | 
|         |     63     virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(  | 
|         |     64         /* [in] */ unsigned int index, | 
|         |     65         /* [retval][out] */ VARIANT *result); | 
|         |     66      | 
|         |     67     virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(  | 
|         |     68         /* [in] */ unsigned int index, | 
|         |     69         /* [in] */ VARIANT val); | 
|         |     70      | 
|         |     71     virtual HRESULT STDMETHODCALLTYPE setException(  | 
|         |     72         /* [in] */ BSTR description); | 
|         |     73  | 
|         |     74 protected: | 
|         |     75     ULONG m_refCount; | 
|         |     76 }; | 
|         |     77  | 
|         |     78 #endif |