Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenhtmlelem3.c
Go to the documentation of this file.
00001 /* 00002 * Copyright 2008 Jacek Caban for CodeWeavers 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 #include <stdarg.h> 00020 00021 #define COBJMACROS 00022 00023 #include "windef.h" 00024 #include "winbase.h" 00025 #include "winuser.h" 00026 #include "ole2.h" 00027 00028 #include "wine/debug.h" 00029 #include "wine/unicode.h" 00030 00031 #include "mshtml_private.h" 00032 #include "htmlevent.h" 00033 00034 WINE_DEFAULT_DEBUG_CHANNEL(mshtml); 00035 00036 #define HTMLELEM3_THIS(iface) DEFINE_THIS(HTMLElement, HTMLElement3, iface) 00037 00038 static HRESULT WINAPI HTMLElement3_QueryInterface(IHTMLElement3 *iface, 00039 REFIID riid, void **ppv) 00040 { 00041 HTMLElement *This = HTMLELEM3_THIS(iface); 00042 return IHTMLElement_QueryInterface(HTMLELEM(This), riid, ppv); 00043 } 00044 00045 static ULONG WINAPI HTMLElement3_AddRef(IHTMLElement3 *iface) 00046 { 00047 HTMLElement *This = HTMLELEM3_THIS(iface); 00048 return IHTMLElement_AddRef(HTMLELEM(This)); 00049 } 00050 00051 static ULONG WINAPI HTMLElement3_Release(IHTMLElement3 *iface) 00052 { 00053 HTMLElement *This = HTMLELEM3_THIS(iface); 00054 return IHTMLElement_Release(HTMLELEM(This)); 00055 } 00056 00057 static HRESULT WINAPI HTMLElement3_GetTypeInfoCount(IHTMLElement3 *iface, UINT *pctinfo) 00058 { 00059 HTMLElement *This = HTMLELEM3_THIS(iface); 00060 return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->node.dispex), pctinfo); 00061 } 00062 00063 static HRESULT WINAPI HTMLElement3_GetTypeInfo(IHTMLElement3 *iface, UINT iTInfo, 00064 LCID lcid, ITypeInfo **ppTInfo) 00065 { 00066 HTMLElement *This = HTMLELEM3_THIS(iface); 00067 return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->node.dispex), iTInfo, lcid, ppTInfo); 00068 } 00069 00070 static HRESULT WINAPI HTMLElement3_GetIDsOfNames(IHTMLElement3 *iface, REFIID riid, 00071 LPOLESTR *rgszNames, UINT cNames, 00072 LCID lcid, DISPID *rgDispId) 00073 { 00074 HTMLElement *This = HTMLELEM3_THIS(iface); 00075 return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->node.dispex), riid, rgszNames, cNames, lcid, rgDispId); 00076 } 00077 00078 static HRESULT WINAPI HTMLElement3_Invoke(IHTMLElement3 *iface, DISPID dispIdMember, 00079 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, 00080 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) 00081 { 00082 HTMLElement *This = HTMLELEM3_THIS(iface); 00083 return IDispatchEx_Invoke(DISPATCHEX(&This->node.dispex), dispIdMember, riid, lcid, 00084 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); 00085 } 00086 00087 static HRESULT WINAPI HTMLElement3_mergeAttributes(IHTMLElement3 *iface, IHTMLElement *mergeThis, VARIANT *pvarFlags) 00088 { 00089 HTMLElement *This = HTMLELEM3_THIS(iface); 00090 FIXME("(%p)->(%p %p)\n", This, mergeThis, pvarFlags); 00091 return E_NOTIMPL; 00092 } 00093 00094 static HRESULT WINAPI HTMLElement3_get_isMultiLine(IHTMLElement3 *iface, VARIANT_BOOL *p) 00095 { 00096 HTMLElement *This = HTMLELEM3_THIS(iface); 00097 FIXME("(%p)->(%p)\n", This, p); 00098 return E_NOTIMPL; 00099 } 00100 00101 static HRESULT WINAPI HTMLElement3_get_canHaveHTML(IHTMLElement3 *iface, VARIANT_BOOL *p) 00102 { 00103 HTMLElement *This = HTMLELEM3_THIS(iface); 00104 FIXME("(%p)->(%p)\n", This, p); 00105 return E_NOTIMPL; 00106 } 00107 00108 static HRESULT WINAPI HTMLElement3_put_onlayoutcomplete(IHTMLElement3 *iface, VARIANT v) 00109 { 00110 HTMLElement *This = HTMLELEM3_THIS(iface); 00111 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00112 return E_NOTIMPL; 00113 } 00114 00115 static HRESULT WINAPI HTMLElement3_get_onlayoutcomplete(IHTMLElement3 *iface, VARIANT *p) 00116 { 00117 HTMLElement *This = HTMLELEM3_THIS(iface); 00118 FIXME("(%p)->(%p)\n", This, p); 00119 return E_NOTIMPL; 00120 } 00121 00122 static HRESULT WINAPI HTMLElement3_put_onpage(IHTMLElement3 *iface, VARIANT v) 00123 { 00124 HTMLElement *This = HTMLELEM3_THIS(iface); 00125 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00126 return E_NOTIMPL; 00127 } 00128 00129 static HRESULT WINAPI HTMLElement3_get_onpage(IHTMLElement3 *iface, VARIANT *p) 00130 { 00131 HTMLElement *This = HTMLELEM3_THIS(iface); 00132 FIXME("(%p)->(%p)\n", This, p); 00133 return E_NOTIMPL; 00134 } 00135 00136 static HRESULT WINAPI HTMLElement3_put_inflateBlock(IHTMLElement3 *iface, VARIANT_BOOL v) 00137 { 00138 HTMLElement *This = HTMLELEM3_THIS(iface); 00139 FIXME("(%p)->(%x)\n", This, v); 00140 return E_NOTIMPL; 00141 } 00142 00143 static HRESULT WINAPI HTMLElement3_get_inflateBlock(IHTMLElement3 *iface, VARIANT_BOOL *p) 00144 { 00145 HTMLElement *This = HTMLELEM3_THIS(iface); 00146 FIXME("(%p)->(%p)\n", This, p); 00147 return E_NOTIMPL; 00148 } 00149 00150 static HRESULT WINAPI HTMLElement3_put_onbeforedeactivate(IHTMLElement3 *iface, VARIANT v) 00151 { 00152 HTMLElement *This = HTMLELEM3_THIS(iface); 00153 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00154 return E_NOTIMPL; 00155 } 00156 00157 static HRESULT WINAPI HTMLElement3_get_onbeforedeactivate(IHTMLElement3 *iface, VARIANT *p) 00158 { 00159 HTMLElement *This = HTMLELEM3_THIS(iface); 00160 FIXME("(%p)->(%p)\n", This, p); 00161 return E_NOTIMPL; 00162 } 00163 00164 static HRESULT WINAPI HTMLElement3_setActive(IHTMLElement3 *iface) 00165 { 00166 HTMLElement *This = HTMLELEM3_THIS(iface); 00167 FIXME("(%p)\n", This); 00168 return E_NOTIMPL; 00169 } 00170 00171 static HRESULT WINAPI HTMLElement3_put_contentEditable(IHTMLElement3 *iface, BSTR v) 00172 { 00173 HTMLElement *This = HTMLELEM3_THIS(iface); 00174 FIXME("(%p)->(%s)\n", This, debugstr_w(v)); 00175 return E_NOTIMPL; 00176 } 00177 00178 static HRESULT WINAPI HTMLElement3_get_contentEditable(IHTMLElement3 *iface, BSTR *p) 00179 { 00180 HTMLElement *This = HTMLELEM3_THIS(iface); 00181 FIXME("(%p)->(%p)\n", This, p); 00182 return E_NOTIMPL; 00183 } 00184 00185 static HRESULT WINAPI HTMLElement3_get_isContentEditable(IHTMLElement3 *iface, VARIANT_BOOL *p) 00186 { 00187 HTMLElement *This = HTMLELEM3_THIS(iface); 00188 FIXME("(%p)->(%p)\n", This, p); 00189 return E_NOTIMPL; 00190 } 00191 00192 static HRESULT WINAPI HTMLElement3_put_hideFocus(IHTMLElement3 *iface, VARIANT_BOOL v) 00193 { 00194 HTMLElement *This = HTMLELEM3_THIS(iface); 00195 FIXME("(%p)->(%x)\n", This, v); 00196 return E_NOTIMPL; 00197 } 00198 00199 static HRESULT WINAPI HTMLElement3_get_hideFocus(IHTMLElement3 *iface, VARIANT_BOOL *p) 00200 { 00201 HTMLElement *This = HTMLELEM3_THIS(iface); 00202 FIXME("(%p)->(%p)\n", This, p); 00203 return E_NOTIMPL; 00204 } 00205 00206 static const WCHAR disabledW[] = {'d','i','s','a','b','l','e','d',0}; 00207 00208 static HRESULT WINAPI HTMLElement3_put_disabled(IHTMLElement3 *iface, VARIANT_BOOL v) 00209 { 00210 HTMLElement *This = HTMLELEM3_THIS(iface); 00211 VARIANT *var; 00212 HRESULT hres; 00213 00214 TRACE("(%p)->(%x)\n", This, v); 00215 00216 if(This->node.vtbl->put_disabled) 00217 return This->node.vtbl->put_disabled(&This->node, v); 00218 00219 hres = dispex_get_dprop_ref(&This->node.dispex, disabledW, TRUE, &var); 00220 if(FAILED(hres)) 00221 return hres; 00222 00223 VariantClear(var); 00224 V_VT(var) = VT_BOOL; 00225 V_BOOL(var) = v; 00226 return S_OK; 00227 } 00228 00229 static HRESULT WINAPI HTMLElement3_get_disabled(IHTMLElement3 *iface, VARIANT_BOOL *p) 00230 { 00231 HTMLElement *This = HTMLELEM3_THIS(iface); 00232 VARIANT *var; 00233 HRESULT hres; 00234 00235 TRACE("(%p)->(%p)\n", This, p); 00236 00237 if(This->node.vtbl->get_disabled) 00238 return This->node.vtbl->get_disabled(&This->node, p); 00239 00240 hres = dispex_get_dprop_ref(&This->node.dispex, disabledW, FALSE, &var); 00241 if(hres == DISP_E_UNKNOWNNAME) { 00242 *p = VARIANT_FALSE; 00243 return S_OK; 00244 } 00245 if(FAILED(hres)) 00246 return hres; 00247 00248 if(V_VT(var) != VT_BOOL) { 00249 FIXME("vt %d\n", V_VT(var)); 00250 return E_NOTIMPL; 00251 } 00252 00253 *p = V_BOOL(var); 00254 return S_OK; 00255 } 00256 00257 static HRESULT WINAPI HTMLElement3_get_isDisabled(IHTMLElement3 *iface, VARIANT_BOOL *p) 00258 { 00259 HTMLElement *This = HTMLELEM3_THIS(iface); 00260 FIXME("(%p)->(%p)\n", This, p); 00261 return E_NOTIMPL; 00262 } 00263 00264 static HRESULT WINAPI HTMLElement3_put_onmove(IHTMLElement3 *iface, VARIANT v) 00265 { 00266 HTMLElement *This = HTMLELEM3_THIS(iface); 00267 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00268 return E_NOTIMPL; 00269 } 00270 00271 static HRESULT WINAPI HTMLElement3_get_onmove(IHTMLElement3 *iface, VARIANT *p) 00272 { 00273 HTMLElement *This = HTMLELEM3_THIS(iface); 00274 FIXME("(%p)->(%p)\n", This, p); 00275 return E_NOTIMPL; 00276 } 00277 00278 static HRESULT WINAPI HTMLElement3_put_oncontrolselect(IHTMLElement3 *iface, VARIANT v) 00279 { 00280 HTMLElement *This = HTMLELEM3_THIS(iface); 00281 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00282 return E_NOTIMPL; 00283 } 00284 00285 static HRESULT WINAPI HTMLElement3_get_oncontrolselect(IHTMLElement3 *iface, VARIANT *p) 00286 { 00287 HTMLElement *This = HTMLELEM3_THIS(iface); 00288 FIXME("(%p)->(%p)\n", This, p); 00289 return E_NOTIMPL; 00290 } 00291 00292 static HRESULT WINAPI HTMLElement3_fireEvent(IHTMLElement3 *iface, BSTR bstrEventName, 00293 VARIANT *pvarEventObject, VARIANT_BOOL *pfCancelled) 00294 { 00295 HTMLElement *This = HTMLELEM3_THIS(iface); 00296 00297 TRACE("(%p)->(%s %s %p)\n", This, debugstr_w(bstrEventName), debugstr_variant(pvarEventObject), 00298 pfCancelled); 00299 00300 return dispatch_event(&This->node, bstrEventName, pvarEventObject, pfCancelled); 00301 } 00302 00303 static HRESULT WINAPI HTMLElement3_put_onresizestart(IHTMLElement3 *iface, VARIANT v) 00304 { 00305 HTMLElement *This = HTMLELEM3_THIS(iface); 00306 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00307 return E_NOTIMPL; 00308 } 00309 00310 static HRESULT WINAPI HTMLElement3_get_onresizestart(IHTMLElement3 *iface, VARIANT *p) 00311 { 00312 HTMLElement *This = HTMLELEM3_THIS(iface); 00313 FIXME("(%p)->(%p)\n", This, p); 00314 return E_NOTIMPL; 00315 } 00316 00317 static HRESULT WINAPI HTMLElement3_put_onresizeend(IHTMLElement3 *iface, VARIANT v) 00318 { 00319 HTMLElement *This = HTMLELEM3_THIS(iface); 00320 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00321 return E_NOTIMPL; 00322 } 00323 00324 static HRESULT WINAPI HTMLElement3_get_onresizeend(IHTMLElement3 *iface, VARIANT *p) 00325 { 00326 HTMLElement *This = HTMLELEM3_THIS(iface); 00327 FIXME("(%p)->(%p)\n", This, p); 00328 return E_NOTIMPL; 00329 } 00330 00331 static HRESULT WINAPI HTMLElement3_put_onmovestart(IHTMLElement3 *iface, VARIANT v) 00332 { 00333 HTMLElement *This = HTMLELEM3_THIS(iface); 00334 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00335 return E_NOTIMPL; 00336 } 00337 00338 static HRESULT WINAPI HTMLElement3_get_onmovestart(IHTMLElement3 *iface, VARIANT *p) 00339 { 00340 HTMLElement *This = HTMLELEM3_THIS(iface); 00341 FIXME("(%p)->(%p)\n", This, p); 00342 return E_NOTIMPL; 00343 } 00344 00345 static HRESULT WINAPI HTMLElement3_put_onmoveend(IHTMLElement3 *iface, VARIANT v) 00346 { 00347 HTMLElement *This = HTMLELEM3_THIS(iface); 00348 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00349 return E_NOTIMPL; 00350 } 00351 00352 static HRESULT WINAPI HTMLElement3_get_onmoveend(IHTMLElement3 *iface, VARIANT *p) 00353 { 00354 HTMLElement *This = HTMLELEM3_THIS(iface); 00355 FIXME("(%p)->(%p)\n", This, p); 00356 return E_NOTIMPL; 00357 } 00358 00359 static HRESULT WINAPI HTMLElement3_put_onmousecenter(IHTMLElement3 *iface, VARIANT v) 00360 { 00361 HTMLElement *This = HTMLELEM3_THIS(iface); 00362 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00363 return E_NOTIMPL; 00364 } 00365 00366 static HRESULT WINAPI HTMLElement3_get_onmousecenter(IHTMLElement3 *iface, VARIANT *p) 00367 { 00368 HTMLElement *This = HTMLELEM3_THIS(iface); 00369 FIXME("(%p)->(%p)\n", This, p); 00370 return E_NOTIMPL; 00371 } 00372 00373 static HRESULT WINAPI HTMLElement3_put_onmouseleave(IHTMLElement3 *iface, VARIANT v) 00374 { 00375 HTMLElement *This = HTMLELEM3_THIS(iface); 00376 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00377 return E_NOTIMPL; 00378 } 00379 00380 static HRESULT WINAPI HTMLElement3_get_onmouseleave(IHTMLElement3 *iface, VARIANT *p) 00381 { 00382 HTMLElement *This = HTMLELEM3_THIS(iface); 00383 FIXME("(%p)->(%p)\n", This, p); 00384 return E_NOTIMPL; 00385 } 00386 00387 static HRESULT WINAPI HTMLElement3_put_onactivate(IHTMLElement3 *iface, VARIANT v) 00388 { 00389 HTMLElement *This = HTMLELEM3_THIS(iface); 00390 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00391 return E_NOTIMPL; 00392 } 00393 00394 static HRESULT WINAPI HTMLElement3_get_onactivate(IHTMLElement3 *iface, VARIANT *p) 00395 { 00396 HTMLElement *This = HTMLELEM3_THIS(iface); 00397 FIXME("(%p)->(%p)\n", This, p); 00398 return E_NOTIMPL; 00399 } 00400 00401 static HRESULT WINAPI HTMLElement3_put_ondeactivate(IHTMLElement3 *iface, VARIANT v) 00402 { 00403 HTMLElement *This = HTMLELEM3_THIS(iface); 00404 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); 00405 return E_NOTIMPL; 00406 } 00407 00408 static HRESULT WINAPI HTMLElement3_get_ondeactivate(IHTMLElement3 *iface, VARIANT *p) 00409 { 00410 HTMLElement *This = HTMLELEM3_THIS(iface); 00411 FIXME("(%p)->(%p)\n", This, p); 00412 return E_NOTIMPL; 00413 } 00414 00415 static HRESULT WINAPI HTMLElement3_dragDrop(IHTMLElement3 *iface, VARIANT_BOOL *pfRet) 00416 { 00417 HTMLElement *This = HTMLELEM3_THIS(iface); 00418 FIXME("(%p)->(%p)\n", This, pfRet); 00419 return E_NOTIMPL; 00420 } 00421 00422 static HRESULT WINAPI HTMLElement3_get_glyphMode(IHTMLElement3 *iface, LONG *p) 00423 { 00424 HTMLElement *This = HTMLELEM3_THIS(iface); 00425 FIXME("(%p)->(%p)\n", This, p); 00426 return E_NOTIMPL; 00427 } 00428 00429 #undef HTMLELEM2_THIS 00430 00431 static const IHTMLElement3Vtbl HTMLElement3Vtbl = { 00432 HTMLElement3_QueryInterface, 00433 HTMLElement3_AddRef, 00434 HTMLElement3_Release, 00435 HTMLElement3_GetTypeInfoCount, 00436 HTMLElement3_GetTypeInfo, 00437 HTMLElement3_GetIDsOfNames, 00438 HTMLElement3_Invoke, 00439 HTMLElement3_mergeAttributes, 00440 HTMLElement3_get_isMultiLine, 00441 HTMLElement3_get_canHaveHTML, 00442 HTMLElement3_put_onlayoutcomplete, 00443 HTMLElement3_get_onlayoutcomplete, 00444 HTMLElement3_put_onpage, 00445 HTMLElement3_get_onpage, 00446 HTMLElement3_put_inflateBlock, 00447 HTMLElement3_get_inflateBlock, 00448 HTMLElement3_put_onbeforedeactivate, 00449 HTMLElement3_get_onbeforedeactivate, 00450 HTMLElement3_setActive, 00451 HTMLElement3_put_contentEditable, 00452 HTMLElement3_get_contentEditable, 00453 HTMLElement3_get_isContentEditable, 00454 HTMLElement3_put_hideFocus, 00455 HTMLElement3_get_hideFocus, 00456 HTMLElement3_put_disabled, 00457 HTMLElement3_get_disabled, 00458 HTMLElement3_get_isDisabled, 00459 HTMLElement3_put_onmove, 00460 HTMLElement3_get_onmove, 00461 HTMLElement3_put_oncontrolselect, 00462 HTMLElement3_get_oncontrolselect, 00463 HTMLElement3_fireEvent, 00464 HTMLElement3_put_onresizestart, 00465 HTMLElement3_get_onresizestart, 00466 HTMLElement3_put_onresizeend, 00467 HTMLElement3_get_onresizeend, 00468 HTMLElement3_put_onmovestart, 00469 HTMLElement3_get_onmovestart, 00470 HTMLElement3_put_onmoveend, 00471 HTMLElement3_get_onmoveend, 00472 HTMLElement3_put_onmousecenter, 00473 HTMLElement3_get_onmousecenter, 00474 HTMLElement3_put_onmouseleave, 00475 HTMLElement3_get_onmouseleave, 00476 HTMLElement3_put_onactivate, 00477 HTMLElement3_get_onactivate, 00478 HTMLElement3_put_ondeactivate, 00479 HTMLElement3_get_ondeactivate, 00480 HTMLElement3_dragDrop, 00481 HTMLElement3_get_glyphMode 00482 }; 00483 00484 void HTMLElement3_Init(HTMLElement *This) 00485 { 00486 This->lpHTMLElement3Vtbl = &HTMLElement3Vtbl; 00487 } Generated on Sat May 26 2012 04:23:30 for ReactOS by
1.7.6.1
|