htmlstyle2.c 18.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
/*
 * Copyright 2008 Jacek Caban for CodeWeavers
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include <stdarg.h>

#define COBJMACROS

#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "ole2.h"

28 29 30
#include "mshtml_private.h"
#include "htmlstyle.h"

31 32 33 34
#include "wine/debug.h"

WINE_DEFAULT_DEBUG_CHANNEL(mshtml);

35 36 37 38
static inline HTMLStyle *impl_from_IHTMLStyle2(IHTMLStyle2 *iface)
{
    return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle2_iface);
}
39 40 41

static HRESULT WINAPI HTMLStyle2_QueryInterface(IHTMLStyle2 *iface, REFIID riid, void **ppv)
{
42
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
43

44
    return IHTMLStyle_QueryInterface(&This->IHTMLStyle_iface, riid, ppv);
45 46 47 48
}

static ULONG WINAPI HTMLStyle2_AddRef(IHTMLStyle2 *iface)
{
49
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
50

51
    return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
52 53 54 55
}

static ULONG WINAPI HTMLStyle2_Release(IHTMLStyle2 *iface)
{
56
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
57

58
    return IHTMLStyle_Release(&This->IHTMLStyle_iface);
59 60 61 62
}

static HRESULT WINAPI HTMLStyle2_GetTypeInfoCount(IHTMLStyle2 *iface, UINT *pctinfo)
{
63
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
64
    return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
65 66 67 68 69
}

static HRESULT WINAPI HTMLStyle2_GetTypeInfo(IHTMLStyle2 *iface, UINT iTInfo,
                                              LCID lcid, ITypeInfo **ppTInfo)
{
70
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
71
    return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
72 73 74 75 76 77
}

static HRESULT WINAPI HTMLStyle2_GetIDsOfNames(IHTMLStyle2 *iface, REFIID riid,
                                                LPOLESTR *rgszNames, UINT cNames,
                                                LCID lcid, DISPID *rgDispId)
{
78
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
79 80
    return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
            lcid, rgDispId);
81 82 83 84 85 86
}

static HRESULT WINAPI HTMLStyle2_Invoke(IHTMLStyle2 *iface, DISPID dispIdMember,
                            REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
                            VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
87
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
88
    return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
89 90 91 92 93
            wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
}

static HRESULT WINAPI HTMLStyle2_put_tableLayout(IHTMLStyle2 *iface, BSTR v)
{
94
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
95 96 97 98 99 100
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_tableLayout(IHTMLStyle2 *iface, BSTR *p)
{
101
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
102 103 104 105 106 107
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_borderCollapse(IHTMLStyle2 *iface, BSTR v)
{
108
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
109 110 111 112 113 114
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_borderCollapse(IHTMLStyle2 *iface, BSTR *p)
{
115
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
116 117 118 119 120 121
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_direction(IHTMLStyle2 *iface, BSTR v)
{
122
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
123 124 125 126

    TRACE("(%p)->(%s)\n", This, debugstr_w(v));

    return set_nsstyle_attr(This->nsstyle, STYLEID_DIRECTION, v, 0);
127 128 129 130
}

static HRESULT WINAPI HTMLStyle2_get_direction(IHTMLStyle2 *iface, BSTR *p)
{
131
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
132 133 134 135

    TRACE("(%p)->(%p)\n", This, p);

    return get_nsstyle_attr(This->nsstyle, STYLEID_DIRECTION, p, 0);
136 137 138 139
}

static HRESULT WINAPI HTMLStyle2_put_behavior(IHTMLStyle2 *iface, BSTR v)
{
140
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
141 142 143 144 145 146
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_behavior(IHTMLStyle2 *iface, BSTR *p)
{
147
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
148 149 150 151 152 153
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_setExpression(IHTMLStyle2 *iface, BSTR propname, BSTR expression, BSTR language)
{
154
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
155 156 157 158 159 160
    FIXME("(%p)->(%s %s %s)\n", This, debugstr_w(propname), debugstr_w(expression), debugstr_w(language));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_getExpression(IHTMLStyle2 *iface, BSTR propname, VARIANT *expression)
{
161
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
162 163 164 165 166 167
    FIXME("(%p)->(%s %p)\n", This, debugstr_w(propname), expression);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_removeExpression(IHTMLStyle2 *iface, BSTR propname, VARIANT_BOOL *pfSuccess)
{
168
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
169 170 171 172 173 174
    FIXME("(%p)->(%s %p)\n", This, debugstr_w(propname), pfSuccess);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_position(IHTMLStyle2 *iface, BSTR v)
{
175
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
176 177 178 179

    TRACE("(%p)->(%s)\n", This, debugstr_w(v));

    return set_nsstyle_attr(This->nsstyle, STYLEID_POSITION, v, 0);
180 181 182 183
}

static HRESULT WINAPI HTMLStyle2_get_position(IHTMLStyle2 *iface, BSTR *p)
{
184
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
185 186 187

    TRACE("(%p)->(%p)\n", This, p);

188
    return get_nsstyle_attr(This->nsstyle, STYLEID_POSITION, p, 0);
189 190 191 192
}

static HRESULT WINAPI HTMLStyle2_put_unicodeBidi(IHTMLStyle2 *iface, BSTR v)
{
193
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
194 195 196 197 198 199
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_unicodeBidi(IHTMLStyle2 *iface, BSTR *p)
{
200
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
201 202 203 204 205 206
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_bottom(IHTMLStyle2 *iface, VARIANT v)
{
207
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
208 209 210

    TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));

211
    return set_nsstyle_attr_var(This->nsstyle, STYLEID_BOTTOM, &v, ATTR_FIX_PX);
212 213 214 215
}

static HRESULT WINAPI HTMLStyle2_get_bottom(IHTMLStyle2 *iface, VARIANT *p)
{
216
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
217 218 219 220

    TRACE("(%p)->(%p)\n", This, p);

    return get_nsstyle_attr_var(This->nsstyle, STYLEID_BOTTOM, p, 0);
221 222 223 224
}

static HRESULT WINAPI HTMLStyle2_put_right(IHTMLStyle2 *iface, VARIANT v)
{
225
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
226 227 228 229

    TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));

    return set_nsstyle_attr_var(This->nsstyle, STYLEID_RIGHT, &v, 0);
230 231 232 233
}

static HRESULT WINAPI HTMLStyle2_get_right(IHTMLStyle2 *iface, VARIANT *p)
{
234
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
235 236 237 238

    TRACE("(%p)->(%p)\n", This, p);

    return get_nsstyle_attr_var(This->nsstyle, STYLEID_RIGHT, p, 0);
239 240
}

241
static HRESULT WINAPI HTMLStyle2_put_pixelBottom(IHTMLStyle2 *iface, LONG v)
242
{
243
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
244
    FIXME("(%p)->(%d)\n", This, v);
245 246 247
    return E_NOTIMPL;
}

248
static HRESULT WINAPI HTMLStyle2_get_pixelBottom(IHTMLStyle2 *iface, LONG *p)
249
{
250
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
251 252 253 254
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

255
static HRESULT WINAPI HTMLStyle2_put_pixelRight(IHTMLStyle2 *iface, LONG v)
256
{
257
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
258
    FIXME("(%p)->(%d)\n", This, v);
259 260 261
    return E_NOTIMPL;
}

262
static HRESULT WINAPI HTMLStyle2_get_pixelRight(IHTMLStyle2 *iface, LONG *p)
263
{
264
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
265 266 267 268 269 270
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_posBottom(IHTMLStyle2 *iface, float v)
{
271
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
272 273 274 275 276 277
    FIXME("(%p)->(%f)\n", This, v);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_posBottom(IHTMLStyle2 *iface, float *p)
{
278
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
279 280 281 282 283 284
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_posRight(IHTMLStyle2 *iface, float v)
{
285
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
286 287 288 289 290 291
    FIXME("(%p)->(%f)\n", This, v);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_posRight(IHTMLStyle2 *iface, float *p)
{
292
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
293 294 295 296 297 298
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_imeMode(IHTMLStyle2 *iface, BSTR v)
{
299
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
300 301 302 303 304 305
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_imeMode(IHTMLStyle2 *iface, BSTR *p)
{
306
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
307 308 309 310 311 312
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_rubyAlign(IHTMLStyle2 *iface, BSTR v)
{
313
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
314 315 316 317 318 319
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_rubyAlign(IHTMLStyle2 *iface, BSTR *p)
{
320
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
321 322 323 324 325 326
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_rubyPosition(IHTMLStyle2 *iface, BSTR v)
{
327
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
328 329 330 331 332 333
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_rubyPosition(IHTMLStyle2 *iface, BSTR *p)
{
334
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
335 336 337 338 339 340
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_rubyOverhang(IHTMLStyle2 *iface, BSTR v)
{
341
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
342 343 344 345 346 347
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_rubyOverhang(IHTMLStyle2 *iface, BSTR *p)
{
348
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
349 350 351 352 353 354
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_layoutGridChar(IHTMLStyle2 *iface, VARIANT v)
{
355
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
356 357 358 359 360 361
    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_layoutGridChar(IHTMLStyle2 *iface, VARIANT *p)
{
362
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
363 364 365 366 367 368
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_layoutGridLine(IHTMLStyle2 *iface, VARIANT v)
{
369
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
370 371 372 373 374 375
    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_layoutGridLine(IHTMLStyle2 *iface, VARIANT *p)
{
376
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
377 378 379 380 381 382
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_layoutGridMode(IHTMLStyle2 *iface, BSTR v)
{
383
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
384 385 386 387 388 389
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_layoutGridMode(IHTMLStyle2 *iface, BSTR *p)
{
390
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
391 392 393 394 395 396
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_layoutGridType(IHTMLStyle2 *iface, BSTR v)
{
397
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
398 399 400 401 402 403
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_layoutGridType(IHTMLStyle2 *iface, BSTR *p)
{
404
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
405 406 407 408 409 410
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_layoutGrid(IHTMLStyle2 *iface, BSTR v)
{
411
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
412 413 414 415 416 417
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_layoutGrid(IHTMLStyle2 *iface, BSTR *p)
{
418
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
419 420 421 422 423 424
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_wordBreak(IHTMLStyle2 *iface, BSTR v)
{
425
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
426 427 428 429 430 431
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_wordBreak(IHTMLStyle2 *iface, BSTR *p)
{
432
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
433 434 435 436 437 438
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_lineBreak(IHTMLStyle2 *iface, BSTR v)
{
439
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
440 441 442 443 444 445
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_lineBreak(IHTMLStyle2 *iface, BSTR *p)
{
446
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
447 448 449 450 451 452
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_textJustify(IHTMLStyle2 *iface, BSTR v)
{
453
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
454 455 456 457 458 459
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_textJustify(IHTMLStyle2 *iface, BSTR *p)
{
460
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
461 462 463 464 465 466
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_textJustifyTrim(IHTMLStyle2 *iface, BSTR v)
{
467
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
468 469 470 471 472 473
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_textJustifyTrim(IHTMLStyle2 *iface, BSTR *p)
{
474
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
475 476 477 478 479 480
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_textKashida(IHTMLStyle2 *iface, VARIANT v)
{
481
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
482 483 484 485 486 487
    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_textKashida(IHTMLStyle2 *iface, VARIANT *p)
{
488
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
489 490 491 492 493 494
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_textAutospace(IHTMLStyle2 *iface, BSTR v)
{
495
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
496 497 498 499 500 501
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_textAutospace(IHTMLStyle2 *iface, BSTR *p)
{
502
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
503 504 505 506 507 508
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_put_overflowX(IHTMLStyle2 *iface, BSTR v)
{
509
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
510 511 512 513

    TRACE("(%p)->(%s)\n", This, debugstr_w(v));

    return set_nsstyle_attr(This->nsstyle, STYLEID_OVERFLOW_X, v, 0);
514 515 516 517
}

static HRESULT WINAPI HTMLStyle2_get_overflowX(IHTMLStyle2 *iface, BSTR *p)
{
518
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
519 520 521 522

    TRACE("(%p)->(%p)\n", This, p);

    return get_nsstyle_attr(This->nsstyle, STYLEID_OVERFLOW_X, p, 0);
523 524 525 526
}

static HRESULT WINAPI HTMLStyle2_put_overflowY(IHTMLStyle2 *iface, BSTR v)
{
527
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
528 529 530 531

    TRACE("(%p)->(%s)\n", This, debugstr_w(v));

    return set_nsstyle_attr(This->nsstyle, STYLEID_OVERFLOW_Y, v, 0);
532 533 534 535
}

static HRESULT WINAPI HTMLStyle2_get_overflowY(IHTMLStyle2 *iface, BSTR *p)
{
536
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
537 538 539 540

    TRACE("(%p)->(%p)\n", This, p);

    return get_nsstyle_attr(This->nsstyle, STYLEID_OVERFLOW_Y, p, 0);
541 542 543 544
}

static HRESULT WINAPI HTMLStyle2_put_accelerator(IHTMLStyle2 *iface, BSTR v)
{
545
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
546 547 548 549 550 551
    FIXME("(%p)->(%s)\n", This, debugstr_w(v));
    return E_NOTIMPL;
}

static HRESULT WINAPI HTMLStyle2_get_accelerator(IHTMLStyle2 *iface, BSTR *p)
{
552
    HTMLStyle *This = impl_from_IHTMLStyle2(iface);
553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631
    FIXME("(%p)->(%p)\n", This, p);
    return E_NOTIMPL;
}

static const IHTMLStyle2Vtbl HTMLStyle2Vtbl = {
    HTMLStyle2_QueryInterface,
    HTMLStyle2_AddRef,
    HTMLStyle2_Release,
    HTMLStyle2_GetTypeInfoCount,
    HTMLStyle2_GetTypeInfo,
    HTMLStyle2_GetIDsOfNames,
    HTMLStyle2_Invoke,
    HTMLStyle2_put_tableLayout,
    HTMLStyle2_get_tableLayout,
    HTMLStyle2_put_borderCollapse,
    HTMLStyle2_get_borderCollapse,
    HTMLStyle2_put_direction,
    HTMLStyle2_get_direction,
    HTMLStyle2_put_behavior,
    HTMLStyle2_get_behavior,
    HTMLStyle2_setExpression,
    HTMLStyle2_getExpression,
    HTMLStyle2_removeExpression,
    HTMLStyle2_put_position,
    HTMLStyle2_get_position,
    HTMLStyle2_put_unicodeBidi,
    HTMLStyle2_get_unicodeBidi,
    HTMLStyle2_put_bottom,
    HTMLStyle2_get_bottom,
    HTMLStyle2_put_right,
    HTMLStyle2_get_right,
    HTMLStyle2_put_pixelBottom,
    HTMLStyle2_get_pixelBottom,
    HTMLStyle2_put_pixelRight,
    HTMLStyle2_get_pixelRight,
    HTMLStyle2_put_posBottom,
    HTMLStyle2_get_posBottom,
    HTMLStyle2_put_posRight,
    HTMLStyle2_get_posRight,
    HTMLStyle2_put_imeMode,
    HTMLStyle2_get_imeMode,
    HTMLStyle2_put_rubyAlign,
    HTMLStyle2_get_rubyAlign,
    HTMLStyle2_put_rubyPosition,
    HTMLStyle2_get_rubyPosition,
    HTMLStyle2_put_rubyOverhang,
    HTMLStyle2_get_rubyOverhang,
    HTMLStyle2_put_layoutGridChar,
    HTMLStyle2_get_layoutGridChar,
    HTMLStyle2_put_layoutGridLine,
    HTMLStyle2_get_layoutGridLine,
    HTMLStyle2_put_layoutGridMode,
    HTMLStyle2_get_layoutGridMode,
    HTMLStyle2_put_layoutGridType,
    HTMLStyle2_get_layoutGridType,
    HTMLStyle2_put_layoutGrid,
    HTMLStyle2_get_layoutGrid,
    HTMLStyle2_put_wordBreak,
    HTMLStyle2_get_wordBreak,
    HTMLStyle2_put_lineBreak,
    HTMLStyle2_get_lineBreak,
    HTMLStyle2_put_textJustify,
    HTMLStyle2_get_textJustify,
    HTMLStyle2_put_textJustifyTrim,
    HTMLStyle2_get_textJustifyTrim,
    HTMLStyle2_put_textKashida,
    HTMLStyle2_get_textKashida,
    HTMLStyle2_put_textAutospace,
    HTMLStyle2_get_textAutospace,
    HTMLStyle2_put_overflowX,
    HTMLStyle2_get_overflowX,
    HTMLStyle2_put_overflowY,
    HTMLStyle2_get_overflowY,
    HTMLStyle2_put_accelerator,
    HTMLStyle2_get_accelerator
};

void HTMLStyle2_Init(HTMLStyle *This)
{
632
    This->IHTMLStyle2_iface.lpVtbl = &HTMLStyle2Vtbl;
633
}