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 #include "WebKitDLL.h"
27
28 #include "WebScriptObject.h"
29
30 #include <wtf/Assertions.h>
31
32 // WebScriptObject ------------------------------------------------------------
33
WebScriptObject()34 WebScriptObject::WebScriptObject()
35 : m_refCount(0)
36 {
37 gClassCount++;
38 gClassNameCount.add("WebScriptObject");
39 }
40
~WebScriptObject()41 WebScriptObject::~WebScriptObject()
42 {
43 gClassCount--;
44 gClassNameCount.remove("WebScriptObject");
45 }
46
47 // IUnknown -------------------------------------------------------------------
48
QueryInterface(REFIID riid,void ** ppvObject)49 HRESULT STDMETHODCALLTYPE WebScriptObject::QueryInterface(REFIID riid, void** ppvObject)
50 {
51 *ppvObject = 0;
52 if (IsEqualGUID(riid, IID_IUnknown))
53 *ppvObject = static_cast<IWebScriptObject*>(this);
54 else if (IsEqualGUID(riid, IID_IWebScriptObject))
55 *ppvObject = static_cast<IWebScriptObject*>(this);
56 else
57 return E_NOINTERFACE;
58
59 AddRef();
60 return S_OK;
61 }
62
AddRef(void)63 ULONG STDMETHODCALLTYPE WebScriptObject::AddRef(void)
64 {
65 return ++m_refCount;
66 }
67
Release(void)68 ULONG STDMETHODCALLTYPE WebScriptObject::Release(void)
69 {
70 ULONG newRef = --m_refCount;
71 if (!newRef)
72 delete(this);
73
74 return newRef;
75 }
76
77 // WebScriptObject ------------------------------------------------------------
78
throwException(BSTR,BOOL *)79 HRESULT STDMETHODCALLTYPE WebScriptObject::throwException(
80 /* [in] */ BSTR /*exceptionMessage*/,
81 /* [retval][out] */ BOOL* /*result*/)
82 {
83 ASSERT_NOT_REACHED();
84 return E_NOTIMPL;
85 }
86
callWebScriptMethod(BSTR,const VARIANT[],int,VARIANT *)87 HRESULT STDMETHODCALLTYPE WebScriptObject::callWebScriptMethod(
88 /* [in] */ BSTR /*name*/,
89 /* [size_is][in] */ const VARIANT /*args*/[ ],
90 /* [in] */ int /*cArgs*/,
91 /* [retval][out] */ VARIANT* /*result*/)
92 {
93 ASSERT_NOT_REACHED();
94 return E_NOTIMPL;
95 }
96
evaluateWebScript(BSTR,VARIANT *)97 HRESULT STDMETHODCALLTYPE WebScriptObject::evaluateWebScript(
98 /* [in] */ BSTR /*script*/,
99 /* [retval][out] */ VARIANT* /*result*/)
100 {
101 ASSERT_NOT_REACHED();
102 return E_NOTIMPL;
103 }
104
removeWebScriptKey(BSTR)105 HRESULT STDMETHODCALLTYPE WebScriptObject::removeWebScriptKey(
106 /* [in] */ BSTR /*name*/)
107 {
108 ASSERT_NOT_REACHED();
109 return E_NOTIMPL;
110 }
111
stringRepresentation(BSTR *)112 HRESULT STDMETHODCALLTYPE WebScriptObject::stringRepresentation(
113 /* [retval][out] */ BSTR* /*stringRepresentation*/)
114 {
115 ASSERT_NOT_REACHED();
116 return E_NOTIMPL;
117 }
118
webScriptValueAtIndex(unsigned int,VARIANT *)119 HRESULT STDMETHODCALLTYPE WebScriptObject::webScriptValueAtIndex(
120 /* [in] */ unsigned int /*index*/,
121 /* [retval][out] */ VARIANT* /*result*/)
122 {
123 ASSERT_NOT_REACHED();
124 return E_NOTIMPL;
125 }
126
setWebScriptValueAtIndex(unsigned int,VARIANT)127 HRESULT STDMETHODCALLTYPE WebScriptObject::setWebScriptValueAtIndex(
128 /* [in] */ unsigned int /*index*/,
129 /* [in] */ VARIANT /*val*/)
130 {
131 ASSERT_NOT_REACHED();
132 return E_NOTIMPL;
133 }
134
setException(BSTR)135 HRESULT STDMETHODCALLTYPE WebScriptObject::setException(
136 /* [in] */ BSTR /*description*/)
137 {
138 ASSERT_NOT_REACHED();
139 return E_NOTIMPL;
140 }
141