ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

htmlelem3.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.